From 6212f09c0549936a4e3a42aae093a487b62bffae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E8=BE=B0=E7=BC=96=E7=A8=8B=E7=90=86=E8=B4=A2?= <143926096+xcbclc@users.noreply.github.com> Date: Mon, 29 Apr 2024 13:32:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6v0.1.3=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=20(#3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat: 合并v0.1.3版本代码 --- .env | 3 +- .env.development | 2 +- .gitee/ISSUE_TEMPLATE.zh-CN.md | 6 - .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md | 9 +- Dockerfile | 2 +- README.md | 19 +- docs/.env | 1 + docs/.vitepress/component/home-hero-image.vue | 7 +- docs/.vitepress/component/home-hero-video.vue | 59 + .../component/istock-shell-demo.vue | 42 + docs/.vitepress/theme/index.ts | 5 +- docs/.vitepress/theme/style.css | 5 + docs/Dockerfile | 2 +- docs/index.md | 4 + docs/use/command/ag/ggxxcx/ggxxcx.cmd.md | 32 +- docs/use/command/ag/gpsczm/gpsczm.cmd.md | 119 +- docs/use/command/ag/hqbj/hqbj.cmd.md | 32 +- docs/use/command/ag/lsfbsj/lsfbsj.cmd.md | 32 +- docs/use/command/ag/lshqsj/lshqsj.cmd.md | 368 +--- docs/use/command/ag/sshqsj/sshqsj.cmd.md | 34 +- docs/use/command/global/chart/chart.cmd.md | 304 +-- .../command/global/cmd-route/cmd-route.cmd.md | 13 +- docs/use/command/global/domain/domain.cmd.md | 27 +- .../use/command/global/history/history.cmd.md | 22 +- docs/use/command/global/user/user.cmd.md | 24 +- docs/use/command/index.md | 4 + docs/use/command/wzdh/cj/cj.cmd.md | 18 + docs/use/quick-start/easy-to-use.md | 26 +- package.json | 34 +- pnpm-lock.yaml | 1697 +++++++++-------- src/packages/cli/src/action/cmd-doc.mjs | 62 +- .../cli/src/template/doc/cmd/cmd-content.ejs | 33 + src/packages/cli/src/template/doc/cmd/cmd.ejs | 27 +- src/packages/command-parser/src/parser.ts | 25 +- src/packages/command-parser/src/tokenizer.ts | 4 +- .../editor/src/command-editor-parser.ts | 3 - src/packages/editor/src/command-editor.ts | 2 +- src/packages/iswork/src/types/controller.ts | 2 + src/packages/shell-ui/src/chart/Chart.svelte | 2 +- src/packages/shell-ui/src/index.ts | 1 + .../shell-ui/src/navlist/NavList.svelte | 48 + src/packages/shell-ui/src/navlist/index.ts | 3 + src/packages/shell-ui/src/table/Table.svelte | 3 + src/packages/util/src/index.ts | 1 + src/packages/util/src/url.ts | 5 + src/store/cmd/cmd-info.ts | 3 + src/store/cmd/cmd-output/store.ts | 4 + src/store/cmd/cmd-prompt.ts | 11 +- src/store/init.ts | 16 +- src/view/CmdWindows.svelte | 10 +- src/view/components/form/CmdInput.svelte | 29 +- src/view/components/main/CmdMain.svelte | 10 + src/view/components/output/OutputDoc.svelte | 124 +- .../components/output/OutputDocTable.svelte | 51 + src/window/cmd-window-context.ts | 20 +- src/window/cmd-windows-manager.ts | 19 +- src/worker/common/cmd-template/option.ts | 4 +- src/worker/datasource-register.ts | 3 +- src/worker/domains/ag/ggxxcx/ggxxcx.cmd.ts | 1 + src/worker/domains/ag/gpsczm/gpsczm.cmd.ts | 55 +- src/worker/domains/ag/hqbj/hqbj.cmd.ts | 1 + src/worker/domains/ag/lsfbsj/lsfbsj.cmd.ts | 1 + src/worker/domains/ag/lshqsj/lshqsj.cmd.ts | 7 + .../domains/ag/lshqsj/lshqsj.controller.ts | 2 +- src/worker/domains/ag/sshqsj/sshqsj.cmd.ts | 16 +- .../global/chart/chart.base.service.ts | 10 +- src/worker/domains/global/chart/chart.cmd.ts | 81 +- .../domains/global/chart/chart.controller.ts | 10 +- .../domains/global/chart/chart.service.ts | 8 +- .../domains/global/chart/example-data.ts | 20 + .../global/cmd-route/cmd-route.cmd.json | 3 +- .../global/cmd-route/cmd-route.controller.ts | 2 +- .../global/cmd-route/cmd-route.model.ts | 3 + .../global/cmd-route/cmd-route.service.ts | 21 +- .../domains/global/domain/domain.cmd.json | 6 +- .../global/domain/domain.controller.ts | 25 +- .../domains/global/history/history.cmd.json | 3 +- .../global/recommend/recommend.service.ts | 2 +- src/worker/domains/global/user/user.cmd.json | 4 +- src/worker/domains/root.domain.ts | 3 +- src/worker/domains/wzdh/cj/cj.cmd.ts | 39 + src/worker/domains/wzdh/cj/cj.controller.ts | 56 + src/worker/domains/wzdh/cj/cj.model.ts | 11 + src/worker/domains/wzdh/cj/cj.service.ts | 34 + src/worker/domains/wzdh/cj/data.ts | 528 +++++ src/worker/domains/wzdh/wzdh.domain.ts | 18 + tsconfig.json | 2 +- vite.config.ts | 1 + 88 files changed, 2654 insertions(+), 1796 deletions(-) create mode 100644 docs/.env create mode 100644 docs/.vitepress/component/home-hero-video.vue create mode 100644 docs/.vitepress/component/istock-shell-demo.vue create mode 100644 docs/use/command/wzdh/cj/cj.cmd.md create mode 100644 src/packages/cli/src/template/doc/cmd/cmd-content.ejs create mode 100644 src/packages/shell-ui/src/navlist/NavList.svelte create mode 100644 src/packages/shell-ui/src/navlist/index.ts create mode 100644 src/packages/util/src/url.ts create mode 100644 src/view/components/output/OutputDocTable.svelte create mode 100644 src/worker/domains/global/chart/example-data.ts create mode 100644 src/worker/domains/wzdh/cj/cj.cmd.ts create mode 100644 src/worker/domains/wzdh/cj/cj.controller.ts create mode 100644 src/worker/domains/wzdh/cj/cj.model.ts create mode 100644 src/worker/domains/wzdh/cj/cj.service.ts create mode 100644 src/worker/domains/wzdh/cj/data.ts create mode 100644 src/worker/domains/wzdh/wzdh.domain.ts diff --git a/.env b/.env index b3a8fc9..99b0096 100644 --- a/.env +++ b/.env @@ -1 +1,2 @@ -VITE_AKSHARE_API = /api/akshare # akshare接口前缀 \ No newline at end of file +VITE_AKSHARE_API = /api/akshare # akshare接口前缀 +VITE_SITE_BAIDU_ANALYSIS = true # 百度统计代码 \ No newline at end of file diff --git a/.env.development b/.env.development index 4619977..118fa17 100644 --- a/.env.development +++ b/.env.development @@ -1 +1 @@ -VITE_PROXY = https://istock.red \ No newline at end of file +VITE_PROXY = https://istock.red # 开发接口代理地址 \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md index 27fa592..3d6a59a 100644 --- a/.gitee/ISSUE_TEMPLATE.zh-CN.md +++ b/.gitee/ISSUE_TEMPLATE.zh-CN.md @@ -1,13 +1,7 @@ ### 该问题是怎么引起的? - ### 重现步骤 - ### 报错信息 - ### 环境及版本信息 - - - diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md index efe27c3..81fd24a 100644 --- a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md +++ b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md @@ -1,10 +1,13 @@ ### 描述 + [请在这里简要描述你的更改,包括解决了什么问题或添加了什么功能] ### 相关Issue + [如果有的话,请在这里提及相关的Issue编号] ### 更改类型 + [选择适用的类型,并在方括号中标记] - [ ] 修复Bug @@ -14,12 +17,15 @@ - [ ] 其他(请在描述中说明) ### 测试 + [请描述你如何测试你的更改以确保其有效性,包括测试用例或测试方法] ### 截图(可选) + [如果适用,请在这里包含与更改相关的截图] ### 检查清单 + [确保你已完成下列任务,并在方括号中标记] - [ ] 我的代码遵循了项目的编码风格指南 @@ -28,4 +34,5 @@ - [ ] 我的更改已经进行了文档更新,包括README文件(如果适用) ### 附加信息 -[如果有的话,请在这里提供任何额外的信息或上下文] \ No newline at end of file + +[如果有的话,请在这里提供任何额外的信息或上下文] diff --git a/Dockerfile b/Dockerfile index 8a45dba..459f580 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ COPY ./dist /usr/share/nginx/html # 如果需要,复制自定义的 Nginx 配置文件 #COPY ./nginx.conf /etc/nginx/nginx.conf -EXPOSE 5173 +EXPOSE 80 # 设置容器启动后的命令,这里使用 Nginx 的默认命令 CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/README.md b/README.md index 40d9225..0236266 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ ### 项目介绍 `iStock Shell`是一款用于研究和学习的金融数据查询工具,设计理念围绕着`简单性、高效率、灵活性以及可定制性展开`,技术上尽可能不依赖后端服务。它为用户提供了一个统一的平台,通过简单的命令输入,即可查询并展示来自不同数据源的金融信息。 -项目演示地址:[https://istock.red/shell](https://istock.red/shell) + +- [演示地址](https://istock.red/shell) +- [演示视频](https://cdn.istock.red/video/istock%20shell%E6%BC%94%E7%A4%BA.mp4) ![效果图](./docs/public/static/效果图.jpg) @@ -32,6 +34,7 @@ - [全局命令](https://istock.red/use/command/) - [A股命令](https://istock.red/use/command/) +- [网站导航](https://istock.red/use/command/) ### 相关文档 @@ -41,19 +44,15 @@ ### 迭代计划 -**03月18日-03月24日:** - -| 任务项目 | 描述 | 该迭代是否上线 | -| :--------------: | :----------------------------: | :------------: | -| 金融网站导航命令 | 用命令获取对应分类金融网站列表 | 是 | - -**03月25日-03月31日预计任务项:** +**04月25日-05月12日:** -暂无安排 +| 任务项目 | 描述 | 该迭代是否上线 | +| :--------: | :------------------------: | :------------: | +| AI命令支持 | 支持命令消息流及支持AI命令 | 是 | ### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 -4. 新建 Pull Request \ No newline at end of file +4. 新建 Pull Request diff --git a/docs/.env b/docs/.env new file mode 100644 index 0000000..b021120 --- /dev/null +++ b/docs/.env @@ -0,0 +1 @@ +VITE_ISTOCK_SHELL=https://istock.red/shell \ No newline at end of file diff --git a/docs/.vitepress/component/home-hero-image.vue b/docs/.vitepress/component/home-hero-image.vue index 250413c..5f36504 100644 --- a/docs/.vitepress/component/home-hero-image.vue +++ b/docs/.vitepress/component/home-hero-image.vue @@ -13,10 +13,15 @@ const { frontmatter: fm } = useData(); diff --git a/docs/.vitepress/component/home-hero-video.vue b/docs/.vitepress/component/home-hero-video.vue new file mode 100644 index 0000000..43ec309 --- /dev/null +++ b/docs/.vitepress/component/home-hero-video.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/docs/.vitepress/component/istock-shell-demo.vue b/docs/.vitepress/component/istock-shell-demo.vue new file mode 100644 index 0000000..aa818ba --- /dev/null +++ b/docs/.vitepress/component/istock-shell-demo.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 53009b9..ee504d0 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -4,8 +4,10 @@ import type { Theme } from 'vitepress'; import DefaultTheme from 'vitepress/theme'; import './style.css'; import './custom.css'; +import IStockShellDemo from '../component/istock-shell-demo.vue'; import HomeHeroImage from '../component/home-hero-image.vue'; import HomeHeroInfo from '../component/home-hero-info.vue'; +import HomeHeroVideo from '../component/home-hero-video.vue'; export default { extends: DefaultTheme, @@ -13,9 +15,10 @@ export default { return h(DefaultTheme.Layout, null, { 'home-hero-image': () => h(HomeHeroImage), 'home-hero-info': () => h(HomeHeroInfo), + 'home-features-after': () => h(HomeHeroVideo), }); }, enhanceApp({ app, router, siteData }) { - // ... + app.component('IStockShellDemo', IStockShellDemo); }, } satisfies Theme; diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css index ad92c97..48a1bd9 100644 --- a/docs/.vitepress/theme/style.css +++ b/docs/.vitepress/theme/style.css @@ -128,3 +128,8 @@ .DocSearch { --docsearch-primary-color: var(--vp-c-brand-1) !important; } + +.vp-doc th, +.vp-doc td { + white-space: nowrap; +} diff --git a/docs/Dockerfile b/docs/Dockerfile index 0c889df..c1c6766 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -5,7 +5,7 @@ COPY ./docs/.vitepress/dist /usr/share/nginx/html # 如果需要,复制自定义的 Nginx 配置文件 #COPY ./nginx.conf /etc/nginx/nginx.conf -EXPOSE 5172 +EXPOSE 80 # 设置容器启动后的命令,这里使用 Nginx 的默认命令 CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 713af2e..8673d20 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,6 +20,10 @@ hero: text: Gitee link: https://gitee.com/xcbclc/istock-shell +video: + src: https://cdn.istock.red/video/istock%20shell%E6%BC%94%E7%A4%BA.mp4 + poster: https://cdn.istock.red/video/istock%20shell%E6%BC%94%E7%A4%BA-%E5%B0%81%E9%9D%A2.jpg + features: - title: 简单 details: 通过直观的命令输入,轻松查询金融数据,无需任何复杂操作;提供全面且易于理解的命令文档,确保您能快速上手。 diff --git a/docs/use/command/ag/ggxxcx/ggxxcx.cmd.md b/docs/use/command/ag/ggxxcx/ggxxcx.cmd.md index 1f127b4..820ec20 100644 --- a/docs/use/command/ag/ggxxcx/ggxxcx.cmd.md +++ b/docs/use/command/ag/ggxxcx/ggxxcx.cmd.md @@ -8,29 +8,15 @@ `ggxxcx [-gpdm <股票代码>] [-gpmc <股票名称>]` -### 参数 +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :------------------------------------------------------: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | \*:总市值·亿,\*:流通市值·亿,\*:总股本·亿,\*:流通股·亿 | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :------------------------------------------------------: | :----: | -| array | true | \*:总市值·亿,\*:流通市值·亿,\*:总股本·亿,\*:流通股·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`ggxxcx -gpmc 贵州茅台 -dw` + diff --git a/docs/use/command/ag/gpsczm/gpsczm.cmd.md b/docs/use/command/ag/gpsczm/gpsczm.cmd.md index ace5f62..6bef7c7 100644 --- a/docs/use/command/ag/gpsczm/gpsczm.cmd.md +++ b/docs/use/command/ag/gpsczm/gpsczm.cmd.md @@ -8,16 +8,16 @@ `szgpsczm` -### 参数 +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---: | :------: | :--------------------------------------------------------: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | +`szgpsczm -dw` + ## szlbtj 深证类别统计 @@ -25,26 +25,19 @@ ### 用法 -`szlbtj [-rq <日期>]` +`szlbtj <-rq <日期>>` -### 参数 +### 选项 -日期:`-rq,--日期` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :------------------------------------------: | :----: | +| `-rq,--日期` | 日期 | 需要查询的日期,格式:20230901 | string | false | $formatDate{YYYYMMDD} | | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | 成交金额:\*·亿,总市值:\*·亿,流通市值:\*·亿 | | -需要查询的日期,格式:20230901 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | false | $formatDate{YYYYMMDD} | | - -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :------------------------------------------: | :----: | -| array | true | 成交金额:\*·亿,总市值:\*·亿,流通市值:\*·亿 | | +`szlbtj -rq 20240424 -dw` + ## szdqjypx 深证地区交易排序 @@ -54,24 +47,17 @@ `szdqjypx <-ny <年月>>` -### 参数 - -年月:`-ny,--年月` +### 选项 -需要查询的年月,格式:202310 +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :---------------------------------------------------------------------------------------: | :----: | +| `-ny,--年月` | 年月 | 需要查询的年月,格式:202310 | string | false | $formatDate{YYYYMM} | | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | 总交易额:\*·千亿,股票交易额:\*·千亿,基金交易额:\*·千亿,债券交易额:\*·千亿,占市场:\*·% | | -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-----------------: | :----: | -| string | true | $formatDate{YYYYMM} | | +### 命令示例 -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :---------------------------------------------------------------------------------------: | :----: | -| array | true | 总交易额:\*·千亿,股票交易额:\*·千亿,基金交易额:\*·千亿,债券交易额:\*·千亿,占市场:\*·% | | +`szdqjypx -ny 202403 -dw` + ## szgphycj 深证股票行业成交 @@ -81,32 +67,18 @@ `szgphycj [-ny <年月>] [-sjd <时间段>]` -### 参数 - -年月:`-ny,--年月` - -需要查询的年月,格式:202310 +### 选项 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-----------------: | :----: | -| string | true | $formatDate{YYYYMM} | | +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--------------: | :----: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :---------------------------------------------------------------------------------------------------------------------------------: | :-------: | +| `-ny,--年月` | 年月 | 需要查询的年月,格式:202310 | string | true | $formatDate{YYYYMM} | | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | 成交金额-人民币元:\*·亿,成交股数-股数:\*·亿,成交笔数-笔:\*·千万,成交金额-占总计:\*·%, 成交股数-占总计:\*·%, 成交笔数-占总计:\*·% | | +| `-sjd,--时间段` | 时间段 | 时间段固定选项 | string | true | 当年 | 当年,当月 | -单位:`-dw,--单位` +### 命令示例 -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :---------------------------------------------------------------------------------------------------------------------------------: | :----: | -| array | true | 成交金额-人民币元:\*·亿,成交股数-股数:\*·亿,成交笔数-笔:\*·千万,成交金额-占总计:\*·%, 成交股数-占总计:\*·%, 成交笔数-占总计:\*·% | | - -时间段:`-sjd,--时间段` - -时间段固定选项 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-------: | -| string | true | 当年 | 当年,当月 | +`szgphycj -sjd 当月 -dw` + ## szmrgk 上证每日概况 @@ -114,23 +86,16 @@ ### 用法 -`szmrgk [-rq <日期>]` - -### 参数 - -日期:`-rq,--日期` - -需要查询的日期,格式:20230901 +`szmrgk <-rq <日期>>` -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :-----------------------------------------------------------: | :----: | +| `-rq,--日期` | 日期 | 需要查询的日期,格式:20230901 | string | false | $formatDate{YYYYMMDD} | | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | \*:市价总值·千亿,\*:成交量·亿,\*:成交金额·亿,\*:流通市值·千亿 | | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-----------------------------------------------------------: | :----: | -| array | true | \*:市价总值·千亿,\*:成交量·亿,\*:成交金额·亿,\*:流通市值·千亿 | | +`szmrgk -rq 20240424 -dw` + diff --git a/docs/use/command/ag/hqbj/hqbj.cmd.md b/docs/use/command/ag/hqbj/hqbj.cmd.md index 85ac2d0..a87e7a1 100644 --- a/docs/use/command/ag/hqbj/hqbj.cmd.md +++ b/docs/use/command/ag/hqbj/hqbj.cmd.md @@ -8,29 +8,15 @@ `hqbj [-gpdm <股票代码>] [-gpmc <股票名称>]` -### 参数 +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`hqbj -gpmc 贵州茅台` + diff --git a/docs/use/command/ag/lsfbsj/lsfbsj.cmd.md b/docs/use/command/ag/lsfbsj/lsfbsj.cmd.md index faefc0a..de78bac 100644 --- a/docs/use/command/ag/lsfbsj/lsfbsj.cmd.md +++ b/docs/use/command/ag/lsfbsj/lsfbsj.cmd.md @@ -8,29 +8,15 @@ `lsfbsj [-gpdm <股票代码>] [-gpmc <股票名称>]` -### 参数 +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`lsfbsj -gpmc 贵州茅台` + diff --git a/docs/use/command/ag/lshqsj/lshqsj.cmd.md b/docs/use/command/ag/lshqsj/lshqsj.cmd.md index 8b79895..f5b1b9f 100644 --- a/docs/use/command/ag/lshqsj/lshqsj.cmd.md +++ b/docs/use/command/ag/lshqsj/lshqsj.cmd.md @@ -8,64 +8,22 @@ `lshqsj [-gpdm <股票代码>] [-gpmc <股票名称>] [-ksrq <开始日期>] [-jsrq <结束日期>] [-sjzq <时间周期>] [-fq <复权类型>]` -### 参数 +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :-------------------: | :------------------: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | +| `-ksrq,--开始日期` | 开始日期 | 需要查询的开始日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-jsrq,--结束日期` | 结束日期 | 需要查询的结束日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-fq,--复权` | 复权 | 复权类型:前复权(qfq)、后复权(hfq) | string | true | | qfq,hfq | +| `-sjzq,--时间周期` | 时间周期 | 时间周期,支持日(daily)、周(weekly)、月(monthly) | string | true | daily | daily,weekly,monthly | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -开始日期:`-ksrq,--开始日期` - -需要查询的开始日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -结束日期:`-jsrq,--结束日期` - -需要查询的结束日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -复权:`-fq,--复权` - -复权类型:前复权(qfq)、后复权(hfq) - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----: | -| string | true | | qfq,hfq | - -时间周期:`-sjzq,--时间周期` - -时间周期,支持日(daily)、周(weekly)、月(monthly) - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :------------------: | -| string | true | daily | daily,weekly,monthly | +`lshqsj -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -sjzq daily -fq qfq` + ## lshqxl 历史行情新浪 @@ -75,56 +33,21 @@ `lshqxl [-gpdm <股票代码>] [-gpmc <股票名称>] [-ksrq <开始日期>] [-jsrq <结束日期>] [-fq <复权类型>]` -### 参数 - -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 +### 选项 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :-------------------: | :-----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | +| `-ksrq,--开始日期` | 开始日期 | 需要查询的开始日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-jsrq,--结束日期` | 结束日期 | 需要查询的结束日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-fq,--复权` | 复权 | 复权类型:前复权(qfq)、后复权(hfq) | string | true | | qfq,hfq | -股票名称:`-gpmc,--股票名称` +### 命令示例 -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -开始日期:`-ksrq,--开始日期` - -需要查询的开始日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -结束日期:`-jsrq,--结束日期` - -需要查询的结束日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -复权:`-fq,--复权` - -复权类型:前复权(qfq)、后复权(hfq) - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----: | -| string | true | | qfq,hfq | +`lshqxl -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -fq qfq` + ## lshqtx 历史行情腾讯 @@ -134,56 +57,21 @@ `lshqtx [-gpdm <股票代码>] [-gpmc <股票名称>] [-ksrq <开始日期>] [-jsrq <结束日期>] [-fq <复权类型>]` -### 参数 - -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -开始日期:`-ksrq,--开始日期` - -需要查询的开始日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | +### 选项 -结束日期:`-jsrq,--结束日期` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :-------------------: | :-----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | +| `-ksrq,--开始日期` | 开始日期 | 需要查询的开始日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-jsrq,--结束日期` | 结束日期 | 需要查询的结束日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-fq,--复权` | 复权 | 复权类型:前复权(qfq)、后复权(hfq) | string | true | | qfq,hfq | -需要查询的结束日期,格式:20230901 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -复权:`-fq,--复权` - -复权类型:前复权(qfq)、后复权(hfq) - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----: | -| string | true | | qfq,hfq | +`lshqtx -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -fq qfq` + ## fssjxl 分时数据新浪 @@ -193,48 +81,20 @@ `fssjxl [-gpdm <股票代码>] [-gpmc <股票名称>] [-rp <日频>] [-fq <复权类型>]` -### 参数 - -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +### 选项 -日频:`-rp,--日频` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :-----------------------: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | +| `-rp,--日频` | 日频 | 获取1,5,15,30,60分钟的数据频率 | string | true | 1 | Y,W,SW,SS,LS,1,5,15,30,60 | +| `-fq,--复权` | 复权 | 复权类型:前复权(qfq)、后复权(hfq) | string | true | | qfq,hfq | -获取1,5,15,30,60分钟的数据频率 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----------------------: | -| string | true | 1 | Y,W,SW,SS,LS,1,5,15,30,60 | - -复权:`-fq,--复权` - -复权类型:前复权(qfq)、后复权(hfq) - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----: | -| string | true | | qfq,hfq | +`fssjxl -gpmc 贵州茅台 -rp 5 -fq qfq` + ## fssjdc 分时数据东财 @@ -244,64 +104,22 @@ `fssjdc [-gpdm <股票代码>] [-gpmc <股票名称>] [-ksrq <开始日期>] [-jsrq <结束日期>] [-rp <日频>] [-fq <复权类型>]` -### 参数 - -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 +### 选项 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :-------------------: | :-----------------------: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | +| `-ksrq,--开始日期` | 开始日期 | 需要查询的开始日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-jsrq,--结束日期` | 结束日期 | 需要查询的结束日期,格式:20230901 | string | true | $formatDate{YYYYMMDD} | | +| `-rp,--日频` | 日频 | 获取1,5,15,30,60分钟的数据频率 | string | true | 1 | Y,W,SW,SS,LS,1,5,15,30,60 | +| `-fq,--复权` | 复权 | 复权类型:前复权(qfq)、后复权(hfq) | string | true | | qfq,hfq | -开始日期:`-ksrq,--开始日期` +### 命令示例 -需要查询的开始日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -结束日期:`-jsrq,--结束日期` - -需要查询的结束日期,格式:20230901 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :-------------------: | :----: | -| string | true | $formatDate{YYYYMMDD} | | - -日频:`-rp,--日频` - -获取1,5,15,30,60分钟的数据频率 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----------------------: | -| string | true | 1 | Y,W,SW,SS,LS,1,5,15,30,60 | - -复权:`-fq,--复权` - -复权类型:前复权(qfq)、后复权(hfq) - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :-----: | -| string | true | | qfq,hfq | +`fssjdc -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -rp 5 -fq qfq` + ## rnfssjdc 日内分时数据东财 @@ -311,32 +129,18 @@ `rnfssjdc [-gpdm <股票代码>] [-gpmc <股票名称>]` -### 参数 - -单位:`-dw,--单位` +### 选项 -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | +### 命令示例 -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -股票名称:`-gpmc,--股票名称` - -需要查询的股票名称,如:贵州茅台 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`rnfssjdc -gpmc 贵州茅台` + ## pqsj 盘前数据 @@ -346,29 +150,15 @@ `pqsj [-gpdm <股票代码>] [-gpmc <股票名称>]` -### 参数 - -单位:`-dw,--单位` - -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | - -股票代码:`-gpdm,--股票代码` - -需要查询的股票代码,如:600519 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +### 选项 -股票名称:`-gpmc,--股票名称` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | +| `-gpdm,--股票代码` | 股票代码 | 需要查询的股票代码,如:600519 | string | true | | | +| `-gpmc,--股票名称` | 股票名称 | 需要查询的股票名称,如:贵州茅台 | string | true | | | -需要查询的股票名称,如:贵州茅台 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`pqsj -gpmc 贵州茅台` + diff --git a/docs/use/command/ag/sshqsj/sshqsj.cmd.md b/docs/use/command/ag/sshqsj/sshqsj.cmd.md index ba20200..4485eb0 100644 --- a/docs/use/command/ag/sshqsj/sshqsj.cmd.md +++ b/docs/use/command/ag/sshqsj/sshqsj.cmd.md @@ -10,16 +10,22 @@ ### 参数 -单位:`-dw,--单位` +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :------- | :----: | :------: | :----: | :-----------------------: | +| 市场 | 市场编码 | string | false | | qb,hag,sag,jag,xg,cyb,kcb | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 选项 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---: | :------: | :----: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | -## sshqxl 实时行情新浪 +### 命令示例 + +`sshqsj hag` + + +## sshqxl 实时行情新浪 新浪财经-沪深京A股数据, 重复运行本函数会被新浪暂时封IP, 建议增加时间间隔 @@ -27,13 +33,13 @@ `sshqxl` -### 参数 +### 选项 -单位:`-dw,--单位` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---: | :------: | :----: | :----: | +| `-dw,--单位` | 单位 | 设置表格单位,单位值支持(万亿、亿、千万、百万、十万、万、千、百、十),可带多个参数。
格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 | array | true | | | -设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 -格式如:列名称:行名称·单位 或 \*:行名称·单位 或 列名称:\*·单位 或 列名称1:\*·单位,列名称2:\*·单位 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :--------------------------------------------------------: | :----: | -| array | true | \*:流通股本·亿,\*:总市值·亿,\*:流通市值·亿,\*:总股本·亿 | | +`sshqxl` + diff --git a/docs/use/command/global/chart/chart.cmd.md b/docs/use/command/global/chart/chart.cmd.md index f3781e2..0ee98d1 100644 --- a/docs/use/command/global/chart/chart.cmd.md +++ b/docs/use/command/global/chart/chart.cmd.md @@ -1,269 +1,133 @@ # 全局 -## bt 饼图 +## tb 图表 -把数据转换成饼图 +图表命令 ### 用法 -`bt <-y <饼图取值字段>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` - -### 参数 - -过滤:`-gl,--过滤` - -表格数据过滤参数 -格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -单位:`-dw,--单位` - -数据单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -类别:`-lb,--类别` +`tb <子命令>` -图表项类别 +### bt 饼图 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -数据:`-sj,--数据` +把数据转换成饼图 -表格数据 +#### 用法 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| array | true | | | +`tb bt <-y <饼图取值字段>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` -配置:`-pz,--配置` +#### 参数 -图表额外配置 +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :--------- | :----: | :------: | :----: | :----: | +| 类型 | 图表的类型 | string | false | | | -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +#### 选项 -y:`-y,--纵轴` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-gl,--过滤` | 过滤 | 表格数据过滤参数
格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 | string | true | | | +| `-dw,--单位` | 单位 | 数据单位 | string | true | | | +| `-lb,--类别` | 类别 | 图表项类别 | string | true | | | +| `-sj,--数据` | 数据 | 表格数据 | array | true | | | +| `-pz,--配置` | 配置 | 图表额外配置 | string | true | | | +| `-y,--纵轴` | 纵轴 | 饼图取值字段 | string | false | | | -饼图取值字段 +#### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | +`tb bt -y 占比 -lb 产品 -sj [{"产品":"茅台酒","占比":0.8408},{"产品":"其它系列酒","占比":0.137},{"产品":"其它业务","占比":0.0222}]` + -## txt 条形图 +### txt 条形图 把数据转换成条形图 -### 用法 - -`txt <-x <条形图横轴取值字段>> <-y <条形图纵轴取值字段>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` - -### 参数 - -过滤:`-gl,--过滤` - -表格数据过滤参数 -格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +#### 用法 -单位:`-dw,--单位` +`tb txt <-x <条形图横轴取值字段>> <-y <条形图纵轴取值字段>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` -数据单位 +#### 参数 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :--------- | :----: | :------: | :----: | :----: | +| 类型 | 图表的类型 | string | false | | | -类别:`-lb,--类别` +#### 选项 -图表项类别 +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-gl,--过滤` | 过滤 | 表格数据过滤参数
格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 | string | true | | | +| `-dw,--单位` | 单位 | 数据单位 | string | true | | | +| `-lb,--类别` | 类别 | 图表项类别 | string | true | | | +| `-sj,--数据` | 数据 | 表格数据 | array | true | | | +| `-pz,--配置` | 配置 | 图表额外配置 | string | true | | | +| `-x,--横轴` | 横轴 | 条形图横轴取值字段 | string | false | | | +| `-y,--纵轴` | 纵轴 | 条形图纵轴取值字段 | string | false | | | -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +#### 命令示例 -数据:`-sj,--数据` +`tb txt -x 年报 -y 净利润(亿元) -sj [{"年报":"2019年报","净利润(亿元)":412.06,"净利润同比增长":0.1705},{"年报":"2020年报","净利润(亿元)":466.97,"净利润同比增长":0.1333},{"年报":"2021年报","净利润(亿元)":524.6,"净利润同比增长":0.1234},{"年报":"2022年报","净利润(亿元)":627.17,"净利润同比增长":0.1955},{"年报":"2023年报","净利润(亿元)":747.34,"净利润同比增长":0.1916}]` + -表格数据 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| array | true | | | - -配置:`-pz,--配置` - -图表额外配置 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -x:`-x,--横轴` - -条形图横轴取值字段 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | - -y:`-y,--纵轴` - -条形图纵轴取值字段 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | - -## zxt 折线图 +### zxt 折线图 把数据转换成折线图 -### 用法 - -`zxt <-x <折线图横轴取值字段>> <-y <折线图纵轴取值字段>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` - -### 参数 - -过滤:`-gl,--过滤` - -表格数据过滤参数 -格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 +#### 用法 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`tb zxt <-x <折线图横轴取值字段>> <-y <折线图纵轴取值字段>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` -单位:`-dw,--单位` +#### 参数 -数据单位 +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :--------- | :----: | :------: | :----: | :----: | +| 类型 | 图表的类型 | string | false | | | -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +#### 选项 -类别:`-lb,--类别` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-gl,--过滤` | 过滤 | 表格数据过滤参数
格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 | string | true | | | +| `-dw,--单位` | 单位 | 数据单位 | string | true | | | +| `-lb,--类别` | 类别 | 图表项类别 | string | true | | | +| `-sj,--数据` | 数据 | 表格数据 | array | true | | | +| `-pz,--配置` | 配置 | 图表额外配置 | string | true | | | +| `-x,--横轴` | 横轴 | 折线图横轴取值字段 | string | false | | | +| `-y,--纵轴` | 纵轴 | 折线图纵轴取值字段 | string | false | | | -图表项类别 +#### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`tb zxt -x 年报 -y 净利润(亿元) -sj [{"年报":"2019年报","净利润(亿元)":412.06,"净利润同比增长":0.1705},{"年报":"2020年报","净利润(亿元)":466.97,"净利润同比增长":0.1333},{"年报":"2021年报","净利润(亿元)":524.6,"净利润同比增长":0.1234},{"年报":"2022年报","净利润(亿元)":627.17,"净利润同比增长":0.1955},{"年报":"2023年报","净利润(亿元)":747.34,"净利润同比增长":0.1916}]` + -数据:`-sj,--数据` - -表格数据 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| array | true | | | - -配置:`-pz,--配置` - -图表额外配置 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -x:`-x,--横轴` - -折线图横轴取值字段 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | - -y:`-y,--纵轴` - -折线图纵轴取值字段 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | - -## gplzt 股票蜡烛图 +### gplzt 股票蜡烛图 把数据转换成股票蜡烛图 -### 用法 - -`gplzt <-x <蜡烛图横轴取值字段>> <-y1 <蜡烛图纵轴开盘价收盘价>> <-y2 <蜡烛图纵轴最高价最低价>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` - -### 参数 - -过滤:`-gl,--过滤` - -表格数据过滤参数 -格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -单位:`-dw,--单位` - -数据单位 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -类别:`-lb,--类别` - -图表项类别 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -数据:`-sj,--数据` - -表格数据 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| array | true | | | - -配置:`-pz,--配置` - -图表额外配置 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | - -x:`-x,--横轴` - -蜡烛图横轴取值字段 +#### 用法 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | +`tb gplzt <-x <蜡烛图横轴取值字段>> <-y1 <蜡烛图纵轴开盘价收盘价>> <-y2 <蜡烛图纵轴最高价最低价>> [-gl <过滤条件>] [-lb <图表项类别>] [-pz <配置数据>] [-sj <表格数据>]` -y1:`-y1,--纵轴1` +#### 参数 -设置蜡烛图纵轴开盘价收盘价的取值字段,如:开盘价,收盘价 +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :--------- | :----: | :------: | :----: | :----: | +| 类型 | 图表的类型 | string | false | | | -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | +#### 选项 -y2:`-y2,--纵轴2` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :------------: | :---: | :------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :----: | :----: | +| `-gl,--过滤` | 过滤 | 表格数据过滤参数
格式如:列名称:行名称·过滤方法 或 \*:行名称·过滤方法 或 列名称:\*·过滤方法 或 列名称1:\*·过滤方法,列名称2:\*·过滤方法 | string | true | | | +| `-dw,--单位` | 单位 | 数据单位 | string | true | | | +| `-lb,--类别` | 类别 | 图表项类别 | string | true | | | +| `-sj,--数据` | 数据 | 表格数据 | array | true | | | +| `-pz,--配置` | 配置 | 图表额外配置 | string | true | | | +| `-x,--横轴` | 横轴 | 蜡烛图横轴取值字段 | string | false | | | +| `-y1,--纵轴1` | 纵轴1 | 设置蜡烛图纵轴开盘价收盘价的取值字段,如:开盘价,收盘价 | string | false | | | +| `-y2,--纵轴2` | 纵轴2 | 设置蜡烛图纵轴最高价最低价的取值字段,如:最高价,最低价 | string | false | | | -设置蜡烛图纵轴最高价最低价的取值字段,如:最高价,最低价 +#### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | +`tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低 -sj [{"日期":"2024-04-15T00:00:00.000","开盘":1635.01,"收盘":1672.98,"最高":1675.61,"最低":1634.98},{"日期":"2024-04-16T00:00:00.000","开盘":1665.49,"收盘":1670,"最高":1679.56,"最低":1659},{"日期":"2024-04-17T00:00:00.000","开盘":1668,"收盘":1667,"最高":1675.2,"最低":1658},{"日期":"2024-04-18T00:00:00.000","开盘":1659.01,"收盘":1670.78,"最高":1682.98,"最低":1658.18},{"日期":"2024-04-19T00:00:00.000","开盘":1660.78,"收盘":1646.64,"最高":1668.5,"最低":1641.28}]` + diff --git a/docs/use/command/global/cmd-route/cmd-route.cmd.md b/docs/use/command/global/cmd-route/cmd-route.cmd.md index fde6268..b8dd363 100644 --- a/docs/use/command/global/cmd-route/cmd-route.cmd.md +++ b/docs/use/command/global/cmd-route/cmd-route.cmd.md @@ -8,12 +8,13 @@ `mlcz [命令] <-mc [名称]>` -### 参数 +### 选项 -名称:`-mc,--名称` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :----------------------------- | :----: | :------: | :----: | :----: | +| `-mc,--名称` | 名称 | 需要查询的命令名称,通配符匹配 | string | true | | | -需要查询的命令名称,通配符匹配 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | true | | | +`mlcz lshq -mc 历史` + diff --git a/docs/use/command/global/domain/domain.cmd.md b/docs/use/command/global/domain/domain.cmd.md index dd259ea..d9c3ead 100644 --- a/docs/use/command/global/domain/domain.cmd.md +++ b/docs/use/command/global/domain/domain.cmd.md @@ -8,23 +8,17 @@ `yycz [-gl <正则表达式|字符串>] [-sl <数量>]` -### 参数 +### 选项 -过滤:`-gl,--过滤` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :----------------------------- | :------------: | :------: | :----: | :----: | +| `-gl,--过滤` | 过滤 | 用正则或字符串匹配过滤菜单列表 | string,RegExp | true | | | +| `-sl,--数量` | 数量 | 限制展示查看应用列表的数量 | number | true | | | -用正则或字符串匹配过滤菜单列表 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------------: | :------: | :----: | :----: | -| string,RegExp | true | | | - -数量:`-sl,--数量` - -限制展示查看应用列表的数量 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| number | true | | | +`yycz -gl A股 -sl 1` + ## yyjr 应用进入 @@ -33,3 +27,8 @@ ### 用法 `yyjr <应用名或应用显示名称>` + +### 命令示例 + +`yyjr A股` + diff --git a/docs/use/command/global/history/history.cmd.md b/docs/use/command/global/history/history.cmd.md index 56dcebf..9f6913c 100644 --- a/docs/use/command/global/history/history.cmd.md +++ b/docs/use/command/global/history/history.cmd.md @@ -8,20 +8,14 @@ `lssc [-sl <数量>] [-ms <删除模式>]` -### 参数 +### 选项 -数量:`-sl,--数量` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :----------------------------------------------- | :----: | :------: | :----: | :----: | +| `-sl,--数量` | 数量 | 需要删除的数量,从最后一个历史命令开始删除 | number | true | | | +| `-ms,--模式` | 模式 | 删除模式,值0表示仅删除显示,值1表示完全删除数据 | number | true | 0 | 0,1 | -需要删除的数量,从最后一个历史命令开始删除 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| number | true | | | - -模式:`-ms,--模式` - -删除模式,值0表示仅删除显示,值1表示完全删除数据 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| number | true | 0 | 0,1 | +`lssc -sl 1 -ms 0` + diff --git a/docs/use/command/global/user/user.cmd.md b/docs/use/command/global/user/user.cmd.md index 03c836f..5fbeb90 100644 --- a/docs/use/command/global/user/user.cmd.md +++ b/docs/use/command/global/user/user.cmd.md @@ -1,6 +1,6 @@ # 全局 -## yhdl 用户登录 +## yhdl 用户登录 登录指定用户账号 @@ -8,20 +8,14 @@ `yhdl [-zh <用户名|手机号>] [-mm <密码>]` -### 参数 +### 选项 -账号:`-zh,--账号` +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :-----------: | :--: | :--------------------------- | :----: | :------: | :----: | :----: | +| `-zh,--账号` | 账号 | 指定账号,可以是账号、手机号 | string | false | | | +| `-mm,--密码` | 密码 | 限制展示查看菜单列表个数 | string | false | | | -指定账号,可以是账号、手机号 +### 命令示例 -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | - -密码:`-mm,--密码` - -限制展示查看菜单列表个数 - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :------: | :------: | :----: | :----: | -| string | false | | | +`yhdl -zh 15888888888 -mm 123456` + diff --git a/docs/use/command/index.md b/docs/use/command/index.md index 408c571..5d1cca2 100644 --- a/docs/use/command/index.md +++ b/docs/use/command/index.md @@ -27,3 +27,7 @@ [历史行情数据](/use/command/ag/lshqsj/lshqsj.cmd.html) [实时行情数据](/use/command/ag/sshqsj/sshqsj.cmd.html) + +## 网站导航 + +[财经导航](/use/command/wzdh/cj/cj.cmd.html) diff --git a/docs/use/command/wzdh/cj/cj.cmd.md b/docs/use/command/wzdh/cj/cj.cmd.md new file mode 100644 index 0000000..b55ae00 --- /dev/null +++ b/docs/use/command/wzdh/cj/cj.cmd.md @@ -0,0 +1,18 @@ +# 网站导航 + +## cjdh 财经导航 + +### 用法 + +`cjdh [标签]` + +### 参数 + +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :----------- | :----: | :------: | :----: | :-------------------------------------------------------------------------------: | +| 标签 | 财经导航标签 | string | true | | 门户,报纸,杂志,新媒体,官方,债券,理财,期货,黄金,工具,宏观数据,市场数据,研报,选股器 | + +### 命令示例 + +`cjdh 门户` + diff --git a/docs/use/quick-start/easy-to-use.md b/docs/use/quick-start/easy-to-use.md index 8251cd0..1c30691 100644 --- a/docs/use/quick-start/easy-to-use.md +++ b/docs/use/quick-start/easy-to-use.md @@ -14,11 +14,14 @@ ### 尝试输入命令 -1. **查找应用**:在底部的输入框中输入命令`yycz`,查看当前可用的应用列表。按回车键执行,即可看到应用列表输出结果。 示例: +1. **查找应用**:在底部的输入框中输入应用查找命令`yycz`,查看当前可用的应用列表。按回车键执行,即可看到应用列表输出结果。 示例: + -2. **进入应用**:要进入特定应用,输入命令`yyjr <应用名或应用别名>`。例如,要进入A股应用,输入`yyjr A股`,随后提示符路径会更新为A股应用的环境。 示例: +2. **进入应用**:要进入特定应用,输入应用进入命令`yyjr <应用名或应用别名>`。例如,要进入A股应用,输入`yyjr A股`,随后提示符路径会更新为A股应用的环境。 示例: + -3. **查找应用命令**:若要了解当前应用下有哪些可用的命令,请输入命令查找指令`mlcz`。这将展示该应用下所有命令的详细列表,包括命令名称、描述、用法和参数等。 示例: +3. **查找应用命令**:若要了解当前应用下有哪些可用的命令,请输入命令查找命令`mlcz`。这将展示该应用下所有命令的详细列表,包括命令名称、描述、用法和参数等。 示例: + ::: tip 提示 以上尝试输入的命令都是全局命令,全局命令意味着在任何应用下都可以执行,应用命令只能在对应应用下执行。 @@ -26,8 +29,10 @@ ### 使用应用命令 -**查询历史行情**:以查询A股应用下的历史行情为例,命令用法为`lshqsj [-gpmc <股票名称>] [-ksrq <开始日期>]`。我们输入`lshqsj -gpmc 贵州茅台 -ksrq 20240101`,将输出贵州茅台的历史行情数据表格。 示例: -图例待补充 +**查询历史行情**: +以查询A股应用下的历史行情为例,首先进入A股应用(参考:尝试输入命令-进入应用)。 +然后查看历史行情命令用法为`lshqsj [-gpmc <股票名称>] [-ksrq <开始日期>]`。我们输入`lshqsj -gpmc 贵州茅台 -ksrq 20240101`,将输出贵州茅台的历史行情数据表格。 示例: + ## 命令自动补全 @@ -39,15 +44,15 @@ ## 管道操作符 使用管道操作符`|`可以将一个命令的输出作为另一个命令的输入,进行更复杂的数据处理。例如,将历史行情数据转换为蜡烛图: -输入:`lshqsj -gpmc 贵州茅台 -ksrq 20100101 -sjzq 月 | tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低`,示例: -图例待补充 +输入:`lshqsj -gpmc 贵州茅台 -ksrq 20150101 -sjzq 月 | tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低`,示例: + ## 浏览历史命令 快速访问和修改历史命令可以提高您的工作效率。在输入框中,使用`Ctrl + ↑`向上翻阅历史记录,使用`Ctrl + ↓`向下翻阅。 -例如,找到并选择`lshqsj -gpmc 贵州茅台 -ksrq 20100101 -sjzq 月 | tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低`,您可以继续修改命令,修改为成交额条形图展示。 -修改输入:`lshqsj -gpmc 贵州茅台 -ksrq 20100101 -sjzq 月 | tb txt -x 日期 -y 成交额`,示例: -图例待补充 +例如,找到并选择`lshqsj -gpmc 贵州茅台 -ksrq 20150101 -sjzq 月 | tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低`,您可以继续修改命令,修改为成交额条形图展示。 +修改输入:`lshqsj -gpmc 贵州茅台 -ksrq 20150101 -sjzq 月 | tb txt -x 日期 -y 成交额`,示例: + 通过上述步骤,您应该能够开始使用`iStock Shell`进行基本的数据查询和分析。随着对命令的熟悉,您将能够发挥出`iStock Shell`的更多潜力,满足您对金融数据查询和分析的需求。 @@ -58,6 +63,7 @@ 举个例子,假设你经常需要输入这样一段命令:`lshqsj -gpmc 贵州茅台 -ksrq 20100101 -sjzq 月 | tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低`, 这段命令有点长,如果每次都要输入,未免太费事了。我们可以给这个命令取一个别名,比如叫做`行情茅台`。 设置别名的方法很简单: + 1. 在命令输出区域,鼠标右键选中`添加别名`菜单,或者使用快捷键`ctrl+alt+a`。 2. 弹出别名设置菜单,设置别名为`行情茅台`。 diff --git a/package.json b/package.json index e5290b5..042fc95 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "istock-shell", "private": true, "title": "iStock Shell", - "version": "0.1.1", + "version": "0.1.3", "type": "module", "engines": { "node": ">=16", @@ -24,38 +24,38 @@ "docs:preview": "vitepress preview docs" }, "devDependencies": { - "@antv/g2": "^5.1.15", + "@antv/g2": "^5.1.19", "@commitlint/cli": "^18.6.1", - "@commitlint/config-conventional": "^18.6.2", + "@commitlint/config-conventional": "^18.6.3", "@istock/cli": "workspace:^", "@rollup/plugin-typescript": "^11.1.6", - "@sveltejs/vite-plugin-svelte": "^3.0.2", - "@tsconfig/svelte": "^5.0.2", - "@types/qs": "^6.9.11", + "@sveltejs/vite-plugin-svelte": "^3.1.0", + "@tsconfig/svelte": "^5.0.4", + "@types/qs": "^6.9.15", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard-with-typescript": "^40.0.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-svelte": "^2.35.1", + "eslint-plugin-svelte": "^2.38.0", "husky": "^8.0.3", "lint-staged": "^15.2.2", "prettier": "^3.2.5", - "prettier-plugin-svelte": "^3.2.1", - "sass": "^1.71.1", - "svelte": "^4.2.11", - "svelte-check": "^3.6.4", - "svelte-preprocess": "^5.1.3", + "prettier-plugin-svelte": "^3.2.3", + "sass": "^1.75.0", + "svelte": "^4.2.15", + "svelte-check": "^3.7.0", + "svelte-preprocess": "^5.1.4", "tsc-alias": "^1.8.8", "tslib": "^2.6.2", - "typedoc": "^0.25.8", + "typedoc": "^0.25.13", "typedoc-plugin-markdown": "^3.17.1", - "typescript": "^5.3.3", - "vite": "^5.1.3", + "typescript": "^5.4.5", + "vite": "^5.2.10", "vite-plugin-eslint": "^1.8.1", "vitepress": "1.0.0-rc.44" }, @@ -65,7 +65,7 @@ "@istock/iswork": "workspace:^", "@istock/shell-ui": "workspace:^", "@istock/util": "workspace:^", - "qs": "^6.11.2" + "qs": "^6.12.1" }, "lint-staged": { "src/**/*.{js,cjs,ts}": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72aa20e..658d68a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,63 +24,63 @@ importers: specifier: workspace:^ version: link:src/packages/util qs: - specifier: ^6.11.2 - version: 6.11.2 + specifier: ^6.12.1 + version: 6.12.1 devDependencies: '@antv/g2': - specifier: ^5.1.15 - version: 5.1.15 + specifier: ^5.1.19 + version: 5.1.19 '@commitlint/cli': specifier: ^18.6.1 - version: 18.6.1(@types/node@20.11.19)(typescript@5.3.3) + version: 18.6.1(@types/node@20.12.7)(typescript@5.4.5) '@commitlint/config-conventional': - specifier: ^18.6.2 - version: 18.6.2 + specifier: ^18.6.3 + version: 18.6.3 '@istock/cli': specifier: workspace:^ version: link:src/packages/cli '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.3.3) + version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) '@sveltejs/vite-plugin-svelte': - specifier: ^3.0.2 - version: 3.0.2(svelte@4.2.11)(vite@5.1.3) + specifier: ^3.1.0 + version: 3.1.0(svelte@4.2.15)(vite@5.2.10) '@tsconfig/svelte': - specifier: ^5.0.2 - version: 5.0.2 + specifier: ^5.0.4 + version: 5.0.4 '@types/qs': - specifier: ^6.9.11 - version: 6.9.11 + specifier: ^6.9.15 + version: 6.9.15 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^6.21.0 - version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) + version: 6.21.0(eslint@8.57.0)(typescript@5.4.5) eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^8.57.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-config-standard-with-typescript: specifier: ^40.0.0 - version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + version: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.5) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) eslint-plugin-n: specifier: ^16.6.2 - version: 16.6.2(eslint@8.56.0) + version: 16.6.2(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@8.56.0) + version: 6.1.1(eslint@8.57.0) eslint-plugin-svelte: - specifier: ^2.35.1 - version: 2.35.1(eslint@8.56.0)(svelte@4.2.11) + specifier: ^2.38.0 + version: 2.38.0(eslint@8.57.0)(svelte@4.2.15) husky: specifier: ^8.0.3 version: 8.0.3 @@ -91,20 +91,20 @@ importers: specifier: ^3.2.5 version: 3.2.5 prettier-plugin-svelte: - specifier: ^3.2.1 - version: 3.2.1(prettier@3.2.5)(svelte@4.2.11) + specifier: ^3.2.3 + version: 3.2.3(prettier@3.2.5)(svelte@4.2.15) sass: - specifier: ^1.71.1 - version: 1.71.1 + specifier: ^1.75.0 + version: 1.75.0 svelte: - specifier: ^4.2.11 - version: 4.2.11 + specifier: ^4.2.15 + version: 4.2.15 svelte-check: - specifier: ^3.6.4 - version: 3.6.4(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.11) + specifier: ^3.7.0 + version: 3.7.0(postcss@8.4.38)(sass@1.75.0)(svelte@4.2.15) svelte-preprocess: - specifier: ^5.1.3 - version: 5.1.3(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.11)(typescript@5.3.3) + specifier: ^5.1.4 + version: 5.1.4(postcss@8.4.38)(sass@1.75.0)(svelte@4.2.15)(typescript@5.4.5) tsc-alias: specifier: ^1.8.8 version: 1.8.8 @@ -112,23 +112,23 @@ importers: specifier: ^2.6.2 version: 2.6.2 typedoc: - specifier: ^0.25.8 - version: 0.25.8(typescript@5.3.3) + specifier: ^0.25.13 + version: 0.25.13(typescript@5.4.5) typedoc-plugin-markdown: specifier: ^3.17.1 - version: 3.17.1(typedoc@0.25.8) + version: 3.17.1(typedoc@0.25.13) typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: ^5.4.5 + version: 5.4.5 vite: - specifier: ^5.1.3 - version: 5.1.3(@types/node@20.11.19)(sass@1.71.1) + specifier: ^5.2.10 + version: 5.2.10(@types/node@20.12.7)(sass@1.75.0) vite-plugin-eslint: specifier: ^1.8.1 - version: 1.8.1(eslint@8.56.0)(vite@5.1.3) + version: 1.8.1(eslint@8.57.0)(vite@5.2.10) vitepress: specifier: 1.0.0-rc.44 - version: 1.0.0-rc.44(@algolia/client-search@4.22.1)(@types/node@20.11.19)(postcss@8.4.35)(sass@1.71.1)(search-insights@2.13.0)(typescript@5.3.3) + version: 1.0.0-rc.44(@algolia/client-search@4.23.3)(@types/node@20.12.7)(postcss@8.4.38)(sass@1.75.0)(search-insights@2.13.0)(typescript@5.4.5) src/packages/cli: dependencies: @@ -206,146 +206,162 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights dev: true - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0): + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch dev: true - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3): resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) - '@algolia/client-search': 4.22.1 - algoliasearch: 4.22.1 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + '@algolia/client-search': 4.23.3 + algoliasearch: 4.23.3 dev: true - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1): + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3): resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/client-search': 4.22.1 - algoliasearch: 4.22.1 + '@algolia/client-search': 4.23.3 + algoliasearch: 4.23.3 dev: true - /@algolia/cache-browser-local-storage@4.22.1: - resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + /@algolia/cache-browser-local-storage@4.23.3: + resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} dependencies: - '@algolia/cache-common': 4.22.1 + '@algolia/cache-common': 4.23.3 dev: true - /@algolia/cache-common@4.22.1: - resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + /@algolia/cache-common@4.23.3: + resolution: {integrity: sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==} dev: true - /@algolia/cache-in-memory@4.22.1: - resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + /@algolia/cache-in-memory@4.23.3: + resolution: {integrity: sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==} dependencies: - '@algolia/cache-common': 4.22.1 + '@algolia/cache-common': 4.23.3 dev: true - /@algolia/client-account@4.22.1: - resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + /@algolia/client-account@4.23.3: + resolution: {integrity: sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==} dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/client-search': 4.22.1 - '@algolia/transporter': 4.22.1 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true - /@algolia/client-analytics@4.22.1: - resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + /@algolia/client-analytics@4.23.3: + resolution: {integrity: sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==} dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/client-search': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true - /@algolia/client-common@4.22.1: - resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + /@algolia/client-common@4.23.3: + resolution: {integrity: sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==} dependencies: - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true - /@algolia/client-personalization@4.22.1: - resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + /@algolia/client-personalization@4.23.3: + resolution: {integrity: sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==} dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true - /@algolia/client-search@4.22.1: - resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + /@algolia/client-search@4.23.3: + resolution: {integrity: sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==} dependencies: - '@algolia/client-common': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/transporter': 4.22.1 + '@algolia/client-common': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true - /@algolia/logger-common@4.22.1: - resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + /@algolia/logger-common@4.23.3: + resolution: {integrity: sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==} dev: true - /@algolia/logger-console@4.22.1: - resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + /@algolia/logger-console@4.23.3: + resolution: {integrity: sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==} dependencies: - '@algolia/logger-common': 4.22.1 + '@algolia/logger-common': 4.23.3 dev: true - /@algolia/requester-browser-xhr@4.22.1: - resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + /@algolia/recommend@4.23.3: + resolution: {integrity: sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==} dependencies: - '@algolia/requester-common': 4.22.1 + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true - /@algolia/requester-common@4.22.1: - resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + /@algolia/requester-browser-xhr@4.23.3: + resolution: {integrity: sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==} + dependencies: + '@algolia/requester-common': 4.23.3 dev: true - /@algolia/requester-node-http@4.22.1: - resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + /@algolia/requester-common@4.23.3: + resolution: {integrity: sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==} + dev: true + + /@algolia/requester-node-http@4.23.3: + resolution: {integrity: sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==} dependencies: - '@algolia/requester-common': 4.22.1 + '@algolia/requester-common': 4.23.3 dev: true - /@algolia/transporter@4.22.1: - resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + /@algolia/transporter@4.23.3: + resolution: {integrity: sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==} dependencies: - '@algolia/cache-common': 4.22.1 - '@algolia/logger-common': 4.22.1 - '@algolia/requester-common': 4.22.1 + '@algolia/cache-common': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/requester-common': 4.23.3 dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@antv/component@1.0.1-beta.0: @@ -357,12 +373,12 @@ packages: svg-path-parser: 1.1.0 dev: false - /@antv/component@1.0.1-beta.2: - resolution: {integrity: sha512-yIR2svYP8uaD0NfhbrqbtmSlpdNSyYZLuO64UqnFMBDtDSiG/dK5cyUn0OqK3+ZwIdZDIEkFmFcx1H/lWV/4Cg==} + /@antv/component@2.0.0: + resolution: {integrity: sha512-wl1pmqLIW/Zt9p7twMcAlvowHU81iV4bb5XWS38DL7gimSONHRh5C/uYKCXKB1KtHAH5d25YHESoGMBc0L3r+w==} dependencies: - '@antv/g': 5.18.24 + '@antv/g': 6.0.3 '@antv/scale': 0.4.15 - '@antv/util': 3.3.6 + '@antv/util': 3.3.7 svg-path-parser: 1.1.0 dev: true @@ -385,11 +401,11 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-camera-api@1.2.22: - resolution: {integrity: sha512-+sWDUMTeOACfb6HUJbuMS3ab79xCtFgCHhD+drlNbOjRCJDlkFHPsplyM7vA1a2Rs0zoyV+K68duClsP7Ei3OA==} + /@antv/g-camera-api@2.0.2: + resolution: {integrity: sha512-3rto8sqH9ah3y5dwK4hkwdQO/dcdbPVt7xNFy7NJpJek2RiHOfvHJ+GUqs4OrEpfbXWJp9FV8wFLZWUCeHIb2g==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/util': 3.3.7 gl-matrix: 3.4.3 tslib: 2.6.2 dev: true @@ -408,17 +424,17 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-canvas@1.11.26: - resolution: {integrity: sha512-7THxFINBbh5MHaapzuUs1mcgXLh4imGZP6xovg8W1riroWGg9q/Mkyt9oXVxK9TtrBNTYQkGR6yVQw7pz3dm6g==} - dependencies: - '@antv/g-lite': 1.2.21 - '@antv/g-plugin-canvas-path-generator': 1.3.21 - '@antv/g-plugin-canvas-picker': 1.10.23 - '@antv/g-plugin-canvas-renderer': 1.9.23 - '@antv/g-plugin-dom-interaction': 1.9.21 - '@antv/g-plugin-html-renderer': 1.9.24 - '@antv/g-plugin-image-loader': 1.3.21 - '@antv/util': 3.3.6 + /@antv/g-canvas@2.0.2: + resolution: {integrity: sha512-iyULvTwiSbMGFv58kqnkEvP21sJ+i7A+pLmRtMAhsCbad+eovJ1OC7pUlevbGqYpHn7pxWMeQJZLQGlWeY/lkA==} + dependencies: + '@antv/g-lite': 2.0.2 + '@antv/g-plugin-canvas-path-generator': 2.0.2 + '@antv/g-plugin-canvas-picker': 2.0.2 + '@antv/g-plugin-canvas-renderer': 2.0.2 + '@antv/g-plugin-dom-interaction': 2.0.2 + '@antv/g-plugin-html-renderer': 2.0.2 + '@antv/g-plugin-image-loader': 2.0.2 + '@antv/util': 3.3.7 tslib: 2.6.2 dev: true @@ -428,10 +444,10 @@ packages: '@antv/g-lite': 1.2.20 dev: false - /@antv/g-dom-mutation-observer-api@1.2.21: - resolution: {integrity: sha512-/gE0hYFAKyrh0bDad4HH6pI9s9VRG3h9RWA5pU4MzFo/9nTQtjp+DvWr9TR/oahg0u9gtyrBO5HE4eI5kziMRA==} + /@antv/g-dom-mutation-observer-api@2.0.2: + resolution: {integrity: sha512-FZh2UN53O+FMfq0UR41XbWDHnFEo5Ew6SFJHhE7MLA5twF1e6HQPIp6HnvXrUv8tkxbN44EDCWZzp/zVFBlXhg==} dependencies: - '@antv/g-lite': 1.2.21 + '@antv/g-lite': 2.0.2 dev: true /@antv/g-lite@1.2.20: @@ -446,11 +462,11 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-lite@1.2.21: - resolution: {integrity: sha512-VGo78eaJE93cRPLaWZcXyi0TjfymHrAbweAVI01t3A3wgduqn1CpTXKBICqaNgi/T73rL0zcVO0Nn9th3Lincg==} + /@antv/g-lite@2.0.2: + resolution: {integrity: sha512-TaxuUkWIcxe8yGh1rdktjq8QDeOCVQpZcYkoyZz8sISKJU5D7W8qj/up/nGY6ujx+G7LXe2P7TgNLWJe0C7u4Q==} dependencies: - '@antv/g-math': 2.0.2 - '@antv/util': 3.3.6 + '@antv/g-math': 3.0.0 + '@antv/util': 3.3.7 d3-color: 1.4.1 eventemitter3: 5.0.1 gl-matrix: 3.4.3 @@ -464,6 +480,15 @@ packages: '@antv/util': 3.3.5 gl-matrix: 3.4.3 tslib: 2.6.2 + dev: false + + /@antv/g-math@3.0.0: + resolution: {integrity: sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==} + dependencies: + '@antv/util': 3.3.7 + gl-matrix: 3.4.3 + tslib: 2.6.2 + dev: true /@antv/g-plugin-canvas-path-generator@1.3.20: resolution: {integrity: sha512-q6jQpdRxJem4e3inmmTP4Uv03No5mzt1bT4OeA1bE3xVuD8l3yBNKu1We6bfdp+1PcfLnDAmvGosQL/sMneiRQ==} @@ -474,12 +499,12 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-canvas-path-generator@1.3.21: - resolution: {integrity: sha512-pz+2mCHIFGQ9w3ED4awGCrpUQbxdxkGtw1VqjAu178+uimDQJYaTXkpT2rdqsobVcm4LwQCNlugczAJfoJp9fQ==} + /@antv/g-plugin-canvas-path-generator@2.0.2: + resolution: {integrity: sha512-xlAsKjf8E7zn13xdftNPsHi2soOnB7Ohjp4lLvQ04g8OpNw9CfxU1FzaX16tCINETFL8GTEp7dFTcnMpfjJwOQ==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/g-math': 2.0.2 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/g-math': 3.0.0 + '@antv/util': 3.3.7 tslib: 2.6.2 dev: true @@ -495,14 +520,14 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-canvas-picker@1.10.23: - resolution: {integrity: sha512-rdgSrLQMXIzPAnHf+vJ0unSKGkq1gC90iQVisyWKbH761sfNfVa6I+4lFWrpcBnwU09E3AfGroD1vfiHcpvQ1A==} + /@antv/g-plugin-canvas-picker@2.0.2: + resolution: {integrity: sha512-V2sw+JJQ9UlWuAKGSYigXS7LFk8cLuecR0rDTWji5WSXNdFrYzFynhNibwSK8VIDn8HYWxHiby+rXesqJ32G2A==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/g-math': 2.0.2 - '@antv/g-plugin-canvas-path-generator': 1.3.21 - '@antv/g-plugin-canvas-renderer': 1.9.23 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/g-math': 3.0.0 + '@antv/g-plugin-canvas-path-generator': 2.0.2 + '@antv/g-plugin-canvas-renderer': 2.0.2 + '@antv/util': 3.3.7 gl-matrix: 3.4.3 tslib: 2.6.2 dev: true @@ -519,14 +544,14 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-canvas-renderer@1.9.23: - resolution: {integrity: sha512-uT2IsUJnwQ0m6n3S86eJYYDMMqF3yUMYcfj6sBchwym2NB3tAC/x0BVFGHZtEyqUkfmBr2wKcYjjBOfPl1tbhw==} + /@antv/g-plugin-canvas-renderer@2.0.2: + resolution: {integrity: sha512-HxscqYn5nNxkP/XSAZJD1IQcj3yqqZD5+GhxpFg5JMaBJFocOCmB0Q431o19pxanzIqj1LLjkNz6aGlUttTeQQ==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/g-math': 2.0.2 - '@antv/g-plugin-canvas-path-generator': 1.3.21 - '@antv/g-plugin-image-loader': 1.3.21 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/g-math': 3.0.0 + '@antv/g-plugin-canvas-path-generator': 2.0.2 + '@antv/g-plugin-image-loader': 2.0.2 + '@antv/util': 3.3.7 gl-matrix: 3.4.3 tslib: 2.6.2 dev: true @@ -538,10 +563,10 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-dom-interaction@1.9.21: - resolution: {integrity: sha512-aO4yWve2yquZQYqZDU03pM2vgkOjFKk24zTRk+V4cAmdgjtUjCa7EcMWODI8eX2UB6zT31aySzyhOjXHQVC78A==} + /@antv/g-plugin-dom-interaction@2.0.2: + resolution: {integrity: sha512-r55/aNVrYGT7tS6Rx2z/STB1wp5RIpo9Pe6aa7SItLh2PEVKe9+j7rmaSEripx0b5cGEMt93FDiaJAc4b7TKCA==} dependencies: - '@antv/g-lite': 1.2.21 + '@antv/g-lite': 2.0.2 tslib: 2.6.2 dev: true @@ -553,11 +578,11 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-dragndrop@1.8.21: - resolution: {integrity: sha512-iyhZJsToY3vmVqwuiZIpeWOqGcpK/9Nk13rPR2Qjk+U/9DncNF2b5fEXh3GHMFmQYysiCdPfMbFAwMuRUvoRKQ==} + /@antv/g-plugin-dragndrop@2.0.2: + resolution: {integrity: sha512-J1DPzBkrEPXWd/WyI1wOdsXo3TkDPurV8HmygUW952dNuHt73KDWc/ANjg1AcgTRNx0ZiZGVUnnHhL2BCXh+iA==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/util': 3.3.7 tslib: 2.6.2 dev: true @@ -570,11 +595,11 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-html-renderer@1.9.24: - resolution: {integrity: sha512-8tM2LaHXpgoyT27tryu/lVDX+YEvKv+KaPCtMTfQf04vL0XfbQ/ATcEXAEksIsNdZ+brQvi3LKh6UPiWCRAs3A==} + /@antv/g-plugin-html-renderer@2.0.2: + resolution: {integrity: sha512-CfLNsxZugjJhH7NZRTlpC+SHagU7d8/xdqAty87KIjoIOXefSxS9kRvjghaFWsnxjC73eqLUWdcUYKOeNFNKNQ==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/util': 3.3.7 gl-matrix: 3.4.3 tslib: 2.6.2 dev: true @@ -588,11 +613,11 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-plugin-image-loader@1.3.21: - resolution: {integrity: sha512-PCFRYscSapA4pMkm9TcUQcxV9hnHKe0AIJaR35kV2F1hhuWLMyCPEuxVyWaCMYDFMfrDtVj7dXzL81L4fja8HQ==} + /@antv/g-plugin-image-loader@2.0.2: + resolution: {integrity: sha512-dvaadjvJiGDJcdN8emvq3x4C6ivmNFO74SCIkUaQDLGRjDKs25+kMKplWQOxUEoIJOMoxkJynrTs7EkzXI0dNQ==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/util': 3.3.7 gl-matrix: 3.4.3 tslib: 2.6.2 dev: true @@ -605,11 +630,11 @@ packages: tslib: 2.6.2 dev: false - /@antv/g-web-animations-api@1.2.22: - resolution: {integrity: sha512-/bh/jUF/hVaDOnNtXRoB5ZsDnPK9IIrduLr4o5sFP+tOuCCBpalWgxeP11yBJoMpl2Y14GmipZTAD8QUoZyyNw==} + /@antv/g-web-animations-api@2.0.3: + resolution: {integrity: sha512-oXtrjruS+Ca1Cj5F2dYUQLR8+fq8TT20uNwHVpNv9RpAFE9I6lpsGMcv9JPftq/wPadAAOQvtEY9Nnngb/HVjg==} dependencies: - '@antv/g-lite': 1.2.21 - '@antv/util': 3.3.6 + '@antv/g-lite': 2.0.2 + '@antv/util': 3.3.7 tslib: 2.6.2 dev: true @@ -640,26 +665,26 @@ packages: pdfast: 0.2.0 dev: false - /@antv/g2@5.1.15: - resolution: {integrity: sha512-WiISs4GUOzHlA4vrkt+eQfr1+LVIAuv4AkfFCRzTprayMO72pLAdgTcwUg9YlvafwM220r9FQD1nXIlYNXOOhA==} + /@antv/g2@5.1.19: + resolution: {integrity: sha512-sVzxgAm6DE65wRQpZ3O+OaRlCjESC12oT2Rle6Cifb80dC6LDjZ4aBT9O90QCYibCJj6WCTrDQSasi+7ALo7MA==} dependencies: - '@antv/component': 1.0.1-beta.2 + '@antv/component': 2.0.0 '@antv/coord': 0.4.7 '@antv/event-emitter': 0.1.3 - '@antv/g': 5.18.24 - '@antv/g-canvas': 1.11.26 - '@antv/g-plugin-dragndrop': 1.8.21 + '@antv/g': 6.0.3 + '@antv/g-canvas': 2.0.2 + '@antv/g-plugin-dragndrop': 2.0.2 '@antv/path-util': 3.0.1 '@antv/scale': 0.4.15 - '@antv/util': 3.3.6 + '@antv/util': 3.3.7 d3-array: 3.2.4 d3-dsv: 3.0.1 d3-force: 3.0.0 d3-format: 3.1.0 - d3-geo: 3.1.0 + d3-geo: 3.1.1 d3-hierarchy: 3.1.2 d3-path: 3.1.0 - d3-scale-chromatic: 3.0.0 + d3-scale-chromatic: 3.1.0 d3-shape: 3.2.0 d3-voronoi: 1.1.4 flru: 1.0.2 @@ -676,13 +701,13 @@ packages: '@antv/g-web-animations-api': 1.2.21 dev: false - /@antv/g@5.18.24: - resolution: {integrity: sha512-qUIjxNPd60VpA6bjDALkRWEWA0CKm2G+vRPkP729eiZ0JnqlRuSqVNibo6QbrlZGEZQfqKiNjiVDODbJjHxNIw==} + /@antv/g@6.0.3: + resolution: {integrity: sha512-jol7YHByMaRW0qyXmSlrqIurPjv0GqxMU0GCBSZR/xGLO2SsBWxTBgtOMhsAb0bnq1/lFdzTVy8ZscO1GgCudA==} dependencies: - '@antv/g-camera-api': 1.2.22 - '@antv/g-dom-mutation-observer-api': 1.2.21 - '@antv/g-lite': 1.2.21 - '@antv/g-web-animations-api': 1.2.22 + '@antv/g-camera-api': 2.0.2 + '@antv/g-dom-mutation-observer-api': 2.0.2 + '@antv/g-lite': 2.0.2 + '@antv/g-web-animations-api': 2.0.3 dev: true /@antv/path-util@3.0.1: @@ -720,25 +745,26 @@ packages: flru: 1.0.2 gl-matrix: 3.4.3 tslib: 2.6.2 + dev: false - /@antv/util@3.3.6: - resolution: {integrity: sha512-Oj2uAwBWEpEKbYcYgSJ/B6zv7t515L+JZzSpnkZeez/qwvDbS6s80lQRuzWzVhWCTHKSPLkgImxhkV9nzLmv4Q==} + /@antv/util@3.3.7: + resolution: {integrity: sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==} dependencies: fast-deep-equal: 3.1.3 gl-matrix: 3.4.3 tslib: 2.6.2 dev: true - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 dev: true - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} dev: true @@ -747,40 +773,41 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.0 dev: true - /@babel/parser@7.23.9: - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true - /@babel/types@7.23.9: - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 + '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true - /@commitlint/cli@18.6.1(@types/node@20.11.19)(typescript@5.3.3): + /@commitlint/cli@18.6.1(@types/node@20.12.7)(typescript@5.4.5): resolution: {integrity: sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@20.11.19)(typescript@5.3.3) + '@commitlint/load': 18.6.1(@types/node@20.12.7)(typescript@5.4.5) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -793,8 +820,8 @@ packages: - typescript dev: true - /@commitlint/config-conventional@18.6.2: - resolution: {integrity: sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==} + /@commitlint/config-conventional@18.6.3: + resolution: {integrity: sha512-8ZrRHqF6je+TRaFoJVwszwnOXb/VeYrPmTwPhf0WxpzpGTcYy1p0SPyZ2eRn/sRi/obnWAcobtDAq6+gJQQNhQ==} engines: {node: '>=v18'} dependencies: '@commitlint/types': 18.6.1 @@ -852,7 +879,7 @@ packages: '@commitlint/types': 18.6.1 dev: true - /@commitlint/load@18.6.1(@types/node@20.11.19)(typescript@5.3.3): + /@commitlint/load@18.6.1(@types/node@20.12.7)(typescript@5.4.5): resolution: {integrity: sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==} engines: {node: '>=v18'} dependencies: @@ -861,8 +888,8 @@ packages: '@commitlint/resolve-extends': 18.6.1 '@commitlint/types': 18.6.1 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.19)(cosmiconfig@8.3.6)(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.7)(cosmiconfig@8.3.6)(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -938,15 +965,15 @@ packages: chalk: 4.1.2 dev: true - /@docsearch/css@3.5.2: - resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} + /@docsearch/css@3.6.0: + resolution: {integrity: sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==} dev: true - /@docsearch/js@3.5.2(@algolia/client-search@4.22.1)(search-insights@2.13.0): - resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} + /@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0): + resolution: {integrity: sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==} dependencies: - '@docsearch/react': 3.5.2(@algolia/client-search@4.22.1)(search-insights@2.13.0) - preact: 10.19.5 + '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) + preact: 10.20.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -955,8 +982,8 @@ packages: - search-insights dev: true - /@docsearch/react@3.5.2(@algolia/client-search@4.22.1)(search-insights@2.13.0): - resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} + /@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0): + resolution: {integrity: sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -972,17 +999,17 @@ packages: search-insights: optional: true dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.1)(algoliasearch@4.22.1) - '@docsearch/css': 3.5.2 - algoliasearch: 4.22.1 + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) + '@docsearch/css': 3.6.0 + algoliasearch: 4.23.3 search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' dev: true - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -990,8 +1017,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -999,8 +1026,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1008,8 +1035,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1017,8 +1044,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1026,8 +1053,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1035,8 +1062,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1044,8 +1071,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1053,8 +1080,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1062,8 +1089,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1071,8 +1098,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1080,8 +1107,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1089,8 +1116,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1098,8 +1125,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1107,8 +1134,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1116,8 +1143,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1125,8 +1152,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1134,8 +1161,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1143,8 +1170,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1152,8 +1179,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1161,8 +1188,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1170,8 +1197,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1179,8 +1206,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1188,13 +1215,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.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.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1220,8 +1247,8 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1229,7 +1256,7 @@ packages: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -1241,17 +1268,17 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/resolve-uri@3.1.2: @@ -1259,8 +1286,8 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true @@ -1268,8 +1295,8 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 @@ -1319,7 +1346,7 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@rollup/plugin-typescript@11.1.6(tslib@2.6.2)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.6(tslib@2.6.2)(typescript@5.4.5): resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1335,7 +1362,7 @@ packages: '@rollup/pluginutils': 5.1.0 resolve: 1.22.8 tslib: 2.6.2 - typescript: 5.3.3 + typescript: 5.4.5 dev: true /@rollup/pluginutils@4.2.1: @@ -1360,48 +1387,58 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + /@rollup/rollup-android-arm-eabi@4.16.4: + resolution: {integrity: sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + /@rollup/rollup-android-arm64@4.16.4: + resolution: {integrity: sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + /@rollup/rollup-darwin-arm64@4.16.4: + resolution: {integrity: sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + /@rollup/rollup-darwin-x64@4.16.4: + resolution: {integrity: sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + /@rollup/rollup-linux-arm-gnueabihf@4.16.4: + resolution: {integrity: sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==} cpu: [arm] os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.16.4: + resolution: {integrity: sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==} + cpu: [arm] + os: [linux] + libc: [musl] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + /@rollup/rollup-linux-arm64-gnu@4.16.4: + resolution: {integrity: sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==} cpu: [arm64] os: [linux] libc: [glibc] @@ -1409,8 +1446,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + /@rollup/rollup-linux-arm64-musl@4.16.4: + resolution: {integrity: sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==} cpu: [arm64] os: [linux] libc: [musl] @@ -1418,8 +1455,17 @@ packages: dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + /@rollup/rollup-linux-powerpc64le-gnu@4.16.4: + resolution: {integrity: sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.16.4: + resolution: {integrity: sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==} cpu: [riscv64] os: [linux] libc: [glibc] @@ -1427,8 +1473,17 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + /@rollup/rollup-linux-s390x-gnu@4.16.4: + resolution: {integrity: sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.16.4: + resolution: {integrity: sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==} cpu: [x64] os: [linux] libc: [glibc] @@ -1436,8 +1491,8 @@ packages: dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + /@rollup/rollup-linux-x64-musl@4.16.4: + resolution: {integrity: sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==} cpu: [x64] os: [linux] libc: [musl] @@ -1445,86 +1500,86 @@ packages: dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + /@rollup/rollup-win32-arm64-msvc@4.16.4: + resolution: {integrity: sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + /@rollup/rollup-win32-ia32-msvc@4.16.4: + resolution: {integrity: sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + /@rollup/rollup-win32-x64-msvc@4.16.4: + resolution: {integrity: sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@shikijs/core@1.1.6: - resolution: {integrity: sha512-kt9hhvrWTm0EPtRDIsoAZnSsFlIDBVBBI5CQewpA/NZCPin+MOKRXg+JiWc4y+8fZ/v0HzfDhu/UC+OTZGMt7A==} + /@shikijs/core@1.3.0: + resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} dev: true - /@shikijs/transformers@1.1.6: - resolution: {integrity: sha512-R+eI1I9sQv0MCJyfR4kAG1G1SKSctw5ILszP0tHVrAgzSHWTpaHbXreZrDueahqtUCNHjt+MKmKJ8EMFtiitOQ==} + /@shikijs/transformers@1.3.0: + resolution: {integrity: sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==} dependencies: - shiki: 1.1.6 + shiki: 1.3.0 dev: true - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.11)(vite@5.1.3): - resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10): + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} engines: {node: ^18.0.0 || >=20} peerDependencies: '@sveltejs/vite-plugin-svelte': ^3.0.0 svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.11)(vite@5.1.3) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.10) debug: 4.3.4 - svelte: 4.2.11 - vite: 5.1.3(@types/node@20.11.19)(sass@1.71.1) + svelte: 4.2.15 + vite: 5.2.10(@types/node@20.12.7)(sass@1.75.0) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.11)(vite@5.1.3): - resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.10): + resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.11)(vite@5.1.3) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.7 - svelte: 4.2.11 - svelte-hmr: 0.15.3(svelte@4.2.11) - vite: 5.1.3(@types/node@20.11.19)(sass@1.71.1) - vitefu: 0.2.5(vite@5.1.3) + magic-string: 0.30.10 + svelte: 4.2.15 + svelte-hmr: 0.16.0(svelte@4.2.15) + vite: 5.2.10(@types/node@20.12.7)(sass@1.75.0) + vitefu: 0.2.5(vite@5.2.10) transitivePeerDependencies: - supports-color dev: true - /@tsconfig/svelte@5.0.2: - resolution: {integrity: sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==} + /@tsconfig/svelte@5.0.4: + resolution: {integrity: sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==} dev: true /@types/ejs@3.1.5: resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} dev: false - /@types/eslint@8.56.2: - resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} + /@types/eslint@8.56.10: + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -1574,8 +1629,8 @@ packages: undici-types: 5.26.5 dev: false - /@types/node@20.11.19: - resolution: {integrity: sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true @@ -1588,12 +1643,12 @@ packages: resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} dev: true - /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} dev: true - /@types/semver@7.5.7: - resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/through@0.0.33: @@ -1606,7 +1661,7 @@ packages: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true - /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1618,24 +1673,24 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1647,11 +1702,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 - eslint: 8.56.0 - typescript: 5.3.3 + eslint: 8.57.0 + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -1664,7 +1719,7 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1674,12 +1729,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true @@ -1689,7 +1744,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1705,25 +1760,25 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) + eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -1742,131 +1797,131 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-vue@5.0.4(vite@5.1.3)(vue@3.4.19): + /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.25): resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.1.3(@types/node@20.11.19)(sass@1.71.1) - vue: 3.4.19(typescript@5.3.3) + vite: 5.2.10(@types/node@20.12.7)(sass@1.75.0) + vue: 3.4.25(typescript@5.4.5) dev: true - /@vue/compiler-core@3.4.19: - resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} + /@vue/compiler-core@3.4.25: + resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==} dependencies: - '@babel/parser': 7.23.9 - '@vue/shared': 3.4.19 + '@babel/parser': 7.24.4 + '@vue/shared': 3.4.25 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true - /@vue/compiler-dom@3.4.19: - resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} + /@vue/compiler-dom@3.4.25: + resolution: {integrity: sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==} dependencies: - '@vue/compiler-core': 3.4.19 - '@vue/shared': 3.4.19 + '@vue/compiler-core': 3.4.25 + '@vue/shared': 3.4.25 dev: true - /@vue/compiler-sfc@3.4.19: - resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} + /@vue/compiler-sfc@3.4.25: + resolution: {integrity: sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==} dependencies: - '@babel/parser': 7.23.9 - '@vue/compiler-core': 3.4.19 - '@vue/compiler-dom': 3.4.19 - '@vue/compiler-ssr': 3.4.19 - '@vue/shared': 3.4.19 + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.25 + '@vue/compiler-dom': 3.4.25 + '@vue/compiler-ssr': 3.4.25 + '@vue/shared': 3.4.25 estree-walker: 2.0.2 - magic-string: 0.30.7 - postcss: 8.4.35 - source-map-js: 1.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 dev: true - /@vue/compiler-ssr@3.4.19: - resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} + /@vue/compiler-ssr@3.4.25: + resolution: {integrity: sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==} dependencies: - '@vue/compiler-dom': 3.4.19 - '@vue/shared': 3.4.19 + '@vue/compiler-dom': 3.4.25 + '@vue/shared': 3.4.25 dev: true - /@vue/devtools-api@7.0.15(vue@3.4.19): - resolution: {integrity: sha512-kgEYWosDyWpS1vFSuJNNWUnHkP+VkL3Y+9mw+rf7ex41SwbYL/WdC3KXqAtjiSrEs7r/FrHmUTh0BkINJPFkbA==} + /@vue/devtools-api@7.1.2(vue@3.4.25): + resolution: {integrity: sha512-AKd49cN3BdRgttmX5Aw8op7sx6jmaPwaILcDjaa05UKc1yIHDYST7P8yGZs6zd2pKFETAQz40gmyG7+b57slsQ==} dependencies: - '@vue/devtools-kit': 7.0.15(vue@3.4.19) + '@vue/devtools-kit': 7.1.2(vue@3.4.25) transitivePeerDependencies: - vue dev: true - /@vue/devtools-kit@7.0.15(vue@3.4.19): - resolution: {integrity: sha512-dT7OeCe1LUCIhHIb/yRR6Hn+XHh73r1o78onqCrxEKHdoZwBItiIeVnmJZPEUDFstIxfs+tJL231mySk3laTow==} + /@vue/devtools-kit@7.1.2(vue@3.4.25): + resolution: {integrity: sha512-UTrcUSOhlI9eXqbPMHUWwA6NQiiPT3onzXsVk2JHGR8ZFFSkzsWTTpHyVA1woG8zvgu2HNV/wigW2k87p858zw==} peerDependencies: vue: ^3.0.0 dependencies: - '@vue/devtools-shared': 7.0.15 + '@vue/devtools-shared': 7.1.2 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.19(typescript@5.3.3) + vue: 3.4.25(typescript@5.4.5) dev: true - /@vue/devtools-shared@7.0.15: - resolution: {integrity: sha512-fpfvMVvS7aDgO7x2JPFiTQ1MHcCc63/bE7yTgs278gMBybuO9b3hdiZ/k0Pw1rN+RefaU9yQiFA+5CCFc1D+6w==} + /@vue/devtools-shared@7.1.2: + resolution: {integrity: sha512-r9cUf93VMhKSsxF2/cBbf6Lm1nRBx+r1pRuji5CiAf3JIPYPOjeEqJ13OuwP1fauYh1tyBFcCxt3eJPvHT59gg==} dependencies: rfdc: 1.3.1 dev: true - /@vue/reactivity@3.4.19: - resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} + /@vue/reactivity@3.4.25: + resolution: {integrity: sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==} dependencies: - '@vue/shared': 3.4.19 + '@vue/shared': 3.4.25 dev: true - /@vue/runtime-core@3.4.19: - resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} + /@vue/runtime-core@3.4.25: + resolution: {integrity: sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==} dependencies: - '@vue/reactivity': 3.4.19 - '@vue/shared': 3.4.19 + '@vue/reactivity': 3.4.25 + '@vue/shared': 3.4.25 dev: true - /@vue/runtime-dom@3.4.19: - resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} + /@vue/runtime-dom@3.4.25: + resolution: {integrity: sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==} dependencies: - '@vue/runtime-core': 3.4.19 - '@vue/shared': 3.4.19 + '@vue/runtime-core': 3.4.25 + '@vue/shared': 3.4.25 csstype: 3.1.3 dev: true - /@vue/server-renderer@3.4.19(vue@3.4.19): - resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} + /@vue/server-renderer@3.4.25(vue@3.4.25): + resolution: {integrity: sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==} peerDependencies: - vue: 3.4.19 + vue: 3.4.25 dependencies: - '@vue/compiler-ssr': 3.4.19 - '@vue/shared': 3.4.19 - vue: 3.4.19(typescript@5.3.3) + '@vue/compiler-ssr': 3.4.25 + '@vue/shared': 3.4.25 + vue: 3.4.25(typescript@5.4.5) dev: true - /@vue/shared@3.4.19: - resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} + /@vue/shared@3.4.25: + resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==} dev: true - /@vueuse/core@10.8.0(vue@3.4.19): - resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==} + /@vueuse/core@10.9.0(vue@3.4.25): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.8.0 - '@vueuse/shared': 10.8.0(vue@3.4.19) - vue-demi: 0.14.7(vue@3.4.19) + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.25) + vue-demi: 0.14.7(vue@3.4.25) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/integrations@10.8.0(focus-trap@7.5.4)(vue@3.4.19): - resolution: {integrity: sha512-sw3P/7cXOfNLQfERp7P0IJ2ODjLE2C3BGXpBQJQkS309c1jbJak9yu4EnY70WaZjkj53aeWSFU6BbHrUxXJ7SA==} + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.25): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} peerDependencies: async-validator: '*' axios: '*' @@ -1906,23 +1961,23 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.8.0(vue@3.4.19) - '@vueuse/shared': 10.8.0(vue@3.4.19) + '@vueuse/core': 10.9.0(vue@3.4.25) + '@vueuse/shared': 10.9.0(vue@3.4.25) focus-trap: 7.5.4 - vue-demi: 0.14.7(vue@3.4.19) + vue-demi: 0.14.7(vue@3.4.25) transitivePeerDependencies: - '@vue/composition-api' - vue dev: true - /@vueuse/metadata@10.8.0: - resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==} + /@vueuse/metadata@10.9.0: + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} dev: true - /@vueuse/shared@10.8.0(vue@3.4.19): - resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==} + /@vueuse/shared@10.9.0(vue@3.4.25): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} dependencies: - vue-demi: 0.14.7(vue@3.4.19) + vue-demi: 0.14.7(vue@3.4.25) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -1968,23 +2023,24 @@ packages: uri-js: 4.4.1 dev: true - /algoliasearch@4.22.1: - resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + /algoliasearch@4.23.3: + resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} dependencies: - '@algolia/cache-browser-local-storage': 4.22.1 - '@algolia/cache-common': 4.22.1 - '@algolia/cache-in-memory': 4.22.1 - '@algolia/client-account': 4.22.1 - '@algolia/client-analytics': 4.22.1 - '@algolia/client-common': 4.22.1 - '@algolia/client-personalization': 4.22.1 - '@algolia/client-search': 4.22.1 - '@algolia/logger-common': 4.22.1 - '@algolia/logger-console': 4.22.1 - '@algolia/requester-browser-xhr': 4.22.1 - '@algolia/requester-common': 4.22.1 - '@algolia/requester-node-http': 4.22.1 - '@algolia/transporter': 4.22.1 + '@algolia/cache-browser-local-storage': 4.23.3 + '@algolia/cache-common': 4.23.3 + '@algolia/cache-in-memory': 4.23.3 + '@algolia/client-account': 4.23.3 + '@algolia/client-analytics': 4.23.3 + '@algolia/client-common': 4.23.3 + '@algolia/client-personalization': 4.23.3 + '@algolia/client-search': 4.23.3 + '@algolia/logger-common': 4.23.3 + '@algolia/logger-console': 4.23.3 + '@algolia/recommend': 4.23.3 + '@algolia/requester-browser-xhr': 4.23.3 + '@algolia/requester-common': 4.23.3 + '@algolia/requester-node-http': 4.23.3 + '@algolia/transporter': 4.23.3 dev: true /align-text@0.1.4: @@ -2006,11 +2062,9 @@ packages: type-fest: 0.21.3 dev: false - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + /ansi-escapes@6.2.1: + resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - dependencies: - type-fest: 3.13.1 dev: true /ansi-regex@2.1.1: @@ -2087,13 +2141,14 @@ packages: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 dev: true @@ -2103,25 +2158,15 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.filter@1.0.3: - resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 - es-array-method-boxes-properly: 1.0.0 - is-string: 1.0.7 - dev: true - - /array.prototype.findlastindex@1.2.4: - resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 dev: true @@ -2131,7 +2176,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true @@ -2141,7 +2186,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true @@ -2164,11 +2209,11 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 dev: true /arrify@1.0.1: @@ -2251,8 +2296,8 @@ packages: engines: {node: '>=6'} dev: true - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + /builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} dependencies: semver: 7.6.0 dev: true @@ -2502,7 +2547,7 @@ packages: split2: 4.2.0 dev: true - /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.19)(cosmiconfig@8.3.6)(typescript@5.3.3): + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.7)(cosmiconfig@8.3.6)(typescript@5.4.5): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -2510,13 +2555,13 @@ packages: cosmiconfig: '>=8.2' typescript: '>=4' dependencies: - '@types/node': 20.11.19 - cosmiconfig: 8.3.6(typescript@5.3.3) + '@types/node': 20.12.7 + cosmiconfig: 8.3.6(typescript@5.4.5) jiti: 1.21.0 - typescript: 5.3.3 + typescript: 5.4.5 dev: true - /cosmiconfig@8.3.6(typescript@5.3.3): + /cosmiconfig@8.3.6(typescript@5.4.5): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -2529,7 +2574,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.3.3 + typescript: 5.4.5 dev: true /cross-spawn@7.0.3: @@ -2546,7 +2591,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true /cssesc@3.0.0: @@ -2601,6 +2646,14 @@ packages: engines: {node: '>=12'} dependencies: d3-array: 3.2.4 + dev: false + + /d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: true /d3-hierarchy@3.1.2: resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} @@ -2626,6 +2679,15 @@ packages: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 + dev: false + + /d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + dev: true /d3-shape@3.2.0: resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} @@ -2645,6 +2707,33 @@ packages: engines: {node: '>=8'} dev: true + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -2847,16 +2936,20 @@ packages: unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - /es-abstract@1.22.4: - resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==} + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} 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 @@ -2867,13 +2960,14 @@ packages: has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + 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.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 @@ -2881,21 +2975,17 @@ packages: object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.0 + safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 + 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.0 + typed-array-byte-length: 1.0.1 typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.5 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.14 - dev: true - - /es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + which-typed-array: 1.1.15 dev: true /es-define-property@1.0.0: @@ -2908,6 +2998,13 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + /es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} @@ -2922,13 +3019,13 @@ packages: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 - hasown: 2.0.1 + hasown: 2.0.2 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: @@ -2943,35 +3040,35 @@ packages: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 dev: true /escalade@3.1.2: @@ -2988,26 +3085,28 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.56.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + /eslint-compat-utils@0.5.0(eslint@8.57.0): + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 + semver: 7.6.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} + deprecated: Please use eslint-config-love, instead. peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 eslint: ^8.0.1 @@ -3016,19 +3115,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) - typescript: 5.3.3 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) + eslint-plugin-promise: 6.1.1(eslint@8.57.0) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -3037,10 +3136,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) + eslint-plugin-promise: 6.1.1(eslint@8.57.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -3053,8 +3152,8 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3074,27 +3173,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.56.0): - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + /eslint-plugin-es-x@7.6.0(eslint@8.57.0): + resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3104,23 +3203,23 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.4 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.1 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.2 - object.values: 1.1.7 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 tsconfig-paths: 3.15.0 transitivePeerDependencies: @@ -3129,17 +3228,17 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.6.2(eslint@8.56.0): + /eslint-plugin-n@16.6.2(eslint@8.57.0): resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.5.0(eslint@8.56.0) - get-tsconfig: 4.7.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + builtins: 5.1.0 + eslint: 8.57.0 + eslint-plugin-es-x: 7.6.0(eslint@8.57.0) + get-tsconfig: 4.7.3 globals: 13.24.0 ignore: 5.3.1 is-builtin-module: 3.2.1 @@ -3149,7 +3248,7 @@ packages: semver: 7.6.0 dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3163,46 +3262,46 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.56.0): + /eslint-plugin-promise@6.1.1(eslint@8.57.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.56.0 + eslint: 8.57.0 dev: true - /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.11): - resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} + /eslint-plugin-svelte@2.38.0(eslint@8.57.0)(svelte@4.2.15): + resolution: {integrity: sha512-IwwxhHzitx3dr0/xo0z4jjDlb2AAHBPKt+juMyKKGTLlKi1rZfA4qixMwnveU20/JTHyipM6keX4Vr7LZFYc9g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 - svelte: ^3.37.0 || ^4.0.0 + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 peerDependenciesMeta: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) esutils: 2.0.3 - known-css-properties: 0.29.0 - postcss: 8.4.35 - postcss-load-config: 3.1.4(postcss@8.4.35) - postcss-safe-parser: 6.0.0(postcss@8.4.35) - postcss-selector-parser: 6.0.15 + known-css-properties: 0.30.0 + postcss: 8.4.38 + postcss-load-config: 3.1.4(postcss@8.4.38) + postcss-safe-parser: 6.0.0(postcss@8.4.38) + postcss-selector-parser: 6.0.16 semver: 7.6.0 - svelte: 4.2.11 - svelte-eslint-parser: 0.33.1(svelte@4.2.11) + svelte: 4.2.15 + svelte-eslint-parser: 0.35.0(svelte@4.2.15) transitivePeerDependencies: - supports-color - ts-node @@ -3221,15 +3320,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -3338,7 +3437,7 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.2.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -3435,13 +3534,13 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.0 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted@3.3.0: - resolution: {integrity: sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /flru@1.0.2: @@ -3548,8 +3647,8 @@ packages: get-intrinsic: 1.2.4 dev: true - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: resolve-pkg-maps: 1.0.0 dev: true @@ -3724,6 +3823,13 @@ packages: dependencies: function-bind: 1.1.2 + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} dev: true @@ -3843,15 +3949,15 @@ packages: dependencies: get-intrinsic: 1.2.2 hasown: 2.0.0 - side-channel: 1.0.4 + side-channel: 1.0.6 /internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - hasown: 2.0.1 - side-channel: 1.0.5 + hasown: 2.0.2 + side-channel: 1.0.6 dev: true /internmap@2.0.3: @@ -3925,6 +4031,13 @@ packages: dependencies: hasown: 2.0.1 + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -4017,6 +4130,13 @@ packages: dependencies: call-bind: 1.0.5 + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -4056,7 +4176,7 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 dev: true /is-unicode-supported@0.1.0: @@ -4166,8 +4286,8 @@ packages: engines: {node: '>=6'} dev: true - /known-css-properties@0.29.0: - resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + /known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} dev: true /lazy-cache@1.0.4: @@ -4303,7 +4423,7 @@ packages: resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} engines: {node: '>=18'} dependencies: - ansi-escapes: 6.2.0 + ansi-escapes: 6.2.1 cli-cursor: 4.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 @@ -4324,9 +4444,8 @@ packages: /lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -4425,6 +4544,13 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + 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'} @@ -4530,8 +4656,8 @@ packages: path-key: 3.1.1 dev: true - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -4563,32 +4689,32 @@ packages: has-symbols: 1.0.3 object-keys: 1.1.1 - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /object.groupby@1.0.2: - resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} dependencies: - array.prototype.filter: 1.0.3 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 - es-errors: 1.3.0 + es-abstract: 1.23.3 dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-object-atoms: 1.0.0 dev: true /once@1.4.0: @@ -4685,7 +4811,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -4760,7 +4886,7 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss-load-config@3.1.4(postcss@8.4.35): + /postcss-load-config@3.1.4(postcss@8.4.38): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -4773,47 +4899,47 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.35 + postcss: 8.4.38 yaml: 1.10.2 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.35): + /postcss-safe-parser@6.0.0(postcss@8.4.38): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-scss@4.0.9(postcss@8.4.35): + /postcss-scss@4.0.9(postcss@8.4.38): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.35 + postcss: 8.4.38 dev: true - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true - /preact@10.19.5: - resolution: {integrity: sha512-OPELkDmSVbKjbFqF9tgvOowiiQ9TmsJljIzXRyNE8nGiis94pwv1siF78rQkAP1Q1738Ce6pellRg/Ns/CtHqQ==} + /preact@10.20.2: + resolution: {integrity: sha512-S1d1ernz3KQ+Y2awUxKakpfOg2CEmJmwOP+6igPx6dgr6pgDvenqYviyokWso2rhHvGtTlWWnJDa7RaPbQerTg==} dev: true /prelude-ls@1.2.1: @@ -4828,14 +4954,14 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-svelte@3.2.1(prettier@3.2.5)(svelte@4.2.11): - resolution: {integrity: sha512-ENAPbIxASf2R79IZwgkG5sBdeNA9kLRlXVvKKmTXh79zWTy0KKoT86XO2pHrTitUPINd+iXWy12MRmgzKGVckA==} + /prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.15): + resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: prettier: 3.2.5 - svelte: 4.2.11 + svelte: 4.2.15 dev: true /prettier@3.2.5: @@ -4849,11 +4975,11 @@ packages: engines: {node: '>=6'} dev: true - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + /qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.5 + side-channel: 1.0.6 dev: false /queue-lit@1.5.2: @@ -5046,26 +5172,29 @@ packages: fsevents: 2.3.3 dev: true - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + /rollup@4.16.4: + resolution: {integrity: sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 + '@rollup/rollup-android-arm-eabi': 4.16.4 + '@rollup/rollup-android-arm64': 4.16.4 + '@rollup/rollup-darwin-arm64': 4.16.4 + '@rollup/rollup-darwin-x64': 4.16.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.16.4 + '@rollup/rollup-linux-arm-musleabihf': 4.16.4 + '@rollup/rollup-linux-arm64-gnu': 4.16.4 + '@rollup/rollup-linux-arm64-musl': 4.16.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.16.4 + '@rollup/rollup-linux-riscv64-gnu': 4.16.4 + '@rollup/rollup-linux-s390x-gnu': 4.16.4 + '@rollup/rollup-linux-x64-gnu': 4.16.4 + '@rollup/rollup-linux-x64-musl': 4.16.4 + '@rollup/rollup-win32-arm64-msvc': 4.16.4 + '@rollup/rollup-win32-ia32-msvc': 4.16.4 + '@rollup/rollup-win32-x64-msvc': 4.16.4 fsevents: 2.3.3 dev: true @@ -5105,8 +5234,8 @@ packages: has-symbols: 1.0.3 isarray: 2.0.5 - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 @@ -5146,14 +5275,14 @@ packages: rimraf: 2.7.1 dev: true - /sass@1.71.1: - resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} + /sass@1.75.0: + resolution: {integrity: sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==} engines: {node: '>=14.0.0'} hasBin: true dependencies: chokidar: 3.6.0 immutable: 4.3.5 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true /search-insights@2.13.0: @@ -5236,21 +5365,14 @@ packages: vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 - /shiki@1.1.6: - resolution: {integrity: sha512-j4pcpvaQWHb42cHeV+W6P+X/VcK7Y2ctvEham6zB8wsuRQroT6cEMIkiUmBU2Nqg2qnHZDH6ZyRdVldcy0l6xw==} + /shiki@1.3.0: + resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} dependencies: - '@shikijs/core': 1.1.6 + '@shikijs/core': 1.3.0 dev: true - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - - /side-channel@1.0.5: - resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -5302,8 +5424,8 @@ packages: sander: 0.5.1 dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} dev: true @@ -5394,6 +5516,16 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: @@ -5401,6 +5533,14 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: @@ -5408,6 +5548,15 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: @@ -5480,21 +5629,21 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.6.4(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.11): - resolution: {integrity: sha512-mY/dqucqm46p72M8yZmn81WPZx9mN6uuw8UVfR3ZKQeLxQg5HDGO3HHm5AZuWZPYNMLJ+TRMn+TeN53HfQ/vsw==} + /svelte-check@3.7.0(postcss@8.4.38)(sass@1.75.0)(svelte@4.2.15): + resolution: {integrity: sha512-Va6sGL4Vy4znn0K+vaatk98zoBvG2aDee4y3r5X4S80z8DXfbACHvdLlyXa4C4c5tQzK9H0Uq2pbd20wH3ucjQ==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 fast-glob: 3.3.2 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.11 - svelte-preprocess: 5.1.3(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.11)(typescript@5.3.3) - typescript: 5.3.3 + svelte: 4.2.15 + svelte-preprocess: 5.1.4(postcss@8.4.38)(sass@1.75.0)(svelte@4.2.15)(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -5507,11 +5656,11 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.33.1(svelte@4.2.11): - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} + /svelte-eslint-parser@0.35.0(svelte@4.2.15): + resolution: {integrity: sha512-CtbPseajW0gjwEvHiuzYJkPDjAcHz2FaHt540j6RVYrZgnE6xWkzUBodQ4I3nV+G5AS0Svt8K6aIA/CIU9xT2Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - svelte: ^3.37.0 || ^4.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 peerDependenciesMeta: svelte: optional: true @@ -5519,23 +5668,23 @@ packages: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.35 - postcss-scss: 4.0.9(postcss@8.4.35) - svelte: 4.2.11 + postcss: 8.4.38 + postcss-scss: 4.0.9(postcss@8.4.38) + svelte: 4.2.15 dev: true - /svelte-hmr@0.15.3(svelte@4.2.11): - resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} + /svelte-hmr@0.16.0(svelte@4.2.15): + resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.11 + svelte: 4.2.15 dev: true - /svelte-preprocess@5.1.3(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.11)(typescript@5.3.3): - resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} - engines: {node: '>= 16.0.0', pnpm: ^8.0.0} + /svelte-preprocess@5.1.4(postcss@8.4.38)(sass@1.75.0)(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} + engines: {node: '>= 16.0.0'} requiresBuild: true peerDependencies: '@babel/core': ^7.10.2 @@ -5573,22 +5722,22 @@ packages: dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.7 - postcss: 8.4.35 - sass: 1.71.1 + magic-string: 0.30.10 + postcss: 8.4.38 + sass: 1.75.0 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.11 - typescript: 5.3.3 + svelte: 4.2.15 + typescript: 5.4.5 dev: true - /svelte@4.2.11: - resolution: {integrity: sha512-YIQk3J4X89wOLhjsqIW8tqY3JHPuBdtdOIkASP2PZeAMcSW9RsIjQzMesCrxOF3gdWYC0mKknlKF7OqmLM+Zqg==} + /svelte@4.2.15: + resolution: {integrity: sha512-j9KJSccHgLeRERPlhMKrCXpk2TqL2m5Z+k+OBTQhZOhIdCCd3WfqV+ylPWeipEwq17P/ekiSFWwrVQv93i3bsg==} engines: {node: '>=16'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 '@types/estree': 1.0.5 acorn: 8.11.3 aria-query: 5.3.0 @@ -5598,7 +5747,7 @@ packages: estree-walker: 3.0.3 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.7 + magic-string: 0.30.10 periscopic: 3.1.0 dev: true @@ -5681,13 +5830,13 @@ packages: engines: {node: '>=8'} dev: true - /ts-api-utils@1.2.1(typescript@5.3.3): - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.5 dev: true /tsc-alias@1.8.8: @@ -5746,11 +5895,6 @@ packages: engines: {node: '>=8'} dev: true - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true - /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} @@ -5777,6 +5921,17 @@ packages: has-proto: 1.0.1 is-typed-array: 1.1.12 + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + 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 + dev: true + /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} @@ -5806,8 +5961,8 @@ packages: for-each: 0.3.3 is-typed-array: 1.1.12 - /typed-array-length@1.0.5: - resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -5818,6 +5973,15 @@ packages: possible-typed-array-names: 1.0.0 dev: true + /typedoc-plugin-markdown@3.17.1(typedoc@0.25.13): + resolution: {integrity: sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==} + peerDependencies: + typedoc: '>=0.24.0' + dependencies: + handlebars: 4.7.8 + typedoc: 0.25.13(typescript@5.4.5) + dev: true + /typedoc-plugin-markdown@3.17.1(typedoc@0.25.8): resolution: {integrity: sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==} peerDependencies: @@ -5825,6 +5989,21 @@ packages: dependencies: handlebars: 4.7.8 typedoc: 0.25.8(typescript@5.3.3) + dev: false + + /typedoc@0.25.13(typescript@5.4.5): + resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x + dependencies: + lunr: 2.3.9 + marked: 4.3.0 + minimatch: 9.0.4 + shiki: 0.14.7 + typescript: 5.4.5 + dev: true /typedoc@0.25.8(typescript@5.3.3): resolution: {integrity: sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==} @@ -5838,11 +6017,19 @@ packages: minimatch: 9.0.3 shiki: 0.14.7 typescript: 5.3.3 + dev: false /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true + dev: false + + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true /uglify-js@2.8.29: resolution: {integrity: sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==} @@ -5893,21 +6080,21 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@5.1.3): + /vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.2.10): resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} peerDependencies: eslint: '>=7' vite: '>=2' dependencies: '@rollup/pluginutils': 4.2.1 - '@types/eslint': 8.56.2 - eslint: 8.56.0 + '@types/eslint': 8.56.10 + eslint: 8.57.0 rollup: 2.79.1 - vite: 5.1.3(@types/node@20.11.19)(sass@1.71.1) + vite: 5.2.10(@types/node@20.12.7)(sass@1.75.0) dev: true - /vite@5.1.3(@types/node@20.11.19)(sass@1.71.1): - resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==} + /vite@5.2.10(@types/node@20.12.7)(sass@1.75.0): + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5934,16 +6121,16 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.19 - esbuild: 0.19.12 - postcss: 8.4.35 - rollup: 4.12.0 - sass: 1.71.1 + '@types/node': 20.12.7 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.16.4 + sass: 1.75.0 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.5(vite@5.1.3): + /vitefu@0.2.5(vite@5.2.10): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -5951,10 +6138,10 @@ packages: vite: optional: true dependencies: - vite: 5.1.3(@types/node@20.11.19)(sass@1.71.1) + vite: 5.2.10(@types/node@20.12.7)(sass@1.75.0) dev: true - /vitepress@1.0.0-rc.44(@algolia/client-search@4.22.1)(@types/node@20.11.19)(postcss@8.4.35)(sass@1.71.1)(search-insights@2.13.0)(typescript@5.3.3): + /vitepress@1.0.0-rc.44(@algolia/client-search@4.23.3)(@types/node@20.12.7)(postcss@8.4.38)(sass@1.75.0)(search-insights@2.13.0)(typescript@5.4.5): resolution: {integrity: sha512-tO5taxGI7fSpBK1D8zrZTyJJERlyU9nnt0jHSt3fywfq3VKn977Hg0wUuTkEmwXlFYwuW26+6+3xorf4nD3XvA==} hasBin: true peerDependencies: @@ -5966,22 +6153,22 @@ packages: postcss: optional: true dependencies: - '@docsearch/css': 3.5.2 - '@docsearch/js': 3.5.2(@algolia/client-search@4.22.1)(search-insights@2.13.0) - '@shikijs/core': 1.1.6 - '@shikijs/transformers': 1.1.6 + '@docsearch/css': 3.6.0 + '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) + '@shikijs/core': 1.3.0 + '@shikijs/transformers': 1.3.0 '@types/markdown-it': 13.0.7 - '@vitejs/plugin-vue': 5.0.4(vite@5.1.3)(vue@3.4.19) - '@vue/devtools-api': 7.0.15(vue@3.4.19) - '@vueuse/core': 10.8.0(vue@3.4.19) - '@vueuse/integrations': 10.8.0(focus-trap@7.5.4)(vue@3.4.19) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-api': 7.1.2(vue@3.4.25) + '@vueuse/core': 10.9.0(vue@3.4.25) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.25) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 6.3.0 - postcss: 8.4.35 - shiki: 1.1.6 - vite: 5.1.3(@types/node@20.11.19)(sass@1.71.1) - vue: 3.4.19(typescript@5.3.3) + postcss: 8.4.38 + shiki: 1.3.0 + vite: 5.2.10(@types/node@20.12.7)(sass@1.75.0) + vue: 3.4.25(typescript@5.4.5) transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -6016,7 +6203,7 @@ packages: /vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - /vue-demi@0.14.7(vue@3.4.19): + /vue-demi@0.14.7(vue@3.4.25): resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} hasBin: true @@ -6028,23 +6215,23 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.19(typescript@5.3.3) + vue: 3.4.25(typescript@5.4.5) dev: true - /vue@3.4.19(typescript@5.3.3): - resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + /vue@3.4.25(typescript@5.4.5): + resolution: {integrity: sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.19 - '@vue/compiler-sfc': 3.4.19 - '@vue/runtime-dom': 3.4.19 - '@vue/server-renderer': 3.4.19(vue@3.4.19) - '@vue/shared': 3.4.19 - typescript: 5.3.3 + '@vue/compiler-dom': 3.4.25 + '@vue/compiler-sfc': 3.4.25 + '@vue/runtime-dom': 3.4.25 + '@vue/server-renderer': 3.4.25(vue@3.4.25) + '@vue/shared': 3.4.25 + typescript: 5.4.5 dev: true /wcwidth@1.0.1: @@ -6072,8 +6259,8 @@ packages: gopd: 1.0.1 has-tostringtag: 1.0.0 - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 diff --git a/src/packages/cli/src/action/cmd-doc.mjs b/src/packages/cli/src/action/cmd-doc.mjs index f3b59fe..57dc811 100644 --- a/src/packages/cli/src/action/cmd-doc.mjs +++ b/src/packages/cli/src/action/cmd-doc.mjs @@ -64,6 +64,12 @@ export default async () => { sshqsj: '实时行情数据', }, }, + wzdh: { + name: '网站导航', + cmd: { + cj: '财经导航', + }, + }, }; for (let file of cmdFiles) { let data; @@ -94,16 +100,56 @@ export default async () => { if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath, { recursive: true }); } - const templateContent = fs.readFileSync(path.resolve(cliPath, './src/template/doc/cmd/cmd.ejs'), 'utf-8'); + const templatePath = path.resolve(cliPath, './src/template/doc/cmd/cmd.ejs'); + const templateContent = fs.readFileSync(templatePath, 'utf-8'); data = data.default ? data.default : data; - const renderedContent = ejs.render(templateContent, { - domainName: aliasRecord[domainName]?.name ?? domainName, - list: data.cmd ? [data] : Object.values(data), - replaceAllStar: (v) => { - if (Object.prototype.toString.call(v) !== '[object String]') return v; - return v.replaceAll('*', '\\*'); + const cmdList = data.cmd ? [data] : Object.values(data); + const cmdRecord = cmdList.reduce((record, item) => { + if (record[item.cmd]) { + const cmdData = record[item.cmd]; + if (item.subcommand) { + cmdData.subcommand = [...cmdData.subcommand, item.subcommand]; + } + } else { + if (!item.subcommand) { + item.subcommand = []; + } + if (Object.prototype.toString.call(item.subcommand) === '[object Object]') { + item.subcommand = [item.subcommand]; + } + record[item.cmd] = item; + } + return record; + }, {}); + const renderedContent = ejs.render( + templateContent, + { + isGlobalDomain: domainName === 'global', + domains: [ + { + viewName: aliasRecord[domainName]?.name ?? domainName, + name: domainName, + }, + ], + list: Object.values(cmdRecord), + formatMdString: (v) => { + if (Object.prototype.toString.call(v) !== '[object String]') return v; + return v.replaceAll('*', '\\*').replace('\n', '
'); + }, + getIStockShellDemoHeight: (cmdData) => { + const cmd = cmdData.cmd; + const parentCmd = cmdData.parentCmd; + if (cmd === 'lssc') { + return 650; + } + if (parentCmd === 'tb' && ['bt', 'txt', 'zxt', 'gplzt'].includes(cmd)) { + return 800; + } + return 480; + }, }, - }); + { filename: templatePath } + ); fs.writeFileSync(filePath, renderedContent); if (!linkRecord[domainName]) linkRecord[domainName] = []; linkRecord[domainName].push({ diff --git a/src/packages/cli/src/template/doc/cmd/cmd-content.ejs b/src/packages/cli/src/template/doc/cmd/cmd-content.ejs new file mode 100644 index 0000000..14b13d1 --- /dev/null +++ b/src/packages/cli/src/template/doc/cmd/cmd-content.ejs @@ -0,0 +1,33 @@ +##<%- isSubCmd ? '#' : '' -%> <%- cmd.cmd %> <%- cmd.name %> <% if (cmd.tag) { %> <% } %> +<%- cmd.description %> + +<% if (cmd.usage) { -%> +###<%- isSubCmd ? '#' : '' -%> 用法 + +`<%- cmd.usage -%>` +<% } -%> + +<% if (cmd.arguments && cmd.arguments.length) { -%> +###<%- isSubCmd ? '#' : '' -%> 参数 +| 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :-- | :--: | :--: | :--: | :--: | +<% cmd.arguments.forEach((option) => { -%> +| <%- option.name -%> | <%- formatMdString(option.description) -%> | <%- option.parameterType.join(',') -%> | <%- option.optional -%> | <%- formatMdString(option.default) -%> | <%- option.choices -%> | +<% }) -%> +<% } -%> + +<% if (cmd.options && Object.keys(cmd.options).length) { -%> +###<%- isSubCmd ? '#' : '' -%> 选项 +| 选项参数 | 名称 | 描述 | 类型 | 是否可选 | 默认值 | 可选值 | +| :--: | :--: | :-- | :--: | :--: | :--: | :--: | +<% Object.entries(cmd.options).forEach(([key, option]) => { -%> +| `<%- option.parameter.join(',') -%>` | <%- option.name -%> | <%- formatMdString(option.description) -%> | <%- option.parameterType.join(',') -%> | <%- option.optional -%> | <%- formatMdString(option.default) -%> | <%- option.choices -%> | +<% }) -%> +<% } -%> + +<% if (cmd.example) { -%> +###<%- isSubCmd ? '#' : '' -%> 命令示例 + +`<%- cmd.example -%>` + +<% } -%> \ No newline at end of file diff --git a/src/packages/cli/src/template/doc/cmd/cmd.ejs b/src/packages/cli/src/template/doc/cmd/cmd.ejs index ea51848..e7088cf 100644 --- a/src/packages/cli/src/template/doc/cmd/cmd.ejs +++ b/src/packages/cli/src/template/doc/cmd/cmd.ejs @@ -1,25 +1,8 @@ -# <%- domainName %> +# <%- domains[0].viewName %> <% list.forEach(function(cmd) { -%> -## <%- cmd.cmd %> <%- cmd.name %> <% if (cmd.tag) { %> <% } %> -<%- cmd.description %> - -<% if (cmd.usage) { -%> -### 用法 - -`<%- cmd.usage -%>` -<% } -%> - -<% if (cmd.options) { -%> -### 参数 -<% Object.entries(cmd.options).forEach(([key, option]) => { %> -<%- option.name %>:`<%- option.parameter.join(',') %>` - -<%- replaceAllStar(option.description) %> - -| 参数类型 | 是否可选 | 默认值 | 可选值 | -| :--: | :--: | :--: | :--: | -| <%- option.parameterType.join(',') -%> | <%- option.optional -%> | <%- replaceAllStar(option.default) -%> | <%- option.choices -%> | +<%- include('cmd-content', { cmd, isSubCmd: false, parentCmd: null, isGlobalDomain, domains, formatMdString, getIStockShellDemoHeight }); -%> +<% cmd.subcommand.forEach(function(subCmd) { -%> +<%- include('cmd-content', { cmd: subCmd, isSubCmd: true, parentCmd: cmd.cmd,isGlobalDomain, domains, formatMdString, getIStockShellDemoHeight }); -%> <% }) -%> -<% } -%> -<% }) %> \ No newline at end of file +<% }) -%> \ No newline at end of file diff --git a/src/packages/command-parser/src/parser.ts b/src/packages/command-parser/src/parser.ts index 1448999..7a5d483 100644 --- a/src/packages/command-parser/src/parser.ts +++ b/src/packages/command-parser/src/parser.ts @@ -1,4 +1,14 @@ -import { ScopeError, isArray, isBoolean, isNil, isNumber, isRegExp, isStrRegExp, isUndefined } from '@istock/util'; +import { + ScopeError, + isArray, + isBoolean, + isNil, + isNumber, + isRegExp, + isStrRegExp, + isUndefined, + isPlainObject, +} from '@istock/util'; import { Ast, EAstTreeType, type TAstTreeItem, type TAstTreeOption, type TAstTreeParameter } from './ast'; interface IArgument { @@ -355,12 +365,23 @@ export class CmdParser { return number; } if (type === 'array' && !isArray(val)) { - return (val as string).split(/,|,/).map((v) => v.trim()); + try { + return JSON.parse(val); + } catch (e) { + return (val as string).split(/,|,/).map((v) => v.trim()); + } } if (type === 'RegExp' && !isRegExp(val)) { if (isStrRegExp(val)) return new RegExp(val); return null; } + if (type === 'object' && !isPlainObject(val)) { + try { + return JSON.parse(val); + } catch (e) { + return val; + } + } return val; }) .find((v) => !isNil(v)); diff --git a/src/packages/command-parser/src/tokenizer.ts b/src/packages/command-parser/src/tokenizer.ts index c7015c8..33f8363 100644 --- a/src/packages/command-parser/src/tokenizer.ts +++ b/src/packages/command-parser/src/tokenizer.ts @@ -422,6 +422,7 @@ export class Tokenizer { let value = ''; // 处理字符串的情况,允许字符串里面有各种字符 if (this.#strSymbol.test(char)) { + // `'"符号分隔 let symbol: string | undefined; while (index < input.length) { value += char; @@ -435,7 +436,8 @@ export class Tokenizer { char = input[++index]; } } else { - while (this.#parameter.test(char)) { + while (char && !this.#space.test(char)) { + // 空格分隔 value += char; char = input[++index]; } diff --git a/src/packages/editor/src/command-editor-parser.ts b/src/packages/editor/src/command-editor-parser.ts index 927fe43..e2ef5d2 100644 --- a/src/packages/editor/src/command-editor-parser.ts +++ b/src/packages/editor/src/command-editor-parser.ts @@ -72,7 +72,6 @@ export class CommandEditorParser { return text; }; const text = parseDom(rootEl.childNodes).replaceAll(CommandEditorParser.spaceRegMatch, CommandEditorParser.space); - console.log('parseDomToText:\n', text); return text; } @@ -123,7 +122,6 @@ export class CommandEditorParser { parseDom(rootEl.childNodes); offsetText = offsetText.replaceAll(CommandEditorParser.spaceRegMatch, CommandEditorParser.space); - console.log('getOffsetTextForDom:\n', offsetText); return offsetText; } @@ -243,7 +241,6 @@ export class CommandEditorParser { } }; parseDom(rootEl.childNodes, true); - console.log('range', range); return range; } } diff --git a/src/packages/editor/src/command-editor.ts b/src/packages/editor/src/command-editor.ts index 3a72ac5..1831633 100644 --- a/src/packages/editor/src/command-editor.ts +++ b/src/packages/editor/src/command-editor.ts @@ -100,7 +100,7 @@ export class CommandEditor { #handleFocus(_event: FocusEvent) {} #handleBlur(_event: FocusEvent) { - console.log('handleBlur', this.#cursor.getOneRange()); + // console.log('handleBlur', this.#cursor.getOneRange()); } /** diff --git a/src/packages/iswork/src/types/controller.ts b/src/packages/iswork/src/types/controller.ts index 53d36fb..b6067c4 100644 --- a/src/packages/iswork/src/types/controller.ts +++ b/src/packages/iswork/src/types/controller.ts @@ -57,6 +57,7 @@ export type TControllerMethodCmdRoute = { arguments?: TControllerMethodCmdRouteOptions[]; // 命令参数 source?: { title?: string; url?: string }; remarks?: string; + example?: string; }; export type TControllerMethodCmdRouteMetadata = { @@ -68,6 +69,7 @@ export type TControllerMethodCmdRouteMetadata = { options?: TControllerMethodCmdRouteOptions[]; subcommand?: TControllerMethodCmdRouteMetadata; arguments?: TControllerMethodCmdRouteOptions[]; + example?: string; }; export type TControllerMethodCmdRouteOptions = { diff --git a/src/packages/shell-ui/src/chart/Chart.svelte b/src/packages/shell-ui/src/chart/Chart.svelte index 75955b1..e53711e 100644 --- a/src/packages/shell-ui/src/chart/Chart.svelte +++ b/src/packages/shell-ui/src/chart/Chart.svelte @@ -14,8 +14,8 @@ onMount(async () => { chart = new Chart({ container: containerElement, + width: containerElement.offsetWidth, }); - console.log('options', options); chart.options(options); await chart.render(); }); diff --git a/src/packages/shell-ui/src/index.ts b/src/packages/shell-ui/src/index.ts index 599f652..bea8fb9 100644 --- a/src/packages/shell-ui/src/index.ts +++ b/src/packages/shell-ui/src/index.ts @@ -16,3 +16,4 @@ export * from './text/index'; export * from './textarea/index'; export * from './modal/index'; export * from './button/index'; +export * from './navlist/index'; diff --git a/src/packages/shell-ui/src/navlist/NavList.svelte b/src/packages/shell-ui/src/navlist/NavList.svelte new file mode 100644 index 0000000..1b19a56 --- /dev/null +++ b/src/packages/shell-ui/src/navlist/NavList.svelte @@ -0,0 +1,48 @@ + + +{#if list?.length} + {#each list as item, index} +
+
{item.title}
+ {#each item.children as child, cIndex} +
+ + {child.title} + +
+ {/each} +
+ {/each} +{:else} + +{/if} + + diff --git a/src/packages/shell-ui/src/navlist/index.ts b/src/packages/shell-ui/src/navlist/index.ts new file mode 100644 index 0000000..72bad6a --- /dev/null +++ b/src/packages/shell-ui/src/navlist/index.ts @@ -0,0 +1,3 @@ +import NavList from './NavList.svelte'; +export const ShNavList = NavList; +export default ShNavList; diff --git a/src/packages/shell-ui/src/table/Table.svelte b/src/packages/shell-ui/src/table/Table.svelte index 1f94556..700b34a 100644 --- a/src/packages/shell-ui/src/table/Table.svelte +++ b/src/packages/shell-ui/src/table/Table.svelte @@ -65,6 +65,9 @@ font-weight: bold; padding: 0.5em 0; } + th { + white-space: nowrap; + } th, td { border: 1px solid var(--ui-table-border-color); diff --git a/src/packages/util/src/index.ts b/src/packages/util/src/index.ts index 195690d..1fd8a53 100644 --- a/src/packages/util/src/index.ts +++ b/src/packages/util/src/index.ts @@ -8,3 +8,4 @@ export * from './message-data'; export * from './sleep'; export * from './snow-flake'; export * from './string'; +export * from './url'; diff --git a/src/packages/util/src/url.ts b/src/packages/util/src/url.ts new file mode 100644 index 0000000..985bc09 --- /dev/null +++ b/src/packages/util/src/url.ts @@ -0,0 +1,5 @@ +export const getQueryParam = (name: string): string | null => { + const url = new URL(window.location.href); + const params = url.searchParams; + return params.get(name); +}; diff --git a/src/store/cmd/cmd-info.ts b/src/store/cmd/cmd-info.ts index 1d6f813..dc65a38 100644 --- a/src/store/cmd/cmd-info.ts +++ b/src/store/cmd/cmd-info.ts @@ -39,3 +39,6 @@ export const cmdInfo: ICmdInfo = Object.create( ); export const showCmdInfo = Object.create(writable(false)); + +console.log(asciiTitle); +console.info(title, version); diff --git a/src/store/cmd/cmd-output/store.ts b/src/store/cmd/cmd-output/store.ts index 8e33fbe..817c078 100644 --- a/src/store/cmd/cmd-output/store.ts +++ b/src/store/cmd/cmd-output/store.ts @@ -4,6 +4,7 @@ import type { CmdWindowContext } from '@/window/cmd-window-context'; import type { IPrompt, TPromptText } from '../cmd-prompt'; import { getOutputErrorData, getCmdOutputLoading } from './default-output'; import { sendCmdExecutionFlow } from './execution-flow'; +import { ECmdWindowContextMode } from '@/window/cmd-window-context'; export interface ICmdOutputData { component: string; @@ -41,6 +42,7 @@ export const getCmdOutput = (ctx: CmdWindowContext) => { * @param input */ cmdOutput.sendCmd = async (input: string) => { + input = input.trim(); if (!input) return; const originPrompt = get(ctx.cmdStore.cmdPrompt); const promptTexts = get(ctx.cmdStore.cmdPromptTexts); @@ -80,6 +82,8 @@ export const getCmdOutput = (ctx: CmdWindowContext) => { * @param originPrompt */ cmdOutput.saveCmdToHistory = async (cmdOutputData: ICmdOutput, originPrompt: IPrompt) => { + // 演示发起的命令不保存到历史记录 + if (ctx.mode === ECmdWindowContextMode.example) return; const { message } = ctx; const payload: ICmdOutput & { cmd: string; rowStatus: number; createDate: Date } = parse(stringify(cmdOutputData)); payload.source = 'db'; diff --git a/src/store/cmd/cmd-prompt.ts b/src/store/cmd/cmd-prompt.ts index db13b71..6f3a510 100644 --- a/src/store/cmd/cmd-prompt.ts +++ b/src/store/cmd/cmd-prompt.ts @@ -1,5 +1,7 @@ import { type Writable, writable } from 'svelte/store'; import type { CmdWindowContext } from '@/window/cmd-window-context'; +import { ECmdWindowContextMode } from '@/window/cmd-window-context'; +import { getQueryParam } from '@/packages/util'; export type TPromptText = { text: string; @@ -24,7 +26,14 @@ export const LOCAL_STORE_DOMAINS = 'local_store_domains'; export const getCmdDynamicPrompt = (ctx: CmdWindowContext) => { const storeDomains = sessionStorage.getItem(`${LOCAL_STORE_DOMAINS}_${ctx.windowId}`); - const domains: TDomain[] = storeDomains ? JSON.parse(storeDomains) : []; + let domains: TDomain[] = storeDomains ? JSON.parse(storeDomains) : []; + if (ctx.mode === ECmdWindowContextMode.example) { + // demo模式覆盖默认数据 + const queryDomains = getQueryParam('domains'); + if (queryDomains) { + domains = JSON.parse(decodeURIComponent(queryDomains)); + } + } const dynamicPrompt: ICmdPromptWritable = Object.create( writable({ time: new Date(), diff --git a/src/store/init.ts b/src/store/init.ts index dbad4d2..b08e315 100644 --- a/src/store/init.ts +++ b/src/store/init.ts @@ -1,30 +1,32 @@ import { get } from 'svelte/store'; -import { toLocaleDateString, sleep } from '@istock/util'; -import { ECommandEditorActionTypes, type CommandEditor } from '@istock/editor'; +import { sleep, toLocaleDateString } from '@istock/util'; +import { type CommandEditor, ECommandEditorActionTypes } from '@istock/editor'; import type { TModelData } from '@istock/iswork'; -import type { CmdWindowContext } from '@/window/cmd-window-context'; +import { type CmdWindowContext, ECmdWindowContextMode } from '@/window/cmd-window-context'; import type { HistoryModel } from '@domains/global/history/history.model'; import type { DomainModel } from '@domains/global/domain/domain.model'; import type { IPrompt, TPromptText } from './cmd/cmd-prompt'; +import { LOCAL_STORE_DOMAINS } from './cmd/cmd-prompt'; import type { TCmdRoute } from './domains/global/cmd-route'; import type { TCmdInputNodes } from './cmd/cmd-input'; -import { LOCAL_STORE_DOMAINS } from './cmd/cmd-prompt'; // 运行初始化逻辑 export async function initStore(ctx: CmdWindowContext) { - const removeOnShowCmdInfo = onShowCmdInfo(ctx); const removeOnInputRecommendCmd = onInputRecommendCmd(ctx); const removeOnPromptTexts = onPromptTexts(ctx); const removeOnPromptDomainChange = onPromptDomainChange(ctx); await initCmdRouteList(ctx); - await initOutputHistory(ctx); + if (ctx.mode !== ECmdWindowContextMode.example) { + await initOutputHistory(ctx); + } + const removeOnShowCmdInfo = onShowCmdInfo(ctx); const removeOnOutputHistory = onOutputHistory(ctx); const removeOnSyncHistory = onSyncHistory(ctx); return () => { - removeOnShowCmdInfo(); removeOnInputRecommendCmd(); removeOnPromptTexts(); removeOnPromptDomainChange(); + removeOnShowCmdInfo(); removeOnOutputHistory(); removeOnSyncHistory(); }; diff --git a/src/view/CmdWindows.svelte b/src/view/CmdWindows.svelte index d9e8d81..ea3a81b 100644 --- a/src/view/CmdWindows.svelte +++ b/src/view/CmdWindows.svelte @@ -1,10 +1,16 @@ -
+
diff --git a/src/view/components/output/OutputDocTable.svelte b/src/view/components/output/OutputDocTable.svelte new file mode 100644 index 0000000..a11b7f5 --- /dev/null +++ b/src/view/components/output/OutputDocTable.svelte @@ -0,0 +1,51 @@ + + + + + {#each headers as header} + + {/each} + + + {#each options as option} + + {#if type === 2} + + {/if} + + + + + + + + {/each} + +
{header}
{option.parameter}{option.name} + {#each (option.description ?? '').split('\n') as des} + {des}
+ {/each} +
{option.parameterType}{option.optional ?? true}{option.default ?? ''}{option.choices ?? ''}
+ + diff --git a/src/window/cmd-window-context.ts b/src/window/cmd-window-context.ts index b4b1213..cdbcc12 100644 --- a/src/window/cmd-window-context.ts +++ b/src/window/cmd-window-context.ts @@ -6,6 +6,11 @@ import { initStore } from '@/store/init'; import { getWorker } from '@/worker'; import { WorkerMessage } from './worker-message'; +export enum ECmdWindowContextMode { + normal = '1', + example = '2', +} + export class CmdWindowContext { readonly #globalEvent: EventEmitter; readonly #windowId: number; @@ -17,6 +22,8 @@ export class CmdWindowContext { readonly #cmdStore: TCmdStore; #storeDestroy: Function | null = null; readonly #handler: (event: MessageEvent) => void; + readonly #mode: ECmdWindowContextMode; + #initStoreDone: boolean = false; get globalEvent() { return this.#globalEvent; @@ -50,9 +57,18 @@ export class CmdWindowContext { return this.#cmdStore; } - constructor(options: { windowId: number; globalEvent: EventEmitter }) { + get mode() { + return this.#mode; + } + + get initStoreDone() { + return this.#initStoreDone; + } + + constructor(options: { windowId: number; globalEvent: EventEmitter; mode: ECmdWindowContextMode }) { this.#windowId = options.windowId; this.#globalEvent = options.globalEvent; + this.#mode = options.mode; this.#event = new EventEmitter(); this.#worker = getWorker(); this.#cmdParser = new CmdParser(); @@ -73,6 +89,8 @@ export class CmdWindowContext { */ async initStore() { this.#storeDestroy = await initStore(this); + this.#initStoreDone = true; + await this.message.emit('CmdWindowContext.initStoreDone'); } /** diff --git a/src/window/cmd-windows-manager.ts b/src/window/cmd-windows-manager.ts index 65f1636..cafaa4a 100644 --- a/src/window/cmd-windows-manager.ts +++ b/src/window/cmd-windows-manager.ts @@ -1,21 +1,31 @@ import { EventEmitter, ScopeError } from '@istock/util'; -import { CmdWindowContext } from './cmd-window-context'; +import { CmdWindowContext, ECmdWindowContextMode } from './cmd-window-context'; + +export type TCmdWindowsManagerOptions = { + mode?: ECmdWindowContextMode; +}; export class CmdWindowsManager { static cmdWindowsManager: CmdWindowsManager; readonly #ctxMap = new Map(); readonly #globalEvent: EventEmitter = new EventEmitter(); + readonly #mode: ECmdWindowContextMode = ECmdWindowContextMode.normal; /** * 获取实例 + * @param options */ - static getInstance() { - if (!CmdWindowsManager.cmdWindowsManager) { - CmdWindowsManager.cmdWindowsManager = new CmdWindowsManager(); + static getInstance(options?: TCmdWindowsManagerOptions) { + if (!CmdWindowsManager.cmdWindowsManager && options) { + CmdWindowsManager.cmdWindowsManager = new CmdWindowsManager(options); } return CmdWindowsManager.cmdWindowsManager; } + constructor(options: TCmdWindowsManagerOptions) { + if (options.mode) this.#mode = options.mode; + } + /** * 获取当前windowId对应的上下文 * @param windowId @@ -26,6 +36,7 @@ export class CmdWindowsManager { const newCtx: CmdWindowContext = new CmdWindowContext({ windowId, globalEvent: this.#globalEvent, + mode: this.#mode, }); this.#ctxMap.set(windowId, newCtx); return newCtx; diff --git a/src/worker/common/cmd-template/option.ts b/src/worker/common/cmd-template/option.ts index ddb3a5a..2cf3b1f 100644 --- a/src/worker/common/cmd-template/option.ts +++ b/src/worker/common/cmd-template/option.ts @@ -14,9 +14,9 @@ export const getUnitOption = (unitOption: Partial { const indexedDataSource = new DataSource<'indexedDB'>({ diff --git a/src/worker/domains/ag/ggxxcx/ggxxcx.cmd.ts b/src/worker/domains/ag/ggxxcx/ggxxcx.cmd.ts index 4cf2e66..354a4c5 100644 --- a/src/worker/domains/ag/ggxxcx/ggxxcx.cmd.ts +++ b/src/worker/domains/ag/ggxxcx/ggxxcx.cmd.ts @@ -18,5 +18,6 @@ export default { }, description: '东方财富-个股-股票信息', remarks: '限量: 单次返回指定 symbol 的个股信息', + example: 'ggxxcx -gpmc 贵州茅台 -dw', }, }; diff --git a/src/worker/domains/ag/gpsczm/gpsczm.cmd.ts b/src/worker/domains/ag/gpsczm/gpsczm.cmd.ts index 2304648..eea393a 100644 --- a/src/worker/domains/ag/gpsczm/gpsczm.cmd.ts +++ b/src/worker/domains/ag/gpsczm/gpsczm.cmd.ts @@ -1,44 +1,4 @@ -import type { TControllerMethodCmdRouteOptions } from '@istock/iswork'; - -const getUnitOption = (unitOption: Partial = {}) => { - return { - name: '单位', - parameter: ['-dw', '--单位'], - parameterType: ['array'], - description: `设置表格单位,单位值支持(万亿|亿|千万|百万|十万|万|千|百|十),可带多个参数。 - 格式如:列名称:行名称·单位 或 *:行名称·单位 或 列名称:*·单位 或 列名称1:*·单位,列名称2:*·单位`, - default: '*:流通股本·亿,*:总市值·亿,*:流通市值·亿,*:总股本·亿', - optional: true, - choices: [], - ...unitOption, - }; -}; - -const getYYYYMMDD = (option: Partial = {}) => { - return { - name: '日期', - parameter: ['-rq', '--日期'], - parameterType: ['string'], - description: '需要查询的日期,格式:20230901', - default: '$formatDate{YYYYMMDD}', - optional: true, - choices: [], - ...option, - }; -}; - -const getYYYYMM = (option: Partial = {}) => { - return { - name: '年月', - parameter: ['-ny', '--年月'], - parameterType: ['string'], - description: '需要查询的年月,格式:202310', - default: '$formatDate{YYYYMM}', - optional: true, - choices: [], - ...option, - }; -}; +import { getUnitOption, getYYYYMMDD, getYYYYMM } from '@/worker/common'; export default { 上证股票市场总貌: { @@ -56,11 +16,12 @@ export default { }, description: '上海证券交易所-股票数据总貌', remarks: '限量: 单次返回最近交易日的股票数据总貌(当前交易日的数据需要交易所收盘后统计)', + example: 'szgpsczm -dw', }, 深证类别统计: { name: '深证类别统计', cmd: 'szlbtj', - usage: 'szlbtj [-rq <日期>]', + usage: 'szlbtj <-rq <日期>>', options: { 日期: getYYYYMMDD({ optional: false }), 单位: getUnitOption({ @@ -73,13 +34,14 @@ export default { }, description: '深圳证券交易所-市场总貌-证券类别统计', remarks: '限量: 单次返回指定 date 的市场总貌数据-证券类别统计(当前交易日的数据需要交易所收盘后统计)', + example: 'szlbtj -rq 20240424 -dw', }, 深证地区交易排序: { name: '深证地区交易排序', cmd: 'szdqjypx', usage: 'szdqjypx <-ny <年月>>', options: { - 年月: getYYYYMM(), + 年月: getYYYYMM({ optional: false }), 单位: getUnitOption({ default: '总交易额:*·千亿,股票交易额:*·千亿,基金交易额:*·千亿,债券交易额:*·千亿,占市场:*·%', }), @@ -90,6 +52,7 @@ export default { }, description: '深圳证券交易所-市场总貌-地区交易排序', remarks: '限量: 单次返回指定 date 的市场总貌数据-地区交易排序数据', + example: 'szdqjypx -ny 202403 -dw', }, 深证股票行业成交: { name: '深证股票行业成交', @@ -117,13 +80,14 @@ export default { }, description: '圳证券交易所-统计资料-股票行业成交数据', remarks: '限量: 单次返回指定 symbol 和 date 的统计资料-股票行业成交数据', + example: 'szgphycj -sjd 当月 -dw', }, 上证每日概况: { name: '上证每日概况', cmd: 'szmrgk', - usage: 'szmrgk [-rq <日期>]', + usage: 'szmrgk <-rq <日期>>', options: { - 日期: getYYYYMMDD(), + 日期: getYYYYMMDD({ optional: false }), 单位: getUnitOption({ default: '*:市价总值·千亿,*:成交量·亿,*:成交金额·亿,*:流通市值·千亿', }), @@ -135,5 +99,6 @@ export default { description: '上海证券交易所-数据-股票数据-成交概况-股票成交概况-每日股票情况', remarks: '限量: 单次返回指定日期的每日概况数据, 当前交易日数据需要在收盘后获取; 注意在 20211227(包含)之后输出格式变化', + example: 'szmrgk -rq 20240424 -dw', }, }; diff --git a/src/worker/domains/ag/hqbj/hqbj.cmd.ts b/src/worker/domains/ag/hqbj/hqbj.cmd.ts index 1c54a51..912ac3f 100644 --- a/src/worker/domains/ag/hqbj/hqbj.cmd.ts +++ b/src/worker/domains/ag/hqbj/hqbj.cmd.ts @@ -16,5 +16,6 @@ export default { }, description: '东方财富-行情报价', remarks: '限量: 单次返回指定股票的行情报价数据', + example: 'hqbj -gpmc 贵州茅台', }, }; diff --git a/src/worker/domains/ag/lsfbsj/lsfbsj.cmd.ts b/src/worker/domains/ag/lsfbsj/lsfbsj.cmd.ts index 432d60a..8c6c5b2 100644 --- a/src/worker/domains/ag/lsfbsj/lsfbsj.cmd.ts +++ b/src/worker/domains/ag/lsfbsj/lsfbsj.cmd.ts @@ -18,5 +18,6 @@ export default { description: '每个交易日 16:00 提供当日数据; 如遇到数据缺失, 请使用 ak.stock_zh_a_tick_163() 接口(注意数据会有一定差异)', // 对应AKShare描述 remarks: '限量: 单次返回最近交易日的历史分笔行情数据', // 对应AKShare提示 + example: 'lsfbsj -gpmc 贵州茅台', }, }; diff --git a/src/worker/domains/ag/lshqsj/lshqsj.cmd.ts b/src/worker/domains/ag/lshqsj/lshqsj.cmd.ts index 91f8704..d4800d0 100644 --- a/src/worker/domains/ag/lshqsj/lshqsj.cmd.ts +++ b/src/worker/domains/ag/lshqsj/lshqsj.cmd.ts @@ -66,6 +66,7 @@ export default { arguments: [], description: `东方财富-沪深京A股日频率数据; 历史数据按日频率更新, 当日收盘价请在收盘后获取`, remarks: '限量: 单次返回指定沪深京A股上市公司、指定周期和指定日期间的历史行情日频率数据', + example: 'lshqsj -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -sjzq daily -fq qfq', }, 历史行情新浪: { name: '历史行情新浪', @@ -98,6 +99,7 @@ export default { arguments: [], description: `新浪财经-沪深京A股的数据, 历史数据按日频率更新;`, remarks: '限量: 单次返回指定沪深京A股上市公司指定日期间的历史行情日频率数据, 多次获取容易封禁 IP', + example: 'lshqxl -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -fq qfq', }, 历史行情腾讯: { name: '历史行情腾讯', @@ -130,6 +132,7 @@ export default { arguments: [], description: `腾讯证券-日频-股票历史数据; 历史数据按日频率更新, 当日收盘价请在收盘后获取`, remarks: '限量: 单次返回指定沪深京 A 股上市公司、指定周期和指定日期间的历史行情日频率数据', + example: 'lshqtx -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -fq qfq', }, 分时数据新浪: { name: '分时数据新浪', @@ -157,6 +160,7 @@ export default { arguments: [], description: `新浪财经-沪深京A股股票或者指数的分时数据,目前可以获取 1, 5, 15, 30, 60 分钟的数据频率, 可以指定是否复权`, remarks: '限量: 单次返回指定股票或指数的指定频率的最近交易日的历史分时行情数据; 注意调用频率', + example: 'fssjxl -gpmc 贵州茅台 -rp 5 -fq qfq', }, 分时数据东财: { name: '分时数据东财', @@ -200,6 +204,7 @@ export default { description: `东方财富网-行情首页-沪深京 A 股-每日分时行情; 该接口只能获取近期的分时数据,注意时间周期的设置`, remarks: '限量: 单次返回指定股票、频率、复权调整和时间区间的分时数据, 其中 1 分钟数据只返回近 5 个交易日数据且不复权', + example: 'fssjdc -gpmc 贵州茅台 -ksrq 20240301 -jsrq 20240330 -rp 5 -fq qfq', }, 日内分时数据东财: { name: '日内分时数据东财', @@ -217,6 +222,7 @@ export default { arguments: [], description: `东财财富-分时数据`, remarks: '限量: 单次返回指定股票最近一个交易日的分时数据, 包含盘前数据', + example: 'rnfssjdc -gpmc 贵州茅台', }, 盘前数据: { name: '盘前数据', @@ -234,5 +240,6 @@ export default { arguments: [], description: `东方财富-股票行情-盘前数据`, remarks: '限量: 单次返回指定 symbol 的最近一个交易日的股票分钟数据, 包含盘前分钟数据', + example: 'pqsj -gpmc 贵州茅台', }, }; diff --git a/src/worker/domains/ag/lshqsj/lshqsj.controller.ts b/src/worker/domains/ag/lshqsj/lshqsj.controller.ts index 76e9ede..9e9b492 100644 --- a/src/worker/domains/ag/lshqsj/lshqsj.controller.ts +++ b/src/worker/domains/ag/lshqsj/lshqsj.controller.ts @@ -98,7 +98,7 @@ export class LshqsjController { }) async stockZhAMinute(@Payload() payload: TCmdRequest) { const { 股票代码, 日频, 复权 } = payload.options; - const query: TStockZhAMinuteQuery = { symbol: 股票代码 }; + const query: TStockZhAMinuteQuery = { symbol: withStockCodePrefix(股票代码) }; if (日频) query.period = 日频; if (复权) query.adjust = adjustRecord[复权] ?? 复权; return await this.lshqsjService.stockZhAMinute(query); diff --git a/src/worker/domains/ag/sshqsj/sshqsj.cmd.ts b/src/worker/domains/ag/sshqsj/sshqsj.cmd.ts index c60bc87..2136701 100644 --- a/src/worker/domains/ag/sshqsj/sshqsj.cmd.ts +++ b/src/worker/domains/ag/sshqsj/sshqsj.cmd.ts @@ -22,23 +22,35 @@ export default { title: '实时行情数据-东财', url: 'https://quote.eastmoney.com/sz000001.html', }, - arguments: [], + arguments: [ + { + name: '市场', + parameter: [], + parameterType: ['string'], + choices: Object.values(EDataType), + description: '市场编码', + optional: false, + }, + ], description: `东方财富网-沪深京 A股-实时行情数据`, remarks: '限量: 单次返回所有沪深京 A股上市公司的实时行情数据', + example: 'sshqsj hag', }, 实时行情新浪: { name: '实时行情新浪', cmd: 'sshqxl', + tag: '不稳定', usage: 'sshqxl', options: { 单位: getUnitOption(), }, source: { - title: '(接口不稳定)实时行情数据-新浪', + title: '实时行情数据-新浪', url: 'https://vip.stock.finance.sina.com.cn/mkt/#hs_a', }, arguments: [], description: `新浪财经-沪深京A股数据, 重复运行本函数会被新浪暂时封IP, 建议增加时间间隔`, remarks: '限量: 单次返回沪深京A股上市公司的实时行情数据', + example: 'sshqxl', }, }; diff --git a/src/worker/domains/global/chart/chart.base.service.ts b/src/worker/domains/global/chart/chart.base.service.ts index 7caa9d6..ac89a5d 100644 --- a/src/worker/domains/global/chart/chart.base.service.ts +++ b/src/worker/domains/global/chart/chart.base.service.ts @@ -14,7 +14,7 @@ export class ChartBaseService { readonly #textColor = '#958881'; #getDefaultConfig() { return { - autoFit: true, + autoFit: false, }; } @@ -151,7 +151,7 @@ export class ChartBaseService { * 饼图数据转换 */ protected getPieChartConfig(chatData: TChartData, opt: TPieOption): TChartOptions { - const { y, 类别: category, 单位: unit } = opt; + const { 纵轴: y, 类别: category, 单位: unit } = opt; if (!y) return {}; const ctx = { y, category, unit }; const chatOptions: TChartOptions = { @@ -192,7 +192,7 @@ export class ChartBaseService { * @protected */ protected getBarChartConfig(chatData: TChartData, opt: TBarOption): TChartOptions { - const { x, y, 类别: category } = opt; + const { 横轴: x, 纵轴: y, 类别: category } = opt; if (!y) return {}; // const ctx = { x, y, category, unit }; const chatOptions: TChartOptions = { @@ -215,7 +215,7 @@ export class ChartBaseService { * @protected */ protected getLineChartConfig(chatData: TChartData, opt: TLineOption): TChartOptions { - const { x, y, 类别: category } = opt; + const { 横轴: x, 纵轴: y, 类别: category } = opt; if (!y) return {}; // const ctx = { x, y, category, unit }; const chatOptions: TChartOptions = { @@ -247,7 +247,7 @@ export class ChartBaseService { }, {} ); - const { x, y1, y2 } = opt; + const { 横轴: x, 纵轴1: y1, 纵轴2: y2 } = opt; const [open, close] = y1.split(','); const [high, low] = y2.split(','); const ctx = { x, y1, y2, open, close, high, low, domainRecord }; diff --git a/src/worker/domains/global/chart/chart.cmd.ts b/src/worker/domains/global/chart/chart.cmd.ts index aa28b9b..321fdc6 100644 --- a/src/worker/domains/global/chart/chart.cmd.ts +++ b/src/worker/domains/global/chart/chart.cmd.ts @@ -1,4 +1,5 @@ -import type { TControllerMethodCmdRoute } from '@/packages/iswork'; +import type { TControllerMethodCmdRoute } from '@istock/iswork'; +import { ExampleDataBt, ExampleDataTxt, ExampleDataZxt, ExampleDataGplzt } from './example-data'; export enum EChartType { Pie = 'bt', @@ -8,10 +9,10 @@ export enum EChartType { } export type TArguments = [EChartType]; export type TOption = { - x?: string; - y?: string; - y1?: string; - y2?: string; + 横轴?: string; + 纵轴?: string; + 纵轴1?: string; + 纵轴2?: string; 过滤?: string; 类别?: string; 单位?: string; @@ -21,34 +22,34 @@ export type TOption = { export type TPieArguments = [EChartType.Pie]; export type TPieOption = { - y: string; + 纵轴: string; } & TOption; export type TBarArguments = [EChartType.Bar]; export type TBarOption = { - x: string; - y: string; + 横轴: string; + 纵轴: string; } & TOption; export type TLineArguments = [EChartType.Line]; export type TLineOption = { - x: string; - y: string; + 横轴: string; + 纵轴: string; } & TOption; export type TStockArguments = [EChartType.Stock]; export type TStockOption = { - x: string; - y1: string; - y2: string; -} & Omit; + 横轴: string; + 纵轴1: string; + 纵轴2: string; +} & Omit; const getTypeArgument = () => ({ name: '类型', parameter: [], parameterType: ['string'], description: '图表的类型', - optional: true, + optional: false, }); const getCommonOptions = () => { return { @@ -94,14 +95,16 @@ const getCommonOptions = () => { }; export const getChartCommand = (subcommand: TControllerMethodCmdRoute) => { - return { + const chartCommand: TControllerMethodCmdRoute = { name: '图表', cmd: 'tb', usage: 'tb <子命令>', description: '图表命令', - subcommand, options: {}, + subcommand, }; + if (chartCommand.subcommand) chartCommand.subcommand.usage = `${chartCommand.cmd} ${subcommand.usage}`; + return chartCommand; }; export const 饼图: TControllerMethodCmdRoute = { @@ -111,8 +114,8 @@ export const 饼图: TControllerMethodCmdRoute = { description: '把数据转换成饼图', options: { ...getCommonOptions(), - y: { - name: 'y', + 纵轴: { + name: '纵轴', parameter: ['-y', '--纵轴'], parameterType: ['string'], description: '饼图取值字段', @@ -120,6 +123,7 @@ export const 饼图: TControllerMethodCmdRoute = { }, }, arguments: [getTypeArgument()], + example: `tb bt -y 占比 -lb 产品 -sj ${JSON.stringify(ExampleDataBt)}`, }; export const 条形图 = { @@ -130,15 +134,15 @@ export const 条形图 = { description: '把数据转换成条形图', options: { ...getCommonOptions(), - x: { - name: 'x', + 横轴: { + name: '横轴', parameter: ['-x', '--横轴'], parameterType: ['string'], description: '条形图横轴取值字段', optional: false, }, - y: { - name: 'y', + 纵轴: { + name: '纵轴', parameter: ['-y', '--纵轴'], parameterType: ['string'], description: '条形图纵轴取值字段', @@ -146,6 +150,7 @@ export const 条形图 = { }, }, arguments: [getTypeArgument()], + example: `tb txt -x 年报 -y 净利润(亿元) -sj ${JSON.stringify(ExampleDataTxt)}`, }; export const 折线图 = { @@ -156,15 +161,15 @@ export const 折线图 = { description: '把数据转换成折线图', options: { ...getCommonOptions(), - x: { - name: 'x', + 横轴: { + name: '横轴', parameter: ['-x', '--横轴'], parameterType: ['string'], description: '折线图横轴取值字段', optional: false, }, - y: { - name: 'y', + 纵轴: { + name: '纵轴', parameter: ['-y', '--纵轴'], parameterType: ['string'], description: '折线图纵轴取值字段', @@ -172,6 +177,7 @@ export const 折线图 = { }, }, arguments: [getTypeArgument()], + example: `tb zxt -x 年报 -y 净利润(亿元) -sj ${JSON.stringify(ExampleDataZxt)}`, }; export const 股票蜡烛图 = { @@ -182,22 +188,22 @@ export const 股票蜡烛图 = { description: '把数据转换成股票蜡烛图', options: { ...getCommonOptions(), - x: { - name: 'x', + 横轴: { + name: '横轴', parameter: ['-x', '--横轴'], parameterType: ['string'], description: '蜡烛图横轴取值字段', optional: false, }, - y1: { - name: 'y1', + 纵轴1: { + name: '纵轴1', parameter: ['-y1', '--纵轴1'], parameterType: ['string'], description: '设置蜡烛图纵轴开盘价收盘价的取值字段,如:开盘价,收盘价', optional: false, }, - y2: { - name: 'y2', + 纵轴2: { + name: '纵轴2', parameter: ['-y2', '--纵轴2'], parameterType: ['string'], description: '设置蜡烛图纵轴最高价最低价的取值字段,如:最高价,最低价', @@ -205,11 +211,12 @@ export const 股票蜡烛图 = { }, }, arguments: [getTypeArgument()], + example: `tb gplzt -x 日期 -y1 开盘,收盘 -y2 最高,最低 -sj ${JSON.stringify(ExampleDataGplzt)}`, }; export default { - 饼图, - 条形图, - 折线图, - 股票蜡烛图, + 饼图: getChartCommand(饼图), + 条形图: getChartCommand(条形图), + 折线图: getChartCommand(折线图), + 股票蜡烛图: getChartCommand(股票蜡烛图), }; diff --git a/src/worker/domains/global/chart/chart.controller.ts b/src/worker/domains/global/chart/chart.controller.ts index 0f46a92..0f09527 100644 --- a/src/worker/domains/global/chart/chart.controller.ts +++ b/src/worker/domains/global/chart/chart.controller.ts @@ -11,7 +11,7 @@ import type { TStockOption, TStockArguments, } from './chart.cmd'; -import { 饼图, 条形图, 折线图, 股票蜡烛图, getChartCommand, EChartType } from './chart.cmd'; +import cmd, { EChartType } from './chart.cmd'; type TViewChartPiePayload = TCmdTablePipeRequest | TCmdRequest; type TViewChartBarPayload = TCmdTablePipeRequest | TCmdRequest; @@ -26,7 +26,7 @@ type TViewChartStockPayload = export class ChartController { constructor(private readonly chartService: ChartService) {} - @CmdRoute(getChartCommand(饼图)) + @CmdRoute(cmd.饼图) @Method('viewPieChart') @Component('ShChart') async viewPieChart(@Payload() payload: TViewChartPiePayload) { @@ -38,7 +38,7 @@ export class ChartController { return { options }; } - @CmdRoute(getChartCommand(条形图)) + @CmdRoute(cmd.条形图) @Method('viewBarChart') @Component('ShChart') async viewBarChart(@Payload() payload: TViewChartBarPayload) { @@ -50,7 +50,7 @@ export class ChartController { return { options }; } - @CmdRoute(getChartCommand(折线图)) + @CmdRoute(cmd.折线图) @Method('viewLineChart') @Component('ShChart') async viewLineChart(@Payload() payload: TViewChartLinePayload) { @@ -62,7 +62,7 @@ export class ChartController { return { options }; } - @CmdRoute(getChartCommand(股票蜡烛图)) + @CmdRoute(cmd.股票蜡烛图) @Method('viewStockChart') @Component('ShChart') async viewStockChart(@Payload() payload: TViewChartStockPayload) { diff --git a/src/worker/domains/global/chart/chart.service.ts b/src/worker/domains/global/chart/chart.service.ts index f31029c..adac231 100644 --- a/src/worker/domains/global/chart/chart.service.ts +++ b/src/worker/domains/global/chart/chart.service.ts @@ -49,16 +49,16 @@ export class ChartService extends ChartBaseService { }; }); } - if (opt.y && type === EChartType.Pie) { + if (opt.纵轴 && type === EChartType.Pie) { config = this.getPieChartConfig(data, opt as TPieOption); } - if (opt.x && opt.y && type === EChartType.Bar) { + if (opt.横轴 && opt.纵轴 && type === EChartType.Bar) { config = this.getBarChartConfig(data, opt as TBarOption); } - if (opt.x && opt.y && type === EChartType.Line) { + if (opt.横轴 && opt.纵轴 && type === EChartType.Line) { config = this.getLineChartConfig(data, opt as TLineOption); } - if (opt.x && opt.y1 && opt.y2 && type === EChartType.Stock) { + if (opt.横轴 && opt.纵轴1 && opt.纵轴2 && type === EChartType.Stock) { config = this.getStockChartConfig(data, opt as TStockOption); } return { ...config, ...(opt.配置 ?? {}) }; diff --git a/src/worker/domains/global/chart/example-data.ts b/src/worker/domains/global/chart/example-data.ts new file mode 100644 index 0000000..c665903 --- /dev/null +++ b/src/worker/domains/global/chart/example-data.ts @@ -0,0 +1,20 @@ +export const ExampleDataBt = [ + { 产品: '茅台酒', 占比: 0.8408 }, + { 产品: '其它系列酒', 占比: 0.137 }, + { 产品: '其它业务', 占比: 0.0222 }, +]; +export const ExampleDataTxt = [ + { 年报: '2019年报', '净利润(亿元)': 412.06, 净利润同比增长: 0.1705 }, + { 年报: '2020年报', '净利润(亿元)': 466.97, 净利润同比增长: 0.1333 }, + { 年报: '2021年报', '净利润(亿元)': 524.6, 净利润同比增长: 0.1234 }, + { 年报: '2022年报', '净利润(亿元)': 627.17, 净利润同比增长: 0.1955 }, + { 年报: '2023年报', '净利润(亿元)': 747.34, 净利润同比增长: 0.1916 }, +]; +export const ExampleDataZxt = ExampleDataTxt; +export const ExampleDataGplzt = [ + { 日期: '2024-04-15T00:00:00.000', 开盘: 1635.01, 收盘: 1672.98, 最高: 1675.61, 最低: 1634.98 }, + { 日期: '2024-04-16T00:00:00.000', 开盘: 1665.49, 收盘: 1670, 最高: 1679.56, 最低: 1659 }, + { 日期: '2024-04-17T00:00:00.000', 开盘: 1668, 收盘: 1667, 最高: 1675.2, 最低: 1658 }, + { 日期: '2024-04-18T00:00:00.000', 开盘: 1659.01, 收盘: 1670.78, 最高: 1682.98, 最低: 1658.18 }, + { 日期: '2024-04-19T00:00:00.000', 开盘: 1660.78, 收盘: 1646.64, 最高: 1668.5, 最低: 1641.28 }, +]; diff --git a/src/worker/domains/global/cmd-route/cmd-route.cmd.json b/src/worker/domains/global/cmd-route/cmd-route.cmd.json index 9f03c71..552f7db 100644 --- a/src/worker/domains/global/cmd-route/cmd-route.cmd.json +++ b/src/worker/domains/global/cmd-route/cmd-route.cmd.json @@ -15,6 +15,7 @@ } }, "description": "查找当前域下命令", - "remarks": "" + "remarks": "", + "example": "mlcz lshq -mc 历史" } } diff --git a/src/worker/domains/global/cmd-route/cmd-route.controller.ts b/src/worker/domains/global/cmd-route/cmd-route.controller.ts index 1f75046..de195cf 100644 --- a/src/worker/domains/global/cmd-route/cmd-route.controller.ts +++ b/src/worker/domains/global/cmd-route/cmd-route.controller.ts @@ -36,7 +36,7 @@ export class CmdRouteController { name: cmdName, }); return { - list: cmdRoutes, + list: this.cmdRouteService.mergeSubcommands(cmdRoutes), }; } } diff --git a/src/worker/domains/global/cmd-route/cmd-route.model.ts b/src/worker/domains/global/cmd-route/cmd-route.model.ts index 2778326..9b56389 100644 --- a/src/worker/domains/global/cmd-route/cmd-route.model.ts +++ b/src/worker/domains/global/cmd-route/cmd-route.model.ts @@ -48,6 +48,9 @@ export class CmdRouteModel extends BaseModel { @Column() arguments?: TControllerMethodCmdRouteOptions[]; + @Column() + example?: string; + @Column() updateDate?: Date; diff --git a/src/worker/domains/global/cmd-route/cmd-route.service.ts b/src/worker/domains/global/cmd-route/cmd-route.service.ts index 7bfb68e..88b7482 100644 --- a/src/worker/domains/global/cmd-route/cmd-route.service.ts +++ b/src/worker/domains/global/cmd-route/cmd-route.service.ts @@ -46,23 +46,21 @@ export class CmdRouteService { mergeSubcommands(list: Array>): TResponseCmdRoute[] { const record: Record = {}; list.forEach((item) => { - if (!record[item.cmd]) { - record[item.cmd] = { - ...item, - subcommand: item.subcommand - ? [{ ...item.subcommand, domainName: item.domainName, route: item.route, subcommand: [] }] - : [], - }; - return; - } - if (record[item.cmd] && item.subcommand) { - if (!record[item.cmd].subcommand) record[item.cmd].subcommand = []; + if (record[item.cmd]) { + if (!item.subcommand) return; record[item.cmd].subcommand?.push({ ...item.subcommand, domainName: item.domainName, route: item.route, subcommand: [], }); + } else { + record[item.cmd] = { + ...item, + subcommand: item.subcommand + ? [{ ...item.subcommand, domainName: item.domainName, route: item.route, subcommand: [] }] + : [], + }; } }); return Object.values(record); @@ -134,6 +132,7 @@ export class CmdRouteService { description: cmdRouteMetadata.description, subcommand: cmdRouteMetadata.subcommand, arguments: cmdRouteMetadata.arguments, + example: cmdRouteMetadata.example, route: [controllerAlias, methodAlias], domainName, domainViewName, diff --git a/src/worker/domains/global/domain/domain.cmd.json b/src/worker/domains/global/domain/domain.cmd.json index 236c671..71e71e6 100644 --- a/src/worker/domains/global/domain/domain.cmd.json +++ b/src/worker/domains/global/domain/domain.cmd.json @@ -23,12 +23,14 @@ "optional": true, "choices": [] } - } + }, + "example": "yycz -gl A股 -sl 1" }, "应用进入": { "name": "应用进入", "cmd": "yyjr", "usage": "yyjr <应用名或应用显示名称>", - "description": "进入指定应用" + "description": "进入指定应用", + "example": "yyjr A股" } } diff --git a/src/worker/domains/global/domain/domain.controller.ts b/src/worker/domains/global/domain/domain.controller.ts index 99bc67e..67e2355 100644 --- a/src/worker/domains/global/domain/domain.controller.ts +++ b/src/worker/domains/global/domain/domain.controller.ts @@ -10,6 +10,7 @@ import { Component, type TCmdpMeta, } from '@istock/iswork'; +import { isString, isRegExp } from '@istock/util'; import { DomainService } from './domain.service'; import type { DomainModel } from './domain.model'; @@ -29,19 +30,29 @@ export class DomainController { @Component('ShList') async getList( ctx: ApplicationContext, - @CmdRouteOptions(cmdJson.应用查找.options.过滤) _filter?: string | RegExp, - @CmdRouteOptions(cmdJson.应用查找.options.数量) _limit?: number + @CmdRouteOptions(cmdJson.应用查找.options.过滤) filter?: string | RegExp, + @CmdRouteOptions(cmdJson.应用查找.options.数量) limit?: number ) { - console.log(_filter, _limit); const result = await this.domainService.find(ctx); - return { - display: 'inline', - list: result.map((item) => { + const list = result + .map((item) => { return { title: `${item.viewName}(${item.name})`, link: '', }; - }), + }) + .filter((item) => { + if (isString(filter)) { + return item.title.indexOf(filter) !== 1; + } + if (isRegExp(filter)) { + return filter.test(item.title); + } + return item; + }); + return { + display: 'inline', + list: limit ? list.slice(0, limit) : list, }; } diff --git a/src/worker/domains/global/history/history.cmd.json b/src/worker/domains/global/history/history.cmd.json index df31054..9419dd7 100644 --- a/src/worker/domains/global/history/history.cmd.json +++ b/src/worker/domains/global/history/history.cmd.json @@ -24,6 +24,7 @@ } }, "description": "删除当前历史命令数据", - "remarks": "" + "remarks": "", + "example": "lssc -sl 1 -ms 0" } } diff --git a/src/worker/domains/global/recommend/recommend.service.ts b/src/worker/domains/global/recommend/recommend.service.ts index 9f3792a..72399f0 100644 --- a/src/worker/domains/global/recommend/recommend.service.ts +++ b/src/worker/domains/global/recommend/recommend.service.ts @@ -217,7 +217,7 @@ export class RecommendService { historys: Array>, cmdRoutes: TResponseCmdRoute[] ): TRecommendData { - const originalInput = payload.input.replace(/\n$/, ''); + const originalInput = payload.input.trim(); // 解析成tokens,然后找到最后一个命令 const allTokens = this.#tokenizer.parse(originalInput, false); const cmdTokenIndex = allTokens.findLastIndex((token) => token.type === ETokenType.command); diff --git a/src/worker/domains/global/user/user.cmd.json b/src/worker/domains/global/user/user.cmd.json index 27b9421..8f1bbd1 100644 --- a/src/worker/domains/global/user/user.cmd.json +++ b/src/worker/domains/global/user/user.cmd.json @@ -1,6 +1,7 @@ { "用户登录": { "name": "用户登录", + "tag": "暂未实现", "cmd": "yhdl", "usage": "yhdl [-zh <用户名|手机号>] [-mm <密码>]", "description": "登录指定用户账号", @@ -21,6 +22,7 @@ "optional": false, "choices": [] } - } + }, + "example": "yhdl -zh 15888888888 -mm 123456" } } diff --git a/src/worker/domains/root.domain.ts b/src/worker/domains/root.domain.ts index 01f20a7..f8f23c7 100644 --- a/src/worker/domains/root.domain.ts +++ b/src/worker/domains/root.domain.ts @@ -2,12 +2,13 @@ import { Global, Domain } from '@istock/iswork'; import { GlobalDomain } from './global/global.domain'; import { InputDomain } from './input/input.domain'; import { AgDomain } from './ag/ag.domain'; +import { WzdhDomain } from './wzdh/wzdh.domain'; @Global() @Domain({ name: 'root', viewName: '根', - imports: [GlobalDomain, InputDomain, AgDomain], + imports: [GlobalDomain, InputDomain, AgDomain, WzdhDomain], providers: [], }) export class RootDomain {} diff --git a/src/worker/domains/wzdh/cj/cj.cmd.ts b/src/worker/domains/wzdh/cj/cj.cmd.ts new file mode 100644 index 0000000..393419c --- /dev/null +++ b/src/worker/domains/wzdh/cj/cj.cmd.ts @@ -0,0 +1,39 @@ +import { type TControllerMethodCmdRoute } from '@istock/iswork'; + +const cmdRoute: TControllerMethodCmdRoute = { + name: '财经导航', + cmd: 'cjdh', + usage: 'cjdh [标签]', + options: {}, + description: '', + remarks: '', + arguments: [ + { + name: '标签', + parameter: [], + parameterType: ['string'], + description: '财经导航标签', + optional: true, + choices: [ + '门户', + '报纸', + '杂志', + '新媒体', + '官方', + '债券', + '理财', + '期货', + '黄金', + '工具', + '宏观数据', + '市场数据', + '研报', + '选股器', + ], + }, + ], + example: 'cjdh 门户', +}; +export default { + cmdRoute, +}; diff --git a/src/worker/domains/wzdh/cj/cj.controller.ts b/src/worker/domains/wzdh/cj/cj.controller.ts new file mode 100644 index 0000000..f340165 --- /dev/null +++ b/src/worker/domains/wzdh/cj/cj.controller.ts @@ -0,0 +1,56 @@ +import { CmdRoute, CmdRouteArguments, Controller, Method, Component } from '@istock/iswork'; +import { CjService } from './cj.service'; +import cmdJson from './cj.cmd'; + +@Controller({ + alias: 'cj', +}) +export class CjController { + constructor(private readonly cjService: CjService) {} + + @CmdRoute(cmdJson.cmdRoute) + @Method({ + alias: cmdJson.cmdRoute.cmd, + }) + @Component('ShNavList') + async getSiteList(@CmdRouteArguments(0) tag?: string) { + const result = await this.cjService.getSiteList(tag); + if (tag) { + return { + list: [ + { + title: tag, + children: result.map((item) => { + return { + title: item.title, + link: item.url, + }; + }), + }, + ], + }; + } + let tagIndex = 0; + const list: Array<{ title: string; children: Array<{ title: string; link: string }> }> = []; + result.reduce>((record, data) => { + if (record[data.tag] === undefined) { + record[data.tag] = tagIndex; + tagIndex++; + list.push({ + title: data.tag, + children: [{ title: data.title, link: data.url }], + }); + } else { + const index = record[data.tag]; + list[index].children.push({ + title: data.title, + link: data.url, + }); + } + return record; + }, {}); + return { + list, + }; + } +} diff --git a/src/worker/domains/wzdh/cj/cj.model.ts b/src/worker/domains/wzdh/cj/cj.model.ts new file mode 100644 index 0000000..56e576f --- /dev/null +++ b/src/worker/domains/wzdh/cj/cj.model.ts @@ -0,0 +1,11 @@ +import { BaseModel, Model } from '@istock/iswork'; + +@Model('cj') +export class CjModel extends BaseModel { + title!: string; + url!: string; + tag!: string; + updateDate?: Date; + createDate?: Date; + rowStatus?: number; +} diff --git a/src/worker/domains/wzdh/cj/cj.service.ts b/src/worker/domains/wzdh/cj/cj.service.ts new file mode 100644 index 0000000..2c34355 --- /dev/null +++ b/src/worker/domains/wzdh/cj/cj.service.ts @@ -0,0 +1,34 @@ +import { Injectable, type IQueryParamsOptions, type TModelData } from '@istock/iswork'; +import { CjModel } from './cj.model'; + +@Injectable() +export class CjService { + #isInit: boolean = false; + async initSiteList() { + try { + const { default: list } = await import('./data'); + const promises: Array> = []; + list.forEach((data) => { + promises.push(CjModel.createOne({ id: CjModel.generateId.nextId(), ...data })); + }); + await Promise.all(promises); + // eslint-disable-next-line no-useless-catch + } catch (e) { + throw e; + } finally { + this.#isInit = true; + } + } + + async getSiteList(tag?: string): Promise>> { + if (!this.#isInit) { + await new Promise((resolve) => setTimeout(resolve, 20)); + return await this.getSiteList(tag); + } + const query: IQueryParamsOptions = {}; + if (tag) { + query.filter = ['tag', 'eq', tag]; + } + return await CjModel.query(query); + } +} diff --git a/src/worker/domains/wzdh/cj/data.ts b/src/worker/domains/wzdh/cj/data.ts new file mode 100644 index 0000000..3da9d9a --- /dev/null +++ b/src/worker/domains/wzdh/cj/data.ts @@ -0,0 +1,528 @@ +export type TSiteInfo = { + title: string; + url: string; + tag: string; +}; + +const 门户 = [ + { + title: '新浪财经', + url: 'http://finance.sina.com.cn/', + }, + { + title: '和讯网', + url: 'http://www.hexun.com/', + }, + { + title: '网易财经', + url: 'http://money.163.com/', + }, + { + title: '搜狐财经', + url: 'http://business.sohu.com/', + }, + { + title: '凤凰财经', + url: 'http://finance.ifeng.com/', + }, + { + title: '东方财富网', + url: 'http://www.eastmoney.com/', + }, + { + title: '全景网', + url: 'http://www.p5w.net/', + }, + { + title: '新华08', + url: 'http://www.xinhua08.com/', + }, + { + title: '中财网', + url: 'http://www.cfi.net.cn/', + }, + { + title: '腾讯财经', + url: 'http://finance.qq.com/', + }, + { + title: '金融界', + url: 'http://www.jrj.com.cn/', + }, + { + title: '中金在线', + url: 'http://www.cnfol.com/', + }, + { + title: '阿斯达克', + url: 'http://www.aastocks.com/', + }, + { + title: '证券之星', + url: 'http://www.stockstar.com/', + }, + { + title: '新华网', + url: 'http://xinhuanet.com/', + }, + { + title: '人民网', + url: 'http://people.com.cn/', + }, + { + title: '投资界', + url: 'http://www.pedaily.cn/', + }, + { + title: '投资中国', + url: 'http://www.chinaventure.com.cn/', + }, + { + title: '同花顺', + url: 'http://www.10jqka.com.cn/', + }, + { + title: '英为财情Investing.com', + url: 'https://cn.investing.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '门户' }; +}); + +const 报纸 = [ + { + title: '中国证券报', + url: 'http://www.cs.com.cn/', + }, + { + title: '上海证券报', + url: 'http://www.cnstock.com/', + }, + { + title: '证券时报', + url: 'http://www.stcn.com/', + }, + { + title: '第一财经', + url: 'http://www.yicai.com/', + }, + { + title: '经济观察报', + url: 'http://www.eeo.com.cn/', + }, + { + title: '每日经济新闻', + url: 'http://www.nbd.com.cn/', + }, + { + title: '中国经营报', + url: 'http://www.cb.com.cn/', + }, + { + title: '期货日报', + url: 'http://www.qhrb.com.cn/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '报纸' }; +}); + +const 杂志 = [ + { + title: '财新网', + url: 'http://www.caixin.com/', + }, + { + title: '财经网', + url: 'http://www.caijing.com.cn/', + }, + { + title: '理财周刊', + url: 'http://www.amoney.com.cn/', + }, + { + title: '新财富', + url: 'http://www.xcf.cn/', + }, + { + title: '中国企业家', + url: 'http://www.iceo.com.cn/', + }, + { + title: '环球企业家', + url: 'http://www.gemag.com.cn/', + }, + { + title: '商业价值', + url: 'http://content.businessvalue.com.cn/', + }, + { + title: '创业邦', + url: 'http://www.cyzone.cn/', + }, + { + title: '创业家', + url: 'http://www.chuangyejia.com/', + }, + { + title: '证券市场红周刊', + url: 'http://www.hongzhoukan.com/', + }, + { + title: '第一财经周刊', + url: 'http://www.cbnweek.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '杂志' }; +}); + +const 新媒体 = [ + { + title: '华尔街见闻', + url: 'http://wallstreetcn.com/', + }, + { + title: '虎嗅网', + url: 'http://www.huxiu.com/', + }, + { + title: 'PingWest', + url: 'http://www.pingwest.com/', + }, + { + title: '36氪', + url: 'http://www.36kr.com/', + }, + { + title: 'DoNews', + url: 'http://www.donews.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '新媒体' }; +}); + +const 官方 = [ + { + title: '中国证监会', + url: 'http://www.csrc.gov.cn/', + }, + { + title: '中国银保监会', + url: 'http://www.cbirc.gov.cn/cn/view/pages/index/index.html', + }, + { + title: '深交所', + url: 'http://www.szse.cn/', + }, + { + title: '上交所', + url: 'http://www.sse.com.cn/', + }, + { + title: '港交所', + url: 'http://www.hkex.com.hk/chi/index_c.htm', + }, + { + title: '国家统计局', + url: 'http://www.stats.gov.cn/', + }, + { + title: '中国人民银行', + url: 'http://www.pbc.gov.cn/', + }, + { + title: '发改委', + url: 'http://www.sdpc.gov.cn/', + }, + { + title: '商务部', + url: 'http://www.mofcom.gov.cn/', + }, + { + title: '中国海关', + url: 'http://www.customs.gov.cn/', + }, + { + title: '国资委', + url: 'http://www.sasac.gov.cn/', + }, + { + title: '住建部', + url: 'http://www.mohurd.gov.cn/', + }, + { + title: '中证指数公司', + url: 'http://www.csindex.com.cn/zh-CN', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '官方' }; +}); + +const 债券 = [ + { + title: '中国债券信息网', + url: 'https://www.chinabond.com.cn/', + }, + { + title: '上证债券信息网', + url: 'http://bond.sse.com.cn/fisp/index.html', + }, + { + title: '和讯债券', + url: 'http://bond.hexun.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '债券' }; +}); + +const 理财 = [ + { + title: '好买基金网', + url: 'http://www.howbuy.com/', + }, + { + title: '私募排排网', + url: 'http://www.simuwang.com/', + }, + { + title: '和讯理财', + url: 'http://money.hexun.com/', + }, + { + title: '中国理财网', + url: 'https://www.chinawealth.com.cn/zzlc/index.shtml', + }, + { + title: '和讯理财客', + url: 'https://www.licaike.com/index?knownChannel=xueqiu', + }, + { + title: '格上理财', + url: 'https://www.licai.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '理财' }; +}); + +const 期货 = [ + { + title: '中金期货在线', + url: 'http://futures.cnfol.com/', + }, + { + title: '和讯期货', + url: 'http://futures.hexun.com/', + }, + { + title: '99期货', + url: 'http://www.99qh.com/', + }, + { + title: '生意社', + url: 'http://www.100ppi.com/', + }, + { + title: '股指期货', + url: 'https://cn.investing.com/indices/indices-futures', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '期货' }; +}); + +const 黄金 = [ + { + title: '和讯黄金', + url: 'http://gold.hexun.com/', + }, + { + title: '黄金网', + url: 'http://gold.cnfol.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '黄金' }; +}); + +const 工具 = [ + { + title: '巨潮资讯', + url: 'http://www.cninfo.com.cn/', + }, + { + title: '雪球选股器', + url: 'https://xueqiu.com/stock/screener', + }, + { + title: '可转债产品行情', + url: 'https://xueqiu.com/hq/detail?market=CN&first_name=3&second_name=0&type=convert&source=convert', + }, + { + title: '回购产品行情', + url: 'https://xueqiu.com/hq/detail?market=CN&first_name=3&second_name=3&type=repurchase&source=repurchase', + }, + { + title: '东方财富数据中心', + url: 'http://data.eastmoney.com/cjsj/cpi.html', + }, + { + title: '国债收益率', + url: 'https://cn.investing.com/rates-bonds/china-government-bonds', + }, + { + title: '资金流向', + url: 'http://vip.stock.finance.sina.com.cn/moneyflow/', + }, + { + title: '新股申购:A股', + url: 'https://xueqiu.com/hq/cnew?market=CN&first_name=0&second_name=4', + }, + { + title: '新股申购:美股', + url: 'https://xueqiu.com/hq/detail?market=US&first_name=2&second_name=4&source=new_us&type=unlisted', + }, + { + title: '新股申购:港股', + url: 'https://xueqiu.com/hq/detail?market=HK&first_name=1&second_name=2&type=unlisted&order=desc&orderBy=percent&source=new_hk', + }, + { + title: 'StockQ', + url: 'http://stockq.cn/', + }, + { + title: '巨潮资讯', + url: 'http://www.cninfo.com.cn/', + }, + { + title: '财经日历', + url: 'http://www.fx678.com/indexs/index.shtml', + }, + { + title: '百度指数', + url: 'http://index.baidu.com/', + }, + { + title: '解禁股查询', + url: 'http://data.eastmoney.com/dxf/default.html', + }, + { + title: '货币基金产品行情', + url: 'https://xueqiu.com/hq/detail?market=CN&first_name=4&second_name=1&parentType=1&type=12&source=fund_currency', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '工具' }; +}); + +const 宏观数据 = [ + { + title: 'GDP', + url: 'http://value500.com/GDP.html', + }, + { + title: 'CPI/PPI', + url: 'http://value500.com/CPI.asp', + }, + { + title: '国债收益率', + url: 'https://cn.investing.com/rates-bonds/china-government-bonds', + }, + { + title: '东方财富数据中心', + url: 'http://data.eastmoney.com/cjsj/cpi.html', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '宏观数据' }; +}); + +const 市场数据 = [ + { + title: '市场 、行业市盈率', + url: 'http://www.cnindex.com.cn/syl.html', + }, + { + title: '大宗交易', + url: 'http://stock.sohu.com/dazongjiaoyi/', + }, + { + title: '资金流向', + url: 'https://vip.stock.finance.sina.com.cn/moneyflow/', + }, + { + title: '沪深内部交易', + url: 'https://xueqiu.com/hq/insider?market=CN&first_name=0&second_name=7', + }, + { + title: '新股申购', + url: 'https://xueqiu.com/hq/cnew?market=CN&first_name=0&second_name=4', + }, + { + title: '新基金发行', + url: 'http://jingzhi.funds.hexun.com/dt/faxing.htm', + }, + { + title: 'StockQ', + url: 'http://stockq.cn/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '市场数据' }; +}); + +const 研报 = [ + { + title: '萝卜投研', + url: 'https://robo.datayes.com/v2/selection', + }, + { + title: '迈博汇金', + url: 'http://www.hibor.com.cn/', + }, + { + title: '股票报告网', + url: 'https://www.nxny.com/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '研报' }; +}); + +const 选股器 = [ + { + title: '雪球筛选器', + url: 'https://xueqiu.com/stock/screener', + }, + { + title: '东方财富选股器', + url: 'http://data.eastmoney.com/xuangu/', + }, + { + title: '中财网数据引擎', + url: 'http://data.cfi.cn/cfidata.aspx', + }, + { + title: '可转债', + url: 'https://xueqiu.com/hq/detail?market=CN&first_name=3&second_name=0&type=convert&source=convert', + }, + { + title: 'i问财', + url: 'http://www.iwencai.com/', + }, + { + title: '英为财情选股器', + url: 'https://cn.investing.com/stock-screener/', + }, +].map((item): TSiteInfo => { + return { ...item, tag: '选股器' }; +}); + +export default [ + ...门户, + ...报纸, + ...杂志, + ...新媒体, + ...官方, + ...债券, + ...理财, + ...期货, + ...黄金, + ...工具, + ...宏观数据, + ...市场数据, + ...研报, + ...选股器, +]; diff --git a/src/worker/domains/wzdh/wzdh.domain.ts b/src/worker/domains/wzdh/wzdh.domain.ts new file mode 100644 index 0000000..155d8c7 --- /dev/null +++ b/src/worker/domains/wzdh/wzdh.domain.ts @@ -0,0 +1,18 @@ +import { Domain } from '@istock/iswork'; +import { CjController } from './cj/cj.controller'; +import { CjService } from './cj/cj.service'; +import { ScopeError } from '@/packages/util'; + +@Domain({ + name: 'wzdh', + viewName: '网站导航', + providers: [CjService], + controllers: [CjController], +}) +export class WzdhDomain { + constructor(private readonly cjService: CjService) { + this.cjService.initSiteList().catch((e) => { + throw new ScopeError(`global.${this.constructor.name}`, `初始化财经站点列表数据失败:${e.message}`); + }); + } +} diff --git a/tsconfig.json b/tsconfig.json index 72a472e..181b10b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,6 +36,6 @@ "@domains/*": ["src/worker/domains/*"] } }, - "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], + "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte", "vite.config.ts"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/vite.config.ts b/vite.config.ts index 3e0dea5..7e74344 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -37,6 +37,7 @@ export default ({ mode }) => { }, ], worker: { + format: 'es', plugins: () => [tsPlugin], }, resolve: { -- Gitee