diff --git a/.github/workflows/vuepress-deploy.yml b/.github/workflows/vuepress-deploy.yml
index 1320fc3..4595426 100644
--- a/.github/workflows/vuepress-deploy.yml
+++ b/.github/workflows/vuepress-deploy.yml
@@ -3,6 +3,7 @@ on: [push]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
+ if: github.repository == 'SocialSisterYi/bilibili-API-collect'
steps:
- name: Checkout
uses: actions/checkout@master
diff --git a/.gitignore b/.gitignore
index 6e13680..f8c09a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@ mkdocs/html/
/.vuepress/dist/
/node_modules/
.idea/
-.vscode/
\ No newline at end of file
+.vscode/
+.DS_Store
diff --git a/.vuepress/client.js b/.vuepress/client.js
new file mode 100644
index 0000000..0509372
--- /dev/null
+++ b/.vuepress/client.js
@@ -0,0 +1,8 @@
+import { defineClientConfig } from '@vuepress/client'
+import Layout from './theme/layouts/Layout.vue'
+
+export default defineClientConfig({
+ layouts: {
+ Layout,
+ },
+})
diff --git a/.vuepress/config.js b/.vuepress/config.js
index cd61a73..48c1dd2 100644
--- a/.vuepress/config.js
+++ b/.vuepress/config.js
@@ -1,38 +1,52 @@
-module.exports = {
- base: "/bilibili-API-collect/",
- title: "BAC Document",
- description: "社区开源的第三方哔哩哔哩 API 文档",
- head: [
- ['link', { rel: 'icon', href: './logo2.jpg' }]
- ],
- locales: {
- '/': {
- lang: 'zh-CN',
- },
+import { defaultTheme, defineUserConfig } from "vuepress";
+import markdownItTaskLists from "markdown-it-task-lists";
+import { copyCodePlugin } from "vuepress-plugin-copy-code2";
+import { searchPlugin } from "@vuepress/plugin-search";
+
+export default defineUserConfig({
+ base: "/bilibili-API-collect/",
+ lang: "zh-CN",
+ title: "BAC Document",
+ description: "社区开源的第三方哔哩哔哩 API 文档",
+ head: [["link", { rel: "icon", href: "/logo2.jpg" }]],
+ locales: {
+ "/": {
+ lang: "zh-CN",
},
- themeConfig: {
- logo: './logo2.jpg',
- nav: [
- {text: '首页', link: '/'},
- {text: '目录', link: '/#🍴目录'},
- {text: '贡献指南', link: '/CONTRIBUTING.html'},
- {
- text: '相关社群',
- items: [
- {text: 'QQ交流群', link: 'https://jq.qq.com/?_wv=1027&k=s1M0LCcu'},
- {text: 'Telegram交流群', link: 'https://t.me/bilibili_API_collect_community'}
- ]
- },
- {text: 'GitHub', link: 'https://github.com/SocialSisterYi/bilibili-API-collect'},
+ },
+ theme: defaultTheme({
+ logo: "/logo2.jpg",
+ navbar: [
+ { text: "首页", link: "/" },
+ { text: "目录", link: "/#🍴目录" },
+ { text: "贡献指南", link: "/CONTRIBUTING.html" },
+ {
+ text: "相关社群",
+ children: [
+ {
+ text: "QQ交流群(综合技术交流)",
+ link: "http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2rRJXK3zgU5yi3e_4rNLeJYUjMLzw_Jj&authKey=L%2FN3EfZXo3QFjEuHq4ifTgh%2F384UmrYpjl7dbYPhYHtznhfJWxkymxQKObQunmEQ&noverify=0&group_code=560304737",
+ },
+ {
+ text: "Telegram交流群(Github Bot推送)",
+ link: "https://t.me/bilibili_API_collect_community",
+ },
],
- sidebar: 'auto',
- smoothScroll: true
- },
- plugins: [
- '@vuepress/back-to-top',
+ },
],
- markdown: {
- lineNumbers: true,
- plugins: ['task-lists']
- }
-}
+ sidebar: "auto",
+ repo: "https://github.com/SocialSisterYi/bilibili-API-collect",
+ docsBranch: "master",
+ editLinkText: "在 GitHub 上编辑此页",
+ colorMode: "auto"
+ }),
+ plugins: [copyCodePlugin({}), searchPlugin({})],
+ markdown: {
+ code: {
+ lineNumbers: true,
+ },
+ },
+ extendsMarkdown: (md) => {
+ md.use(markdownItTaskLists);
+ },
+});
diff --git a/.vuepress/theme/index.js b/.vuepress/theme/index.js
deleted file mode 100644
index 5baed34..0000000
--- a/.vuepress/theme/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- extend: '@vuepress/theme-default'
-}
\ No newline at end of file
diff --git a/.vuepress/theme/layouts/Layout.vue b/.vuepress/theme/layouts/Layout.vue
index 2b29082..8e1f791 100644
--- a/.vuepress/theme/layouts/Layout.vue
+++ b/.vuepress/theme/layouts/Layout.vue
@@ -1,21 +1,18 @@
-
-
\ No newline at end of file
+
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8768fc5..bbaf404 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,12 +4,49 @@
## 总则
-[bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 [B站(哔哩哔哩)](https://www.bilibili.com/) API(应用程序接口) 文档,使用 [CC-BY-NC 4.0 协议](LICENSE) 开源,它将无差别收集整理相关的**主站业务接口**。
+[bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 [B站(哔哩哔哩)](https://www.bilibili.com/) API(应用程序接口) 文档,使用 [CC-BY-NC 4.0 协议](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE) 开源,它将无差别收集整理相关的**主站业务接口**。
该项目使用 [MarkDown](https://zh.wikipedia.org/zh-cn/Markdown) 语法进行文档书写,按照业务类型及功能以 **路径** + **文件** 形式索引,任何用户都可通过 Pull Request 提供自己分析出的接口地址与使用说明。
本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如`https`、`securityRpc`、`wss`。
+## Issue与社群讨论
+
+对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以发 **Issue** 的形式参与用户反馈,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
+
+由于本项目属于文档型项目,故不设置 Issue 模板,同时允许中英文标题,但提交 Issue 请遵守以下原则:
+
+1. 标题言简意骇,说明欲提出的问题要点,如`如何通过xx接口获取yy`、`xx接口地址已失效`、`关于xx字段意义的探讨`、` 建议将xx加入yy分类`等标题;切勿使用表意含糊不清或索取性的标题,如`怎么解决风控`、`补充`、`搜索的接口是什么`、`好兄弟有没有投稿的接口`等标题
+2. Issue 正文应对问题进行尽可能详细的描述,展开并聚焦有关的信息,例如:“在前端页面某地址 / APP 某界面会访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
+3. 提出问题时注意 [提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md) 并且 [别像弱智一样提问](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways)
+
+同时,您还可以通过加入社群的方式参与讨论
+
+- QQ 交流群:[邀请链接](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
+- Telegram 交流群:[@bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
+
+::: tip ✅提示
+
+QQ 交流群为综合技术交流群(兼 Owner 的粉丝群),可交流探讨任何技术,包括但不限于 [BAC 项目](https://github.com/SocialSisterYi/bilibili-API-collect)
+
+Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bilibili-API-collect) 的 Github Bot 接收,也可以进行项目相关的讨论,但不建议在此讨论交流其他内容(公开群)
+
+:::
+
+::: warning ⚠️注意
+
+群内讨论同样需要遵守**公开交流**的原则,以及群内会定期清理不活跃成员。
+
+**QQ 交流群** 的加群问题答案可以去 [Owner 的主页](https://github.com/SocialSisterYi) Contact 部分找到,如果您填写“我不知道,从 Github 来的“那么管理员将有理由禁止您进群讨论!
+
+:::
+
+::: danger 🈲禁止
+
+项目 Issue 及其相关社群中 **禁止** 询问讨论 风控解除、爬虫(采集)、破解、漏洞利用、买卖代码和账号 相关内容,抵制基于本项目进行的一切黑产行为!
+
+:::
+
## 目录与路径结构
### 目录
@@ -214,22 +251,3 @@ message Author {
## 文档提交
TODO
-
-## Issue与社群讨论
-
-对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以发 **Issue** 的形式参与用户反馈,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
-
-由于本项目属于文档型项目,故不设置 Issue 模板,同时允许中英文标题,但提交 Issue 请遵守以下原则:
-
-1. 标题言简意骇,说明欲提出的问题要点,如`如何通过xx接口获取yy`、`xx接口地址已失效`、`关于xx字段意义的探讨`、` 建议将xx加入yy分类`等标题;切勿使用表意含糊不清或索取性的标题,如`怎么解决风控`、`补充`、`搜索的接口是什么`、`好兄弟有没有投稿的接口`等标题
-2. Issue 正文应对问题进行尽可能详细的描述,展开并聚焦有关的信息,例如:“在前端页面某地址 / APP 某界面会访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
-3. 提出问题时注意 [提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md) 并且 [别像弱智一样提问](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways)
-
-同时,你还可以通过加入社群的方式参与讨论(包括但不限于本项目
-
-- QQ 交流群:[邀请链接](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
-
-- Telegram 交流群:[@bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
-
-注意:群内讨论同样需要遵守**公开交流**的原则,以及群内会定期清理不活跃成员
-
diff --git a/README.md b/README.md
index b21c992..a169926 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
哔哩哔哩-API收集整理
-
+
@@ -19,6 +19,11 @@
+
+
+
+
+
野生API文档
不断更新中....
@@ -56,117 +61,131 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
## 🍴目录
-计划整理分类 & 目录:(文档已完结请选中 checkbox)
+计划整理分类 & 目录:(文档已完结请选中 checkbox)
-- [x] [API 签名](docs/other/API_sign.md)
-- [x] [公共错误码](docs/other/errcode.md)
-- [x] [图片格式化](docs/other/picture.md)
-- [x] [bvid 说明](docs/other/bvid_desc.md)
+- [ ] [接口签名与验证](docs/misc/sign)
+ - [x] [APP API 签名](docs/misc/sign/APP.md)(`appkey`与`sign`)
+ - [x] [已知的 APPKey](docs/misc/sign/APPKey.md)
+ - [x] [Wbi 签名](docs/misc/sign/wbi.md)(`wts`与`w_rid`)
+
+- [x] [公共错误码](docs/misc/errcode.md)
+- [x] [图片格式化](docs/misc/picture.md)
+- [x] [bvid 说明](docs/misc/bvid_desc.md)
+- [ ] [设备唯一标识BUVID](docs/misc/device_identity.md)
- [ ] [gRPC API 接口定义](grpc_api)
- [ ] [登录](docs/login)
- - [x] [登录操作 (人机认证)](docs/login/login_action)
- - [x] [短信登录](docs/login/login_action/SMS.md)
- - [x] [密码登录](docs/login/login_action/password.md)
- - [x] [二维码登录](docs/login/login_action/QR.md)
- - [ ] SNS 登录 (QQ & 微信 & 微博)
- - [x] [登录基本信息](docs/login/login_info.md)
- - [ ] [个人中心](docs/login/member_center.md)
- - [ ] [注销登录](docs/login/exit.md)
- - [x] [登录记录](docs/login/login_notice.md)
+ - [x] [登录操作 (人机认证)](docs/login/login_action)
+ - [x] [短信登录](docs/login/login_action/SMS.md)
+ - [x] [密码登录](docs/login/login_action/password.md)
+ - [x] [二维码登录](docs/login/login_action/QR.md)
+ - [ ] SNS 登录 (QQ & 微信 & 微博)
+ - [x] [登录基本信息](docs/login/login_info.md)
+ - [ ] [个人中心](docs/login/member_center.md)
+ - [ ] [注销登录](docs/login/exit.md)
+ - [x] [登录记录](docs/login/login_notice.md)
+ - [x] [Web 端 Cookie 刷新](docs/login/cookie_refresh.md)
- [ ] [消息中心](docs/message)
- - [ ] [通知类消息](docs/message/msg.md)
- - [ ] [私信](docs/message/private_msg.md)
- - [ ] 设置
+ - [ ] [通知类消息](docs/message/msg.md)
+ - [ ] [私信](docs/message/private_msg.md)
+ - [ ] 设置
- [ ] [用户](docs/user)
- - [x] [基本信息](docs/user/info.md)
- - [x] [状态数](docs/user/status_number.md)
- - [x] [关系](docs/user/relation.md)
- - [ ] [个人空间](docs/user/space.md)
- - [x] [检查昵称是否可注册](docs/user/check_nickname.md)
- - [x] [用户注册](docs/user/register.md)
+ - [x] [基本信息](docs/user/info.md)
+ - [x] [状态数](docs/user/status_number.md)
+ - [x] [关系](docs/user/relation.md)
+ - [ ] [个人空间](docs/user/space.md)
+ - [x] [检查昵称是否可注册](docs/user/check_nickname.md)
+ - [x] [用户注册](docs/user/register.md)
+ - [x] [用户认证类型一览](docs/user/official_role.md)
+ - [ ] [加入老粉计划](docs/user/contract.md)
- [ ] [大会员](docs/vip)
- - [ ] [大会员基本信息](docs/vip/info.md)
- - [ ] [大会员中心](docs/vip/center.md)
- - [ ] [大会员签到](docs/vip/clockin.md)
- - [ ] [大会员操作](docs/vip/action.md)
+ - [ ] [大会员基本信息](docs/vip/info.md)
+ - [ ] [大会员中心](docs/vip/center.md)
+ - [ ] [大会员签到](docs/vip/clockin.md)
+ - [ ] [大会员操作](docs/vip/action.md)
- [ ] [视频](docs/video)
- - [x] [视频分区一览 (分区代码)](docs/video/video_zone.md)
- - [x] [基本信息](docs/video/info.md)
- - [x] [状态数](docs/video/status_number.md)
- - [x] [快照](docs/video/snapshot.md)
- - [x] [点赞 & 投币 & 收藏 & 分享](docs/video/action.md)
- - [ ] [TAG](docs/video/tags.md)
- - [x] [视频推荐](docs/video/recommend.md)
- - [x] [播放&下载地址 (视频流)](docs/video/videostream_url.md)
- - [ ] [互动视频](docs/video/interact_video.md)
- - [x] [高能进度条](docs/video/pbp.md)
- - [ ] [信息上报 (心跳及记录历史)](docs/video/report.md)
- - [x] [视频属性数据](docs/video/attribute_data.md)
- - [x] [视频在线人数](docs/video/online.md)
+ - [x] [视频分区一览 (分区代码)](docs/video/video_zone.md)
+ - [x] [基本信息](docs/video/info.md)
+ - [x] [状态数](docs/video/status_number.md)
+ - [x] [快照](docs/video/snapshot.md)
+ - [x] [点赞 & 投币 & 收藏 & 分享](docs/video/action.md)
+ - [ ] [TAG](docs/video/tags.md)
+ - [x] [视频推荐](docs/video/recommend.md)
+ - [x] [播放&下载地址 (视频流)](docs/video/videostream_url.md)
+ - [ ] [互动视频](docs/video/interact_video.md)
+ - [x] [高能进度条](docs/video/pbp.md)
+ - [ ] [信息上报 (心跳及记录历史)](docs/video/report.md)
+ - [x] [视频属性数据](docs/video/attribute_data.md)
+ - [x] [视频在线人数](docs/video/online.md)
+ - [x] [视频AI摘要](docs/video/summary.md)
+ - [ ] [稿件投诉](docs/video/appeal.md)
+ - [ ] [视频状态数](docs/video/status_number.md)
+ - [ ] [视频合集](docs/video/collection.md)
- [ ] [剧集 (番剧、影视)](docs/bangumi)
- - [ ] [基本信息](docs/bangumi/info.md)
- - [ ] [播放&下载地址(视频流)](docs/bangumi/videostream_url.md)
- - [ ] [时间轴](docs/bangumi/timeline.md)
- - [ ] 状态数
- - [ ] 操作
+ - [ ] [基本信息](docs/bangumi/info.md)
+ - [ ] [播放&下载地址(视频流)](docs/bangumi/videostream_url.md)
+ - [ ] [时间轴](docs/bangumi/timeline.md)
+ - [ ] [追番相关](docs/bangumi/follow.md)
+ - [ ] 状态数
+ - [ ] 操作
- [ ] [视频弹幕](docs/danmaku)
- - [x] [protobuf 实时弹幕](docs/danmaku/danmaku_proto.md)
- - [x] [protobuf 弹幕元数据(BAS 弹幕 / 互动弹幕)](docs/danmaku/danmaku_view_proto.md)
- - [x] [xml 实时弹幕](docs/danmaku/danmaku_xml.md)
- - [x] [历史弹幕](docs/danmaku/history.md)
- - [x] [快照](docs/danmaku/snapshot.md)
- - [ ] [弹幕操作](docs/danmaku/action.md)
- - [ ] 高级弹幕
- - [ ] 屏蔽管理
- - [ ] 智能防挡弹幕
- - [x] [弹幕个人配置修改](docs/danmaku/config.md)
- - [x] [名词解释](docs/danmaku/buzzword.md)
+ - [x] [protobuf 实时弹幕](docs/danmaku/danmaku_proto.md)
+ - [x] [protobuf 弹幕元数据(BAS 弹幕 / 互动弹幕)](docs/danmaku/danmaku_view_proto.md)
+ - [x] [xml 实时弹幕](docs/danmaku/danmaku_xml.md)
+ - [x] [历史弹幕](docs/danmaku/history.md)
+ - [x] [快照](docs/danmaku/snapshot.md)
+ - [ ] [弹幕操作](docs/danmaku/action.md)
+ - [ ] 高级弹幕
+ - [ ] 屏蔽管理
+ - [ ] 智能防挡弹幕
+ - [x] [弹幕个人配置修改](docs/danmaku/config.md)
+ - [x] [名词解释](docs/danmaku/buzzword.md)
+ - [x] [点赞查询](docs/danmaku/thumbup.md)
- [x] [视频笔记](docs/note)
- - [x] [笔记列表](docs/note/list.md)
- - [x] [笔记详细信息](docs/note/info.md)
- - [x] [笔记操作](docs/note/action.md)
+ - [x] [笔记列表](docs/note/list.md)
+ - [x] [笔记详细信息](docs/note/info.md)
+ - [x] [笔记操作](docs/note/action.md)
- [ ] [专栏](docs/article)
- - [ ] 分区
- - [X] [基本信息](docs/article/info.md)
- - [X] [点赞 & 投币 & 收藏 & 分享](docs/article/action.md)
- - [X] [文集基本信息](docs/article/articles.md)
- - [X] [获取用户专栏文章列表](docs/article/list.md)
+ - [ ] [专栏分类](docs/article/category.md)
+ - [X] [基本信息](docs/article/info.md)
+ - [X] [点赞 & 投币 & 收藏 & 分享](docs/article/action.md)
+ - [X] [文集基本信息](docs/article/articles.md)
+ - [X] [获取用户专栏文章列表](docs/article/list.md)
- [ ] [音频](docs/audio)
- - [x] [歌曲基本信息](docs/audio/info.md)
- - [ ] [歌单 & 音频收藏夹详细信息](docs/audio/music_list.md)
- - [ ] [状态数](docs/audio/status_number.md)
- - [ ] [投币 & 收藏](docs/audio/action.md)
- - [x] [播放 & 下载地址(音频流)](docs/audio/musicstream_url.md)
- - [ ] 音频榜单
+ - [x] [歌曲基本信息](docs/audio/info.md)
+ - [ ] [歌单 & 音频收藏夹详细信息](docs/audio/music_list.md)
+ - [ ] [状态数](docs/audio/status_number.md)
+ - [ ] [投币 & 收藏](docs/audio/action.md)
+ - [x] [播放 & 下载地址(音频流)](docs/audio/musicstream_url.md)
+ - [x] [音频榜单](docs/audio/rank.md)
- [ ] [排行榜 & 最新视频](docs/video_ranking)
- - [ ] [排行榜](docs/video_ranking/ranking.md)
- - [ ] [热门视频](docs/video_ranking/popular.md)
- - [ ] [最新视频](docs/video_ranking/dynamic.md)
- - [x] [入站必刷视频](docs/video_ranking/precious_videos.md)
+ - [ ] [排行榜](docs/video_ranking/ranking.md)
+ - [ ] [热门视频](docs/video_ranking/popular.md)
+ - [ ] [最新视频](docs/video_ranking/dynamic.md)
+ - [x] [入站必刷视频](docs/video_ranking/precious_videos.md)
- [ ] [搜索](docs/search)
- - [x] [搜索请求](docs/search/search_request.md)
- - [x] [搜索结果](docs/search/search_response.md)
- - [x] [默认搜索 & 热搜](docs/search/hot.md)
- - [x] [搜索建议](docs/search/suggest.md)
+ - [x] [搜索请求](docs/search/search_request.md)
+ - [x] [搜索结果](docs/search/search_response.md)
+ - [x] [默认搜索 & 热搜](docs/search/hot.md)
+ - [x] [搜索建议](docs/search/suggest.md)
- [ ] [小黑屋](docs/blackroom)
- - [ ] 基本信息
- - [x] [封禁公示](docs/blackroom/banlist.md)
- - [x] [风纪委员及众裁案件相关](docs/blackroom/jury)
- - [x] [风纪委员基本信息](docs/blackroom/jury/base_info.md)
- - [x] [众裁案件基本信息](docs/blackroom/jury/judgement_info.md)
- - [x] [裁决操作](docs/blackroom/jury/action.md)
+ - [ ] 基本信息
+ - [x] [封禁公示](docs/blackroom/banlist.md)
+ - [x] [风纪委员及众裁案件相关](docs/blackroom/jury)
+ - [x] [风纪委员基本信息](docs/blackroom/jury/base_info.md)
+ - [x] [众裁案件基本信息](docs/blackroom/jury/judgement_info.md)
+ - [x] [裁决操作](docs/blackroom/jury/action.md)
- [x] [评论区](docs/comment)
- - [x] [评论区明细](docs/comment/list.md)
- - [x] [操作](docs/comment/action.md)
+ - [x] [评论区明细](docs/comment/list.md)
+ - [x] [操作](docs/comment/action.md)
- [ ] [表情](docs/emoji)
- - [x] [表情及表情包信息](docs/emoji/list.md)
- - [x] [操作](docs/emoji/action.md)
+ - [x] [表情及表情包信息](docs/emoji/list.md)
+ - [x] [操作](docs/emoji/action.md)
- [ ] [创作中心](docs/creativecenter)
- - [ ] [统计与数据](docs/creativecenter/statistics&data.md)
- - [ ] 列表查询相关
- - [x] [电磁力数据](docs/creativecenter/railgun.md)
+ - [ ] [统计与数据](docs/creativecenter/statistics&data.md)
+ - [ ] 列表查询相关
+ - [x] [电磁力数据](docs/creativecenter/railgun.md)
- [x] [实时广播(通讯协议)](docs/broadcast)
- - [x] [视频内广播](docs/broadcast/video_room.md)
+ - [x] [视频内广播](docs/broadcast/video_room.md)
- [ ] [充电](docs/electric)
- [ ] [包月充电](docs/electric/monthly.md)
- [ ] 自定义充电
@@ -175,73 +194,85 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
- [x] [充电留言](docs/electric/charge_msg.md)
- [x] [充电列表](docs/electric/charge_list.md)
- [ ] [动态](docs/dynamic)
- - [ ] [动态基本信息](docs/dynamic/basicInfo.md)
- - [ ] [发送 & 转载动态](docs/dynamic/publish.md)
- - [ ] [根据关键字搜索用户(at 别人时的填充列表)](docs/dynamic/atlist.md)
- - [ ] [操作](docs/dynamic/action.md)
- - [ ] 动态列表
- - [x] [特定话题动态列表](docs/dynamic/tag_dynamics.md)
- - [ ] [动态内容](docs/dynamic/get_dynamic_detail.md)
+ - [ ] [获取动态列表](docs/dynamic/all.md)
+ - [ ] [获取用户空间动态](docs/dynamic/space.md)
+ - [ ] [动态基本信息](docs/dynamic/basicInfo.md)
+ - [ ] [动态详细信息字段](docs/dynamic/card_info.md)
+ - [ ] [获取动态详情](docs/dynamic/detail.md)
+ - [ ] [动态类型](docs/dynamic/dynamic_enum.md)
+ - [ ] [动态信息](docs/dynamic/content.md)
+ - [ ] [发送 & 转载动态](docs/dynamic/publish.md)
+ - [ ] [根据关键字搜索用户(at 别人时的填充列表)](docs/dynamic/atlist.md)
+ - [ ] [操作](docs/dynamic/action.md)
+ - [ ] 动态列表
+ - [x] [特定话题动态列表](docs/dynamic/tag_dynamics.md)
+ - [ ] [动态内容](docs/dynamic/get_dynamic_detail.md)
- [ ] [相簿](docs/album)
- - [x] [基本信息](docs/album/info.md)
- - [x] [相簿列表](docs/album/list.md)
- - [x] [推荐作者](docs/album/recommend_author.md)
- - [x] [活动列表](docs/album/activity_list.md)
- - [x] [操作](docs/album/action.md)
- - [ ] 投稿
+ - [x] [基本信息](docs/album/info.md)
+ - [x] [相簿列表](docs/album/list.md)
+ - [x] [推荐作者](docs/album/recommend_author.md)
+ - [x] [活动列表](docs/album/activity_list.md)
+ - [x] [操作](docs/album/action.md)
+ - [ ] 投稿
- [ ] [历史记录 & 稍后再看](docs/history&toview)
- - [x] [历史记录](docs/history&toview/history.md)
- - [x] [稍后再看](docs/history&toview/toview.md)
+ - [x] [历史记录](docs/history&toview/history.md)
+ - [x] [稍后再看](docs/history&toview/toview.md)
- [ ] [收藏夹](docs/fav)
- - [x] [基本信息](docs/fav/info.md)
- - [x] [收藏夹内容](docs/fav/list.md)
- - [ ] [收藏夹操作](docs/fav/action.md)
+ - [x] [基本信息](docs/fav/info.md)
+ - [x] [收藏夹内容](docs/fav/list.md)
+ - [ ] [收藏夹操作](docs/fav/action.md)
- [ ] [课程](docs/cheese)
- - [x] [课程基本信息](docs/cheese/info.md)
- - [ ] 已购课程
- - [ ] 分区推荐列表
- - [ ] 操作
- - [x] [播放 & 下载地址(视频流)](docs/cheese/videostream_url.md)
+ - [x] [课程基本信息](docs/cheese/info.md)
+ - [ ] 已购课程
+ - [ ] 分区推荐列表
+ - [ ] 操作
+ - [x] [播放 & 下载地址(视频流)](docs/cheese/videostream_url.md)
- [ ] [直播](docs/live)
- - [ ] [直播间基本信息](docs/live/info.md)
- - [ ] [直播分区](docs/live/live_area.md)
- - [ ] [直播间管理](docs/live/manage.md)
- - [ ] 直播间操作
- - [ ] [直播视频流](docs/live/live_stream.md)
- - [ ] [直播信息流](docs/live/message_stream.md)
- - [ ] [直播红包](docs/live/redpocket.md)
- - [ ] [直播间用户实用 API](docs/live/user.md)
+ - [ ] [直播间基本信息](docs/live/info.md)
+ - [ ] [直播分区](docs/live/live_area.md)
+ - [ ] [直播间管理](docs/live/manage.md)
+ - [ ] 直播间操作
+ - [ ] [直播视频流](docs/live/live_stream.md)
+ - [ ] [直播信息流](docs/live/message_stream.md)
+ - [ ] [直播红包](docs/live/redpocket.md)
+ - [ ] [直播间用户实用 API](docs/live/user.md)
+ - [x] [直播间禁言相关](docs/live/silent_user_manage.md)
- [ ] [转正答题](docs/newbie_exam)
- - [x] [查询信息](docs/newbie_exam/info.md)
- - [x] [拉取题目](docs/newbie_exam/fetch.md)
- - [x] [操作](docs/newbie_exam/action.md)
+ - [x] [查询信息](docs/newbie_exam/info.md)
+ - [x] [拉取题目](docs/newbie_exam/fetch.md)
+ - [x] [操作](docs/newbie_exam/action.md)
+- [ ] [青少年守护](docs/teenager/)
+ - [x] [青少年模式](docs/teenager/teenager_mode.md)
+ - [ ] 亲子平台
+ - [ ] 课堂模式
- [ ] B币钱包
- - [ ] 基本信息
- - [ ] B币充值
- - [ ] 贝壳相关
+ - [ ] 基本信息
+ - [ ] B币充值
+ - [ ] 贝壳相关
- [ ] [哔哩哔哩漫画](docs/manga)
- - [ ] [用户信息](docs/manga/user.md)
- - [x] [签到](docs/manga/ClockIn.md)
- - [x] [积分商城](docs/manga/point_shop.md)
- - [x] [漫画操作](docs/manga/Comic.md)
- - [x] [漫画赛季](docs/manga/Season.md)
- - [x] [漫读券/已购相关](docs/manga/User.md)
- - [x] [下载](docs/manga/Download.md)
- - [x] [data.index解析](docs/manga/index_file.md)
+ - [ ] 用户信息
+ - [x] [签到](docs/manga/ClockIn.md)
+ - [x] [积分商城](docs/manga/point_shop.md)
+ - [x] [漫画操作](docs/manga/Comic.md)
+ - [ ] [漫画任务操作](docs/manga/Activity.md)
+ - [x] [漫画赛季](docs/manga/Season.md)
+ - [x] [漫读券/已购相关](docs/manga/User.md)
+ - [x] [下载](docs/manga/Download.md)
+ - [x] [data.index解析](docs/manga/index_file.md)
+ - [ ] [获取轻享卡信息](docs/manga/light_card.md)
- [ ] 哔哩哔哩游戏
- [ ] [终端网络查询](docs/clientinfo)
- - [x] [基于ip的地理位置查询](docs/clientinfo/ip.md)
- - [x] [终端信息查询](docs/clientinfo/client_info.md)
-- [ ] [其他](docs/other)
- - [x] [获取当前时间戳](docs/other/time_stamp.md)
+ - [x] [基于 ip 的地理位置查询](docs/clientinfo/ip.md)
+- [ ] [其他](docs/misc)
+ - [x] [获取当前时间戳](docs/misc/time_stamp.md)
- [ ] [web端组件](docs/web_widget)
- - [x] [分区当日投稿数](docs/web_widget/zone_upload.md)
- - [x] [404 页漫画收集](docs/web_widget/404_manga.md)
+ - [x] [分区当日投稿数](docs/web_widget/zone_upload.md)
+ - [x] [404 页漫画收集](docs/web_widget/404_manga.md)
- [ ] [APP端组件](docs/APP_widget)
- - [x] [开屏图片 + 恰饭珍贵录像](docs/APP_widget/splash.md)
+ - [x] [开屏图片 + 恰饭珍贵录像](docs/APP_widget/splash.md)
- [ ] [个性装扮](docs/garb)
- - [x] [APP 主题](docs/garb/skin.md)
- - [x] [主题色](docs/garb/color.md)
+ - [x] [APP 主题](docs/garb/skin.md)
+ - [x] [主题色](docs/garb/color.md)
## ✨鸣谢
@@ -265,7 +296,7 @@ protobuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a )
⚠注意:开源社群欢迎交流探讨,**拒绝**咨询、**不支持**合作,**黑产号**一经发现立即拉黑并举报相关 SRC
-- QQ 交流群:[邀请链接](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
+- QQ 交流群:[邀请链接](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2rRJXK3zgU5yi3e_4rNLeJYUjMLzw_Jj&authKey=L%2FN3EfZXo3QFjEuHq4ifTgh%2F384UmrYpjl7dbYPhYHtznhfJWxkymxQKObQunmEQ&noverify=0&group_code=560304737)
- Telegram 交流群:[@bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
## 🧋发电
@@ -313,14 +344,14 @@ OR Aifadian:[https://afdian.net/@ShakaiAneE](https://afdian.net/@ShakaiAneE)
- [ironmanic/crawler_target_users_good](https://github.com/ironmanic/crawler_target_users_good):搜索bilibili特定视频,为评论 点赞,关注,私信,一体化服务
- [dd-center/DDatElectron](https://github.com/dd-center/DDatElectron):DD@Home 分布式项目, 桌面客户端
- [dd-center/vtbs.moe](https://github.com/dd-center/vtbs.moe):B站VTB数据中心
-- [JunzhouLiu/BILIBILI-HELPER](https://github.com/JunzhouLiu/BILIBILI-HELPER):利用Linux Crontab定时任务,云函数,Docker等方式实现B站,哔哩哔哩(Bilibili)每日自动投币,签到,银瓜子兑换硬币,领取大会员福利,大会员月底给自己充电等。每天轻松获取65经验值。
+- [catlair/BiliOutils](https://github.com/catlair/BiliOutils):利用Docker,青龙面板,以及各种云函数等实现 B 站每日自动投币,会员大积分,漫画阅读和抢兑,领取大会员福利,大会员月底给自己充电等。每天轻松获取65经验值。
- [the1812/Bilibili-Evolved](https://github.com/the1812/Bilibili-Evolved):强大的哔哩哔哩增强脚本: 下载视频, 音乐, 封面, 弹幕 / 简化直播间, 评论区, 首页 / 自定义顶栏, 删除广告, 夜间模式 / 触屏设备支持
- [xlzy520/bili-short-url](https://github.com/xlzy520/bili-short-url): 哔哩哔哩短链生成器
- [zjkwdy/bili_app_splash](https://github.com/zjkwdy/bili_app_splash): B站壁纸娘和开屏图自动下载,每天使用Actions自动同步
- [Jannchie/BiliOB](https://github.com/Jannchie/BiliOB): BiliOB观测者是一个观测B站UP主及视频数据变化,并予以分析的Web应用程序
- [biliob233/biliob233.github.io](https://github.com/biliob233/biliob233.github.io): ~~无可奉告~~
- [biliup/biliup](https://github.com/biliup/biliup): 全自动录播、投稿工具,也支持twitch、ytb频道搬运。提供分p上传b站接口,腾讯云内网免流+大幅提速
-- [ddiu8081/bilicli](https://github.com/ddiu8081/bilicli): Bilibili-live danmu dashboard in your terminal.
+- [ddiu8081/bilicli](https://github.com/ddiu8081/bilicli): Bilibili-live danmu dashboard in your terminal.
- [MotooriKashin/Bilibili-Old](https://github.com/MotooriKashin/Bilibili-Old): 恢复旧版Bilibili页面,为了那些念旧的人。
- [SocialSisterYi/bcut-asr](https://github.com/SocialSisterYi/bcut-asr): 使用必剪API的语音字幕识别
- [CzJam/Bili_Realtime_Data](https://github.com/CzJam/Bili_Realtime_Data): Bilibili粉丝与视频实时数据统计
@@ -331,6 +362,13 @@ OR Aifadian:[https://afdian.net/@ShakaiAneE](https://afdian.net/@ShakaiAneE)
- [uw-labs/bloomrpc](https://github.com/uw-labs/bloomrpc): GUI Client for GRPC Services
-- [grpc/grpc](https://github.com/grpc/grpc): The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
+- [grpc/grpc](https://github.com/grpc/grpc): The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
- - [quicktype](https://github.com/quicktype/quicktype) quicktype generates strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL queries, making it a breeze to work with JSON type-safely in many programming languages.一键生成多种语言的json反序列化所需类,以便于快速反序列化, 有网页版
+- [quicktype](https://github.com/quicktype/quicktype) quicktype generates strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL queries, making it a breeze to work with JSON type-safely in many programming languages.一键生成多种语言的json反序列化所需类,以便于快速反序列化,
+ 有网页版
+
+
diff --git a/assets/img/aiSummary.svg b/assets/img/aiSummary.svg
new file mode 100644
index 0000000..efa4420
--- /dev/null
+++ b/assets/img/aiSummary.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/article/list.md b/docs/article/list.md
index cf457e4..29098bc 100644
--- a/docs/article/list.md
+++ b/docs/article/list.md
@@ -2,12 +2,16 @@
## 获取用户专栏文章列表
-> https://api.bilibili.com/x/space/article
+> https://api.bilibili.com/x/space/wbi/article
+
+> ~~https://api.bilibili.com/x/space/article~~(旧链接)
*请求方式:GET*
认证方式:Cookie(SESSDATA)
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
**url参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
diff --git a/docs/audio/rank.md b/docs/audio/rank.md
new file mode 100644
index 0000000..ff2a809
--- /dev/null
+++ b/docs/audio/rank.md
@@ -0,0 +1,1160 @@
+# 音频榜单
+
+以下接口均来自页面 https://music.bilibili.com/pc/rank
+
+## 获取音频榜单每期列表
+
+> https://api.bilibili.com/x/copyright-music-publicity/toplist/all_period
+
+*请求方式:GET*
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| --------- | ---- | ------------------------ | ------ | ---------------------- |
+| list_type | num | 榜单类型 | 必要 | 1:热榜
2:原创榜 |
+| csrf | str | CSRF Token(位于cookie) | 非必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| list | obj | 年份索引 | |
+
+`data`中的`list`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ----- | ---------------------- | ---- |
+| {年份} | array | 对应年份索引的每期信息 | |
+| …… | array | …… | |
+
+`list`中的`{年份}`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---------------- | ---- |
+| 0 | obj | 该年中的单期数据 | |
+| …… | obj | …… | …… |
+
+`{年份}`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------ | ---- | -------- | -------- |
+| ID | num | 榜单 id | |
+| priod | num | 榜单期数 | |
+| publish_time | num | 发布时间 | 秒时间戳 |
+
+**示例:**
+
+```bash
+curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/all_period' \
+ --data-urlencode 'list_type=1'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "list": {
+ "2022": [
+ {
+ "ID": 38,
+ "priod": 29,
+ "publish_time": 1672394399
+ },
+ {
+ "ID": 36,
+ "priod": 28,
+ "publish_time": 1671789599
+ },
+ {
+ "ID": 34,
+ "priod": 27,
+ "publish_time": 1671184800
+ },
+ {
+ "ID": 32,
+ "priod": 26,
+ "publish_time": 1670579999
+ },
+ {
+ "ID": 30,
+ "priod": 25,
+ "publish_time": 1669976540
+ },
+ {
+ "ID": 28,
+ "priod": 24,
+ "publish_time": 1669370757
+ },
+ {
+ "ID": 26,
+ "priod": 23,
+ "publish_time": 1668766987
+ },
+ {
+ "ID": 22,
+ "priod": 22,
+ "publish_time": 1668163419
+ },
+ {
+ "ID": 21,
+ "priod": 21,
+ "publish_time": 1667558276
+ },
+ {
+ "ID": 20,
+ "priod": 20,
+ "publish_time": 1666951199
+ },
+ {
+ "ID": 19,
+ "priod": 19,
+ "publish_time": 1666346399
+ },
+ {
+ "ID": 18,
+ "priod": 18,
+ "publish_time": 1665741599
+ },
+ {
+ "ID": 17,
+ "priod": 17,
+ "publish_time": 1665136799
+ },
+ {
+ "ID": 16,
+ "priod": 16,
+ "publish_time": 1664531999
+ },
+ {
+ "ID": 15,
+ "priod": 15,
+ "publish_time": 1663927199
+ },
+ {
+ "ID": 14,
+ "priod": 14,
+ "publish_time": 1663322399
+ },
+ {
+ "ID": 13,
+ "priod": 13,
+ "publish_time": 1662717599
+ },
+ {
+ "ID": 12,
+ "priod": 12,
+ "publish_time": 1662113559
+ },
+ {
+ "ID": 11,
+ "priod": 11,
+ "publish_time": 1661508657
+ },
+ {
+ "ID": 10,
+ "priod": 10,
+ "publish_time": 1660903199
+ },
+ {
+ "ID": 9,
+ "priod": 9,
+ "publish_time": 1660298400
+ },
+ {
+ "ID": 8,
+ "priod": 8,
+ "publish_time": 1659693599
+ },
+ {
+ "ID": 7,
+ "priod": 7,
+ "publish_time": 1659088799
+ },
+ {
+ "ID": 6,
+ "priod": 6,
+ "publish_time": 1658483999
+ },
+ {
+ "ID": 5,
+ "priod": 5,
+ "publish_time": 1657879200
+ },
+ {
+ "ID": 4,
+ "priod": 4,
+ "publish_time": 1657274399
+ },
+ {
+ "ID": 3,
+ "priod": 3,
+ "publish_time": 1656669600
+ },
+ {
+ "ID": 2,
+ "priod": 2,
+ "publish_time": 1656064800
+ },
+ {
+ "ID": 1,
+ "priod": 1,
+ "publish_time": 1655460091
+ }
+ ],
+ "2023": [
+ {
+ "ID": 76,
+ "priod": 48,
+ "publish_time": 1683885696
+ },
+ {
+ "ID": 74,
+ "priod": 47,
+ "publish_time": 1683281010
+ },
+ {
+ "ID": 72,
+ "priod": 46,
+ "publish_time": 1682675999
+ },
+ {
+ "ID": 70,
+ "priod": 45,
+ "publish_time": 1682071442
+ },
+ {
+ "ID": 68,
+ "priod": 44,
+ "publish_time": 1681466400
+ },
+ {
+ "ID": 66,
+ "priod": 43,
+ "publish_time": 1680861599
+ },
+ {
+ "ID": 64,
+ "priod": 42,
+ "publish_time": 1680256799
+ },
+ {
+ "ID": 62,
+ "priod": 41,
+ "publish_time": 1679652088
+ },
+ {
+ "ID": 60,
+ "priod": 40,
+ "publish_time": 1679047199
+ },
+ {
+ "ID": 58,
+ "priod": 39,
+ "publish_time": 1678442399
+ },
+ {
+ "ID": 56,
+ "priod": 38,
+ "publish_time": 1677837600
+ },
+ {
+ "ID": 54,
+ "priod": 37,
+ "publish_time": 1677232800
+ },
+ {
+ "ID": 52,
+ "priod": 36,
+ "publish_time": 1676628000
+ },
+ {
+ "ID": 50,
+ "priod": 35,
+ "publish_time": 1676023199
+ },
+ {
+ "ID": 48,
+ "priod": 34,
+ "publish_time": 1675418399
+ },
+ {
+ "ID": 46,
+ "priod": 33,
+ "publish_time": 1674813599
+ },
+ {
+ "ID": 44,
+ "priod": 32,
+ "publish_time": 1674208799
+ },
+ {
+ "ID": 42,
+ "priod": 31,
+ "publish_time": 1673603999
+ },
+ {
+ "ID": 40,
+ "priod": 30,
+ "publish_time": 1672999199
+ }
+ ]
+ }
+ }
+}
+```
+
+
+
+## 查询音频榜单单期信息
+
+> https://api.bilibili.com/x/copyright-music-publicity/toplist/detail
+
+*请求方式:GET*
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ------------------------ | ------ | ------------------------------------------------ |
+| list_id | num | 榜单 id | 必要 | 见 [获取音频榜单每期列表](#获取音频榜单每期列表) |
+| csrf | str | CSRF Token(位于cookie) | 非必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------ | ---- | ----------------------- | ------------------------------------------------------------ |
+| listen_fid | num | 畅听版歌单收藏夹原始 id | 非真实收藏夹 mlid
需要在后方拼接用户 mid 的后两位,如`16484498`->`1648449844` |
+| all_fid | num | 完整版歌单收藏夹原始 id | 非真实收藏夹 mlid
算法同上 |
+| fav_mid | num | 绑定收藏夹用户的 mid | 例如`1164440244`([音乐热榜bot](https://space.bilibili.com/1164440244)账号) |
+| cover_url | str | 榜单封面 url | |
+| is_subscribe | bool | 是否已订阅榜单 | `true`:已订阅
`false`:未订阅
需要登录(Cookie 或 APP),未登录恒为`false` |
+| listen_count | num | 平台有版权音频的数量 | |
+
+**示例:**
+
+查询 [第 48 期音频榜单](https://music.bilibili.com/pc/rank?list_id=76)(id=76) 信息
+
+```bash
+curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/detail' \
+ --data-urlencode 'list_id=76'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "listen_fid": 23317138,
+ "all_fid": 23672948,
+ "fav_mid": 1164440244,
+ "cover_url": "http://i0.hdslb.com/bfs/music-publicity/d8509dc6ee94dd5cc4658a2cbca4f525b4396df5.png",
+ "is_subscribe": false,
+ "listen_count": 5
+ }
+}
+```
+
+
+
+## 获取音频榜单单期内容
+
+> https://api.bilibili.com/x/copyright-music-publicity/toplist/music_list
+
+*请求方式:GET*
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ------------------------ | ------ | ------------------------------------------------ |
+| list_id | num | 榜单 id | 必要 | 见 [获取音频榜单每期列表](#获取音频榜单每期列表) |
+| csrf | str | CSRF Token(位于cookie) | 非必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ----- | -------- | ---- |
+| list | array | 内容列表 | |
+
+`data`中的`list`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------------- | ---- |
+| 0 | obj | 榜单内容 1 | |
+| n | obj | 榜单内容 (n+1) | |
+| …… | obj | …… | …… |
+
+`list`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------------- | ----- | ------------------ | ------------------------------------------- |
+| music_id | str | 音频 MAID | 例如`MA409252256362326366` |
+| music_title | str | 音频标题 | |
+| singer | str | 音频作者 | |
+| album | str | 音频专辑 | |
+| mv_aid | num | 音频 MV 的 avid | 若该音频无 MV 则该字段为 0 |
+| mv_bvid | str | 音频 MV 的 bvid | |
+| mv_cover | str | 音频封面 url | |
+| heat | num | 热度值 | |
+| rank | num | 排序值 | 1 为最高排序,DESC 方式 |
+| can_listen | bool | 平台是否有版权 | `true`:平台有版权
`false`:平台无版权 |
+| recommendation | str | (?) | |
+| creation_aid | num | 关联稿件 avid | |
+| creation_bvid | str | 关联稿件 bvid | |
+| creation_cover | str | 关联稿件封面 url | |
+| creation_title | str | 关联稿件标题 | |
+| creation_up | num | 关联稿件 UP 主 mid | |
+| creation_nickname | str | 关联稿件 UP 主昵称 | |
+| creation_duration | num | 关联稿件时长 | 单位为秒 |
+| creation_play | num | 关联稿件播放量 | |
+| creation_reason | str | 关联稿件二级分区名 | |
+| achievements | array | 获得成就 | |
+| material_id | num | (?) | |
+| material_use_num | num | (?) | |
+| material_duration | num | (?) | |
+| material_show | num | (?) | |
+| song_type | num | (?) | |
+
+`list`数组中的对象中的`achievements`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------------- | ---- |
+| 0 | str | 成就文案 1 | |
+| n | str | 成就文案 (n+1) | |
+| …… | str | …… | …… |
+
+**示例:**
+
+查询 [第 48 期音频榜单](https://music.bilibili.com/pc/rank?list_id=76)(id=76) 榜单内容列表
+
+```bash
+curl -G 'https://api.bilibili.com/x/copyright-music-publicity/toplist/music_list' \
+ --data-urlencode 'list_id=76'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "list": [
+ {
+ "music_id": "MA409252256362326366",
+ "music_title": "極楽浄土",
+ "singer": "GARNiDELiA",
+ "album": "約束 -Promise code-",
+ "mv_aid": 28361833,
+ "mv_bvid": "BV1us41137Fd",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/07e0d9826c574e37df25387cab6df062.jpg",
+ "heat": 5328979,
+ "rank": 1,
+ "can_listen": true,
+ "recommendation": "",
+ "creation_aid": 910787823,
+ "creation_bvid": "BV1HM4y1b79Z",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/5780a05437ec9880301ed093537d6af97b0f8bdb.jpg",
+ "creation_title": "【MARiA】乘风2023初舞台!《极乐净土》,虽迟但到!",
+ "creation_up": 110352985,
+ "creation_nickname": "GARNiDELiA",
+ "creation_duration": 100,
+ "creation_play": 13487670,
+ "creation_reason": "官方现场",
+ "achievements": [
+ "重回榜单",
+ "最高排名1"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA456045402056087707",
+ "music_title": "アイドル",
+ "singer": "YOASOBI",
+ "album": "アイドル",
+ "mv_aid": 227499491,
+ "mv_bvid": "BV17h411u7sb",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/4bf2fe90e9d2361c3c4ddf59064c6e69.jpg",
+ "heat": 1856277,
+ "rank": 2,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 952765045,
+ "creation_bvid": "BV1Ws4y1A7fS",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/8326350bab039ffee9274d7e1f94240d170fa096.jpg",
+ "creation_title": "【中文字幕】我推的孩子「アイドル」官方MV(4K 60帧/Hi-Res)",
+ "creation_up": 11585165,
+ "creation_nickname": "爱莉丝青贝尔克",
+ "creation_duration": 226,
+ "creation_play": 3742892,
+ "creation_reason": "音乐MV",
+ "achievements": [
+ "本期排名持平",
+ "最高排名1"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA458652518440821364",
+ "music_title": "野火wildfire",
+ "singer": "HOYO- Mix,Jonathan Steingard",
+ "album": "雪融于烬",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/e0825a2cfee22ce77f02d4d80826a1d9.jpg",
+ "heat": 1767135,
+ "rank": 3,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 355732312,
+ "creation_bvid": "BV1ZX4y117Dx",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/c98bd629876e8b7b4c056d39bcfeaabe7327e996.jpg",
+ "creation_title": "这首“野火”神曲,我还能再听亿遍!!!",
+ "creation_up": 394861137,
+ "creation_nickname": "Hanserのcece",
+ "creation_duration": 219,
+ "creation_play": 2158925,
+ "creation_reason": "动画创作",
+ "achievements": [
+ "本期排名↑1",
+ "最高排名3"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA459088929228874460",
+ "music_title": "不问别离",
+ "singer": "指尖笑",
+ "album": "不问别离",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/b1507c1649500a0dcf0295b4b68e4b15.jpg",
+ "heat": 1576823,
+ "rank": 4,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 740818022,
+ "creation_bvid": "BV1Sk4y1E7qH",
+ "creation_cover": "http://i2.hdslb.com/bfs/archive/5301b2fee7ad520c8946b5eb92888cf8be563a80.jpg",
+ "creation_title": "日推歌单 | \"我叹那春花秋月不问别离 长风起孤城笛声里全是你\" |《不问ciaga》",
+ "creation_up": 550445292,
+ "creation_nickname": "peach63",
+ "creation_duration": 164,
+ "creation_play": 274898,
+ "creation_reason": "音乐MV",
+ "achievements": [
+ "本期排名↑10",
+ "最高排名4"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA459819223808501000",
+ "music_title": "Spicy",
+ "singer": "aespa",
+ "album": "MY WORLD - The 3rd Mini Album",
+ "mv_aid": 570920682,
+ "mv_bvid": "BV1qz4y1a7m8",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6455687e7d72dd838ffd2aa753fd7761.jpg",
+ "heat": 1441365,
+ "rank": 5,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 570920682,
+ "creation_bvid": "BV1qz4y1a7m8",
+ "creation_cover": "http://i2.hdslb.com/bfs/archive/cd5456735bd645343a51b8df9b4a91236b08e657.jpg",
+ "creation_title": "aespa《Spicy》MV",
+ "creation_up": 3493085782739496,
+ "creation_nickname": "SMTOWN",
+ "creation_duration": 205,
+ "creation_play": 2363321,
+ "creation_reason": "官方MV",
+ "achievements": [
+ "新晋上榜",
+ "最高排名5"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA458946536466866804",
+ "music_title": "UNFORGIVEN (feat. Nile Rodgers)",
+ "singer": "LE SSERAFIM,Nile Rodgers",
+ "album": "UNFORGIVEN",
+ "mv_aid": 528370662,
+ "mv_bvid": "BV1LM41137Pc",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/47e6685cfe44185ec4daab5e765e3b26.jpg",
+ "heat": 1362593,
+ "rank": 6,
+ "can_listen": true,
+ "recommendation": "",
+ "creation_aid": 698312930,
+ "creation_bvid": "BV1wm4y1y76i",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/4f097f5067fc3408118f7d59b2c36d8278660dd9.jpg",
+ "creation_title": "假如让金采源唱全曲......",
+ "creation_up": 496743369,
+ "creation_nickname": "YuueFriloeyyy_",
+ "creation_duration": 183,
+ "creation_play": 319267,
+ "creation_reason": "歌曲演唱",
+ "achievements": [
+ "本期排名↑3",
+ "最高排名6"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA451591354456234292",
+ "music_title": "雪 Distance",
+ "singer": "Capper,罗言",
+ "album": "Uniconfication",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/5899008cea7ed157b8bdb6f9b89dd7ff.jpg",
+ "heat": 1233174,
+ "rank": 7,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 355903423,
+ "creation_bvid": "BV1QX4y127jq",
+ "creation_cover": "http://i2.hdslb.com/bfs/archive/e3542cf8d7cf7cc58268c840d845bb12d4c52662.jpg",
+ "creation_title": "⚡️“可是雪啊,埋进土里”⚡️",
+ "creation_up": 22169833,
+ "creation_nickname": "寒了个羽",
+ "creation_duration": 158,
+ "creation_play": 2622705,
+ "creation_reason": "音乐创作",
+ "achievements": [
+ "本期排名↓1",
+ "最高排名3"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA460246447678301091",
+ "music_title": "Ghost Face (鬼脸) (LIVE版)",
+ "singer": "法老",
+ "album": "中国说唱巅峰对决2023 第一期",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/0d4050feb7cac1a568849832d5fa9f67.jpg",
+ "heat": 1163291,
+ "rank": 8,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 355995337,
+ "creation_bvid": "BV1qX4y1y78r",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/f5e7a51dbe1f48441042dad1e45148c400a3f9fe.jpg",
+ "creation_title": "【法老Pharaoh】虽迟但到!说唱巅峰对决《Ghost Face》live",
+ "creation_up": 12807175,
+ "creation_nickname": "法老爷爷",
+ "creation_duration": 79,
+ "creation_play": 885856,
+ "creation_reason": "官方现场",
+ "achievements": [
+ "新晋上榜",
+ "最高排名8"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA458974797167092444",
+ "music_title": "F*ck My Life",
+ "singer": "SEVENTEEN",
+ "album": "SEVENTEEN 10th Mini Album 'FML'",
+ "mv_aid": 313423265,
+ "mv_bvid": "BV1tP41117mv",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6723df38fcca9b2ab85b564e3809426e.jpg",
+ "heat": 735517,
+ "rank": 9,
+ "can_listen": true,
+ "recommendation": "",
+ "creation_aid": 313423265,
+ "creation_bvid": "BV1tP41117mv",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/38377552bd74cc32851d6466343dc3a26983c3b6.jpg",
+ "creation_title": "SEVENTEEN 'F*ck My Life' Official MV",
+ "creation_up": 692206640,
+ "creation_nickname": "SEVENTEEN",
+ "creation_duration": 220,
+ "creation_play": 1008830,
+ "creation_reason": "官方MV",
+ "achievements": [
+ "新晋上榜",
+ "最高排名9"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA460247474041267107",
+ "music_title": "Control's Wishes",
+ "singer": "Steven Grove,塞壬唱片-MSR",
+ "album": "孤星OST",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/6068f2c64c6796f68b8dae7772f891ac.jpg",
+ "heat": 628233,
+ "rank": 10,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 740625544,
+ "creation_bvid": "BV1ck4y1E7KJ",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/11381997120391d655c91b19bc08e110ca8201e5.jpg",
+ "creation_title": "【小提琴/钢琴】明日方舟四周年孤星PV曲《Control's Wishes》",
+ "creation_up": 2016022052,
+ "creation_nickname": "-桑榆墨景-",
+ "creation_duration": 193,
+ "creation_play": 37881,
+ "creation_reason": "器乐演奏",
+ "achievements": [
+ "新晋上榜",
+ "最高排名10"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA459266635128138957",
+ "music_title": "花园种花(在小小的花园里种小小的花)",
+ "singer": "桃子老师花开富贵",
+ "album": "花园种花",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/fb1d6a44bb8337edf6c9d32c421e9c89.jpg",
+ "heat": 623604,
+ "rank": 11,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 398216313,
+ "creation_bvid": "BV1uo4y1x7UF",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/9562b126010376f7dcfedf0397170696eb1a19c5.jpg",
+ "creation_title": "姬子老师:开拓者家长们,路上有点堵车,这节挖呀挖呀挖课来晚了",
+ "creation_up": 391636983,
+ "creation_nickname": "动漫跳舞姬",
+ "creation_duration": 33,
+ "creation_play": 566777,
+ "creation_reason": "动画创作",
+ "achievements": [
+ "新晋上榜",
+ "最高排名11"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA455203227252613620",
+ "music_title": "Cupid",
+ "singer": "FIFTY FIFTY",
+ "album": "The Beginning: Cupid",
+ "mv_aid": 226830843,
+ "mv_bvid": "BV1sh41137rs",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/e91891c4e2573f4d4ada329db9a86b30.jpg",
+ "heat": 562273,
+ "rank": 12,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 485862497,
+ "creation_bvid": "BV19T411b7nE",
+ "creation_cover": "http://i2.hdslb.com/bfs/archive/ece27463e3eb13f9fbbcb799436375495a795e3c.jpg",
+ "creation_title": "挑战在cp29和一百位coser比心!",
+ "creation_up": 1477074,
+ "creation_nickname": "菌儿rikushi",
+ "creation_duration": 148,
+ "creation_play": 1216246,
+ "creation_reason": "COSPLAY创作",
+ "achievements": [
+ "重回榜单",
+ "最高排名12"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA457806074590836885",
+ "music_title": "星间旅行",
+ "singer": "HOYO-MiX,茶理理理子",
+ "album": "崩坏星穹铁道-星间旅行 Interstellar Journ",
+ "mv_aid": 612992200,
+ "mv_bvid": "BV1rh4y1n77f",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/20ddff696bbbd7f00fc8b76f7b5334f7.jpg",
+ "heat": 515238,
+ "rank": 13,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 995418876,
+ "creation_bvid": "BV1vs4y197gt",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/2d6997320bd2bb20f50b363a894033f325fed871.jpg",
+ "creation_title": "《星穹铁道玩家现状》",
+ "creation_up": 551188239,
+ "creation_nickname": "企鹅带带北极熊",
+ "creation_duration": 88,
+ "creation_play": 1570181,
+ "creation_reason": "音乐创作",
+ "achievements": [
+ "本期排名↓10",
+ "最高排名2"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA434298821720206219",
+ "music_title": "可愛くてごめん (feat. かぴ)",
+ "singer": "HoneyWorks,かぴ",
+ "album": "告白実行委員会 -FLYING SONGS- 恋してる",
+ "mv_aid": 779733306,
+ "mv_bvid": "BV1iy4y1Z7Ri",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/45ce3f52d31386741589a3a5ca9a420c.jpg",
+ "heat": 438720,
+ "rank": 14,
+ "can_listen": true,
+ "recommendation": "",
+ "creation_aid": 862702118,
+ "creation_bvid": "BV1gG4y117nV",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/38d94515fe5f6294bf7712d8b26eb049ec3cf627.jpg",
+ "creation_title": "这么可爱真是抱歉!❤️(*/∇\*)天台宅舞",
+ "creation_up": 434476793,
+ "creation_nickname": "优联酱uu",
+ "creation_duration": 140,
+ "creation_play": 1199819,
+ "creation_reason": "舞蹈创作",
+ "achievements": [
+ "重回榜单",
+ "最高排名2"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA440555130794857381",
+ "music_title": "阳光开朗大男孩",
+ "singer": "卦者灵风",
+ "album": "阳光开朗大男孩",
+ "mv_aid": 421697247,
+ "mv_bvid": "BV1z341187Y9",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/220c674ca22acb91114f6e0705d0f426.jpg",
+ "heat": 371851,
+ "rank": 15,
+ "can_listen": true,
+ "recommendation": "",
+ "creation_aid": 995281134,
+ "creation_bvid": "BV1as4y1d7QR",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/4628837eb5baf879a2be79b16836c90e0466dd6c.jpg",
+ "creation_title": "【灵能手书】阳光开朗大男孩",
+ "creation_up": 8504036,
+ "creation_nickname": "kipoki",
+ "creation_duration": 81,
+ "creation_play": 627123,
+ "creation_reason": "动画创作",
+ "achievements": [
+ "重回榜单",
+ "最高排名1"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA406539170333366962",
+ "music_title": "此生不换",
+ "singer": "青鸟飞鱼",
+ "album": "仙剑奇侠传三 电视剧原声带",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "http://i0.hdslb.com/bfs/station_src/music_metadata/450bd04688ef6a691b1adb816ace6155.jpg",
+ "heat": 361410,
+ "rank": 16,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 545438082,
+ "creation_bvid": "BV1Cq4y1J7Ge",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/1b8b80f7ba9dccaf648cfb641b40e1d38965a4a4.jpg",
+ "creation_title": "开口爷青回!男生宿舍回忆向翻唱仙剑3插曲《此生不换》|我和室友的翻唱日常.",
+ "creation_up": 346782115,
+ "creation_nickname": "陈家淇_B11",
+ "creation_duration": 258,
+ "creation_play": 2976435,
+ "creation_reason": "歌曲演唱",
+ "achievements": [
+ "重回榜单",
+ "最高排名15"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA444928930235832050",
+ "music_title": "太空电梯",
+ "singer": "阿鲲",
+ "album": "流浪地球2电影原声大碟",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/c64c10b911ace04ae45b3172abe3a1d8.jpg",
+ "heat": 352572,
+ "rank": 17,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 269421756,
+ "creation_bvid": "BV1ic41157cc",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/39a27b9d804750325b260f6bc69a3afa8c01a1dc.jpg",
+ "creation_title": "都说是涂装问题了,看,这战斗力不就上来了吗!",
+ "creation_up": 478832800,
+ "creation_nickname": "大刀王五EP",
+ "creation_duration": 87,
+ "creation_play": 706377,
+ "creation_reason": "动画创作",
+ "achievements": [
+ "重回榜单",
+ "最高排名1"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA400017093531020491",
+ "music_title": "兰亭序",
+ "singer": "周杰伦",
+ "album": "魔杰座",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/a03f7d174c3b01e4c6b3907a115c5434.jpg",
+ "heat": 347017,
+ "rank": 18,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 825572396,
+ "creation_bvid": "BV1kg4y1L7v6",
+ "creation_cover": "http://i0.hdslb.com/bfs/archive/59e8436511ff45402e3d5dcf2c01feeb94897103.jpg",
+ "creation_title": "无关风月我题序等你回《兰亭序》",
+ "creation_up": 628615890,
+ "creation_nickname": "qqq还在梦里",
+ "creation_duration": 125,
+ "creation_play": 522133,
+ "creation_reason": "歌曲演唱",
+ "achievements": [
+ "重回榜单",
+ "最高排名6"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA457811156946443719",
+ "music_title": "I'll Do It",
+ "singer": "Heidi Montag",
+ "album": "Superficial",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/e1d95f62257da69db1dc36e949f789f5.jpg",
+ "heat": 345773,
+ "rank": 19,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 313275936,
+ "creation_bvid": "BV1XP411y7UD",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/c42e54074a50ee1eaddbd5495091c2152aad8ecf.jpg",
+ "creation_title": "“嗨,老婆” 【崩坏星穹铁道】",
+ "creation_up": 14158002,
+ "creation_nickname": "Ishi丶",
+ "creation_duration": 61,
+ "creation_play": 103542,
+ "creation_reason": "动画创作",
+ "achievements": [
+ "本期排名↓12",
+ "最高排名6"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ },
+ {
+ "music_id": "MA409255441550338398",
+ "music_title": "失恋阵线联盟",
+ "singer": "草蜢",
+ "album": "失恋阵线联盟",
+ "mv_aid": 0,
+ "mv_bvid": "",
+ "mv_cover": "https://i0.hdslb.com/bfs/station_src/music_metadata/5d6b27035d5f7c0e7781b779871aca04.jpg",
+ "heat": 337176,
+ "rank": 20,
+ "can_listen": false,
+ "recommendation": "",
+ "creation_aid": 415864088,
+ "creation_bvid": "BV1QV411b7CT",
+ "creation_cover": "http://i1.hdslb.com/bfs/archive/8735563d73f86ef7073ed580a41e12c409bd2a5b.jpg",
+ "creation_title": "年会舞蹈《失恋阵线联盟》完整版",
+ "creation_up": 451425930,
+ "creation_nickname": "舞大师舞蹈工作室",
+ "creation_duration": 135,
+ "creation_play": 5336890,
+ "creation_reason": "舞蹈创作",
+ "achievements": [
+ "重回榜单",
+ "最高排名20"
+ ],
+ "material_id": 0,
+ "material_use_num": 0,
+ "material_duration": 0,
+ "material_show": 1,
+ "song_type": 2
+ }
+ ]
+ }
+}
+```
+
+
+
+## 订阅或退订榜单
+
+> https://api.bilibili.com/x/copyright-music-publicity/toplist/subscribe/update
+
+*请求方式:POST*
+
+认证方式:Cookie(SESSDATA)
+
+**正文参数(application/x-www-form-urlencoded):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ------------------------ | --------------- | ------------------------------------------------ |
+| state | num | 操作代码 | 必要 | 1:订阅
2:退订 |
+| list_id | num | 榜单 id | 非必要 | 见 [获取音频榜单每期列表](#获取音频榜单每期列表) |
+| csrf | str | CSRF Token(位于cookie) | Cookie 方式必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 验证失败
400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+
+**示例:**
+
+```bash
+curl 'https://api.bilibili.com/x/copyright-music-publicity/toplist/subscribe/update' \
+ --data-urlencode 'state=1' \
+ --data-urlencode 'state=76' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1
+}
+```
+
+
diff --git a/docs/bangumi/info.md b/docs/bangumi/info.md
index 72d8a96..6857cd3 100644
--- a/docs/bangumi/info.md
+++ b/docs/bangumi/info.md
@@ -251,16 +251,27 @@ curl -G 'https://api.bilibili.com/pgc/review/user' \
`result`中的`payment`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------------------- | ---- | ---- | ---- |
-| discount | num | | |
-| pay_type | obj | | |
-| price | str | | |
-| promotion | str | | |
-| tip | str | | |
-| vip_discount | num | | |
-| vip_first_promotion | str | | |
-| vip_promotion | str | | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------------------- | ---- | ------------ | -------- |
+| discount | num | 折扣 | 100为原价 |
+| pay_type | obj | 支付相关 | |
+| price | str | 售价 | |
+| promotion | str | 推广信息 | |
+| vip_discount | num | 大会员折扣 | |
+| vip_first_promotion | str | | |
+| vip_price | str | 大会员售价 | |
+| vip_promotion | str | 大会员推广信息 | |
+
+`payment`中的`pay_type`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------------- | ---- | ------------- | ------------------------- |
+| allow_discount | num | 启用折扣 | 0:否
1:是
下同 |
+| allow_pack | num | | |
+| allow_ticket | num | 启用票券 | |
+| allow_time_limit | num | 启用时间限制 | |
+| allow_vip_discount | num | 启用大会员折扣 | |
+| forbid_bb | num | 禁止使用B币券 | |
`result`中的`positive`对象:
@@ -1019,4 +1030,4 @@ curl -L -X GET 'https://api.bilibili.com/pgc/web/season/section?season_id=42290'
}
```
-
\ No newline at end of file
+
diff --git a/docs/blackroom/jury/judgement_info.md b/docs/blackroom/jury/judgement_info.md
index 8a55a82..018eea0 100644
--- a/docs/blackroom/jury/judgement_info.md
+++ b/docs/blackroom/jury/judgement_info.md
@@ -58,7 +58,7 @@
-## 查询投票过的单个案件
+## 获取单个案件信息
> https://api.bilibili.com/x/credit/v2/jury/case/info
@@ -82,51 +82,53 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------ | -------- | ------------ |
| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 |
-| message | str | 信息 | 默认为0 |
+| message | str | 信息 | 默认为 0 |
| ttl | num | 1 | |
| data | object | 数据本体 | |
`data` 对象:
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ------ | -------- | ------------ |
-| case_id | str | 案件id | |
-| case_type | num | 任务类型 | 1:单条评论
2:评论氛围
3:单条弹幕
4:弹幕氛围 |
-| jury_state | num | `1` | 改版后未见过其它值 |
-| participate | num | 是否投票 | 0:未投票
1:已投票 |
-| vote_items | object | 投票选项 | 见开头「投票选项码总览」 |
-| default_vote | num | 默认投票选项 | `4`或`14`即`无法判断` |
-| status | num | 裁决状态(新版) | 0:进行中
1:已结束 |
-| origin_start | num | 案件关联视频,播放进度条起始坐标 | 单位:`秒` |
-| avid | num | 视频av号 | |
-| cid | num | 弹幕 dmid | |
-| vote_cd | num | `-1` | 暂不明确 |
-| result | num | 众议结论 | 见开头「投票选项码总览」 |
-| result_text | str | 众议结论文本 | |
-| title | str | 视频标题 | |
-| case_info | object | 案件信息 | |
-| my_point | object | 我的观点 | |
-| vote_info | object | 投票信息 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------------ | ------ | -------------------------------- | -------------------------------------------------------------- |
+| case_id | str | 案件id | |
+| case_type | num | 任务类型 | 1:单条评论
2:评论氛围
3:单条弹幕
4:弹幕氛围 |
+| jury_state | num | `1` | 改版后未见过其它值 |
+| participate | num | 是否投票 | 0:未投票
1:已投票 |
+| vote_items | object | 投票选项 | 见开头「投票选项码总览」 |
+| default_vote | num | 默认投票选项 | `4` 或 `14` 即 `无法判断` |
+| status | num | 裁决状态(新版) | 0:进行中
1:已结束 |
+| origin_start | num | 案件关联视频,播放进度条起始坐标 | 单位:`秒` |
+| avid | num | 视频av号 | |
+| cid | num | 弹幕 dmid | |
+| vote_cd | num | `-1` | 暂不明确 |
+| result | num | 众议结论 | 见开头「投票选项码总览」 |
+| result_text | str | 众议结论文本 | 见开头「投票选项码总览」 |
+| title | str | 视频标题 | |
+| case_info | object | 案件信息 | |
+| my_point | object | 我的观点 | 仅自己投过票才有该字段 |
+| vote_info | object | 投票信息 | |
`data` 对象下的`case_info`对象
-| 字段 | 类型 | 内容 | 备注 |
-| ------------ | ------ | ------------ | ------------------------------------------------------------ |
-| comment | object | 单条评论信息 | 仅当`case_type`为`1`有值。见「对象:评论信息」 |
-| danmu_img | str | 弹幕截图 | 仅当`case_type`为`4`有值,截图URL |
-| comments | object | 若干条评论 | 仅当`case_type`为`2`有值。见「对象:评论信息」 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------------ | ------ | ------------ | ----------------------------------------------- |
+| comment | object | 单条评论信息 | 仅当`case_type`为`1`有值。见「对象:评论信息」 |
+| danmu_img | str | 弹幕截图 | 仅当`case_type`为`4`有值,截图URL |
+| comments | object | 若干条评论 | 仅当`case_type`为`2`有值。见「对象:评论信息」 |
| single_danmu | str | 单条弹幕信息 | 仅当`case_type`为`3`有值。见「对象:评论信息)」 |
+
对象:评论信息
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ---- |
-| mid | num | 用户uid | |
-| uname | str | 用户名 | |
-| face | str | 用户头像 | 头像URL |
-| content | str | 评论内容 | |
+| 字段 | 类型 | 内容 | 备注 |
+| -------------- | ------ | ------------------------ | -------------------------------------------------------------- |
+| mid | num | 用户uid | |
+| uname | str | 用户名 | |
+| face | str | 用户头像 | 头像URL |
+| content | str | 评论内容 | |
| child_comments | object | 子评论(对该评论的回复) | 见「对象:评论信息」,单条评论和子评论下无`child_comments`字段 |
+
对象:弹幕信息
| 字段 | 类型 | 内容 | 备注 |
@@ -137,7 +139,7 @@
`data` 对象下的`my_point`对象
-记录了某个风纪委员的某个投票(观点)信息
+记录了自己的投票(观点)信息,仅当自己投过票才有该字段。
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ---------------- | ------------------------------------------------------------ |
diff --git a/docs/clientinfo/client_info.md b/docs/clientinfo/client_info.md
deleted file mode 100644
index 6fbdf32..0000000
--- a/docs/clientinfo/client_info.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# 终端信息查询
-
-## 终端信息查询
-
-> https://api.bilibili.com/client_info
-
-*请求方式:任意*
-
-**json回复:**
-
-根对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | ------- |
-| code | num | 返回值 | 0:成功 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
-
-`data`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| -------- | -------- | ------------------- | ------------ |
-| country | str | 国家/地区名 | |
-| ip | str | 公网IP地址 | |
-| province | str | 省/州 | 非必须存在项 |
-| city | str | 城市 | 非必须存在项 |
-| district | district | ? | |
-| isp | str | 运营商名 | |
-| dns | str | dns服务器ip | |
-| dns_isp | str | dns服务器ip运营商名 | |
-| headers | obj | 头部字段 | |
-
-`data`中的`headers`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------------------------- | ---- | ----------------- | ---- |
-| HTTP_ACCEPT_ENCODING | str | | |
-| HTTP_X_CACHE_SERVER | str | CDN服务器名 | |
-| HTTP_X_CACHE_SERVER_ADDR | str | CDN服务器ip | |
-| HTTP_X_BACKEND_BILI_REAL_IP | str | 真实服务器ip | |
-| HTTP_X_BACKEND_BILI_REAL_IPPORT | str | 真实服务器端口 | |
-| HTTP_X_BACKEND_BILI_REAL_IP_CHAIN | str | 真实服务器ip+端口 | |
-| HTTP_X_SCHEME | str | 访问协议 | |
-| HTTP_HOST | str | 访问域名 | |
-| HTTP_USER_AGENT | str | 客户端UA | |
-| HTTP_ACCEPT | str | | |
-| HTTP_CACHE_CONTROL | str | | |
-
-**示例:**
-
-```shell
-curl 'https://api.bilibili.com/client_info'
-```
-
-
-查看响应示例:
-
-
-```json
-{
- "code": 0,
- "message": "ok",
- "data": {
- "country": "中国",
- "ip": "36.40.120.140",
- "province": "陕西",
- "city": "渭南",
- "district": null,
- "isp": "电信",
- "dns": null,
- "dns_isp": null,
- "headers": {
- "HTTP_ACCEPT_ENCODING": "gzip",
- "HTTP_X_CACHE_SERVER": "ks-bj-webcdn-07",
- "HTTP_X_CACHE_SERVER_ADDR": "10.33.2.170",
- "HTTP_X_BACKEND_BILI_REAL_IP": "36.40.120.140",
- "HTTP_X_BACKEND_BILI_REAL_IPPORT": "22058",
- "HTTP_X_BACKEND_BILI_REAL_IP_CHAIN": "36.40.120.140:22058",
- "HTTP_X_SCHEME": "https",
- "HTTP_HOST": "api.bilibili.com",
- "HTTP_USER_AGENT": "PostmanRuntime/7.26.8",
- "HTTP_ACCEPT": "*/*",
- "HTTP_CACHE_CONTROL": "no-cache"
- }
- }
-}
-```
-
-
-
diff --git a/docs/comment/action.md b/docs/comment/action.md
index 152abe4..a0f4823 100644
--- a/docs/comment/action.md
+++ b/docs/comment/action.md
@@ -25,12 +25,12 @@
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | ------------------------------------------------------------ |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12001:已经存在评论主题
12002:评论区已关闭
12003:禁止回复
12006:没有该评论
12009:评论主体的type不合法
12015:需要评论验证码
12016:评论内容包含敏感信息
12025:评论字数过多
12035:该账号被UP主列入评论黑名单
12051:重复评论,请勿刷屏
12052:评论区已关闭
**(其他错误码有待补充)** |
-| message | str | 错误信息 |
|
-| ttl | num | 1 | |
-| data | obj | 数据本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
-509:请求过于频繁
12001:已经存在评论主题
12002:评论区已关闭
12003:禁止回复
12006:没有该评论
12009:评论主体的type不合法
12015:需要评论验证码
12016:评论内容包含敏感信息
12025:评论字数过多
12035:该账号被UP主列入评论黑名单
12051:重复评论,请勿刷屏
12052:评论区已关闭
12045:购买后即可发表评论
**(其他错误码有待补充)** |
+| message | str | 错误信息 |
|
+| ttl | num | 1 | |
+| data | obj | 数据本体 | |
`data`对象:
@@ -503,7 +503,7 @@ curl 'https://api.bilibili.com/x/v2/reply/top' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-500:服务器错误
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12008:已经举报过了
12009:评论主体的type不合法
12019:举报过于频繁
**(其他错误码有待补充)** |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-403:权限不足
-404:无此项
-500:服务器错误
-509:请求过于频繁
12002:评论区已关闭
12006:没有该评论
12008:已经举报过了
12009:评论主体的type不合法
12019:举报过于频繁
12077:其他举报理由过长或过短
**(其他错误码有待补充)** |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
diff --git a/docs/comment/list.md b/docs/comment/list.md
index 12aa46e..90731ac 100644
--- a/docs/comment/list.md
+++ b/docs/comment/list.md
@@ -17,7 +17,7 @@
| oid | num | 目标评论区 id | 必要 | |
| sort | num | 排序方式 | 非必要 | 默认为0
0:按时间
1:按点赞数
2:按回复数 |
| nohot | num | 是否不显示热评 | 非必要 | 默认为0
1:不显示
0:显示 |
-| ps | num | 每页项数 | 非必要 | 默认为20
定义域:1-49 |
+| ps | num | 每页项数 | 非必要 | 默认为20
定义域:1-20 |
| pn | num | 页码 | 非必要 | 默认为1 |
**json回复:**
@@ -856,12 +856,16 @@ curl -G 'https://api.bilibili.com/x/v2/reply' \
## 获取评论区明细_懒加载
-> https://api.bilibili.com/x/v2/reply/main
+> https://api.bilibili.com/x/v2/reply/wbi/main
+
+> ~~https://api.bilibili.com/x/v2/reply/main~~
*请求方式:GET*
认证方式:Cookie(SESSDATA)或APP
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
**url参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
diff --git a/docs/comment/readme.md b/docs/comment/readme.md
index 09f0b62..469b19e 100644
--- a/docs/comment/readme.md
+++ b/docs/comment/readme.md
@@ -228,6 +228,7 @@
| emote | obj | 需要渲染的表情转义 | 评论内容无表情则无此项 |
| jump_url | obj | 需要高亮的超链转义 | |
| max_line | num | 6 | 收起最大行数 |
+| pictures | array | 评论图片数组 | |
`content`中的`members`数组:
@@ -285,6 +286,15 @@
| appPackageName | str | (?) | |
| clickReport | str | 上报 id | |
+`content`中的`pictures`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ---- | -------- | -------- |
+| img_src | str | 图片地址 | |
+| img_width | num | 图片宽度 | |
+| img_height | num | 图片高度 | |
+| img_size | num | 图片大小 | 单位KB |
+
`评论条目`中的`replies`数组:
| 项 | 类型 | 内容 | 备注 |
diff --git a/docs/creativecenter/railgun.md b/docs/creativecenter/railgun.md
index 95702e7..8b171bb 100644
--- a/docs/creativecenter/railgun.md
+++ b/docs/creativecenter/railgun.md
@@ -4,7 +4,7 @@
## 获取电磁力等级(web端)
-> https://member.bilibili.com/x/web/elec/user
+> https://api.bilibili.com/studio/up-rating/v3/rating/info
*请求方式:GET*
@@ -26,8 +26,10 @@
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ----------- | ---------------- |
| mid | num | 当前用户mid | |
-| state | num | 电磁力等级 | |
-| reason | str | 空 | **作用尚不明确** |
+| level | num | 电磁力等级 | |
+| score | num | 电磁力分数 | |
+| credit | num | 信用分 | |
+| state | num | ? | 一直是2 |
**示例:**
@@ -45,16 +47,19 @@ curl 'https://member.bilibili.com/x/web/elec/user' \
"message": "0",
"ttl": 1,
"data": {
- "mid": 293793435,
+ "mid": ***,
+ "level": 4,
+ "score": 326,
+ "credit": 100,
"state": 2,
- "reason": ""
+ "update_date": 1694966400
}
}
```
-## 获取电磁力详细数值(双端)
+## (失效)获取电磁力详细数值(双端)
> https://api.bilibili.com/studio/up-rating/rating/summary
diff --git a/docs/creativecenter/statistics&data.md b/docs/creativecenter/statistics&data.md
index 9beef43..e86a450 100644
--- a/docs/creativecenter/statistics&data.md
+++ b/docs/creativecenter/statistics&data.md
@@ -156,7 +156,7 @@ curl 'https://member.bilibili.com/x/web/data/article' \
## 视频数据增量趋势
-> https://member.bilibili.com/x/web/data/article/thirty
+> https://member.bilibili.com/x/web/data/pandect
*请求方式:GET*
diff --git a/docs/danmaku/action.md b/docs/danmaku/action.md
index 309f5e0..2b4445e 100644
--- a/docs/danmaku/action.md
+++ b/docs/danmaku/action.md
@@ -14,21 +14,23 @@
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ |
-| access_key | str | APP登录Token | APP方式必要 | |
-| type | num | 弹幕类选择 | 必要 | 1:视频弹幕 |
-| oid | num | 视频cid | 必要 | |
-| msg | str | 弹幕内容 | 必要 | 长度小于100字符 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒
默认为0 |
-| color | num | 弹幕颜色设置 | 非必要 | 十进制RGB888值
默认为16777215(#FFFFFF)白色 |
-| fontsize | num | 弹幕字号设置 | 非必要 | 默认为25
极小:12
超小:16
小:18
标准:25
大:36
超大:45
极大:64 |
-| pool | num | 弹幕池选择 | 非必要 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕)
默认为0 |
-| mode | num | 弹幕类型选择 | 必要 | 1:普通弹幕
4:底部弹幕
5:顶部弹幕
7:高级弹幕
9:BAS弹幕(`pool`必须为2) |
-| rnd | num | 当前时间戳*1000000 | 非必要 | **若无此项,则发送弹幕冷却时间限制为90s**
若有此项,则发送弹幕冷却时间限制为5s |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------------- | ---- | ------------------------- | --------------- | ------------------------------------------------------------ |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| type | num | 弹幕类选择 | 必要 | 1:视频弹幕
2:漫画弹幕 |
+| oid | num | 视频 cid | 必要 | |
+| msg | str | 弹幕内容 | 必要 | 长度小于 100 字符 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| progress | num | 弹幕出现在视频内的时间 | 非必要 | 单位为毫秒
默认为0 |
+| color | num | 弹幕颜色设置 | 非必要 | 十进制 RGB888 值
如`16777215`为 #FFFFFF 即白色 |
+| fontsize | num | 弹幕字号设置 | 非必要 | 默认为 25
极小:12
超小:16
小:18
标准:25
大:36
超大:45
极大:64 |
+| pool | num | 弹幕池选择 | 非必要 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕)
默认为0 |
+| mode | num | 弹幕类型选择 | 必要 | 1:普通弹幕
4:底部弹幕
5:顶部弹幕
7:高级弹幕
9:BAS弹幕(`pool`必须为2) |
+| rnd | num | 当前时间戳*1000000 | 非必要 | **若无此项,则发送弹幕冷却时间限制为90s**
若有此项,则发送弹幕冷却时间限制为5s |
+| colorful | num | 彩色弹幕 | 非必要 | 60001:专属渐变彩色(需要会员) |
+| checkbox_type | num | 是否带 UP 身份标识 | 非必要 | 0:普通
4:带有标识 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -36,38 +38,48 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
36700:系统升级中
36701:弹幕包含被禁止的内容
36702:弹幕长度大于100
36703:发送频率过快
36704:禁止向未审核的视频发送弹幕
36705:您的等级不足,不能发送弹幕
36706:您的等级不足,不能发送顶端弹幕
36707:您的等级不足,不能发送底端弹幕
36708:您的等级不足,不能发送彩色弹幕
36709:您的等级不足,不能发送高级弹幕
36710:您的权限不足,不能发送这种样式的弹幕
36711:该视频禁止发送弹幕
36712:level 1用户发送弹幕的最大长度为20
36713:稿件未付费
36714:弹幕发送时间不合法
36715:当日操作数量超过上限 |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-111:csrf校验失败
-400:请求错误
-404:无此项
36700:系统升级中
36701:弹幕包含被禁止的内容
36702:弹幕长度大于100
36703:发送频率过快
36704:禁止向未审核的视频发送弹幕
36705:您的等级不足,不能发送弹幕
36706:您的等级不足,不能发送顶端弹幕
36707:您的等级不足,不能发送底端弹幕
36708:您的等级不足,不能发送彩色弹幕
36709:您的等级不足,不能发送高级弹幕
36710:您的权限不足,不能发送这种样式的弹幕
36711:该视频禁止发送弹幕
36712:level 1用户发送弹幕的最大长度为20
36713:稿件未付费
36714:弹幕发送时间不合法
36715:当日操作数量超过上限
36718:目前您不是大会员,无法使用会员权益 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| -------- | ---- | -------- | ------------ |
-| action | str | 空 | 作用尚不明确 |
-| dmid | num | 弹幕dmid | |
-| dmid_str | str | 弹幕dmid | 字串形式 |
-| visible | bool | true | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------------ | ---------- | ------------------ | -------------------------------- |
+| action | str | (?) | |
+| animation | str | 弹幕样式 Json? | |
+| colorful_src | str 或 obj | 渐变彩色样式信息? | 当请求参数`colorful=60001`时有效 |
+| dm_content | str | (?) | |
+| dmid | num | 弹幕 dmid | |
+| dmid_str | str | 弹幕 dmid | 字串形式 |
+| visible | bool | (?) | |
+
+`data`中的`colorful_src`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------------- | ---- |
+| type | num | 60001 | |
+| src | str | 渐变色样式 Json? | |
**示例:**
-为视频`av2`/`BV1xx411c7mD`(cid为`62131`)的5000ms位置发送一条弹幕`前来考古`(颜色为#FFFFFF,字号25,普通弹幕,游动弹幕)
+为视频`av2`/`BV1xx411c7mD`(cid为`62131`)的 5000ms 位置发送一条弹幕`前来考古`(颜色为 #FFFFFF,字号 25,普通弹幕,游动弹幕)
```shell
curl 'https://api.bilibili.com/x/v2/dm/post' \
---data-urlencode 'type=1' \
---data-urlencode 'oid=62131' \
---data-urlencode 'msg=前来考古' \
---data-urlencode 'aid=2' \
---data-urlencode 'progress=5000' \
---data-urlencode 'color=16777215' \
---data-urlencode 'fontsize=25' \
---data-urlencode 'pool=0' \
---data-urlencode 'mode=1' \
---data-urlencode 'rnd=3456789987654321' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'type=1' \
+ --data-urlencode 'oid=62131' \
+ --data-urlencode 'msg=前来考古' \
+ --data-urlencode 'aid=2' \
+ --data-urlencode 'progress=5000' \
+ --data-urlencode 'color=16777215' \
+ --data-urlencode 'fontsize=25' \
+ --data-urlencode 'pool=0' \
+ --data-urlencode 'mode=1' \
+ --data-urlencode 'rnd=3456789987654321' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -483,88 +495,6 @@ curl -G 'https://api.bilibili.com/x/dm/adv/state' \
-## 查询弹幕点赞数
-
-> https://api.bilibili.com/x/v2/dm/thumbup/stats
-
-*请求方式:GET*
-
-认证方式:Cookie(SESSDATA)或APP
-
-**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| oid | num | 视频cid | 必要 | |
-| ids | nums | 弹幕dmid列表 | 必要 | 多个id之间用`,`分隔 |
-
-**json回复**
-
-根对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | --------------------------- |
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
-
-`data`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| -------- | ---- | ---------------- | --------------------------------- |
-| {弹幕id} | obj | 弹幕id对应的信息 | id分别对应请求参数中的`ids`,下同 |
-| …… | obj | 弹幕id对应的信息 | |
-
-`{弹幕id}`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ---- | -------- | ------------------------------------------------------------ |
-| likes | num | 点赞数 | |
-| user_like | num | 是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie或APP)
未登录恒为0 |
-| id_str | str | 弹幕dmid | |
-
-**示例**
-
-查询`cid=236871317`下的弹幕`35600074482384899`、`38880975220375559`、`39052528418553863`点赞数
-
-```shell
-curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
---data-urlencode 'oid=236871317' \
---data-urlencode 'ids=39019145405661191,38880975220375559,39052528418553863' \
--b 'SESSDATA=xxx'
-```
-
-
-查看响应示例:
-
-```json
-{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "38880975220375559": {
- "likes": 1,
- "user_like": 1,
- "id_str": "38880975220375559"
- },
- "39019145405661191": {
- "likes": 3,
- "user_like": 1,
- "id_str": "39019145405661191"
- },
- "39052528418553863": {
- "likes": 2,
- "user_like": 0,
- "id_str": "39052528418553863"
- }
- }
-}
-```
-
-
-
## 点赞弹幕
> https://api.bilibili.com/x/v2/dm/thumbup/add
@@ -573,16 +503,18 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
认证方式:Cookie(SESSDATA)或APP
+查询指定弹幕点赞状态参阅文档 [弹幕点赞查询](thumbup.md)
+
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------------------ | -------------- | ------------------------ |
-| access_key | str | APP登录Token | APP方式必要 | |
-| dmid | num | 弹幕dmid | 必要 | |
-| oid | num | 视频cid | 必要 | |
-| op | num | 操作 | 必要 | 1:点赞
2:取消点赞 |
-| platform | str | 平台 | 非必要 | |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | ------------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| dmid | num | 目标弹幕 dmid | 必要 | |
+| oid | num | 目标弹幕所在视频 cid | 必要 | |
+| op | num | 操作 | 必要 | 1:点赞
2:取消点赞 |
+| platform | str | 平台标识 | 非必要 | web_player:web 播放器
android:安卓端 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -600,12 +532,12 @@ curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
```shell
curl 'https://api.bilibili.com/x/v2/dm/thumbup/add' \
---data-urlencode 'dmid=35600074482384899' \
---data-urlencode 'oid=145928946' \
---data-urlencode 'op=1' \
---data-urlencode 'platform=web_player' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'dmid=35600074482384899' \
+ --data-urlencode 'oid=145928946' \
+ --data-urlencode 'op=1' \
+ --data-urlencode 'platform=web_player' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
diff --git a/docs/danmaku/danmaku_proto.md b/docs/danmaku/danmaku_proto.md
index 4835202..b21bd32 100644
--- a/docs/danmaku/danmaku_proto.md
+++ b/docs/danmaku/danmaku_proto.md
@@ -1,43 +1,49 @@
# protobuf弹幕
-2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕api,网页端弹幕显示的上限变为原弹幕池上限的两倍。
+2020年5月23日,哔哩哔哩网页端及移动端启用了新的默认弹幕 API,网页端弹幕显示的上限变为原弹幕池上限的两倍。
-新的api是以6分钟为一个单位加载,即每次加载6分钟内的弹幕
+新的 API 是以 6min 为一个单位加载,即每次加载 6min 内的弹幕
## 获取实时弹幕
> https://api.bilibili.com/x/v2/dm/web/seg.so (web端)
>
+> https://api.bilibili.com/x/v2/dm/wbi/web/seg.so (web 端新接口,需要 wbi 认证)
+>
> https://api.bilibili.com/x/v2/dm/list/seg.so (APP端)
>
> https://i0.hdslb.com/bfs/dm/{data}.bin (BAS/代码弹幕专包)
*请求方式:GET*
+*认证方式:半匿名(部分视频在无 Cookie: SESSDATA 时只返回部分弹幕)*
此接口与漫画弹幕相同
只能返回普通弹幕(`pool=1` `mode=1-7`)和代码弹幕(`pool=2` `mode=8`),BAS弹幕(`pool=2` `mode=9`)请从[弹幕元数据](danmaku_view_proto.md)中获取
-互动弹幕(UP主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取
+互动弹幕(UP 主头像弹幕、关联视频、内嵌关注按钮)也不存在这个接口,请从[弹幕元数据](danmaku_view_proto.md)中获取
-**注:仅获取6min的整数倍时间内的弹幕,6min内最多弹幕数为6000条(如第一包中弹幕`progress`值域为0-360000)**
+**注:仅获取 6min 的整数倍时间内的弹幕,6min 内最多弹幕数为 6000 条(如第一包中弹幕`progress`值域为0-360000)**
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ------------- | ---- | -------- | ------ | ----------- |
-| type | num | 弹幕类 | 必要 | 1:视频弹幕 |
-| oid | num | 视频cid | 必要 | |
-| pid | num | 稿件avid | 非必要 | |
-| segment_index | num | 分包 | 必要 | 6分钟一包 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------------- | ---- | --------- | ------ | ---------------------------- |
+| type | num | 弹幕类 | 必要 | 1:视频弹幕
2:漫画弹幕 |
+| oid | num | 视频 cid | 必要 | |
+| pid | num | 稿件 avid | 非必要 | |
+| segment_index | num | 分包 | 必要 | 6min 一包 |
+| pull_mode | num | (?) | 非必要 | |
+| ps | num | (?) | 非必要 | |
+| pe | num | (?) | 非必要 | |
**proto回复:**
-proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api/bilibili/community/service/dm/v1/dm.proto)
+proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../../grpc_api/bilibili/community/service/dm/v1/dm.proto)
-- [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译protogen工具, 无需再安装本地编译器(生成文件需加后缀‘_pb2.py‘才可使用)
+- [protogen.marcgravell](https://protogen.marcgravell.com/): 在线编译 protogen 工具, 无需再安装本地编译器(生成文件需加后缀`_pb2.py`才可使用)
-- [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的python的protogen解析库
+- [protobuf pip](https://pypi.org/project/protobuf/): 可一键安装的 Python 的 protogen 解析库
消息`DmSegMobileReply`:
@@ -47,26 +53,28 @@ proto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api
消息`DanmakuElem`:
-| 名称 | 类型 | 含义 | 备注 |
-| -------- | ------ | ------------------ | ------------------------------------------------------------ |
-| id | int64 | 弹幕dmid | 唯一 可用于操作参数 |
-| progress | int32 | 视频内弹幕出现时间 | 毫秒 |
-| mode | int32 | 弹幕类型 | 1 2 3:普通弹幕
4:底部弹幕
5:顶部弹幕
6:逆向弹幕
7:高级弹幕
8:代码弹幕
9:BAS弹幕(仅限于特殊弹幕专包) |
-| fontsize | int32 | 弹幕字号 | 18:小
25:标准
36:大 |
-| color | uint32 | 弹幕颜色 | 十进制RGB888值 |
-| midHash | string | 发送者mid的HASH | 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id |
-| content | string | 弹幕内容 | utf-8编码 |
-| ctime | int64 | 弹幕发送时间 | 时间戳 |
-| weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
范围:[0-10]
值越大权重越高 |
-| action | string | 动作? | 作用尚不明确 |
-| pool | int32 | 弹幕池 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕) |
-| idStr | string | 弹幕dmid | 字串形式
唯一 可用于操作参数 |
+| 名称 | 类型 | 含义 | 备注 |
+| --------- | ------ | ------------------ | ------------------------------------------------------------ |
+| id | int64 | 弹幕 dmid | 唯一 可用于操作参数 |
+| progress | int32 | 视频内弹幕出现时间 | 毫秒 |
+| mode | int32 | 弹幕类型 | 1 2 3:普通弹幕
4:底部弹幕
5:顶部弹幕
6:逆向弹幕
7:高级弹幕
8:代码弹幕
9:BAS 弹幕(仅限于特殊弹幕专包) |
+| fontsize | int32 | 弹幕字号 | 18:小
25:标准
36:大 |
+| color | uint32 | 弹幕颜色 | 十进制 RGB888 值 |
+| midHash | string | 发送者 mid 的 HASH | 用于屏蔽用户和查看用户发送的所有弹幕,也可反查用户id |
+| content | string | 弹幕内容 | utf-8编码 |
+| ctime | int64 | 弹幕发送时间 | 时间戳 |
+| weight | int32 | 权重 | 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出
范围:[0-10]
值越大权重越高 |
+| action | string | 动作? | |
+| pool | int32 | 弹幕池 | 0:普通池
1:字幕池
2:特殊池(代码/BAS弹幕) |
+| idStr | string | 弹幕 dmid | 字串形式
唯一 可用于操作参数 |
+| attr | int32 | 弹幕属性位 | bit0:保护
bit1:直播
bit2:高赞 |
+| animation | string | 动画? | |
**示例:**
-获取视频`av810872(cid=1176840)`(炮姐)的实时弹幕分包1
+获取视频`av810872(cid=1176840)`(炮姐)的实时弹幕分包 1
-**注:[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过pypi安装**
+**注:以下[proto定义](../grpc_api/bilibili/community/service/dm/v1/dm.proto)需要编译,`bilibili.community.service.dm.v1.dm_pb2`并非通过 pypi 安装**
```python
import requests
diff --git a/docs/danmaku/danmaku_xml.md b/docs/danmaku/danmaku_xml.md
index 1e7ddb4..aacaf61 100644
--- a/docs/danmaku/danmaku_xml.md
+++ b/docs/danmaku/danmaku_xml.md
@@ -127,19 +127,19 @@ curl 'https://comment.bilibili.com/144541892.xml'
弹幕的颜色属性使用**十进制RGB888**值
-| 颜色 | HEX(RGB888) | DEC(RGB888) |
-| --------------------------------- | ----------------------------------- | ------------------------------------- |
-| 红色 | FE0302 | 16646914 |
-| 橘红 | FF7204 | 16740868 |
-| 橘黄 | FFAA02 | 16755202 |
-| 淡黄 | FFD302 | 16765698 |
-| 黄色 | FFFF00 | 16776960 |
-| 草绿 | A0EE00 | 10546688 |
-| 绿色 | 00CD00 | 52480 |
-| 墨绿 | 019899 | 104601 |
-| 紫色 | 4266BE | 4351678 |
-| 青色 | 89D5FF | 9022215 |
-| 品红 | CC0273 | 13369971 |
-| 黑色 | 222222 | 2236962 |
-| 灰色 | 9B9B9B | 10197915 |
-| 白色 | FFFFFF | 16777215 |
+| 颜色 | HEX(RGB888) | DEC(RGB888) |
+| -------------------------------------- | ----------------------------------------- | ------------------------------------------- |
+| 红色 | FE0302 | 16646914 |
+| 橘红 | FF7204 | 16740868 |
+| 橘黄 | FFAA02 | 16755202 |
+| 淡黄 | FFD302 | 16765698 |
+| 黄色 | FFFF00 | 16776960 |
+| 草绿 | A0EE00 | 10546688 |
+| 绿色 | 00CD00 | 52480 |
+| 墨绿 | 019899 | 104601 |
+| 紫色 | 4266BE | 4351678 |
+| 青色 | 89D5FF | 9022215 |
+| 品红 | CC0273 | 13369971 |
+| 黑色 | 222222 | 2236962 |
+| 灰色 | 9B9B9B | 10197915 |
+| 白色 | FFFFFF | 16777215 |
diff --git a/docs/danmaku/history.md b/docs/danmaku/history.md
index d121cda..a20f15a 100644
--- a/docs/danmaku/history.md
+++ b/docs/danmaku/history.md
@@ -119,7 +119,7 @@ curl -G 'https://api.bilibili.com/x/v2/dm/history/index' \
**proto回复:**
-porto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](../grpc_api/bilibili/community/service/dm/v1.proto)
+porto定义见:[bilibili.community.service.dm.v1.DmSegMobileReply](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/grpc_api/bilibili/community/service/dm/v1/dm.proto)
详细说明见[protobuf弹幕](danmaku_proto.md)
@@ -237,4 +237,4 @@ curl -G 'https://api.bilibili.com/x/v2/dm/history' \
-
\ No newline at end of file
+
diff --git a/docs/danmaku/thumbup.md b/docs/danmaku/thumbup.md
new file mode 100644
index 0000000..0d59ff9
--- /dev/null
+++ b/docs/danmaku/thumbup.md
@@ -0,0 +1,104 @@
+# 弹幕点赞查询
+
+## 查询指定dmid的点赞数
+
+> https://api.bilibili.com/x/v2/dm/thumbup/stats
+
+*请求方式:GET*
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------------- | ------ | --------------------- |
+| oid | num | 视频 cid | 必要 | |
+| ids | nums | 欲查询的弹幕 dmid | 必要 | 多个 id 之间用`,`分隔 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------------------------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 弹幕 id 与之对应数据的 Map | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | -------------------------- | ---- |
+| {弹幕 dmid} | obj | {弹幕 dmid} 对应的点赞信息 | |
+
+`{弹幕 dmid}`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| -------------------- | ---- | ---------------------- | ------------------------------------------------------- |
+| likes | num | 对应弹幕所获得的点赞数 | |
+| user_like | num | 当前用户是否点赞 | 0:未点赞
1:已点赞
需要登录(Cookie 或 APP) |
+| id_str | str | 弹幕 dmid 字符串形式 | |
+| show_threshold | num | (?) | |
+| reply_count | num | (?) | |
+| gray_release_control | obj | (?) | |
+
+`gray_release_control`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------- | ---- | ------ | ---- |
+| show_dm_reply | bool | (?) | |
+
+**示例:**
+
+获取视频 BV1AP411d7Qa 1P(cid=1131648710)下的几个弹幕 dmid`1318231376180646144,1318231518484950784,1318231736680887808`
+
+```bash
+curl -G 'https://api.bilibili.com/x/v2/dm/thumbup/stats' \
+ --data-urlencode 'oid=1131648710' \
+ --data-urlencode 'ids=1318231376180646144,1318231518484950784,1318231736680887808' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "1318231376180646144": {
+ "likes": 0,
+ "user_like": 0,
+ "id_str": "1318231376180646144",
+ "show_threshold": 10,
+ "reply_count": 0,
+ "gray_release_control": {
+ "show_dm_reply": false
+ }
+ },
+ "1318231518484950784": {
+ "likes": 0,
+ "user_like": 0,
+ "id_str": "1318231518484950784",
+ "show_threshold": 10,
+ "reply_count": 0,
+ "gray_release_control": {
+ "show_dm_reply": false
+ }
+ },
+ "1318231736680887808": {
+ "likes": 0,
+ "user_like": 0,
+ "id_str": "1318231736680887808",
+ "show_threshold": 10,
+ "reply_count": 0,
+ "gray_release_control": {
+ "show_dm_reply": false
+ }
+ }
+ }
+}
+```
+
+
diff --git a/docs/dynamic/all.md b/docs/dynamic/all.md
new file mode 100644
index 0000000..a054e65
--- /dev/null
+++ b/docs/dynamic/all.md
@@ -0,0 +1,3811 @@
+# 获取动态列表
+
+> https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all
+
+请求方式:`GET`
+
+是否需要登录:`是`
+
+## URL参数
+
+| 参数名 | 类型 | 必填 | 内容 | 备注 |
+|-----------------|-----|-----|--------|-----------------------------------------------------------|
+| timezone_offset | str | | `-480` | |
+| type | str | | 分类 | `all`:全部
`video`:视频投稿
`pgc`:追番追剧
`article`:专栏 |
+| offset | num | | 分页偏移量 | 翻页时使用 |
+| update_baseline | str | | 更新基线 | 获取新动态时使用 |
+| page | num | | 页数 | 无效参数 |
+
+## Json回复
+
+### 根对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|------|---------------------|
+| code | num | 响应码 | 0:成功
-101:账号未登录 |
+| message | str | | |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+### `data`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------------|-------|----------------|----------------------------------|
+| has_more | bool | 是否有更多数据 | |
+| items | array | 数据数组 | |
+| offset | str | 偏移量 | 等于`items`中最后一条记录的id
获取下一页时使用 |
+| update_baseline | str | 更新基线 | 等于`items`中第一条记录的id |
+| update_num | num | 本次获取获取到了多少条新动态 | 在更新基线以上的动态条数 |
+
+### `data`对象 -> `items`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|------|-------|------------------------------------|
+| basic | obj | | |
+| id_str | str | 动态id | |
+| modules | obj | 动态信息 | |
+| type | str | 动态类型 | [动态类型](./dynamic_enum.md#动态类型) |
+| visible | bool | 是否显示 | `true`:正常显示
`false`:折叠动态 |
+| orig | obj | 原动态信息 | 仅动态类型为`DYNAMIC_TYPE_FORWARD`的情况下存在 |
+
+### `data`对象 -> `items`数组中的对象 -> `basic`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------------|-----|-----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| comment_id_str | str | | `DYNAMIC_TYPE_AV`:视频AV号
`DYNAMIC_TYPE_UGC_SEASON`:视频AV号
`DYNAMIC_TYPE_PGC`:剧集分集AV号
`DYNAMIC_TYPE_LIVE_RCMD`:动态本身id
`DYNAMIC_TYPE_DRAW`:相簿id
`DYNAMIC_TYPE_ARTICLE`:专栏cv号
`DYNAMIC_TYPE_FORWARD`:动态本身id
`DYNAMIC_TYPE_WORD`:动态本身id
`DYNAMIC_TYPE_LIVE`:动态本身id
`DYNAMIC_TYPE_MEDIALIST`:收藏夹ml号 |
+| comment_type | num | | 1:`DYNAMIC_TYPE_AV` `DYNAMIC_TYPE_PGC` `DYNAMIC_TYPE_UGC_SEASON`
11:`DYNAMIC_TYPE_DRAW`
12:`DYNAMIC_TYPE_ARTICLE`
17:`DYNAMIC_TYPE_LIVE_RCMD` `DYNAMIC_TYPE_FORWARD` `DYNAMIC_TYPE_WORD` `DYNAMIC_TYPE_COMMON_SQUARE`
19:`DYNAMIC_TYPE_MEDIALIST` |
+| like_icon | obj | | `空串` |
+| rid_str | str | | `DYNAMIC_TYPE_AV`:视频AV号
`DYNAMIC_TYPE_UGC_SEASON`:视频AV号 `DYNAMIC_TYPE_PGC`:剧集分集EP号
`DYNAMIC_TYPE_DRAW`:相簿id
`DYNAMIC_TYPE_ARTICLE`:专栏cv号
`DYNAMIC_TYPE_LIVE_RCMD`:live_id
`DYNAMIC_TYPE_FORWARD`:未知
`DYNAMIC_TYPE_WORD`:未知
`DYNAMIC_TYPE_COMMON_SQUARE`:未知
`DYNAMIC_TYPE_LIVE`:直播间id
`DYNAMIC_TYPE_MEDIALIST`:收藏夹ml号 |
+
+### `data`对象 -> `items`数组中的对象 -> `basic`对象 -> `like_icon`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------------|-----|------|-----|
+| action_url | str | `空串` | |
+| end_url | str | `空串` | |
+| id | num | `0` | |
+| start_url | str | `空串` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|--------------------|-----|-----------|-----|
+| module_author | obj | UP主信息 | |
+| module_dynamic | obj | 动态内容信息 | |
+| module_more | obj | 动态右上角三点菜单 | |
+| module_stat | obj | 动态统计数据 | |
+| module_interaction | obj | 热度评论 | |
+| module_fold | obj | 动态折叠信息 | |
+| module_dispute | obj | 争议小黄条 | |
+| module_tag | obj | 置顶信息 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------------------|------|-------------------------|-------------------------------------------------------------------------------------|
+| face | str | 头像 | |
+| face_nft | bool | 是否为NFT头像 | |
+| following | bool | 是否关注此UP主 | 自己的动态为`null` |
+| jump_url | str | 跳转链接 | |
+| label | str | 名称前标签 | `合集`
`电视剧`
`番剧` |
+| mid | num | UP主UID
剧集SeasonId | |
+| name | str | UP主名称
剧集名称
合集名称 | |
+| official_verify | obj | UP主认证信息 | |
+| pendant | obj | UP主头像框 | |
+| pub_action | str | 更新动作描述 | `投稿了视频`
`直播了`
`投稿了文章`
`更新了合集`
`与他人联合创作`
`发布了动态视频`
`投稿了直播回放` |
+| pub_location_text | str | `空串` | |
+| pub_time | str | 更新时间 | `x分钟前`
`x小时前`
`昨天` |
+| pub_ts | num | 更新时间戳 | 单位:秒 |
+| type | str | 作者类型 | [作者类型](./dynamic_enum.md#作者类型) |
+| vip | obj | UP主大会员信息 | |
+| decorate | obj | 装扮信息 | |
+| nft_info | obj | NFT头像信息 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `official_verify`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------|-----|------|-----|
+| desc | str | 认证说明 | |
+| type | num | 认证类型 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `pendant`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------------------|-----|--------------|------------|
+| expire | num | 过期时间 | 此接口返回恒为`0` |
+| image | str | 头像框图片url | |
+| image_enhance | str | 头像框图片url | |
+| image_enhance_frame | str | 头像框图片逐帧序列url | |
+| name | str | 头像框名称 | |
+| pid | num | 头像框id | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `vip`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------------------|-----|----------|---------------------------------|
+| avatar_subscript | num | 是否显示角标 | 0:不显示
1:显示 |
+| avatar_subscript_url | str | `空串` | |
+| due_date | num | 大会员过期时间戳 | 单位:秒 |
+| label | obj | 大会员标签 | |
+| nickname_color | str | 名字显示颜色 | 大会员:`#FB7299` |
+| status | num | 大会员状态 | 0:无
1:有
2:? |
+| theme_type | num | `0` | |
+| type | num | 大会员类型 | 0:无
1:月大会员
2:年度及以上大会员 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `vip`对象 -> `label`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------|
+| bg_color | str | 会员标签背景颜色 | `#FB7299` |
+| bg_style | num | `0` `1` | |
+| border_color | str | `空串` | |
+| img_label_uri_hans | str | 大会员牌子图片 | 动态版 简体版 |
+| img_label_uri_hans_static | str | 大会员牌子图片 | 静态版 简体版 |
+| img_label_uri_hant | str | 大会员牌子图片 | 动态版 繁体版 |
+| img_label_uri_hant_static | str | 大会员牌子图片 | 静态版 繁体版 |
+| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员
fools_day_hundred_annual_vip:最强绿鲤鱼 |
+| path | str | `空串` | |
+| text | str | 会员类型文案 | `大会员` `年度大会员` `十年大会员` `百年大会员` `最强绿鲤鱼` |
+| text_color | str | 用户名文字颜色 | |
+| use_img_label | bool | `true` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `decorate`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|--------------|-----|
+| card_url | str | 动态卡片小图标图片URL | |
+| fan | obj | 粉丝装扮信息 | |
+| id | num | 装扮ID | |
+| jump_url | str | 跳转URL | |
+| name | str | 装扮名称 | |
+| type | num | `1` `2` `3` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `decorate`对象 -> `fan`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|------|---------|-----|
+| color | str | 编号颜色 | |
+| is_fan | bool | 是否是粉丝装扮 | |
+| num_str | str | 装扮编号 | |
+| number | num | 装扮编号 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_author`对象 -> `nft_info`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------------|-----|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| region_icon | str | NFT头像角标URL | 类型1:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/j8AeXAkEul.gif
类型2:https://i0.hdslb.com/bfs/activity-plat/static/20220506/334553dd7c506a92b88eaf4d59ac8b4d/IOHoVs1ebP.gif |
+| region_type | num | NFT头像角标类型 | 1,2 |
+| show_status | num | `1` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------------|-----|----------|-----|
+| additional | obj | 相关内容卡片信息 | |
+| desc | obj | 动态文字内容 |其他动态时为null |
+| major | obj | 动态主体对象 |转发动态时为null |
+| topic | obj | 话题信息 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|------|----------------------------------------|
+| common | obj | 一般类型 | `ADDITIONAL_TYPE_COMMON`类型独有 |
+| type | str | 卡片类型 | [相关内容卡片类型](./dynamic_enum.md#相关内容卡片类型) |
+| reserve | obj | 预约信息 | `ADDITIONAL_TYPE_RESERVE`类型独有 |
+| goods | obj | 商品内容 | `ADDITIONAL_TYPE_GOODS`类型独有 |
+| vote | obj | 投票信息 | `ADDITIONAL_TYPE_VOTE`类型独有 |
+| ugc | obj | 视频信息 | `ADDITIONAL_TYPE_UGC`类型独有 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|-------|-----------------------------------|
+| button | obj | 按钮内容 | |
+| cover | str | 左侧封面图 | |
+| desc1 | str | 描述1 | |
+| desc2 | str | 描述2 | |
+| head_text | str | 卡片头文本 | |
+| id_str | str | 相关id | |
+| jump_url | str | 跳转URL | |
+| style | num | `1` | |
+| sub_type | str | 子类型 | `game`
`decoration`
`ogv` |
+| title | str | 卡片标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------------|-----|-------|---------------------------------------|
+| jump_style | obj | 跳转类型 | `game`和`decoration`类型特有 |
+| jump_url | str | 跳转URL | |
+| type | num | | 1:`game`和`decoration`类型
2:`ogv`类型 |
+| check | obj | | `ogv`类型特有 |
+| status | num | `1` | |
+| uncheck | obj | | `ogv`类型特有 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 -> `jump_style`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|--------|--------------------------------|
+| icon_url | str | `空串` | |
+| text | str | 按钮显示文案 | game:`进入`
decoration:`去看看` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 -> `check`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|---------|-----------|
+| icon_url | str | 按钮图片URL | |
+| text | str | 按钮显示文案 | `ogv`:已追剧 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `common`对象 -> `button`对象 -> `uncheck`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|---------|----------|
+| icon_url | str | 按钮图片URL | |
+| text | str | 按钮显示文案 | `ogv`:追剧 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------------|-----|----------|-----|
+| button | obj | 按钮信息 | |
+| desc1 | obj | 预约时间 | |
+| desc2 | obj | 预约观看量 | |
+| jump_url | str | 跳转URL | |
+| reserve_total | num | 预约人数 | |
+| rid | num | | |
+| state | num | `0` | |
+| stype | num | `1` `2` | |
+| title | str | 预约标题 | |
+| up_mid | num | 预约发起人UID | |
+| desc3 | obj | 预约有奖信息 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------------|-----|-----------|------------------------------------------------------|
+| check | obj | 已预约状态显示内容 | |
+| status | num | 预约状态 | 1:未预约,使用`uncheck`
2:已预约,使用`check` |
+| type | num | 类型 | 1:视频预约,使用`jump_style`
2:直播预约,使用`check`和`uncheck` |
+| uncheck | obj | 未预约状态显示内容 | |
+| jump_style | obj | 跳转按钮 | |
+| jump_url | str | 跳转URL | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 -> `check`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|--------|-------|
+| icon_url | str | `空串` | |
+| text | str | 按钮显示文案 | `已预约` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 -> `uncheck`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------------|-----|
+| icon_url | str | 显示图标URL | |
+| text | str | 按钮显示文案 | |
+| toast | str | 预约成功显示提示文案 | |
+| disable | num | 是否不可预约 | 1:是 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `button`对象 -> `jump_style`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|--------|-------|
+| icon_url | str | `空串` | |
+| text | str | 按钮显示文案 | `去观看` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `desc1`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------|-----|------|------------------------------------------------------|
+| style | num | 类型 | 0:`视频预约` `11-05 20:00 直播` `预计今天 17:05发布`
1:`直播中` |
+| text | str | 显示文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `desc2`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|------|------|-----------------------------------------------|
+| style | num | `0` | |
+| text | str | 显示文案 | `2人预约`
`743观看`
`1.0万人看过`
`2151人气` |
+| visible | bool | 是否显示 | true:显示文案
false:显示已结束 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `reserve`对象 -> `desc3`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|-----------|-----|
+| jump_url | str | 开奖信息跳转URL | |
+| style | num | `1` | |
+| text | str | 奖品信息显示文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `goods`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-------|---------|-----|
+| head_icon | str | `空串` | |
+| head_text | str | 卡片头显示文案 | |
+| items | array | 商品信息列表 | |
+| jump_url | str | `空串` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `goods`对象 -> `items`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|----------|-----|
+| brief | str | 商品副标题 | |
+| cover | str | 商品封面 | |
+| id | str | 商品ID | |
+| jump_desc | str | 跳转按钮显示文案 | |
+| jump_url | str | 跳转URL | |
+| name | str | 商品名称 | |
+| price | str | 商品价格 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `vote`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------------|------|-----------------|------|
+| choice_cnt | num | `1` | |
+| default_share | num | 是否默认勾选`同时分享至动态` | 1:勾选 |
+| desc | str | 投票标题 | |
+| end_time | num | 剩余时间 | 单位:秒 |
+| join_num | num | 已参与人数 | |
+| status | num | `1` | |
+| type | null | `null` | |
+| uid | num | 发起人UID | |
+| vote_id | num | 投票ID | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `additional`对象 -> `ugc`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------------|------|---------|-----|
+| cover | str | 封面 | |
+| desc_second | str | 播放量与弹幕数 | |
+| duration | str | 视频长度 | |
+| head_text | str | `空串` | |
+| id_str | str | 视频AV号 | |
+| jump_url | str | 视频跳转URL | |
+| multi_line | bool | `true` | |
+| title | str | 视频标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------------|-------|---------|--------------------------------------|
+| rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
+| text | str | 动态的文字内容 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|--------|--------------------------------------|
+| orig_text | str | 原始文本 | |
+| text | str | 替换后的文本 | |
+| type | str | 节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
+| emoji | obj | 表情信息 | |
+| jump_url | str | 跳转URL | |
+| rid | str | 关联id | |
+| goods | obj | 商品信息 | |
+| icon_name | str | 图标名称 | `taobao` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 -> `emoji`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|---------|-------------|
+| icon_url | str | 表情图片URL | |
+| size | num | 表情尺寸 | `1` `2` |
+| text | str | 表情的文字代码 | |
+| type | num | 表情类型 | `1` `2` `3` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 -> `goods`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|-------|-----|
+| jump_url | str | 跳转URL | |
+| type | num | `1` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------------|-----|--------|-------------------------|
+| type | str | 动态主体类型 | [动态主体类型](./dynamic_enum.md#动态主体类型) |
+| ugc_season | obj | 合集信息 | `MAJOR_TYPE_UGC_SEASON` |
+| article | obj | 专栏类型 | `MAJOR_TYPE_ARTICLE` |
+| draw | obj | 带图动态 | `MAJOR_TYPE_DRAW` |
+| archive | obj | 视频信息 | `MAJOR_TYPE_ARCHIVE` |
+| live_rcmd | obj | 直播状态 | `MAJOR_TYPE_LIVE_RCMD` |
+| common | obj | 一般类型 | `MAJOR_TYPE_COMMON` |
+| pgc | obj | 剧集信息 | `MAJOR_TYPE_PGC` |
+| courses | obj | 课程信息 | `MAJOR_TYPE_COURSES` |
+| music | obj | 音频信息 | `MAJOR_TYPE_MUSIC` |
+| opus | obj | 图文动态 | `MAJOR_TYPE_OPUS` |
+| live | obj | | |
+| none | obj | 动态失效 | `MAJOR_TYPE_NONE` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `ugc_season`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------------|-----|-------|-----|
+| aid | num | 视频AV号 | |
+| badge | obj | 角标信息 | |
+| cover | str | 视频封面 | |
+| desc | str | 视频简介 | |
+| disable_preview | num | `0` | |
+| duration_text | str | 时长 | |
+| jump_url | str | 跳转URL | |
+| stat | obj | 统计信息 | |
+| title | str | 视频标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `ugc_season`对象 -> `badge`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|-----|
+| bg_color | str | 背景颜色 | |
+| color | str | 字体颜色 | |
+| text | str | 角标文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `ugc_season`对象 -> `stat`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|-----|-----|
+| danmaku | str | 弹幕数 | |
+| play | str | 播放数 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `article`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-------|--------|------|
+| covers | array | 封面图数组 | 最多三张 |
+| desc | str | 文章摘要 | |
+| id | num | 文章CV号 | |
+| jump_url | str | 文章跳转地址 | |
+| label | str | 文章阅读量 | |
+| title | str | 文章标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `draw`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------|-------|--------|-----|
+| id | num | 对应相簿id | |
+| items | array | 图片信息列表 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `draw`对象 -> `items`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|--------|-------|-------|------|
+| height | num | 图片高度 | |
+| size | num | 图片大小 | 单位KB |
+| src | str | 图片URL | |
+| tags | array | | |
+| width | num | 图片宽度 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `archive`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------------|-----|--------|-----|
+| aid | str | 视频AV号 | |
+| badge | obj | 角标信息 | |
+| bvid | str | 视频BVID | |
+| cover | str | 视频封面 | |
+| desc | str | 视频简介 | |
+| disable_preview | num | `0` | |
+| duration_text | str | 视频长度 | |
+| jump_url | str | 跳转URL | |
+| stat | obj | 统计信息 | |
+| title | str | 视频标题 | |
+| type | num | `1` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `archive`对象 -> `badge`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|-----|
+| bg_color | str | 背景颜色 | |
+| color | str | 字体颜色 | |
+| text | str | 角标文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `archive`对象 -> `stat`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|-----|-----|
+| danmaku | str | 弹幕数 | |
+| play | str | 播放数 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `live_rcmd`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|--------------|-----|-----------|-----|
+| content | str | 直播间内容JSON | |
+| reserve_type | num | `0` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `common`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|--------|-----|
+| badge | obj | 角标信息 | |
+| biz_type | num | `0` | |
+| cover | str | 左侧图片封面 | |
+| desc | str | 右侧描述信息 | |
+| id | str | | |
+| jump_url | str | 跳转地址 | |
+| label | str | `空串` | |
+| sketch_id | str | | |
+| style | num | `1` | |
+| title | str | 右侧标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `common`对象 -> `badge`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|-----|
+| bg_color | str | `空串` | |
+| color | str | `空串` | |
+| text | str | `空串` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `pgc`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|------------|--------------------------------------------------------------|
+| badge | obj | 角标信息 | |
+| cover | str | 视频封面 | |
+| epid | num | 分集EpId | |
+| jump_url | str | 跳转URL | |
+| season_id | num | 剧集SeasonId | |
+| stat | obj | 统计信息 | |
+| sub_type | num | 剧集类型 | 1:番剧
2:电影
3:纪录片
4:国创
5:电视剧
6:漫画
7:综艺 |
+| title | str | 视频标题 | |
+| type | num | `2` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `pgc`对象 -> `badge`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|-----|
+| bg_color | str | 背景颜色 | |
+| color | str | 字体颜色 | |
+| text | str | 角标文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `pgc`对象 -> `stat`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|-----|-----|
+| danmaku | str | 弹幕数 | |
+| play | str | 播放数 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `courses`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|--------|-----|
+| badge | obj | 角标信息 | |
+| cover | str | 封面图URL | |
+| desc | str | 更新状态描述 | |
+| id | num | 课程id | |
+| jump_url | str | 跳转URL | |
+| sub_title | str | 课程副标题 | |
+| title | str | 课程标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `courses`对象 -> `badge`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|-----|
+| bg_color | str | 背景颜色 | |
+| color | str | 字体颜色 | |
+| text | str | 角标文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `music`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|--------|-----|
+| cover | str | 音频封面 | |
+| id | num | 音频AUID | |
+| jump_url | str | 跳转URL | |
+| label | str | 音频分类 | |
+| title | str | 音频标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `opus`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------------|------|--------|-----|
+| fold_action | array | 展开收起 | |
+| jump_url | str | 跳转URL | |
+| pics | array | 图片信息 | |
+| summary | obj | 动态内容 | |
+| title | str | 动态标题 | 没有标题时为null |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `opus`对象 -> `summary`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------------|-------|---------|--------------------------------------|
+| rich_text_nodes | array | 富文本节点列表 | 和`desc`对象中的`rich_text_nodes`数组结构一样 |
+| text | str | 评论内容 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `live`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|--------------|-----|----------|-------------------|
+| badge | obj | 角标信息 | |
+| cover | str | 直播封面 | |
+| desc_first | str | 直播主分区名称 | |
+| desc_second | str | 观看人数 | |
+| id | num | 直播间id | |
+| jump_url | str | 直播间跳转URL | |
+| live_state | num | 直播状态 | 0:直播结束
1:正在直播 |
+| reserve_type | num | `0` | |
+| title | str | 直播间标题 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `live`对象 -> `badge`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|-----|
+| bg_color | str | 背景颜色 | |
+| color | str | 字体颜色 | |
+| text | str | 角标文案 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `major`对象 -> `none`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------|-----|----------|-----|
+| tips | str | 动态失效显示文案 | deprecated? |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dynamic`对象 -> `topic`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|-------|-----|
+| id | num | 话题id | |
+| jump_url | str | 跳转URL | |
+| name | str | 话题名称 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------------------|-------|---------|-----|
+| three_point_items | array | 右上角三点菜单 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 -> `three_point_items`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|--------|-----|-------|------------|
+| label | str | 显示文本 | |
+| type | str | 类型 | |
+| modal | obj | 弹出框信息 | 删除动态时弹出 |
+| params | obj | 参数 | 置顶/取消置顶时使用 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 -> `three_point_items`数组中的对象 -> `modal`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|------|---------------|
+| cancel | str | 取消按钮 | `我点错了` |
+| confirm | str | 确认按钮 | `删除` |
+| content | str | 提示内容 | `确定要删除此条动态吗?` |
+| title | str | 标题 | `删除动态` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_more`对象 -> `three_point_items`数组中的对象 -> `params`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------------|------|--------------|-----|
+| dynamic_id | str | 当前动态ID | deprecated? |
+| status | bool | 当前动态是否处于置顶状态 | deprecated? |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|------|-----|
+| comment | obj | 评论数据 | |
+| forward | obj | 转发数据 | |
+| like | obj | 点赞数据 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 -> `comment`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|------|---------|---------------|
+| count | num | 评论数 | |
+| forbidden | bool | `false` | |
+| hidden | bool | 是否隐藏 | 直播类型动态会隐藏回复功能 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 -> `forward`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|------|---------|-----|
+| count | num | 转发数 | |
+| forbidden | bool | `false` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_stat`对象 -> `like`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|------|----------|-----|
+| count | num | 点赞数 | |
+| forbidden | bool | `false` | |
+| status | bool | 当前用户是否点赞 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-------|-------|------|-----|
+| items | array | 信息列表 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------|-----|---------|-------------------|
+| desc | obj | 点赞/评论信息 | |
+| type | num | 类型 | 0:点赞信息
1:评论信息 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 -> `desc`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------------|-------|---------|--------------------------------------|
+| rich_text_nodes | array | 富文本节点列表 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
+| text | str | 评论内容 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-----|---------|--------------------------------------|
+| orig_text | str | 原始文本 | |
+| rid | str | 关联ID | 用户UID |
+| text | str | 替换后文本 | |
+| type | str | 富文本节点类型 | [富文本节点类型](./dynamic_enum.md#富文本节点类型) |
+| emoji | obj | 表情信息 | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_interaction`对象 -> `items`数组中的对象 -> `desc`对象 -> `rich_text_nodes`数组中的对象 -> `emoji`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|---------|-------------|
+| icon_url | str | 表情图片URL | |
+| size | num | 表情尺寸 | `1` `2` |
+| text | str | 表情的文字代码 | |
+| type | num | 表情类型 | `1` `2` `3` |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_fold`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|-----------|-------|------------|------------|
+| ids | array | 被折叠的动态id列表 | |
+| statement | str | 显示文案 | 例:展开x条相关动态 |
+| type | num | `1` | |
+| users | array | `空数组` | |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_dispute`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|------------------|
+| desc | str | | |
+| jump_url | str | | |
+| title | str | 提醒文案 | 例:视频内含有危险行为,请勿模仿 |
+
+### `data`对象 -> `items`数组中的对象 -> `modules`对象 -> `module_tag`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|----------|-----|------|------------------|
+| text | str | '置顶' | 置顶动态出现这个对象,否则没有 |
+
+## 请求示例
+
+```shell
+curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/all?type=all' \
+-H 'Cookie: SESSDATA=xxx'
+```
+
+## 响应示例
+
+
+点击查看
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "has_more": true,
+ "items": [
+ {
+ "basic": {
+ "comment_id_str": "474518278",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "474518278"
+ },
+ "id_str": "722806776626413588",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/28a0eede5cfd709d3dbed5d66f951a5d35854ec8.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/2062760/dynamic",
+ "label": "",
+ "mid": 2062760,
+ "name": "一把近战都不给六花",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "刚刚",
+ "pub_ts": 1667129967,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1678723200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "474518278",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1vK411U7de",
+ "cover": "http://i1.hdslb.com/bfs/archive/ea560a574ff303952e2f4ed23f03c835e67f78b0.jpg",
+ "desc": "直播间地址:https://www.twitch.tv/lvndmark\n直播信息(北京时间)\n开播时间:2022-10-30 05:15:31\n下播时间:2022-10-30 15:09:43\n本次直播流程:\n(录像:1638109399)\n1.Call of Duty: Modern Warfare II 9小时54分12秒",
+ "disable_preview": 0,
+ "duration_text": "9:54:23",
+ "jump_url": "//www.bilibili.com/video/BV1vK411U7de",
+ "stat": {
+ "danmaku": "0",
+ "play": "1"
+ },
+ "title": "LVNDMARK 2022.10.30直播录像",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_fold": {
+ "ids": [
+ "722805011403243538",
+ "722803306312761400"
+ ],
+ "statement": "展开2条相关动态",
+ "type": 1,
+ "users": []
+ },
+ "module_more": {
+ "three_point_items": []
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 0,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "474572551",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "474572551"
+ },
+ "id_str": "722805011403243538",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/28a0eede5cfd709d3dbed5d66f951a5d35854ec8.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/2062760/dynamic",
+ "label": "",
+ "mid": 2062760,
+ "name": "一把近战都不给六花",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "7分钟前",
+ "pub_ts": 1667129556,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1678723200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "474572551",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1rK411U7CF",
+ "cover": "http://i0.hdslb.com/bfs/archive/68bb3cd4a84666ec3cdcd165d84b90e28bdc1cb8.jpg",
+ "desc": "直播间地址:https://www.twitch.tv/kinggeorge\n直播信息(北京时间)\n开播时间:2022-10-30 11:19:29\n下播时间:2022-10-30 17:41:46\n本次直播流程:\n(录像:1638390037)\n1.彩虹六号 5小时3分18秒\n2.Call of Duty: Modern Warfare II 1小时17分26秒\n3.彩虹六号 1分33秒",
+ "disable_preview": 0,
+ "duration_text": "6:22:24",
+ "jump_url": "//www.bilibili.com/video/BV1rK411U7CF",
+ "stat": {
+ "danmaku": "0",
+ "play": "10"
+ },
+ "title": "KingGeorge 2022.10.30直播录像",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": []
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 0,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": false
+ },
+ {
+ "basic": {
+ "comment_id_str": "559593848",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "559593848"
+ },
+ "id_str": "722803306312761400",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/28a0eede5cfd709d3dbed5d66f951a5d35854ec8.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/2062760/dynamic",
+ "label": "",
+ "mid": 2062760,
+ "name": "一把近战都不给六花",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "13分钟前",
+ "pub_ts": 1667129159,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1678723200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "559593848",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1de4y127n3",
+ "cover": "http://i2.hdslb.com/bfs/archive/f55f3970acdcd0c6d86459f3af40031d71484c32.jpg",
+ "desc": "直播间地址:https://www.twitch.tv/mohr\n直播信息(北京时间)\n开播时间:2022-10-30 08:51:26\n下播时间:2022-10-30 15:14:06\n本次直播流程:\n(录像:1638276178)\n1.Overwatch 2 6小时22分40秒",
+ "disable_preview": 0,
+ "duration_text": "6:22:47",
+ "jump_url": "//www.bilibili.com/video/BV1de4y127n3",
+ "stat": {
+ "danmaku": "0",
+ "play": "9"
+ },
+ "title": "Mohr 2022.10.30直播录像",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": []
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 2,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": false
+ },
+ {
+ "basic": {
+ "comment_id_str": "517005457",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "517005457"
+ },
+ "id_str": "722806471697367073",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/008605a75853dac76c15b2c15bd756f4de77fa77.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/625662374/dynamic",
+ "label": "",
+ "mid": 625662374,
+ "name": "萌小希的喵和汪",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "1分钟前",
+ "pub_ts": 1667129896,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1710432000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "有这么一群小可爱陪着,居家也快乐",
+ "text": "有这么一群小可爱陪着,居家也快乐",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "有这么一群小可爱陪着,居家也快乐"
+ },
+ "major": {
+ "archive": {
+ "aid": "517005457",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1Yg411z72M",
+ "cover": "http://i0.hdslb.com/bfs/archive/c4a09aaf15d225bb14a884f57c68ebb7fda9bbab.jpg",
+ "desc": "-",
+ "disable_preview": 0,
+ "duration_text": "01:40",
+ "jump_url": "//www.bilibili.com/video/BV1Yg411z72M",
+ "stat": {
+ "danmaku": "2",
+ "play": "242"
+ },
+ "title": "有这么一群小可爱陪着,居家也快乐",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 4,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 1,
+ "forbidden": false
+ },
+ "like": {
+ "count": 54,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "722706029592182807",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "288329916321046804"
+ },
+ "id_str": "722706029592182807",
+ "modules": {
+ "module_author": {
+ "face": "https://i0.hdslb.com/bfs/face/980cbd15c6b649eedc3942391d1d92e82f1c79ea.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/19087539/dynamic",
+ "label": "",
+ "mid": 19087539,
+ "name": "永劫鉴挂达人张大狗",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "直播了",
+ "pub_location_text": "",
+ "pub_time": "",
+ "pub_ts": 1667106510,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1699545600000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "live_rcmd": {
+ "content": "{\"live_play_info\":{\"play_type\":0,\"parent_area_id\":2,\"parent_area_name\":\"网游\",\"live_screen_type\":0,\"live_start_time\":1667105908,\"uid\":19087539,\"area_id\":666,\"area_name\":\"永劫无间\",\"watched_show\":{\"switch\":true,\"num\":898,\"text_small\":\"898\",\"text_large\":\"898人看过\",\"icon\":\"https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png\",\"icon_location\":\"\",\"icon_web\":\"https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png\"},\"room_paid_type\":0,\"title\":\"进来学最快升级法 测试pve振刀榜第一\",\"live_status\":1,\"room_type\":0,\"cover\":\"http://i0.hdslb.com/bfs/live/new_room_cover/0e9bb02aa454a181f730f7d2657e7da5ef041193.jpg\",\"live_id\":\"288329916321046804\",\"pendants\":{\"list\":null},\"room_id\":7282964,\"link\":\"https://live.bilibili.com/7282964\",\"online\":7288},\"live_record_info\":null,\"type\":1}",
+ "reserve_type": 0
+ },
+ "type": "MAJOR_TYPE_LIVE_RCMD"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false,
+ "hidden": true
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 4,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_LIVE_RCMD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "219546675",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "219546675"
+ },
+ "id_str": "722806291310837767",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/6109447a6a1505cdde51e354e7df7e738584d104.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/9583937/dynamic",
+ "label": "",
+ "mid": 9583937,
+ "name": "小米的狗",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "2分钟前",
+ "pub_ts": 1667129854,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1731859200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "219546675",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1K8411Y7Nh",
+ "cover": "http://i1.hdslb.com/bfs/archive/ae71e071758b19ef5d920f3fe60c65fef6cdd0f7.jpg",
+ "desc": "-",
+ "disable_preview": 0,
+ "duration_text": "00:45",
+ "jump_url": "//www.bilibili.com/video/BV1K8411Y7Nh",
+ "stat": {
+ "danmaku": "0",
+ "play": "164"
+ },
+ "title": "其实我们学校也没什么好羡慕的",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 3,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 51,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "774623127",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "774623127"
+ },
+ "id_str": "722805290583457809",
+ "modules": {
+ "module_author": {
+ "face": "https://archive.biliimg.com/bfs/archive/2bc7c0b415e3af4158d71bad8a7fd343243d968a.jpg",
+ "face_nft": false,
+ "following": false,
+ "jump_url": "//www.bilibili.com/video/av774623127",
+ "label": "合集",
+ "mid": 774623127,
+ "name": "绅士君F1的小游戏推荐",
+ "pub_action": "绅士君F1更新了合集",
+ "pub_time": "6分钟前",
+ "pub_ts": 1667129621,
+ "type": "AUTHOR_TYPE_UGC_SEASON"
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "type": "MAJOR_TYPE_UGC_SEASON",
+ "ugc_season": {
+ "aid": 774623127,
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "合集"
+ },
+ "cover": "http://i1.hdslb.com/bfs/archive/5e4e1b6c460bd3671e7422cad5ec16642a6c1eb1.png",
+ "desc": "游戏名:魔女は復讐の夜に\n一款等了6年才等到完整版的游戏,它终于发售了!\n喜欢的话就关注我吧!你们的一键三连就是对我最大的支持!",
+ "disable_preview": 0,
+ "duration_text": "02:06",
+ "jump_url": "//www.bilibili.com/video/BV1W14y1L7m1",
+ "stat": {
+ "danmaku": "0",
+ "play": "36"
+ },
+ "title": "魔女复仇之夜完整版"
+ }
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 10,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 22,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_UGC_SEASON",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "689567837",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "689567837"
+ },
+ "id_str": "722804775173750848",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/81cfe1102ae0e32ea56733f47e949fe1ed10d3c7.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/431631557/dynamic",
+ "label": "",
+ "mid": 431631557,
+ "name": "仙盟丶大罗金仙",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "8分钟前",
+ "pub_ts": 1667129501,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1667491200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "689567837",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV19m4y1F7fG",
+ "cover": "http://i1.hdslb.com/bfs/archive/ef2da4e2bdf21d38d53350fdbe21577e0f882b6d.jpg",
+ "desc": "游戏名:永劫无间",
+ "disable_preview": 0,
+ "duration_text": "13:13",
+ "jump_url": "//www.bilibili.com/video/BV19m4y1F7fG",
+ "stat": {
+ "danmaku": "10",
+ "play": "1385"
+ },
+ "title": "【永劫·日常】当队伍里人手一个「七星夺窍」",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": {
+ "id": 47783,
+ "jump_url": "https://m.bilibili.com/topic-detail?topic_id=47783&topic_name=%E4%BB%A4%E4%BA%BA%E7%BB%86%E6%80%9D%E6%9E%81%E6%81%90%E7%9A%84%E6%B8%B8%E6%88%8F",
+ "name": "令人细思极恐的游戏"
+ }
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 18,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 112,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "722804650633330705",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "722804650682613780"
+ },
+ "id_str": "722804650633330705",
+ "modules": {
+ "module_author": {
+ "decorate": {
+ "card_url": "http://i0.hdslb.com/bfs/garb/item/e9dff0468b7394c3072bade71aae4130602cb914.png",
+ "fan": {
+ "color": "#e495dc",
+ "is_fan": true,
+ "num_str": "002670",
+ "number": 2670
+ },
+ "id": 5335,
+ "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5333?navhide=1&mid=653&from=dynamic&isdiy=0",
+ "name": "乙女音粉丝专属",
+ "type": 3
+ },
+ "face": "https://i2.hdslb.com/bfs/face/e8433484e1b6fc32e9754addbfd69fdf78dca514.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/653/dynamic",
+ "label": "",
+ "mid": 653,
+ "name": "Pravis_channel",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "https://i2.hdslb.com/bfs/face/50525f841aaebf32da475b2f7d407b5f4134436e.png",
+ "image_enhance": "https://i2.hdslb.com/bfs/face/50525f841aaebf32da475b2f7d407b5f4134436e.png",
+ "image_enhance_frame": "",
+ "name": "首批购买年度大会员",
+ "pid": 117
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "8分钟前",
+ "pub_ts": 1667129472,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1714579200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "【石头人2:0秘密】\n职业舞台上最好的死灵龙打刚背的教学\n",
+ "text": "【石头人2:0秘密】\n职业舞台上最好的死灵龙打刚背的教学\n",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "orig_text": "\n",
+ "text": "\n",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png",
+ "size": 1,
+ "text": "[大哭]",
+ "type": 1
+ },
+ "orig_text": "[大哭]",
+ "text": "[大哭]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png",
+ "size": 1,
+ "text": "[大哭]",
+ "type": 1
+ },
+ "orig_text": "[大哭]",
+ "text": "[大哭]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png",
+ "size": 1,
+ "text": "[大哭]",
+ "type": 1
+ },
+ "orig_text": "[大哭]",
+ "text": "[大哭]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png",
+ "size": 1,
+ "text": "[大哭]",
+ "type": 1
+ },
+ "orig_text": "[大哭]",
+ "text": "[大哭]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/2caafee2e5db4db72104650d87810cc2c123fc86.png",
+ "size": 1,
+ "text": "[大哭]",
+ "type": 1
+ },
+ "orig_text": "[大哭]",
+ "text": "[大哭]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ }
+ ],
+ "text": "【石头人2:0秘密】\n职业舞台上最好的死灵龙打刚背的教学\n[打call][打call][打call][打call][打call]\n[大哭][大哭][大哭][大哭][大哭]"
+ },
+ "major": null,
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 3,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_WORD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "304504318",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "304504318"
+ },
+ "id_str": "722804470237364257",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/03d0e2d9e066223daeb63d00a7cbc7375cde0bbc.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/81554471/dynamic",
+ "label": "",
+ "mid": 81554471,
+ "name": "潇潇学姐lady",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "9分钟前",
+ "pub_ts": 1667129430,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 0,
+ "avatar_subscript_url": "",
+ "due_date": 1650643200000,
+ "label": {
+ "bg_color": "",
+ "bg_style": 0,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
+ "label_theme": "",
+ "path": "",
+ "text": "",
+ "text_color": "",
+ "use_img_label": true
+ },
+ "nickname_color": "",
+ "status": 0,
+ "theme_type": 0,
+ "type": 1
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "304504318",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1KP411P7dD",
+ "cover": "http://i1.hdslb.com/bfs/archive/febc5ccc7e8cb91b44b0e062da8551081f19c6a6.jpg",
+ "desc": "咱们学校这男生真精神!",
+ "disable_preview": 0,
+ "duration_text": "00:44",
+ "jump_url": "//www.bilibili.com/video/BV1KP411P7dD",
+ "stat": {
+ "danmaku": "21",
+ "play": "1.1万"
+ },
+ "title": "企业级理解",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_interaction": {
+ "items": [
+ {
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "Wounded_M:",
+ "rid": "112008080",
+ "text": "Wounded_M:",
+ "type": "RICH_TEXT_NODE_TYPE_AT"
+ },
+ {
+ "orig_text": "那个,,确定是洗发水而不是洁厕灵么",
+ "text": "那个,,确定是洗发水而不是洁厕灵么",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "orig_text": "[doge]",
+ "text": "[doge]",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "那个,,确定是洗发水而不是洁厕灵么[doge]"
+ },
+ "type": 1
+ }
+ ]
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 92,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 1,
+ "forbidden": false
+ },
+ "like": {
+ "count": 1778,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "210802703",
+ "comment_type": 11,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "210802703"
+ },
+ "id_str": "722804358575554660",
+ "modules": {
+ "module_author": {
+ "decorate": {
+ "card_url": "https://i0.hdslb.com/bfs/garb/item/c49b72f2b40e0e6bf9d3325e9ff8a7eb7cb22030.png",
+ "fan": {
+ "color": "",
+ "is_fan": false,
+ "num_str": "",
+ "number": 0
+ },
+ "id": 39198,
+ "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/39220?navhide=1&mid=161775300&from=dynamic&isdiy=0",
+ "name": "明日方舟-灯下定影",
+ "type": 1
+ },
+ "face": "https://i0.hdslb.com/bfs/face/89154378c06a5ed332c40c2ca56f50cd641c0c90.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/161775300/dynamic",
+ "label": "",
+ "mid": 161775300,
+ "name": "明日方舟",
+ "official_verify": {
+ "desc": "",
+ "type": 1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "https://i0.hdslb.com/bfs/garb/item/0c8e7d627a35c378b757f39419889ef1fcc0ed9b.png",
+ "image_enhance": "https://i0.hdslb.com/bfs/garb/item/1815c81da71069ea3db4553cad7d233f782da2f2.webp",
+ "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/ed2b4ef1da228c0b937753542b33af8f04d1d70c.png",
+ "name": "明日方舟",
+ "pid": 1990
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "9分钟前",
+ "pub_ts": 1667129404,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1680537600000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": {
+ "common": {
+ "button": {
+ "jump_style": {
+ "icon_url": "",
+ "text": "进入"
+ },
+ "jump_url": "https://www.biligame.com/detail?id=101772&sourceFrom=1005",
+ "type": 1
+ },
+ "cover": "https://i0.hdslb.com/bfs/game/faa556b00d29fffc88281c1ee038b1b7f23aa5c2.jpg",
+ "desc1": "策略/二次元/美少女",
+ "desc2": "2022「感谢庆典」即将开启!",
+ "head_text": "相关游戏",
+ "id_str": "101772",
+ "jump_url": "https://www.biligame.com/detail?id=101772&sourceFrom=1005",
+ "style": 1,
+ "sub_type": "game",
+ "title": "明日方舟"
+ },
+ "type": "ADDITIONAL_TYPE_COMMON"
+ },
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E6%98%8E%E6%97%A5%E6%96%B9%E8%88%9F%23",
+ "orig_text": "#明日方舟#",
+ "text": "#明日方舟#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E9%9F%B3%E5%BE%8B%E8%81%94%E8%A7%89%23",
+ "orig_text": "#音律联觉#",
+ "text": "#音律联觉#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "orig_text": "\r\n特别提醒:距离电影首映还有60分钟。\r\n趁此闲暇,我们准备了参演人员名单,诸位也可一览为快。\r\n如果您此前并无观影打算,却又在此时有空闲时间,我们同样诚邀您前来参与这千载难逢的艺术盛宴。\r\n我们保证,您绝对不会失望。 ",
+ "text": "\r\n特别提醒:距离电影首映还有60分钟。\r\n趁此闲暇,我们准备了参演人员名单,诸位也可一览为快。\r\n如果您此前并无观影打算,却又在此时有空闲时间,我们同样诚邀您前来参与这千载难逢的艺术盛宴。\r\n我们保证,您绝对不会失望。 ",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "#明日方舟##音律联觉#\r\n特别提醒:距离电影首映还有60分钟。\r\n趁此闲暇,我们准备了参演人员名单,诸位也可一览为快。\r\n如果您此前并无观影打算,却又在此时有空闲时间,我们同样诚邀您前来参与这千载难逢的艺术盛宴。\r\n我们保证,您绝对不会失望。 "
+ },
+ "major": {
+ "draw": {
+ "id": 210802703,
+ "items": [
+ {
+ "height": 4961,
+ "size": 9876.915,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/c9610327ab7d1298f8916d53b5fd324d161775300.jpg",
+ "tags": [],
+ "width": 3508
+ },
+ {
+ "height": 4961,
+ "size": 5995.214,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/302d129716ba5c5009a4df259da3409b161775300.jpg",
+ "tags": [],
+ "width": 3508
+ },
+ {
+ "height": 4961,
+ "size": 12802.127,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/7bb6868d638616ae1d957f52adf4c7ee161775300.jpg",
+ "tags": [],
+ "width": 3508
+ },
+ {
+ "height": 4961,
+ "size": 4542.088,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/2d1ecdf709619cc0bca633095fd26a36161775300.jpg",
+ "tags": [],
+ "width": 3508
+ },
+ {
+ "height": 1345,
+ "size": 283.4463,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/f72a0231bf2e8bbcf6a09c16de592579161775300.jpg",
+ "tags": [],
+ "width": 1000
+ },
+ {
+ "height": 3235,
+ "size": 814.31836,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/07a94b22517e78eac9d8bac38789f17c161775300.jpg",
+ "tags": [],
+ "width": 1000
+ },
+ {
+ "height": 2908,
+ "size": 670.54004,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/425d8c556b9e5bd5a49e0770662c7fdc161775300.jpg",
+ "tags": [],
+ "width": 1000
+ },
+ {
+ "height": 2908,
+ "size": 664.3535,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/ddb2f31f3d80cf87e39cdcb1b2cd9034161775300.jpg",
+ "tags": [],
+ "width": 1000
+ },
+ {
+ "height": 3235,
+ "size": 853.39746,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/f56c66eb94e401a7c9b895ba0905bb7c161775300.jpg",
+ "tags": [],
+ "width": 1000
+ }
+ ]
+ },
+ "type": "MAJOR_TYPE_DRAW"
+ },
+ "topic": null
+ },
+ "module_interaction": {
+ "items": [
+ {
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "Coner4053:",
+ "rid": "1375262127",
+ "text": "Coner4053:",
+ "type": "RICH_TEXT_NODE_TYPE_AT"
+ },
+ {
+ "orig_text": "年导的电影天下第一!!!",
+ "text": "年导的电影天下第一!!!",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/431432c43da3ee5aab5b0e4f8931953e649e9975.png",
+ "size": 1,
+ "text": "[打call]",
+ "type": 1
+ },
+ "orig_text": "[打call]",
+ "text": "[打call]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "orig_text": " 5龙门币一条,括号记得删",
+ "text": " 5龙门币一条,括号记得删",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "年导的电影天下第一!!![打call][打call][打call] 5龙门币一条,括号记得删"
+ },
+ "type": 1
+ }
+ ]
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 565,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 74,
+ "forbidden": false
+ },
+ "like": {
+ "count": 4800,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_DRAW",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "722803941956386838",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "722803942006718519"
+ },
+ "id_str": "722803941956386838",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/e4f1466daf6e3173e8cab68eb4551589a09d4967.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/32172110/dynamic",
+ "label": "",
+ "mid": 32172110,
+ "name": "京阿尼语料",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "11分钟前",
+ "pub_ts": 1667129307,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1733500800000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/bf7e00ecab02171f8461ee8cf439c73db9797748.png",
+ "size": 1,
+ "text": "[脱单doge]",
+ "type": 1
+ },
+ "orig_text": "[脱单doge]",
+ "text": "[脱单doge]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "orig_text": "来看稿",
+ "text": "来看稿",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "[脱单doge]来看稿"
+ },
+ "major": null,
+ "topic": {
+ "id": 57386,
+ "jump_url": "https://m.bilibili.com/topic-detail?topic_id=57386&topic_name=%E2%80%9C%E4%BA%AC%E5%90%8E%E6%9C%89%E4%BD%A0%E2%80%9D%E5%88%9B%E4%BD%9C%E7%9B%9B%E5%85%B8",
+ "name": "“京后有你”创作盛典"
+ }
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 40,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "orig": {
+ "basic": {
+ "comment_id_str": "",
+ "comment_type": 0,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": ""
+ },
+ "id_str": "397711411815032345",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/e4f1466daf6e3173e8cab68eb4551589a09d4967.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/32172110/dynamic",
+ "label": "",
+ "mid": 32172110,
+ "name": "京阿尼语料",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_time": "",
+ "pub_ts": 1591437804,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1733500800000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "live": {
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#ffffff",
+ "text": "直播中"
+ },
+ "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/d8ef7daa61f5f0fd6735d9f743ea9b1b6f941799.jpg",
+ "desc_first": "影音馆",
+ "desc_second": "344人看过",
+ "id": 22282848,
+ "jump_url": "https://live.bilibili.com/22282848?broadcast_type=0&is_room_feed=1&live_from=30112",
+ "live_state": 1,
+ "reserve_type": 0,
+ "title": "MAD赛道直播看稿【京后有你创作盛典】"
+ },
+ "type": "MAJOR_TYPE_LIVE"
+ },
+ "topic": null
+ }
+ },
+ "type": "DYNAMIC_TYPE_LIVE",
+ "visible": true
+ },
+ "type": "DYNAMIC_TYPE_FORWARD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "304574578",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "304574578"
+ },
+ "id_str": "722803259048198146",
+ "modules": {
+ "module_author": {
+ "face": "https://archive.biliimg.com/bfs/archive/146462f875eb4e5f7d577c896f6150972a147275.jpg",
+ "face_nft": false,
+ "following": false,
+ "jump_url": "//www.bilibili.com/video/av304574578",
+ "label": "合集",
+ "mid": 304574578,
+ "name": "辐射系列",
+ "pub_action": "柯尔不短更新了合集",
+ "pub_time": "14分钟前",
+ "pub_ts": 1667129148,
+ "type": "AUTHOR_TYPE_UGC_SEASON"
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "type": "MAJOR_TYPE_UGC_SEASON",
+ "ugc_season": {
+ "aid": 304574578,
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "合集"
+ },
+ "cover": "http://i2.hdslb.com/bfs/archive/ccd56a834f2ce77655ddde96f587db0e9cc313af.jpg",
+ "desc": "本期新增内容为:\n全新设计的比分显示牌,增加代入感的虚拟灯箱。\n陷阱机关可独立控制,优化陷阱的初始位置。\n\n历史战绩:\n变异狼 0胜0负0平\n灶马蟋蟀 0胜0负0平\n\n背景音乐:\nDeadwood - Zoso\nThunderbird - Ryan Taubert\n小林啓樹 - Daredevil\nCombat Ready\nWar in the Wastes\nRise and Prevail",
+ "disable_preview": 0,
+ "duration_text": "05:38",
+ "jump_url": "//www.bilibili.com/video/BV18P411P7CD",
+ "stat": {
+ "danmaku": "113",
+ "play": "1267"
+ },
+ "title": "【辐射斗兽场】变异狼 VS 灶马蟋蟀"
+ }
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 28,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 270,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_UGC_SEASON",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "902123597",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "902123597"
+ },
+ "id_str": "722803241881960456",
+ "modules": {
+ "module_author": {
+ "face": "https://i1.hdslb.com/bfs/face/1a6152f261f4141e3be72c7b3056739c9f794774.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/485118280/dynamic",
+ "label": "",
+ "mid": 485118280,
+ "name": "中华田园犬逆袭",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "14分钟前",
+ "pub_ts": 1667129144,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 0,
+ "avatar_subscript_url": "",
+ "due_date": 1605369600000,
+ "label": {
+ "bg_color": "",
+ "bg_style": 0,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
+ "label_theme": "",
+ "path": "",
+ "text": "",
+ "text_color": "",
+ "use_img_label": true
+ },
+ "nickname_color": "",
+ "status": 0,
+ "theme_type": 0,
+ "type": 1
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "902123597",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1hP4y1m7en",
+ "cover": "http://i0.hdslb.com/bfs/archive/d324a9c21a019ce6880b3944fa577a0993504616.jpg",
+ "desc": "-",
+ "disable_preview": 0,
+ "duration_text": "00:30",
+ "jump_url": "//www.bilibili.com/video/BV1hP4y1m7en",
+ "stat": {
+ "danmaku": "0",
+ "play": "1"
+ },
+ "title": "双金钱尾白色土松狮,公的,8斤左右",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 2,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "859536670",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "859536670"
+ },
+ "id_str": "722802855343292440",
+ "modules": {
+ "module_author": {
+ "face": "https://i1.hdslb.com/bfs/face/1a6152f261f4141e3be72c7b3056739c9f794774.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/485118280/dynamic",
+ "label": "",
+ "mid": 485118280,
+ "name": "中华田园犬逆袭",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "15分钟前",
+ "pub_ts": 1667129054,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 0,
+ "avatar_subscript_url": "",
+ "due_date": 1605369600000,
+ "label": {
+ "bg_color": "",
+ "bg_style": 0,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/d7b702ef65a976b20ed854cbd04cb9e27341bb79.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/KJunwh19T5.png",
+ "label_theme": "",
+ "path": "",
+ "text": "",
+ "text_color": "",
+ "use_img_label": true
+ },
+ "nickname_color": "",
+ "status": 0,
+ "theme_type": 0,
+ "type": 1
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "859536670",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1dV4y1G7pe",
+ "cover": "http://i2.hdslb.com/bfs/archive/686bbbc47ccd2dad320905fc6bfcc716dead26a5.jpg",
+ "desc": "-",
+ "disable_preview": 0,
+ "duration_text": "00:30",
+ "jump_url": "//www.bilibili.com/video/BV1dV4y1G7pe",
+ "stat": {
+ "danmaku": "0",
+ "play": "5"
+ },
+ "title": "土松狮小美女,50天6斤左右",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 4,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "210801533",
+ "comment_type": 11,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "210801533"
+ },
+ "id_str": "722802047870566501",
+ "modules": {
+ "module_author": {
+ "decorate": {
+ "card_url": "http://i0.hdslb.com/bfs/garb/item/8b043b53c394265e6ce1dfb9a04ebd0b99ef4f79.png",
+ "fan": {
+ "color": "#ff669c",
+ "is_fan": true,
+ "num_str": "020617",
+ "number": 20617
+ },
+ "id": 3772,
+ "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/3796?navhide=1&mid=18940485&from=dynamic&isdiy=0",
+ "name": "神乐七奈粉丝专属",
+ "type": 3
+ },
+ "face": "https://i0.hdslb.com/bfs/face/0f6f0f4048e58dbd1a26e4ac6b087997ef2f7653.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/18940485/dynamic",
+ "label": "",
+ "mid": 18940485,
+ "name": "RakusandoYuna",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "https://i0.hdslb.com/bfs/garb/item/2262a0864cb0f3e39bb77e00298f8312318311c4.png",
+ "image_enhance": "https://i0.hdslb.com/bfs/garb/item/2262a0864cb0f3e39bb77e00298f8312318311c4.png",
+ "image_enhance_frame": "",
+ "name": "神乐七奈",
+ "pid": 3771
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "18分钟前",
+ "pub_ts": 1667128866,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1718467200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "尝试一天肝完了沙漠,挺累的。。。唉:-(",
+ "text": "尝试一天肝完了沙漠,挺累的。。。唉:-(",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "尝试一天肝完了沙漠,挺累的。。。唉:-("
+ },
+ "major": {
+ "draw": {
+ "id": 210801533,
+ "items": [
+ {
+ "height": 949,
+ "size": 84.36,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/b403ce65cd0618b7efedbb5c421da7c318940485.jpg",
+ "tags": [],
+ "width": 1213
+ }
+ ]
+ },
+ "type": "MAJOR_TYPE_DRAW"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 1,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 6,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_DRAW",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "722801957680447506",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "722801957734973460"
+ },
+ "id_str": "722801957680447506",
+ "modules": {
+ "module_author": {
+ "face": "https://i0.hdslb.com/bfs/face/d7c4e2618aba8cc8d26d975274ca82de46c0e6c7.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/700634784/dynamic",
+ "label": "",
+ "mid": 700634784,
+ "name": "飓风商店MediaStore",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "19分钟前",
+ "pub_ts": 1667128845,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1678896000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "大家太热情了",
+ "text": "大家太热情了",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/485a7e0c01c2d70707daae53bee4a9e2e31ef1ed.png",
+ "size": 1,
+ "text": "[喜极而泣]",
+ "type": 1
+ },
+ "orig_text": "[喜极而泣]",
+ "text": "[喜极而泣]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "orig_text": "直接把第一批的备货干空了,现在上了第二批预售,15号开始付尾款,感兴趣的小伙伴可以去店里购买噢~",
+ "text": "直接把第一批的备货干空了,现在上了第二批预售,15号开始付尾款,感兴趣的小伙伴可以去店里购买噢~",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "大家太热情了[喜极而泣]直接把第一批的备货干空了,现在上了第二批预售,15号开始付尾款,感兴趣的小伙伴可以去店里购买噢~"
+ },
+ "major": null,
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 7,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 46,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "orig": {
+ "basic": {
+ "comment_id_str": "",
+ "comment_type": 0,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": ""
+ },
+ "id_str": "721652435448234212",
+ "modules": {
+ "module_author": {
+ "face": "https://i0.hdslb.com/bfs/face/d7c4e2618aba8cc8d26d975274ca82de46c0e6c7.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/700634784/dynamic",
+ "label": "",
+ "mid": 700634784,
+ "name": "飓风商店MediaStore",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_time": "",
+ "pub_ts": 1666861201,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1678896000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "它终于来了!",
+ "text": "它终于来了!",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "它终于来了!"
+ },
+ "major": {
+ "archive": {
+ "aid": "689382529",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1Sm4y1w7Pv",
+ "cover": "http://i0.hdslb.com/bfs/archive/aeda1caf342fe4d9200831f05bc6289d04d9c93d.jpg",
+ "desc": "iPad保护壳还有什么可能?又又又花一年磨一个产品,让你的iPad mini不只是泡面盖~\n预售已开启,感兴趣的同学可以手淘搜索【影视飓风】查看更多信息!",
+ "disable_preview": 0,
+ "duration_text": "01:05",
+ "jump_url": "//www.bilibili.com/video/BV1Sm4y1w7Pv",
+ "stat": {
+ "danmaku": "83",
+ "play": "13.2万"
+ },
+ "title": "可能是iPad mini最佳拍档?平移拓展保护壳发布!",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ "type": "DYNAMIC_TYPE_FORWARD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "517103418",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "517103418"
+ },
+ "id_str": "722800763675344953",
+ "modules": {
+ "module_author": {
+ "face": "https://i0.hdslb.com/bfs/face/f4d39ce4c3a5a306de2e5bb51fcae9a6c4f95215.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/29440965/dynamic",
+ "label": "",
+ "mid": 29440965,
+ "name": "超级小桀的日常",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "23分钟前",
+ "pub_ts": 1667128567,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1718208000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%2374751%23",
+ "orig_text": "#74751#",
+ "text": "#74751#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E8%B6%85%E7%BA%A7%E5%B0%8F%E6%A1%80%23",
+ "orig_text": "#超级小桀#",
+ "text": "#超级小桀#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E5%8D%95%E6%9C%BA%E6%B8%B8%E6%88%8F%23",
+ "orig_text": "#单机游戏#",
+ "text": "#单机游戏#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E8%B6%85%E7%BA%A7%E9%A9%AC%E9%87%8C%E5%A5%A5%E5%88%B6%E9%80%A02%23",
+ "orig_text": "#超级马里奥制造2#",
+ "text": "#超级马里奥制造2#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ }
+ ],
+ "text": "#74751##超级小桀##单机游戏##超级马里奥制造2#"
+ },
+ "major": {
+ "archive": {
+ "aid": "517103418",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1wg41167M7",
+ "cover": "http://i2.hdslb.com/bfs/archive/1345ac18a6d41b26f5713669ac67ec1ad999acd4.png",
+ "desc": "相关游戏: 马里奥制造2\n简介补充: 超级小桀2022年10月30日直播录像",
+ "disable_preview": 0,
+ "duration_text": "4:31:43",
+ "jump_url": "//www.bilibili.com/video/BV1wg41167M7",
+ "stat": {
+ "danmaku": "6",
+ "play": "2384"
+ },
+ "title": "【超级小桀】2022年10月30日直播录像",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 10,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 1,
+ "forbidden": false
+ },
+ "like": {
+ "count": 440,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "559611166",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "559611166"
+ },
+ "id_str": "722800493104988181",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/86fbb87fdf4d5ec1ba3bb7b56131d8265d36ffcd.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/8263502/dynamic",
+ "label": "",
+ "mid": 8263502,
+ "name": "橙飞一下",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "24分钟前",
+ "pub_ts": 1667128504,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1696003200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "小火锅自助【官客旋转小火锅,天津,南开区,西南角,火锅,自助餐】",
+ "text": "小火锅自助【官客旋转小火锅,天津,南开区,西南角,火锅,自助餐】",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "小火锅自助【官客旋转小火锅,天津,南开区,西南角,火锅,自助餐】"
+ },
+ "major": {
+ "archive": {
+ "aid": "559611166",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1De4y127gB",
+ "cover": "http://i1.hdslb.com/bfs/archive/d4369b1167ce3cf8020d96b747e5b3abf378f08e.jpg",
+ "desc": "店名:官客·自助旋转小火锅;\n地址:天津南开区南开五马路与广开中街交口\n(近西南角地铁站);\n价格:29元;\n\n标准的旋转小火锅自助,没有肉类,菜品干净,麻酱味道可以。菜品穿了签子,不是用夹子的。\n下午也营业,适合近的人来尝尝。",
+ "disable_preview": 0,
+ "duration_text": "08:20",
+ "jump_url": "//www.bilibili.com/video/BV1De4y127gB",
+ "stat": {
+ "danmaku": "84",
+ "play": "1.3万"
+ },
+ "title": "简简单单吃个小火锅,银耳好好吃!天津西南角旋转小火锅29元一位",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_interaction": {
+ "items": [
+ {
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "daitouemabi:",
+ "rid": "346339495",
+ "text": "daitouemabi:",
+ "type": "RICH_TEXT_NODE_TYPE_AT"
+ },
+ {
+ "orig_text": "对于我这种一顿张亮四十多的人来说任何自助小火锅都是划算的",
+ "text": "对于我这种一顿张亮四十多的人来说任何自助小火锅都是划算的",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "对于我这种一顿张亮四十多的人来说任何自助小火锅都是划算的"
+ },
+ "type": 1
+ }
+ ]
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 125,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 10,
+ "forbidden": false
+ },
+ "like": {
+ "count": 1274,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "304540547",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "304540547"
+ },
+ "id_str": "722800475917779008",
+ "modules": {
+ "module_author": {
+ "decorate": {
+ "card_url": "http://i0.hdslb.com/bfs/vip/f11e84bd3da5902ea912145cd7cb3d54c04c3c27.png",
+ "fan": {
+ "color": "",
+ "is_fan": false,
+ "num_str": "",
+ "number": 0
+ },
+ "id": 6,
+ "jump_url": "https://www.bilibili.com/h5/mall/preview/feed/6?navhide=1&isdiy=0",
+ "name": "喂看见耳朵啦",
+ "type": 2
+ },
+ "face": "https://i2.hdslb.com/bfs/face/d20e0d85266199514a582a692e5c6b37633a7eeb.jpg",
+ "face_nft": false,
+ "following": true,
+ "jump_url": "//space.bilibili.com/8931689/dynamic",
+ "label": "",
+ "mid": 8931689,
+ "name": "桔子味的天",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "与他人联合创作",
+ "pub_location_text": "",
+ "pub_time": "24分钟前",
+ "pub_ts": 1667128500,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1674576000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "304540547",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "合作视频"
+ },
+ "bvid": "BV1EP411P7Hm",
+ "cover": "http://i2.hdslb.com/bfs/archive/d6589e112d3d0c26282dfd83be38df1e59a1f67c.jpg",
+ "desc": "啊是宁波女仆",
+ "disable_preview": 0,
+ "duration_text": "00:24",
+ "jump_url": "//www.bilibili.com/video/BV1EP411P7Hm",
+ "stat": {
+ "danmaku": "0",
+ "play": "338"
+ },
+ "title": "凯申口音の女仆装",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "取消关注",
+ "type": "THREE_POINT_FOLLOWING"
+ },
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 4,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 101,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "219580392",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "219580392"
+ },
+ "id_str": "722799788730351736",
+ "modules": {
+ "module_author": {
+ "face": "https://archive.biliimg.com/bfs/archive/1d720064ed34ba4c19326a77b17a9404351c3a8d.jpg",
+ "face_nft": false,
+ "following": false,
+ "jump_url": "//www.bilibili.com/video/av219580392",
+ "label": "合集",
+ "mid": 219580392,
+ "name": "纪录片《流言终结者》",
+ "pub_action": "探索哥t更新了合集",
+ "pub_time": "27分钟前",
+ "pub_ts": 1667128340,
+ "type": "AUTHOR_TYPE_UGC_SEASON"
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "type": "MAJOR_TYPE_UGC_SEASON",
+ "ugc_season": {
+ "aid": 219580392,
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "合集"
+ },
+ "cover": "http://i0.hdslb.com/bfs/archive/b94c2e41853f2f2e3a57023a39b8837c8810456b.jpg",
+ "desc": "安全气囊爆炸可能使人爆头?",
+ "disable_preview": 0,
+ "duration_text": "02:32",
+ "jump_url": "//www.bilibili.com/video/BV1j8411Y7Fi",
+ "stat": {
+ "danmaku": "0",
+ "play": "85"
+ },
+ "title": "流言终结者:安全气囊爆炸可能使人爆头?"
+ }
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 0,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 0,
+ "forbidden": false
+ },
+ "like": {
+ "count": 12,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_UGC_SEASON",
+ "visible": true
+ }
+ ],
+ "offset": "722799788730351736",
+ "update_baseline": "722806776626413588",
+ "update_num": 1
+ }
+}
+```
+
+
\ No newline at end of file
diff --git a/docs/dynamic/card_info.md b/docs/dynamic/card_info.md
index 0b7c8d8..d0ff84c 100644
--- a/docs/dynamic/card_info.md
+++ b/docs/dynamic/card_info.md
@@ -13,12 +13,13 @@
需注意账号转发视频投稿,其他用户的动态以及分享收藏夹等均为转发类内容,并不属于type=4300的收藏类动态等。
在type=1的转发类动态中,解析出的对象包含以下内容:
-| 字段 | 类型 | 内容 | 备注 |
+
+| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
-| user | obj | 转发者用户信息 | 包含用户名,用户id和头像 |
-| item | obj | 转发相关信息 | `content`字段为转发附言 | |
-| origin | str | 被转发动态信息 | 即本文档所描述的动态详细信息字段。动态类型为`item`对象的`orig_type`字段 |
-| origin_extend_json | str | 被转发动态补充信息 | |
+| user | obj | 转发者用户信息 | 包含用户名,用户id和头像 |
+| item | obj | 转发相关信息 | `content`字段为转发附言 | |
+| origin | str | 被转发动态信息 | 即本文档所描述的动态详细信息字段。
动态类型为`item`对象的`orig_type`字段 |
+| origin_extend_json | str | 被转发动态补充信息 | |
| origin_user | obj | 被转发用户信息 | |
| activity_infos | obj | 被转发动态参与的活动 | |
@@ -106,10 +107,11 @@
## 在图片动态中(type=2)
在type=2的图片动态中,解析出的对象包含以下内容:
-| 字段 | 类型 | 内容 | 备注 |
+
+| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
-| item | obj | 图片动态内容 | `description`字段为文字内容`pictures`字段图片 | |
-| user | obj | 发布者用户信息 | 包含用户名,用户id和头像 |
+| item | obj | 图片动态内容 | `description`字段为文字内容
`pictures`字段图片 | |
+| user | obj | 发布者用户信息 | 包含用户名,用户id和头像 |
@@ -166,14 +168,14 @@
-
## 在文字动态中(type=4)
在type=4的文字动态中,解析出的对象包含以下内容:
-| 字段 | 类型 | 内容 | 备注 |
+
+| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
-| item | obj | 文字动态内容 | `description`字段为文字内容 | |
-| user | obj | 发布者用户信息 | 包含用户名,用户id和头像 |
+| item | obj | 文字动态内容 | `description`字段为文字内容 | |
+| user | obj | 发布者用户信息 | 包含用户名,用户id和头像 |
@@ -204,9 +206,10 @@
## 在视频投稿动态中(type=8)
在type=8的视频投稿动态中,解析出的对象包含以下内容:
-| 字段 | 类型 | 内容 | 备注 |
+
+| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
-| aid | num | 视频avid | |
+| aid | num | 视频avid | |
| attribute | num | `0` | [可能已弃用](https://shakaianee.top/archives/9/) |
| cid | num | 视频cid | |
| copyright | num | 原创信息 | 1为原创,2为转载 |
@@ -215,7 +218,7 @@
| duration | num | 视频时长 | 单位秒 |
| dynamic | str | 动态文字内容 | |
| first_frame | str | 视频第一帧图片 | 图片链接 |
-| jump_url | str | 视频跳转链接 | |
+| jump_url | str | 视频跳转链接 | |
| mission_id | num | 稿件参与的活动id | |
| owner | obj | 动态作者信息 | 即up主 |
| pic | str | 视频封面 | |
@@ -223,7 +226,7 @@
| pubdate | num | 发布时间 | 时间戳 |
| rights | obj | 联合投稿,是否付费等信息 | 可能用来代替原`attribute`字段 |
| stat | obj | 视频数据 | 点赞投币等 |
-| state | num | 视频状态 | 详情见**属性数据文档** |
+| state | num | 视频状态 | 详情见**属性数据文档** |
| tid | num | 视频分区编号 | |
| title | str | 视频标题 | |
| tname | str | 视频分区名称 | |
@@ -302,7 +305,8 @@
## 在专栏投稿动态中(type=64)
在type=64的专栏投稿动态中,解析出的对象包含以下内容:
-| 字段 | 类型 | 内容 | 备注 |
+
+| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| id | num | 专栏的id,即cv号 | |
| category | obj | 分类号和分类名称 | |
@@ -313,10 +317,10 @@
| template_id | num | 模板信息 | |
| state | num | 专栏状态 | |
| author | obj | 作者信息 | 包含了头像挂件和勋章等 |
-| reprint | num | 可能是转载 | |
+| reprint | num | 可能是转载 | |
| image_urls | obj | 图片链接 | |
-| publish_time | num | 发布时间 | 时间戳,应该指专栏 |
-| ctime | num | 发布时间 | 时间戳,应该指动态 |
+| publish_time | num | 发布时间 | 时间戳,应该指专栏 |
+| ctime | num | 发布时间 | 时间戳,应该指动态 |
| stats | obj | 专栏数据,点赞之类 | 有点踩字段,但并未实装此功能 |
| words | num | 字数 | |
| origin_image_urls | obj | 源图片地址 | |
@@ -448,7 +452,8 @@
## 在音频投稿动态中(type=256)
在type=256的音频投稿动态中,解析出的对象包含以下内容:
-| 字段 | 类型 | 内容 | 备注 |
+
+| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| id | num | 投稿编号 | 即au号 |
| upId | num | 音乐人id | 与用户uid不同 |
@@ -456,7 +461,7 @@
| upper | str | 上传者名称 | |
| cover | str | 封面图链接 | |
| author | str | 作者名称 | |
-| ctime | num | 上传时间 | 时间戳的后面加了三个0 |
+| ctime | num | 上传时间 | 时间戳的后面加了三个0 |
| playCnt | num | 播放量 | |
| intro | str | 音频介绍 | |
| schema | str | 跳转链接 | 似乎并不只是url |
diff --git a/docs/dynamic/detail.md b/docs/dynamic/detail.md
new file mode 100644
index 0000000..6f7da04
--- /dev/null
+++ b/docs/dynamic/detail.md
@@ -0,0 +1,269 @@
+# 获取动态详情
+
+> https://api.bilibili.com/x/polymer/web-dynamic/v1/detail
+
+请求方式:`GET`
+
+是否需要登录:`否`
+
+## URL参数
+
+| 参数名 | 类型 | 必填 | 内容 | 备注 |
+|-----------------|-----|-----|--------|-----|
+| timezone_offset | num | | `-480` | |
+| id | num | √ | 动态id | |
+
+## Json回复
+
+### 根对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|---------|-----|------|--------------------------|
+| code | num | 响应码 | 0:成功
4101139:4101139 |
+| message | str | | |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+### `data`对象
+
+| 字段名 | 类型 | 内容 | 备注 |
+|------|-----|-----|-----|
+| item | obj | | |
+
+### `data`对象 -> `item`对象
+
+参照 [获取动态列表](./all.md#获取动态列表)
+
+## 请求示例
+
+```shell
+curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=724328028268658744'
+```
+
+## 响应示例
+
+
+点击查看
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "item": {
+ "basic": {
+ "comment_id_str": "724328028268658744",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "724328032624443401"
+ },
+ "id_str": "724328028268658744",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/11357018/dynamic",
+ "label": "",
+ "mid": 11357018,
+ "name": "动画魂-Anitama",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "2022-11-03 22:02",
+ "pub_ts": 1667484162,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1685808000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n",
+ "text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "恭喜 @羽希plume @晕乎菌 中奖,已私信联系。——全天加码放水,红包力度很大,打开手淘搜“我爱你红包”,红包每天可以领,积少成多。 ——明天早上9点开另外一则抽奖,有打扰请多保函。\n"
+ },
+ "major": null,
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 5,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 1,
+ "forbidden": false
+ },
+ "like": {
+ "count": 170,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "orig": {
+ "basic": {
+ "comment_id_str": "",
+ "comment_type": 0,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": ""
+ },
+ "id_str": "720590749615259664",
+ "modules": {
+ "module_author": {
+ "face": "https://i2.hdslb.com/bfs/face/876bf5dfa8c583acb5f8689fc923077f6a2aba23.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/11357018/dynamic",
+ "label": "",
+ "mid": 11357018,
+ "name": "动画魂-Anitama",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_time": "",
+ "pub_ts": 1666614008,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1685808000000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注",
+ "text": "双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E4%BA%92%E5%8A%A8%E6%8A%BD%E5%A5%96%23",
+ "orig_text": "#互动抽奖#",
+ "text": "#互动抽奖#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "orig_text": "\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 ",
+ "text": "\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 ",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "双11天猫红包,超大力度提前发放\n活动很猛,红包很大,加额加量!\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n打开手淘搜“我爱你红包”\n最高可领取28888元\n\n一天可领3次,今天红包额度最大\n越早领取得现金概率越大!\n抽奖=转发+关注#互动抽奖#\n转+评,留言你领到多少红包\n评论区随机抽取2位,每人补贴50零花钱 "
+ },
+ "major": {
+ "draw": {
+ "id": 210334026,
+ "items": [
+ {
+ "height": 672,
+ "size": 134.85938,
+ "src": "https://i0.hdslb.com/bfs/new_dyn/37c21f8864e47cbeeb7c3e3a66bb250b11357018.jpg",
+ "tags": [],
+ "width": 576
+ }
+ ]
+ },
+ "type": "MAJOR_TYPE_DRAW"
+ },
+ "topic": null
+ }
+ },
+ "type": "DYNAMIC_TYPE_DRAW",
+ "visible": true
+ },
+ "type": "DYNAMIC_TYPE_FORWARD",
+ "visible": true
+ }
+ }
+}
+```
+
+
\ No newline at end of file
diff --git a/docs/dynamic/dynamic_enum.md b/docs/dynamic/dynamic_enum.md
new file mode 100644
index 0000000..0f29893
--- /dev/null
+++ b/docs/dynamic/dynamic_enum.md
@@ -0,0 +1,222 @@
+# 动态类型
+
+| 类型 | 说明 | 示例 |
+|-------------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| DYNAMIC_TYPE_NONE | 无效动态 | [716510857084796964](https://t.bilibili.com/716510857084796964) |
+| DYNAMIC_TYPE_FORWARD | 动态转发 | |
+| DYNAMIC_TYPE_AV | 投稿视频 | |
+| DYNAMIC_TYPE_PGC | 剧集(番剧、电影、纪录片) | |
+| DYNAMIC_TYPE_COURSES | | |
+| DYNAMIC_TYPE_WORD | 纯文字动态 | [718377531474968613](https://t.bilibili.com/718377531474968613) |
+| DYNAMIC_TYPE_DRAW | 带图动态 | [718384798557536290](https://t.bilibili.com/718384798557536290) |
+| DYNAMIC_TYPE_ARTICLE | 投稿专栏 | [718372214316990512](https://t.bilibili.com/718372214316990512) |
+| DYNAMIC_TYPE_MUSIC | 音乐 | |
+| DYNAMIC_TYPE_COMMON_SQUARE | 装扮
剧集点评
普通分享 | [551309621391003098](https://t.bilibili.com/551309621391003098)
[716503778995470375](https://t.bilibili.com/716503778995470375)
[716481612656672789](https://t.bilibili.com/716481612656672789) |
+| DYNAMIC_TYPE_COMMON_VERTICAL | | |
+| DYNAMIC_TYPE_LIVE | 直播间分享 | [216042859353895488](https://t.bilibili.com/216042859353895488) |
+| DYNAMIC_TYPE_MEDIALIST | 收藏夹 | [534428265320147158](https://t.bilibili.com/534428265320147158) |
+| DYNAMIC_TYPE_COURSES_SEASON | 课程 | [717906712866062340](https://t.bilibili.com/717906712866062340) |
+| DYNAMIC_TYPE_COURSES_BATCH | | |
+| DYNAMIC_TYPE_AD | | |
+| DYNAMIC_TYPE_APPLET | | |
+| DYNAMIC_TYPE_SUBSCRIPTION | | |
+| DYNAMIC_TYPE_LIVE_RCMD | 直播开播 | [718371505648435205](https://t.bilibili.com/718371505648435205) |
+| DYNAMIC_TYPE_BANNER | | |
+| DYNAMIC_TYPE_UGC_SEASON | 合集更新 | [718390979031203873](https://t.bilibili.com/718390979031203873) |
+| DYNAMIC_TYPE_SUBSCRIPTION_NEW | | |
+
+# 富文本节点类型
+
+| 类型 | 说明 | 示例 |
+|---------------------------------|------|-----------------------------------------------------------------|
+| RICH_TEXT_NODE_TYPE_NONE | | |
+| RICH_TEXT_NODE_TYPE_TEXT | 文字节点 | [721295772787671059](https://t.bilibili.com/721295772787671059) |
+| RICH_TEXT_NODE_TYPE_AT | @用户 | [721296515797090324](https://t.bilibili.com/721296515797090324) |
+| RICH_TEXT_NODE_TYPE_LOTTERY | 互动抽奖 | [720907383182721040](https://t.bilibili.com/720907383182721040) |
+| RICH_TEXT_NODE_TYPE_VOTE | 投票 | [721203899129659408](https://t.bilibili.com/721203899129659408) |
+| RICH_TEXT_NODE_TYPE_TOPIC | 话题 | [721188862459641879](https://t.bilibili.com/721188862459641879) |
+| RICH_TEXT_NODE_TYPE_GOODS | 商品链接 | [721282703208480790](https://t.bilibili.com/721282703208480790) |
+| RICH_TEXT_NODE_TYPE_BV | 视频链接 | [716752002311258165](https://t.bilibili.com/716752002311258165) |
+| RICH_TEXT_NODE_TYPE_AV | | |
+| RICH_TEXT_NODE_TYPE_EMOJI | 表情 | [716751108968546393](https://t.bilibili.com/716751108968546393) |
+| RICH_TEXT_NODE_TYPE_USER | | |
+| RICH_TEXT_NODE_TYPE_CV | | |
+| RICH_TEXT_NODE_TYPE_VC | | |
+| RICH_TEXT_NODE_TYPE_WEB | 网页链接 | [716751027361022055](https://t.bilibili.com/716751027361022055) |
+| RICH_TEXT_NODE_TYPE_TAOBAO | | |
+| RICH_TEXT_NODE_TYPE_MAIL | 邮箱地址 | [721314095109767220](https://t.bilibili.com/721314095109767220) |
+| RICH_TEXT_NODE_TYPE_OGV_SEASON | 剧集信息 | [721282046064853080](https://t.bilibili.com/721282046064853080) |
+| RICH_TEXT_NODE_TYPE_OGV_EP | | |
+| RICH_TEXT_NODE_TYPE_SEARCH_WORD | | |
+
+# 作者类型
+
+| 类型 | 说明 | 示例 |
+|------------------------|------|-----|
+| AUTHOR_TYPE_NONE | | |
+| AUTHOR_TYPE_NORMAL | 普通更新 | |
+| AUTHOR_TYPE_PGC | 剧集更新 | |
+| AUTHOR_TYPE_UGC_SEASON | 合集更新 | |
+
+| 类型 | 说明 | 示例 |
+|-----------------|-----|-----|
+| EMOJI_TYPE_NONE | | |
+| EMOJI_TYPE_OLD | | |
+| EMOJI_TYPE_NEW | | |
+| EMOJI_TYPE_VIP | | |
+
+# 相关内容卡片类型
+
+| 类型 | 说明 | 示例 |
+|-------------------------|------|--------------------------------------------------------------------------|
+| ADDITIONAL_TYPE_NONE | | |
+| ADDITIONAL_TYPE_PGC | | |
+| ADDITIONAL_TYPE_GOODS | 商品信息 | |
+| ADDITIONAL_TYPE_VOTE | 投票 | [716365292050055176](https://t.bilibili.com/716365292050055176) |
+| ADDITIONAL_TYPE_COMMON | 一般类型 | 游戏
[716357878942793745](https://t.bilibili.com/716357878942793745) |
+| ADDITIONAL_TYPE_MATCH | | |
+| ADDITIONAL_TYPE_UP_RCMD | | |
+| ADDITIONAL_TYPE_UGC | 视频跳转 | [716489253410832401](https://t.bilibili.com/716489253410832401) |
+| ADDITIONAL_TYPE_RESERVE | | 直播预约
[716524987542929443](https://t.bilibili.com/716524987542929443) |
+
+| 类型 | 说明 | 示例 |
+|-------------------------------|-----|-----|
+| ADDITIONAL_BUTTON_TYPE_NONE | | |
+| ADDITIONAL_BUTTON_TYPE_JUMP | | |
+| ADDITIONAL_BUTTON_TYPE_BUTTON | | |
+
+| 类型 | 说明 | 示例 |
+|----------------------------------|-----|-----|
+| ADDITIONAL_BUTTON_STATUS_NONE | | |
+| ADDITIONAL_BUTTON_STATUS_UNCHECK | | |
+| ADDITIONAL_BUTTON_STATUS_CHECK | | |
+
+| 类型 | 说明 | 示例 |
+|-------------------------------|-----|-----|
+| ADD_BUTTON_CLICK_TYPE_NONE | | |
+| ADD_BUTTON_CLICK_TYPE_RESERVE | | |
+
+| 类型 | 说明 | 示例 |
+|-------------------------|-----|-----|
+| DISABLE_STATE_HIGHLIGHT | | |
+| DISABLE_STATE_GRAY | | |
+
+| 类型 | 说明 | 示例 |
+|----------------------------|-----|-----|
+| ADD_BUTTON_BG_STYLE_FILL | | |
+| ADD_BUTTON_BG_STYLE_STROKE | | |
+| ADD_BUTTON_BG_STYLE_GRAY | | |
+
+| 类型 | 说明 | 示例 |
+|----------------------------------|-----|-----|
+| HIGHLIGHT_TEXT_STYLE_TYPE_NONE | | |
+| HIGHLIGHT_TEXT_STYLE_TYPE_ACTIVE | | |
+
+# 动态主体类型
+
+| 类型 | 说明 | 示例 |
+|-----------------------------|-------|-----------------------------------------------------------------|
+| MAJOR_TYPE_NONE | 动态失效 | [716510857084796964](https://t.bilibili.com/716510857084796964) |
+| MAJOR_TYPE_NONE | 转发动态 | [866756840240709701](https://www.bilibili.com/opus/866756840240709701) |
+| MAJOR_TYPE_OPUS | 图文动态 | [870176712256651305](https://www.bilibili.com/opus/870176712256651305) |
+| MAJOR_TYPE_ARCHIVE | 视频 | [716526237365829703](https://t.bilibili.com/716526237365829703) |
+| MAJOR_TYPE_PGC | 剧集更新 | [645981661420322824](https://t.bilibili.com/645981661420322824) |
+| MAJOR_TYPE_COURSES | | |
+| MAJOR_TYPE_DRAW | 带图动态 | [716358050743582725](https://t.bilibili.com/716358050743582725) |
+| MAJOR_TYPE_ARTICLE | | |
+| MAJOR_TYPE_MUSIC | 音频更新 | |
+| MAJOR_TYPE_COMMON | 一般类型 | [716481612656672789](https://t.bilibili.com/716481612656672789) |
+| MAJOR_TYPE_LIVE | 直播间分享 | [267505569812738175](https://t.bilibili.com/267505569812738175) |
+| MAJOR_TYPE_MEDIALIST | | |
+| MAJOR_TYPE_APPLET | | |
+| MAJOR_TYPE_SUBSCRIPTION | | |
+| MAJOR_TYPE_LIVE_RCMD | 直播状态 | |
+| MAJOR_TYPE_UGC_SEASON | 合计更新 | [716509100448415814](https://t.bilibili.com/716509100448415814) |
+| MAJOR_TYPE_SUBSCRIPTION_NEW | | |
+
+| 类型 | 说明 | 示例 |
+|-----------------|-----|-----|
+| MEDIA_TYPE_NONE | | |
+| MEDIA_TYPE_UGC | | |
+| MEDIA_TYPE_PGC | | |
+| MEDIA_TYPE_LIVE | | |
+
+| 类型 | 说明 | 示例 |
+|--------------------------|-----|-----|
+| PGC_SUB_TYPE_NONE | | |
+| PGC_SUB_TYPE_BANGUMI | | |
+| PGC_SUB_TYPE_MOVIE | | |
+| PGC_SUB_TYPE_DOCUMENTARY | | |
+| PGC_SUB_TYPE_DOMESTIC | | |
+| PGC_SUB_TYPE_TV | | |
+
+| 类型 | 说明 | 示例 |
+|----------------------|-----|-----|
+| DRAW_TAG_TYPE_NONE | | |
+| DRAW_TAG_TYPE_COMMON | | |
+| DRAW_TAG_TYPE_GOODS | | |
+| DRAW_TAG_TYPE_USER | | |
+| DRAW_TAG_TYPE_TOPIC | | |
+| DRAW_TAG_TYPE_LBS | | |
+
+| 类型 | 说明 | 示例 |
+|----------------------------------|-----|-----|
+| MAJOR_COMMON_STYLE_TYPE_NONE | | |
+| MAJOR_COMMON_STYLE_TYPE_SQUARE | | |
+| MAJOR_COMMON_STYLE_TYPE_VERTICAL | | |
+
+| 类型 | 说明 | 示例 |
+|---------------------|-----|-----|
+| RESERVE_TYPE_NONE | | |
+| RESERVE_TYPE_RECALL | | |
+
+| 类型 | 说明 | 示例 |
+|--------------------------|-----|-----|
+| LIVE_STATE_TYPE_NONE | | |
+| LIVE_STATE_TYPE_LIVE | | |
+| LIVE_STATE_TYPE_ROTATION | | |
+
+| 类型 | 说明 | 示例 |
+|----------------------------------|-----|-----|
+| SUBSCRIPTION_NEW_STYLE_TYPE_NONE | | |
+| SUBSCRIPTION_NEW_STYLE_TYPE_DRAW | | |
+| SUBSCRIPTION_NEW_STYLE_TYPE_LIVE | | |
+
+| 类型 | 说明 | 示例 |
+|------------------------------|---------|-----|
+| THREE_POINT_DELETE | 删除 | |
+| THREE_POINT_REPORT | 举报 | |
+| THREE_POINT_FOLLOWING | 关注/取消关注 | |
+| THREE_POINT_TOP | 置顶/取消置顶 | |
+| THREE_POINT_UNFAV | | |
+| THREE_POINT_UNSUBS | | |
+| THREE_POINT_TOPIC_REPORT | | |
+| THREE_POINT_TOPIC_IRRELEVANT | | |
+| THREE_POINT_RCMD_RESOURCE | | |
+| THREE_POINT_RCMD_FEEDBACK | | |
+
+| 类型 | 说明 | 示例 |
+|--------------------|-----|-----|
+| FOLD_TYPE_NONE | | |
+| FOLD_TYPE_PUBLISH | | |
+| FOLD_TYPE_FREQUENT | | |
+| FOLD_TYPE_UNITE | | |
+| FOLD_TYPE_LIMIT | | |
+
+| 类型 | 说明 | 示例 |
+|------------------------------|-----|-----|
+| DYN_STATUS_TYPE_NONE | | |
+| DYN_STATUS_TYPE_NORMAL | | |
+| DYN_STATUS_TYPE_AUDITING | | |
+| DYN_STATUS_TYPE_SELF_VISIBLE | | |
+| DYN_STATUS_TYPE_DELETED | | |
+
+| 类型 | 说明 | 示例 |
+|---------------|-----|-----|
+| SCENE_DETAIL | | |
+| SCENE_HOT | | |
+| SCENE_GENERAL | | |
+| SCENE_SPACE | | |
+| SCENE_TOPIC | | |
+
+
diff --git a/docs/dynamic/get_dynamic_detail.md b/docs/dynamic/get_dynamic_detail.md
index 0b8490e..e6182ab 100644
--- a/docs/dynamic/get_dynamic_detail.md
+++ b/docs/dynamic/get_dynamic_detail.md
@@ -273,7 +273,7 @@ curl -G 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_deta
| 字段 | 类型 | 内容 | 备注 |
| ----- | --- | ---- | ------------------------------------- |
-| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 |
+| role | num | 认证类型 | 见[用户认证类型一览](../user/official_role.md) |
| title | str | 认证信息 | 无为空 |
| desc | str | 认证备注 | 无为空 |
| type | num | 是否认证 | -1:无
0:认证 |
diff --git a/docs/dynamic/space.md b/docs/dynamic/space.md
new file mode 100644
index 0000000..d6ec813
--- /dev/null
+++ b/docs/dynamic/space.md
@@ -0,0 +1,1143 @@
+# 获取用户空间动态
+
+> https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space
+
+请求方式:`GET`
+
+是否需要登录:`否`
+
+## URL参数
+
+| 参数名 | 类型 | 必填 | 内容 | 备注 |
+|-----------------|-----|-----|--------|-----|
+| offset | str | | 分页偏移量 | |
+| host_mid | str | √ | 用户UID | |
+| timezone_offset | num | | `-480` | |
+| features | str | | itemOpusStyle | |
+
+## Json回复
+
+参照 [获取动态列表](./all.md#获取动态列表)
+
+## 请求示例
+
+```shell
+curl -L -X GET 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?host_mid=1'
+```
+
+## 响应示例
+
+
+点击查看
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "has_more": false,
+ "items": [
+ {
+ "basic": {
+ "comment_id_str": "463864834570585963",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "463864834566075427"
+ },
+ "id_str": "463864834570585963",
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/1/dynamic",
+ "label": "",
+ "mid": 1,
+ "name": "bishi",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "2020-12-02",
+ "pub_ts": 1606840348,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1816099200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "好家伙",
+ "text": "好家伙",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "好家伙"
+ },
+ "major": null,
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 979,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 81,
+ "forbidden": false
+ },
+ "like": {
+ "count": 7694,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "orig": {
+ "basic": {
+ "comment_id_str": "",
+ "comment_type": 0,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": ""
+ },
+ "id_str": "459720423056997502",
+ "modules": {
+ "module_author": {
+ "decorate": {
+ "card_url": "http://i0.hdslb.com/bfs/garb/item/3fc3f5914f0bcbefac9e9fa96aec454cf347287a.png",
+ "fan": {
+ "color": "#ec3d3d",
+ "is_fan": true,
+ "num_str": "004156",
+ "number": 4156
+ },
+ "id": 1418,
+ "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/1431?navhide=1&mid=249608727&from=dynamic&isdiy=0",
+ "name": "2020拜年祭粉丝专属",
+ "type": 3
+ },
+ "face": "https://i0.hdslb.com/bfs/face/e422a095e58305218e2745714ceb4c9754e752a7.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/249608727/dynamic",
+ "label": "",
+ "mid": 249608727,
+ "name": "杨可爱Ukulele",
+ "official_verify": {
+ "desc": "全民音乐UP主年度30强",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "https://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png",
+ "image_enhance": "https://i0.hdslb.com/bfs/face/c93e1eeb77b1bb0753eff243d49c006bf18d69c5.png",
+ "image_enhance_frame": "",
+ "name": "梦塔·雪谜城",
+ "pid": 299
+ },
+ "pub_action": "投稿了视频",
+ "pub_time": "",
+ "pub_ts": 1605875402,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1793462400000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E9%87%91%E7%A7%8B%E9%9F%B3%E4%B9%90%E5%AD%A3%23",
+ "orig_text": "#金秋音乐季#",
+ "text": "#金秋音乐季#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "orig_text": "\n大家推荐给我很多神曲 一直没机会做\n这不\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\n改编成中国风之后 好像 有点 串味儿了\n大家三连之后再细细观看可好?",
+ "text": "\n大家推荐给我很多神曲 一直没机会做\n这不\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\n改编成中国风之后 好像 有点 串味儿了\n大家三连之后再细细观看可好?",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "#金秋音乐季#\n大家推荐给我很多神曲 一直没机会做\n这不\n杨同学带着《酒醉的蝴蝶》《爱河》《黑人抬棺》《最炫民族风》..等10余位选手来了\n改编成中国风之后 好像 有点 串味儿了\n大家三连之后再细细观看可好?"
+ },
+ "major": {
+ "archive": {
+ "aid": "970285943",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV12p4y167Kq",
+ "cover": "http://i0.hdslb.com/bfs/archive/20c86c66df71770a7a91cc0871b455d1c582094b.jpg",
+ "desc": "大家好,今天想要跟大家分享我的快乐源泉,以及去KTV的必点神曲\n大家如果觉得十首看了还不过瘾的话\n这样\n点赞过十万 热评第一说出啥改编我就出啥 (前提是我做得来...\n\n(“土味”只是一个外号,它们其实不土,它们只是快乐的传递者\n 大部分的填词都是根据原版歌曲填哒,偶尔有些小发挥,大家当看娱乐视频就好啦)\n--------------------\n原唱:崔伟立、凤凰传奇、Vicetone&Tony Igy、神马乐团、筷子兄弟、慕容晓晓、李佳璐\n改编编曲/演唱/尤克里里:杨可爱\n改编填词:不迟等\n混音:",
+ "disable_preview": 0,
+ "duration_text": "06:12",
+ "jump_url": "//www.bilibili.com/video/BV12p4y167Kq",
+ "stat": {
+ "danmaku": "3519",
+ "play": "153万"
+ },
+ "title": "没内味儿?我把十五年最火的10首土味神曲做成了一首中国风..",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ "type": "DYNAMIC_TYPE_FORWARD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "269459814293507419",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "269459814290043403"
+ },
+ "id_str": "269459814293507419",
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/1/dynamic",
+ "label": "",
+ "mid": 1,
+ "name": "bishi",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "2019-06-27",
+ "pub_ts": 1561576902,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1816099200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "来一锄头!",
+ "text": "来一锄头!",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "来一锄头!"
+ },
+ "major": null,
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 1233,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 32,
+ "forbidden": false
+ },
+ "like": {
+ "count": 8428,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "orig": {
+ "basic": {
+ "comment_id_str": "",
+ "comment_type": 0,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": ""
+ },
+ "id_str": 4038269986840689,
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/210cac322eb3a689f63f3a19d59ea641347c3c52.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/10410/dynamic",
+ "label": "",
+ "mid": 10410,
+ "name": "hotfloor",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_time": "",
+ "pub_ts": 1327584664,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1700150400000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "205419",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1bx411w7SF",
+ "cover": "http://i1.hdslb.com/bfs/archive/5607be9a736a426ae21e3e59fad664296f91df8e.png",
+ "desc": "原创 拖到今天才做完了……总之祝各位新年快乐,做这个只是为了感谢这一年陪伴我们的各种新番,与新番一起成长的UP主们,和浪费我们大半人生的bili,谢谢你们带给我们的欢笑和泪水,即使是世界末日也不会忘记…… PS.感谢哦拖拖帮忙取标题 下载:http://pan.baidu.com/s/1c0ImLva 密码:8xb4 原曲MV联动av210810 自己的MADlist-->mylist27438",
+ "disable_preview": 0,
+ "duration_text": "04:49",
+ "jump_url": "//www.bilibili.com/video/BV1bx411w7SF",
+ "stat": {
+ "danmaku": "2.4万",
+ "play": "54.6万"
+ },
+ "title": "【MAD】[送给所有热爱bili的各位]干杯",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ "type": "DYNAMIC_TYPE_FORWARD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "26050777",
+ "comment_type": 11,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "26050777"
+ },
+ "id_str": "269003035929570655",
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/1/dynamic",
+ "label": "",
+ "mid": 1,
+ "name": "bishi",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "2019-06-25",
+ "pub_ts": 1561470550,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1816099200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E5%B9%B2%E6%9D%AF%E5%8D%81%E5%91%A8%E5%B9%B4%23",
+ "orig_text": "#干杯十周年#",
+ "text": "#干杯十周年#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "orig_text": "Yo,My Friend,Nice to see you again.",
+ "text": "Yo,My Friend,Nice to see you again.",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "jump_url": "https://www.bilibili.com/blackboard/bilibili2009.html",
+ "orig_text": "https://www.bilibili.com/blackboard/bilibili2009.html",
+ "text": "网页链接",
+ "type": "RICH_TEXT_NODE_TYPE_WEB"
+ }
+ ],
+ "text": "#干杯十周年#Yo,My Friend,Nice to see you again.https://www.bilibili.com/blackboard/bilibili2009.html"
+ },
+ "major": {
+ "draw": {
+ "id": 26050777,
+ "items": [
+ {
+ "height": 1360,
+ "size": 500,
+ "src": "https://i0.hdslb.com/bfs/active/1ddb2cb9a1edb74ba7c4f0e15c1bbef9dc3ce548.jpg",
+ "tags": [],
+ "width": 935
+ }
+ ]
+ },
+ "type": "MAJOR_TYPE_DRAW"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 1515,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 214,
+ "forbidden": false
+ },
+ "like": {
+ "count": 11041,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_DRAW",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "264471510427272642",
+ "comment_type": 17,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "264471510424746690"
+ },
+ "id_str": "264471510427272642",
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/1/dynamic",
+ "label": "",
+ "mid": 1,
+ "name": "bishi",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "",
+ "pub_location_text": "",
+ "pub_time": "2019-06-13",
+ "pub_ts": 1560415472,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1816099200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "圈错号了",
+ "text": "圈错号了",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/33ad6000d9f9f168a0976bc60937786f239e5d8c.png",
+ "size": 1,
+ "text": "[呆]",
+ "type": 1
+ },
+ "orig_text": "[呆]",
+ "text": "[呆]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "orig_text": "//",
+ "text": "//",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "orig_text": "@柴刀娘木木",
+ "rid": "9",
+ "text": "@柴刀娘木木",
+ "type": "RICH_TEXT_NODE_TYPE_AT"
+ },
+ {
+ "orig_text": ":",
+ "text": ":",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "orig_text": "@bishi",
+ "rid": "1",
+ "text": "@bishi",
+ "type": "RICH_TEXT_NODE_TYPE_AT"
+ },
+ {
+ "orig_text": "我来组成分母,测试欧气,我要是中了再抽人送出",
+ "text": "我来组成分母,测试欧气,我要是中了再抽人送出",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/6c49d226e76c42cd8002abc47b3112bc5a92f66a.png",
+ "size": 1,
+ "text": "[偷笑]",
+ "type": 1
+ },
+ "orig_text": "[偷笑]",
+ "text": "[偷笑]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ }
+ ],
+ "text": "圈错号了[呆]//@柴刀娘木木:@bishi我来组成分母,测试欧气,我要是中了再抽人送出[偷笑]"
+ },
+ "major": null,
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 1013,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 109,
+ "forbidden": false
+ },
+ "like": {
+ "count": 4751,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "orig": {
+ "basic": {
+ "comment_id_str": "",
+ "comment_type": 0,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": ""
+ },
+ "id_str": "264180341709040397",
+ "modules": {
+ "module_author": {
+ "decorate": {
+ "card_url": "http://i0.hdslb.com/bfs/garb/item/fe745063c05881face209a772d17bb056a4034f1.png",
+ "fan": {
+ "color": "#6857ea",
+ "is_fan": true,
+ "num_str": "001647",
+ "number": 1647
+ },
+ "id": 5203,
+ "jump_url": "https://www.bilibili.com/h5/mall/fans/recommend/5235?navhide=1&mid=12&from=dynamic&isdiy=0",
+ "name": "BML2021粉丝专属",
+ "type": 3
+ },
+ "face": "http://i2.hdslb.com/bfs/face/4f640086bc17e180faf8ad6b86b5bf4be24eb9f1.jpg",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/12/dynamic",
+ "label": "",
+ "mid": 12,
+ "name": "MagicBear",
+ "official_verify": {
+ "desc": "",
+ "type": 0
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "https://i0.hdslb.com/bfs/face/a959c72407b2ac553d4328fd76d55d0134e20f65.png",
+ "image_enhance": "https://i0.hdslb.com/bfs/face/a959c72407b2ac553d4328fd76d55d0134e20f65.png",
+ "image_enhance_frame": "",
+ "name": "异常生物",
+ "pid": 460
+ },
+ "pub_action": "",
+ "pub_time": "",
+ "pub_ts": 1560347679,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1761580800000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/0DFy9BHgwE.gif",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d7e624d13d3e134251e4174a7318c19a8edbd71.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/uckjAv3Npy.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": {
+ "rich_text_nodes": [
+ {
+ "orig_text": "互动抽奖",
+ "text": "互动抽奖",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E8%BD%AC%E5%8F%91%E6%8A%BD%E5%A5%96%23",
+ "orig_text": "#转发抽奖#",
+ "text": "#转发抽奖#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23PC%E7%A1%AC%E4%BB%B6%23",
+ "orig_text": "#PC硬件#",
+ "text": "#PC硬件#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "jump_url": "//search.bilibili.com/all?keyword=%23%E6%97%A7%E8%B4%A7%E6%B8%85%E7%90%86%E8%AE%A1%E5%88%92%23",
+ "orig_text": "#旧货清理计划#",
+ "text": "#旧货清理计划#",
+ "type": "RICH_TEXT_NODE_TYPE_TOPIC"
+ },
+ {
+ "orig_text": " 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e ",
+ "text": " 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e ",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ },
+ {
+ "emoji": {
+ "icon_url": "http://i0.hdslb.com/bfs/emote/6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png",
+ "size": 1,
+ "text": "[tv_doge]",
+ "type": 1
+ },
+ "orig_text": "[tv_doge]",
+ "text": "[tv_doge]",
+ "type": "RICH_TEXT_NODE_TYPE_EMOJI"
+ },
+ {
+ "orig_text": " 关注并转发抽奖送出",
+ "text": " 关注并转发抽奖送出",
+ "type": "RICH_TEXT_NODE_TYPE_TEXT"
+ }
+ ],
+ "text": "互动抽奖#转发抽奖##PC硬件##旧货清理计划# 很久以前购入然后一直沒用上的SSD一枚 型号:PX-G512M6e [tv_doge] 关注并转发抽奖送出"
+ },
+ "major": {
+ "draw": {
+ "id": 24303852,
+ "items": [
+ {
+ "height": 1242,
+ "size": 150.93652,
+ "src": "https://i0.hdslb.com/bfs/album/cd767602a291a5b7d4deebd8c65ebeeb0dfce1a2.jpg",
+ "tags": [],
+ "width": 2688
+ }
+ ]
+ },
+ "type": "MAJOR_TYPE_DRAW"
+ },
+ "topic": null
+ }
+ },
+ "type": "DYNAMIC_TYPE_DRAW",
+ "visible": true
+ },
+ "type": "DYNAMIC_TYPE_FORWARD",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "55",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "55"
+ },
+ "id_str": 76690937085980,
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/1/dynamic",
+ "label": "",
+ "mid": 1,
+ "name": "bishi",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "2009-07-13",
+ "pub_ts": 1247496094,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1816099200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "55",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1xx411c7Ug",
+ "cover": "http://i0.hdslb.com/bfs/archive/c392288c19bbdf3762919774bce01c76dc346344.jpg",
+ "desc": "没有听过这首歌的话会是人参的一大遗憾呢..(望天",
+ "disable_preview": 0,
+ "duration_text": "01:38",
+ "jump_url": "//www.bilibili.com/video/BV1xx411c7Ug",
+ "stat": {
+ "danmaku": "2965",
+ "play": "116.6万"
+ },
+ "title": "【天哥版】最春哥",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 20434,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 585,
+ "forbidden": false
+ },
+ "like": {
+ "count": 27958,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ },
+ {
+ "basic": {
+ "comment_id_str": "16",
+ "comment_type": 1,
+ "like_icon": {
+ "action_url": "",
+ "end_url": "",
+ "id": 0,
+ "start_url": ""
+ },
+ "rid_str": "16"
+ },
+ "id_str": 55783037337604,
+ "modules": {
+ "module_author": {
+ "face": "http://i0.hdslb.com/bfs/face/34c5b30a990c7ce4a809626d8153fa7895ec7b63.gif",
+ "face_nft": false,
+ "following": null,
+ "jump_url": "//space.bilibili.com/1/dynamic",
+ "label": "",
+ "mid": 1,
+ "name": "bishi",
+ "official_verify": {
+ "desc": "",
+ "type": -1
+ },
+ "pendant": {
+ "expire": 0,
+ "image": "",
+ "image_enhance": "",
+ "image_enhance_frame": "",
+ "name": "",
+ "pid": 0
+ },
+ "pub_action": "投稿了视频",
+ "pub_location_text": "",
+ "pub_time": "2009-07-09",
+ "pub_ts": 1247073333,
+ "type": "AUTHOR_TYPE_NORMAL",
+ "vip": {
+ "avatar_subscript": 1,
+ "avatar_subscript_url": "",
+ "due_date": 1816099200000,
+ "label": {
+ "bg_color": "#FB7299",
+ "bg_style": 1,
+ "border_color": "",
+ "img_label_uri_hans": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant": "",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png",
+ "label_theme": "annual_vip",
+ "path": "",
+ "text": "年度大会员",
+ "text_color": "#FFFFFF",
+ "use_img_label": true
+ },
+ "nickname_color": "#FB7299",
+ "status": 1,
+ "theme_type": 0,
+ "type": 2
+ }
+ },
+ "module_dynamic": {
+ "additional": null,
+ "desc": null,
+ "major": {
+ "archive": {
+ "aid": "16",
+ "badge": {
+ "bg_color": "#FB7299",
+ "color": "#FFFFFF",
+ "text": "投稿视频"
+ },
+ "bvid": "BV1xx411c7mi",
+ "cover": "http://i1.hdslb.com/bfs/archive/ef521697c031bd2b0aab5c8aab3abe1ea0ca63b9.jpg",
+ "desc": "CRUCIS FATAL FAKE : Fate Stay Night的同人格斗游戏. MV制作 : yaomenghua 天下格斗之同人堂",
+ "disable_preview": 0,
+ "duration_text": "09:43",
+ "jump_url": "//www.bilibili.com/video/BV1xx411c7mi",
+ "stat": {
+ "danmaku": "6205",
+ "play": "141.8万"
+ },
+ "title": "【FATE相关】CRUCIS FATAL FAKE MV 《Faker》",
+ "type": 1
+ },
+ "type": "MAJOR_TYPE_ARCHIVE"
+ },
+ "topic": null
+ },
+ "module_more": {
+ "three_point_items": [
+ {
+ "label": "举报",
+ "type": "THREE_POINT_REPORT"
+ }
+ ]
+ },
+ "module_stat": {
+ "comment": {
+ "count": 13354,
+ "forbidden": false
+ },
+ "forward": {
+ "count": 473,
+ "forbidden": false
+ },
+ "like": {
+ "count": 39657,
+ "forbidden": false,
+ "status": false
+ }
+ }
+ },
+ "type": "DYNAMIC_TYPE_AV",
+ "visible": true
+ }
+ ],
+ "offset": "",
+ "update_baseline": "",
+ "update_num": 0
+ }
+}
+```
+
+
\ No newline at end of file
diff --git a/docs/electric/WeChat&Alipay.md b/docs/electric/WeChat&Alipay.md
index 05b4bae..1885a82 100644
--- a/docs/electric/WeChat&Alipay.md
+++ b/docs/electric/WeChat&Alipay.md
@@ -73,7 +73,7 @@ curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create' \
"message": "0",
"ttl": 1,
"data": {
- "qr_code_url": "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435&token=c1cb1d95d2194ba58df6bb0f24ae1aaa",
+ "qr_code_url": "https://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435&token=c1cb1d95d2194ba58df6bb0f24ae1aaa",
"qr_token": "c1cb1d95d2194ba58df6bb0f24ae1aaa",
"exp": 1
}
diff --git a/docs/electric/charge_list.md b/docs/electric/charge_list.md
index d31f919..3192915 100644
--- a/docs/electric/charge_list.md
+++ b/docs/electric/charge_list.md
@@ -16,12 +16,12 @@
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | --------------------------- |
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | |
-| ttl | num | 0 | |
-| data | obj | 数据本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ---------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
88214:up主未开通充电 |
+| message | str | 错误信息 | |
+| ttl | num | 0 | |
+| data | obj | 数据本体 | |
`data`对象:
diff --git a/docs/fav/list.md b/docs/fav/list.md
index 0d57e19..60408d9 100644
--- a/docs/fav/list.md
+++ b/docs/fav/list.md
@@ -39,6 +39,8 @@
| ------ | ----- | ------------ | ---- |
| info | obj | 收藏夹元数据 | |
| medias | array | 收藏夹内容 | |
+| has_more | bool | 收藏夹是否有下一页 | |
+| ttl | num | 接口返回时间 | 时间戳 |
`data`中的`info`对象:
@@ -103,7 +105,7 @@
| page | num | 视频分P数 | |
| duration | num | 音频/视频时长 | |
| upper | obj | UP主信息 | |
-| attr | num | 属性位(?) | |
+| attr | num | 失效 | 0: 正常;9: up自己删除;1: 其他原因删除 |
| cnt_info | obj | 状态数 | |
| link | str | 跳转uri | |
| ctime | num | 投稿时间 | 时间戳 |
@@ -319,7 +321,8 @@ curl -G 'https://api.bilibili.com/x/v3/fav/resource/list' \
"season": null
}
],
- "has_more": true
+ "has_more": true,
+ "ttl": 1703349018
}
}
```
diff --git a/docs/history&toview/history.md b/docs/history&toview/history.md
index 449555a..8e7a6f2 100644
--- a/docs/history&toview/history.md
+++ b/docs/history&toview/history.md
@@ -389,15 +389,15 @@ curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \
| pubdate | num | 稿件发布时间 | 时间戳 |
| ctime | num | 用户提交稿件的时间 | 时间戳 |
| desc | str | 视频简介 | |
-| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 |
-| ~~attribute~~(仅做历史性保留) | ~~num~~ | ~~稿件属性位配置~~ | 本字段已被删除
~~略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注~~ |
+| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`state`备注 |
+| ~~attribute~~(仅做历史性保留) | ~~num~~ | ~~稿件属性位配置~~ | 本字段已被删除
~~略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`attribute`备注~~ |
| duration | num | 视频总计持续时长(所有分P) | 单位为秒 |
-| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 |
-| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 |
-| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 |
+| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`rights`对象 |
+| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`owner`对象 |
+| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`stat`对象 |
| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
| cid | num | 视频1P cid | |
-| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
+| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
| bangumi | obj | 番剧/影视信息 | 非番剧/影视无此项 |
| cheese | obj | 课程信息 | 非课程无此项 |
| favorite | bool | 是否已收藏 | true:已收藏
false:未收藏 |
diff --git a/docs/history&toview/toview.md b/docs/history&toview/toview.md
index 16cb5d2..4ff78ef 100644
--- a/docs/history&toview/toview.md
+++ b/docs/history&toview/toview.md
@@ -1,6 +1,6 @@
# 稍后再看
-
+
## 视频添加稍后再看
@@ -170,14 +170,14 @@ curl 'https://space.bilibili.com/ajax/channel/addAllToView' \
| pubdate | num | 稿件发布时间 | 时间戳 |
| ctime | num | 用户提交稿件的时间 | 时间戳 |
| desc | str | 视频简介 | |
-| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 |
-| ~~attribute~~(仅做历史性保留) | ~~num~~ | ~~稿件属性位配置~~ | 本字段已被删除~~略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注~~ |
+| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`state`备注 |
+| ~~attribute~~(仅做历史性保留) | ~~num~~ | ~~稿件属性位配置~~ | 本字段已被删除~~略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`attribute`备注~~ |
| duration | num | 稿件总时长(所有分P) | 单位为秒 |
-| rights | obj | 稿件属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 |
-| owner | obj | 稿件UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 |
-| stat | obj | 稿件状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 |
+| rights | obj | 稿件属性标志 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`rights`对象 |
+| owner | obj | 稿件UP主信息 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`owner`对象 |
+| stat | obj | 稿件状态数 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`stat`对象 |
| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
-| dimension | obj | 稿件1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
+| dimension | obj | 稿件1P分辨率 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
| count | num | 稿件分P数 | 非投稿视频无此项 |
| cid | num | 视频cid | |
| progress | num | 观看进度时间 | 单位为秒 |
diff --git a/docs/live/manage.md b/docs/live/manage.md
index 28ab1f7..9abaf61 100644
--- a/docs/live/manage.md
+++ b/docs/live/manage.md
@@ -15,8 +15,9 @@
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------- | ---- | ------------------------ | ------ | -------------------- |
| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
-| title | str | 直播间标题 | 必要 | 最大20字符 |
+| title | str | 直播间标题 | | 最大20字符 |
| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| csrf_token | str | CSRF Token(位于 cookie) | | |
**json回复:**
@@ -258,3 +259,174 @@ curl 'https://api.live.bilibili.com/room/v1/Room/stopLive' \
```
+
+
+## 更新直播间公告
+
+> https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews
+
+*请求方式:POST*
+
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
+
+**正文参数( application/x-www-form-urlencoded ):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ------------------------ | ------ | --------------------- |
+| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
+| uid | num | 用户id | 必要 | |
+| content | str | 公告内容 | 必要 | 最大60个字符,可以为空 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| csrf_token | str | CSRF Token(位于 cookie) | | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ----- | -------- | ------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
65530:token错误(登录错误)
1:错误 |
+| data | array | 空 | |
+| message | str | 错误信息 | 默认为ok |
+| ttl | num | 1 | 作用尚不明确 |
+
+**示例:**
+
+修改直播间`11996900`公告为`测试修改公告`
+
+```shell
+curl 'https://api.live.bilibili.com/xlive/app-blink/v1/index/updateRoomNews' \
+--data-urlencode 'room_id=11996900' \
+--data-urlencode 'uid=306903238' \
+--data-urlencode 'content=测试修改公告' \
+--data-urlencode 'csrf_token=xxx' \
+--data-urlencode 'csrf=xxx' \
+-b 'SESSDATA=xxx;bili_jct=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {}
+}
+```
+
+
+
+## 编辑直播间标签
+
+> https://api.live.bilibili.com/room/v1/Room/update
+
+*请求方式:POST*
+
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
+
+**正文参数( application/x-www-form-urlencoded ):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ------------------------ | ------ | -------------------- |
+| room_id | num | 直播间id | 必要 | 必须为自己的直播间id |
+| add_tag | str | 要添加的标签 | 必要 | 最大10个字符 |
+| del_tag | str | 要删除的标签 | 必要 | |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| csrf_token | str | CSRF Token(位于 cookie) | | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
65530:token错误(登录错误)
1:错误 |
+| data | obj | | |
+| message | str | 错误信息 | 默认为ok |
+| msg | str | 错误信息 | 默认为ok |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| --------------- | ---- | ---- | ---- |
+| audit_info | obj | | |
+| sub_session_key | str | | |
+
+`data`中的`audit_info`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------------ | ---- | ---- | ---- |
+| audit_title_reason | str | | |
+| audit_title_status | num | 0 | |
+| update_title | str | | |
+
+**示例:**
+
+给直播间`11996900`添加一个标签为`测试标签`
+
+```shell
+curl 'https://api.live.bilibili.com/room/v1/Room/update' \
+--data-urlencode 'room_id=11996900' \
+--data-urlencode 'add_tag=测试标签' \
+--data-urlencode 'csrf_token=xxx' \
+--data-urlencode 'csrf=xxx' \
+-b 'SESSDATA=xxx;bili_jct=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "msg": "ok",
+ "message": "ok",
+ "data": {
+ "sub_session_key": "",
+ "audit_info": {
+ "audit_title_reason": "",
+ "update_title": "",
+ "audit_title_status": 0
+ }
+ }
+}
+```
+
+
+给直播间`11996900`删除内容为`测试标签`的标签
+
+```shell
+curl 'https://api.live.bilibili.com/room/v1/Room/update' \
+--data-urlencode 'room_id=11996900' \
+--data-urlencode 'del_tag=测试标签' \
+--data-urlencode 'csrf_token=xxx' \
+--data-urlencode 'csrf=xxx' \
+-b 'SESSDATA=xxx;bili_jct=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "msg": "ok",
+ "message": "ok",
+ "data": {
+ "sub_session_key": "",
+ "audit_info": {
+ "audit_title_reason": "",
+ "update_title": "",
+ "audit_title_status": 0
+ }
+ }
+}
+```
+
+
diff --git a/docs/live/message_stream.md b/docs/live/message_stream.md
index 6ed7487..436d1be 100644
--- a/docs/live/message_stream.md
+++ b/docs/live/message_stream.md
@@ -44,6 +44,7 @@
| wss_port | num | wss端口 | |
| ws_port | num | ws端口 | |
+
**示例:**
获得直播间`22824550`的信息流认证秘钥
@@ -94,6 +95,9 @@ curl -G 'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo' \
+**注:最终URI格式为: host+对应port+"/sub"**,例如以上示例中一个可行的ws连接URI应当为`tx-sh-live-comet-02.chat.bilibili.com:2244/sub`
+
+
## 数据包格式
数据包为MQ(Message Queue,消息队列)使用Websocket或TCP连接作为通道,具体格式为头部数据+正文数据
@@ -446,6 +450,73 @@ json格式
```
+
+#### 连续弹幕消息
+
+连续多条相同弹幕时触发
+
+json格式
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | --------- |
+| cmd | str | "DM_INTERACTION" | 如果是进入直播间或关注消息,内容则是"INTERACT_WORD" |
+| data | obj | 进入直播间的用户的信息 | |
+
+data字段
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | --------- |
+| id | num | 事件ID | |
+| status | num | 状态 | |
+| type | num | 事件类型 | |
+| data | str | 事件数据 | |
+
+连续发送弹幕事件的data.data字段
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | --------- |
+| combo | array | 连续发送弹幕事件信息 | |
+| merge_interval | num | 合并弹幕时间间隔 | |
+| card_appear_interval | num | 弹窗出现时间间隔 | |
+| send_interval | num | 发送时间间隔 | |
+
+连续发送弹幕事件的data.data.combo字段
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | --------- |
+| id | num | 时间ID | |
+| status | num | 状态 | |
+| content | str | 重复的弹幕内容 | |
+| cnt | num | 重复数量 | |
+| guide | str | 标题词 | "他们都在说:" |
+| left_duration | num | 左移时长 | |
+| fade_duration | num | 淡化时长 | |
+
+
+查看消息示例:
+
+```json
+{
+ '': 6785480089600,
+ 'status': 4,
+ 'type': 102,
+ 'data': '{
+ "combo":[{
+ "id":6785480089600,
+ "status":4,
+ "content":"晚安",
+ "cnt":3,
+ "guide":"他们都在说:",
+ "left_duration":20000,
+ "fade_duration":60000}],
+ "merge_interval":1000,
+ "card_appear_interval":1000,
+ "send_interval":1000}'
+}
+```
+
+
+
#### 进场或关注消息
有用户进入直播间或关注主播时触发
@@ -573,6 +644,85 @@ data字段
+#### 用户庆祝消息
+
+json格式
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- |------------------|----------------------------------|
+| cmd | str | "USER_TOAST_MSG" | 用户购买舰长 / 提督 / 总督后的庆祝消息,内容包含用户陪伴天数 |
+| data | obj | 上舰人uid & 昵称、上舰信息 | |
+
+data字段
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- |-----|--------------------------|-----|
+| anchor_show | bool | 是否显示 | |
+| color | str | 颜色 | |
+| dmscore | num | 待调查 | |
+| effect_id | num | 待调查 | |
+| face_effect_id | num | 待调查 | |
+| gift_id | num | 礼物id | |
+| group_name | str | 待调查 | |
+| group_op_type | num | 待调查 | |
+| group_role_name | str | 待调查 | |
+| guard_level | num | 大航海等级 | 1: 总督 2: 提督 3:舰长 |
+| is_group | num | 待调查 | |
+| is_show | num | 待调查 | |
+| num | num | 上舰个数 | |
+| op_type | num | 待调查 | |
+| payflow_id | str | 待调查 | |
+| price | num | 价格 |
+| role_name | str | 身份名称 | |
+| room_effect_id | num | 待调查 | |
+| room_group_effect_id | num | 待调查 | |
+| start_time | num | 待调查 | |
+| svga_block | num | 待调查 | |
+| target_guard_count | str | 庆祝消息正文 | |
+| toast_msg | num | 待调查 | |
+| uid | num | 上舰人UID | |
+| unit | str | 购买身份时间单位 | |
+| user_show | bool | 待调查 | |
+| username | str | 上舰人用户名 | |
+
+
+
+查看消息示例:
+
+```json
+{
+ 'anchor_show': True,
+ 'color': '#00D1F1',
+ 'dmscore': 90,
+ 'effect_id': 397,
+ 'end_time': 1702580687,
+ 'face_effect_id': 44,
+ 'gift_id': 10003,
+ 'group_name': '',
+ 'group_op_type': 0,
+ 'group_role_name': '',
+ 'guard_level': 3,
+ 'is_group': 0,
+ 'is_show': 0,
+ 'num': 1,
+ 'op_type': 1,
+ 'payflow_id':'2312150304155852173446521',
+ 'price': 138000,
+ 'role_name': '舰长',
+ 'room_effect_id': 590,
+ 'room_group_effect_id': 1337,
+ 'start_time': 1702580687,
+ 'svga_block': 0,
+ 'target_guard_count': 146,
+ 'toast_msg': '<%无光之日%> 在主播Mia米娅-的直播间开通了舰长,今天是TA陪伴主播的第1天',
+ 'uid': 79667344,
+ 'unit': '月',
+ 'user_show': True,
+ 'username': '无光之日'}
+```
+
+
+
#### 醒目留言
json格式
@@ -604,7 +754,7 @@ data字段
| medal_info | obj | SC发送用户佩戴的粉丝牌信息 | |
| message | str | sc内容 | |
| message_font_color | str | SC文本颜色 | |
-| message_trans | str | 待调查 | |
+| message_trans | str | 机翻sc内容 | |
| price | num | sc金额 | |
| rate | num | 待调查 | |
| start_time | num | 待调查 | |
@@ -1085,12 +1235,6 @@ json格式
| ---- | ---- | ------ | --------- |
| cmd | str | "NOTICE_MSG" | 通知消息,内容则是"NOTICE_MSG" |
| id | num | 待调查 | |
-| data | obj | 通知数据 | |
-
-data字段
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------ | --------- |
| full | obj | 待调查 | |
| half | obj | 待调查 | |
| side | obj | 待调查 | |
@@ -1265,6 +1409,7 @@ data字段
"fans_club": 8
}
}
+```
#### 直播间高能榜
@@ -1409,6 +1554,44 @@ list数组中的对象
+#### 直播间在人气榜的排名改变
+
+
+json格式
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | --------- |
+| cmd | str | "POPULAR_RANK_CHANGED" | |
+| data | obj | 直播间的人气榜排名信息 | |
+
+data字段
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | --------- |
+| uid | num | 主播UID | |
+| rank | num | 人气榜排名 | |
+| countdown | num | 人气榜下轮结算剩余时长 | |
+| timestamp | num | 触发时的Unix时间戳 | |
+| timestamp | str | 待调查 | |
+
+
+查看消息示例:
+
+```json
+{
+ 'cmd': 'POPULAR_RANK_CHANGED',
+ 'data': {
+ 'uid': 780791,
+ 'rank': 36,
+ 'countdown': 1927,
+ 'timestamp': 1702578474,
+ 'cache_key': 'rank_change:91a4e81ba3034ae894d61e432aa13081'
+ }
+}
+```
+
+
+
#### 直播间用户点赞
json格式
diff --git a/docs/live/silent_user_manage.md b/docs/live/silent_user_manage.md
new file mode 100644
index 0000000..08f7757
--- /dev/null
+++ b/docs/live/silent_user_manage.md
@@ -0,0 +1,218 @@
+# 直播间禁言相关 API
+
+## 禁言观众
+
+> https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/AddSilentUser
+
+*请求方式:post*
+
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
+
+**正文参数( application/x-www-form-urlencoded ):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | --- | ---------- | --- | ------------------ |
+| room_id | str | 直播间Id | 必要 | |
+| tuid | str | 要禁言的uid | 必要 | |
+| msg | str | 要禁言的弹幕内容 | 非必要 | |
+| mobile_app | str | web | 必要 | 定值"web"即可 |
+| csrf_token | str | CSRF Token | 必要 | cookie中的bili_jct字段 |
+| csrf | str | CSRF Token | 必要 | cookie中的bili_jct字段 |
+| visit_id | str | 不明 | 非必要 | |
+
+**json 回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | --- | ---- | ------- |
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 默认为 "0" |
+| ttl | str | 1 | |
+| data | obj | 信息本体 | 成功为空 |
+
+**示例:**
+
+```shell
+curl -X POST 'https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/AddSilentUser' \
+--data-urlencode 'room_id=xxxxxx' \
+--data-urlencode 'tuid=xxx' \
+--data-urlencode 'msg=xxxx' \
+--data-urlencode 'mobile_app=web' \
+--data-urlencode 'csrf_token=xx' \
+--data-urlencode 'csrf=xx' \
+--data-urlencode 'visit_id=' \
+-H 'Content-Type:application/x-www-form-urlencoded' \
+-b 'SESSDATA=xxx; bili_jct=xx;'
+```
+
+
+查看响应示例:
+
+```json
+{"code":0,"message":"0","ttl":1,"data":{}}
+```
+
+
+
+## 查询直播间禁言列表
+
+> https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/GetSilentUserList
+
+*请求方式:post*
+
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
+
+**正文参数( application/x-www-form-urlencoded ):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | --- | ---------- | --- | ------------------ |
+| room_id | str | 直播间Id | 必要 | |
+| ps1 | str | 列表页码 | 必要 | |
+| csrf_token | str | CSRF Token | 必要 | cookie中的bili_jct字段 |
+| csrf | str | CSRF Token | 必要 | cookie中的bili_jct字段 |
+| visit_id | str | 不明 | 非必要 | |
+
+**json 回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | --- | ---- | ------- |
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 默认为 "0" |
+| ttl | str | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | ------ | ------- |
+| data | array | 禁言列表 | 数组中为obj |
+| total | int | 禁言观众数量 | |
+| total_page | int | 页码总数量 | |
+
+`data`对象中`data`数组的元素对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | --- | ------ | --------- |
+| tuid | num | 禁言者uid | |
+| tname | str | 禁言者昵称 | |
+| uid | num | 发起者uid | |
+| name | str | 发起者昵称 | |
+| ctime | str | 禁言时间 | |
+| id | num | 禁言记录Id | 解除禁言时用到 |
+| is_anchor | num | 不明 | |
+| face | str | 禁言者头像 | |
+| admin_level | num | 发起者权限 | 0:主播,1:房管 |
+
+**示例:**
+
+```shell
+curl -X POST 'https://api.live.bilibili.com/xlive/web-ucenter/v1/banned/GetSilentUserList' \
+--data-urlencode 'room_id=xxxxxxx' \
+--data-urlencode 'ps=1' \
+--data-urlencode 'csrf_token=xxx' \
+--data-urlencode 'csrf=xxx' \
+--data-urlencode 'visit_id=' \
+-H 'Content-Type:application/x-www-form-urlencoded' \
+-b 'SESSDATA=xxxx; bili_jct=xxx;'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code":0,
+ "message":"0",
+ "ttl":1,
+ "data":{
+ "data":[
+ {
+ "tuid":123456,
+ "tname":"xxxxx",
+ "uid":123456,
+ "name":"xxxx",
+ "ctime":"2023-12-15 16:32:46",
+ "id":13493921,
+ "is_anchor":0,
+ "face":"https://i1.hdslb.com/bfs/face/xxxxx.jpg",
+ "admin_level":1
+ },
+ {
+ "tuid":123456,
+ "tname":"xx",
+ "uid":123456,
+ "name":"xxxx",
+ "ctime":"2021-08-23 22:26:06",
+ "id":8018136,
+ "is_anchor":1,
+ "face":"https://i1.hdslb.com/bfs/face/xxxxxx.jpg",
+ "admin_level":0
+ }
+ ],
+ "total":2,
+ "total_page":1
+ }
+}
+```
+
+
+
+## 解除禁言
+
+> https://api.live.bilibili.com/banned_service/v1/Silent/del_room_block_user
+
+*请求方式:post*
+
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:Cookie中`bili_jct`的值正确并与`csrf`相同
+
+**正文参数( application/x-www-form-urlencoded ):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | --- | ---------- | --- | ---------------------- |
+| roomid | str | 直播间Id | 必要 | 注意该接口名称没有“_” |
+| id | str | 禁言记录Id | 必要 | GetSilentUserList 接口获取 |
+| csrf_token | str | CSRF Token | 必要 | cookie中的bili_jct字段 |
+| csrf | str | CSRF Token | 必要 | cookie中的bili_jct字段 |
+| visit_id | str | 不明 | 非必要 | |
+
+**json 回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | --- | ---- | ---- |
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 成功为空 |
+| ttl | str | 1 | |
+| data | obj | 信息本体 | 成功为空 |
+
+**示例:**
+
+```shell
+curl -X POST 'https://api.live.bilibili.com/banned_service/v1/Silent/del_room_block_user' \
+--data-urlencode 'roomid=xxxxxxxxx' \
+--data-urlencode 'id=xxxxx' \
+--data-urlencode 'csrf_token=xxx' \
+--data-urlencode 'csrf=xxx' \
+--data-urlencode 'visit_id=' \
+-H 'Content-Type:application/x-www-form-urlencoded' \
+-b 'SESSDATA=xxxxxx; bili_jct=xxx;'
+```
+
+
+查看响应示例:
+
+```json
+{"code":0,"msg":"","message":"","data":[]}
+```
+
+
diff --git a/docs/live/user.md b/docs/live/user.md
index d8a2853..257676e 100644
--- a/docs/live/user.md
+++ b/docs/live/user.md
@@ -24,7 +24,7 @@
| ------- | ---- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0:成功
-1002002:参数异常
-500:服务器异常 |
| message | str | 错误信息 | 默认为 "0" |
-| ttl | str | 1 | |
+| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
@@ -137,7 +137,7 @@ curl https://api.live.bilibili.com/xlive/app-ucenter/v1/user/GetMyMedals?page=1&
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | -------------- |
| code | num | 返回值 | 0:成功 |
-| ttl | str | 1 | |
+| ttl | num | 1 | |
| message | str | 错误信息 | 默认为佩戴成功 |
| data | obj | 信息本体 | 默认为无 |
@@ -196,7 +196,7 @@ _请求方式:GET_
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| code | num | 返回值 | 0:成功
1:参数错误 |
-| ttl | str | 1 | |
+| ttl | num | 1 | |
| message | str | 错误信息 | 默认为当日签到奖励内容 |
| data | obj | 信息本体 | 默认为空 |
@@ -215,7 +215,7 @@ _请求方式:GET_
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| code | num | 返回值 | 0:成功 |
-| ttl | str | 1 | |
+| ttl | num | 1 | |
| message | str | 错误信息 | 默认为0 |
| data | obj | 信息本体 | |
@@ -294,7 +294,7 @@ _请求方式:GET_
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------- |
| code | num | 返回值 | 0:成功 |
-| ttl | str | 1 | |
+| ttl | num | 1 | |
| message | str | 错误信息 | 默认为0 |
| data | obj | 信息本体 | |
diff --git a/docs/login/cookie_refresh.md b/docs/login/cookie_refresh.md
new file mode 100644
index 0000000..f090f24
--- /dev/null
+++ b/docs/login/cookie_refresh.md
@@ -0,0 +1,511 @@
+# Web端Cookie刷新
+
+自从 2023 以来,社区反馈似乎 Web 端的 Cookie 会随着一些敏感接口的访问逐渐失效,而在 Web 页面上会判断 Cookie 是否需要刷新,如需刷新则会以动态加载 iframe 方式实现,同时登录(二维码 / 密码 / 短信验证码等)接口也会返回`refresh_token`字段,需要持久化保存,是一种官方的风控机制实现
+
+感谢 [#524](https://github.com/SocialSisterYi/bilibili-API-collect/issues/524) 提供相关研究报告以及逆向工程结果
+
+> cookie 不会主动刷新的,只要他没有调用下面的刷新接口就不会刷新。也就是说,你只要不再打开浏览器,或者直接把 localStorage 的 ac_time_value 字段删除了。那么 cookie 在真的失效前(登录过期、账号风控等强制下线)都是不变化的。
+
+## 刷新步骤(伪代码)
+
+```python
+cookie, refresh_token = 进行登录操作() # can be 二维码 / 密码 / 短信验证码
+
+while True:
+ if 每日第一次访问接口:
+ if 检查是否需要刷新(cookie):
+ CorrespondPath = 生成CorrespondPath(当前毫秒时间戳)
+ refresh_csrf = 获取refresh_csrf(CorrespondPath, cookie)
+ refresh_token_old = refresh_token # 这一步必须保存旧的 refresh_token 备用
+ cookie, refresh_token = 刷新Cookie(refresh_token, refresh_csrf, cookie)
+ 确认更新(refresh_token_old, cookie) # 这一步需要新的 Cookie 以及旧的 refresh_token
+ SSO站点跨域登录(cookie)
+ do_somethings(cookie) # 其他业务逻辑处理
+```
+
+## 检查是否需要刷新
+
+> https://passport.bilibili.com/x/passport-login/web/cookie/info
+
+*请求方式:GET*
+
+鉴权方式:Cookie
+
+**url 参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------- | ------ | ---- |
+| csrf | str | CSRF Token(位于 Cookie) | 非必要 | 位于 Cookie 中的bili_jct字段 |
+
+**json 回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----------------------------- |
+| code | num | 返回值 | 0:成功
-101:账号未登录 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| --------- | ---- | ------------------- | ----------------------------------------------------- |
+| refresh | bool | 是否应该刷新 Cookie | `true`:需要刷新 Cookie
`false`:无需刷新 Cookie |
+| timestamp | num | 当前毫秒时间戳 | 用于获取 refresh_csrf |
+
+**示例:**
+
+```bash
+curl -G 'https://passport.bilibili.com/x/passport-login/web/cookie/info' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "refresh": false,
+ "timestamp": 1684466082562
+ }
+}
+```
+
+
+
+## 生成CorrespondPath算法
+
+该算法逆向于以下 wasm 以及 JavaScript bind 接口,抓取于官方 Web 首页中,感谢 [#524](https://github.com/SocialSisterYi/bilibili-API-collect/issues/524) 提供
+
+https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_rsa_encrypt_bg.wasm
+
+https://s1.hdslb.com/bfs/static/jinkela/long/wasm/wasm_ras_umd.js
+
+### 算法细节
+
+将`refresh_${timestamp}`作为消息体(参数`timestamp`为当前毫秒时间戳),用下方 PubKey 进行 [RSA-OAEP](https://datatracker.ietf.org/doc/html/rfc3447#section-7.1) 算法加密,之后密文通过小写 Base16 编码为字符串
+
+JWK 格式:
+
+> {
+> "kty": "RSA",
+> "n": "y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE",
+> "e": "AQAB"
+> }
+
+PEM 格式:
+
+> -----BEGIN PUBLIC KEY-----
+> MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
+> Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
+> nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
+> JNrRuoEUXpabUzGB8QIDAQAB
+> -----END PUBLIC KEY-----
+
+### 相关Demo
+
+该 Demo 提供 [JavaScript](#JavaScript)、[Python](#Python) 以及 [Vercel 云函数](#vercel云函数),感谢 [#524](https://github.com/SocialSisterYi/bilibili-API-collect/issues/524) 提供
+
+#### JavaScript
+
+```javascript
+const publicKey = await crypto.subtle.importKey(
+ "jwk",
+ {
+ kty: "RSA",
+ n: "y4HdjgJHBlbaBN04VERG4qNBIFHP6a3GozCl75AihQloSWCXC5HDNgyinEnhaQ_4-gaMud_GF50elYXLlCToR9se9Z8z433U3KjM-3Yx7ptKkmQNAMggQwAVKgq3zYAoidNEWuxpkY_mAitTSRLnsJW-NCTa0bqBFF6Wm1MxgfE",
+ e: "AQAB",
+ },
+ { name: "RSA-OAEP", hash: "SHA-256" },
+ true,
+ ["encrypt"],
+)
+
+async function getCorrespondPath(timestamp) {
+ const data = new TextEncoder().encode(`refresh_${timestamp}`);
+ const encrypted = new Uint8Array(await crypto.subtle.encrypt({ name: "RSA-OAEP" }, publicKey, data))
+ return encrypted.reduce((str, c) => str + c.toString(16).padStart(2, "0"), "")
+}
+
+const ts = Date.now()
+console.log(await getCorrespondPath(ts))
+```
+
+```
+b77f21ab5b7ce7879c410b2311dd6e7ea1a2cd1cd941073db067f4c3279fdabca3a06dfa744168ee14ad050b9f4889bd4edb8e76eb597fdd18c16804d82566b55c6dba8e225d838aa93d8e5b31cf7c56720db8244d92373f4944e0561f6ca5bf721a36ac079786060fc853605ccd1ddcb33f54617de6aedd44e3b9850d13b45f
+```
+
+#### Python
+
+需要`pycryptodome`依赖
+
+```python
+from Crypto.Cipher import PKCS1_OAEP
+from Crypto.PublicKey import RSA
+from Crypto.Hash import SHA256
+import binascii
+import time
+
+key = RSA.importKey('''\
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
+Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
+nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
+JNrRuoEUXpabUzGB8QIDAQAB
+-----END PUBLIC KEY-----''')
+
+def getCorrespondPath(ts):
+ cipher = PKCS1_OAEP.new(key, SHA256)
+ encrypted = cipher.encrypt(f'refresh_{ts}'.encode())
+ return binascii.b2a_hex(encrypted).decode()
+
+ts = round(time.time() * 1000)
+print(getCorrespondPath(ts))
+```
+
+```
+47bbd615f333d6a2c597bbb46ad47a6e59752a305a2f545d3ba5d49ca055309347796f80d257613696d36170c57443a0e9dea2b47f83b0b4224d431e46124fadd9a24c8fa468147e8bf2d2501eaacae43310e19bf58fc4a728d80c90b9401afcfc1536ba9a2f6438ea53c0b2652f8b8d01c87355dd5a5da51de998b1a35d519a
+```
+
+### Kotlin
+
+```kotlin
+import java.security.KeyFactory
+import java.security.spec.MGF1ParameterSpec
+import java.security.spec.X509EncodedKeySpec
+import java.util.*
+import javax.crypto.Cipher
+import javax.crypto.spec.OAEPParameterSpec
+import javax.crypto.spec.PSource
+
+
+fun main() {
+ println(getCorrespondPath(System.currentTimeMillis()))
+}
+
+fun getCorrespondPath(timestamp: Long): String {
+ val publicKeyPEM = """
+ -----BEGIN PUBLIC KEY-----
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
+ Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
+ nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
+ JNrRuoEUXpabUzGB8QIDAQAB
+ -----END PUBLIC KEY-----
+ """.trimIndent()
+
+ val publicKey = KeyFactory.getInstance("RSA").generatePublic(
+ X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyPEM
+ .replace("-----BEGIN PUBLIC KEY-----", "")
+ .replace("-----END PUBLIC KEY-----", "")
+ .replace("\n", "")
+ .trim()))
+ )
+
+ val cipher = Cipher.getInstance("RSA/ECB/OAEPPadding").apply {
+ init(Cipher.ENCRYPT_MODE,
+ publicKey,
+ OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)
+ )
+ }
+
+ return cipher.doFinal("refresh_$timestamp".toByteArray()).joinToString("") { "%02x".format(it) }
+}
+```
+
+```
+1428cbd14605ae42a0b42e22662cfe51d8e5034eeaffb36a46db46bd2f93216cbfd4d150cca2de44395add7c664b40acf44424ee8d634fc821b909423665a34d18bd7f4e77ea5388a2b612daf875e2fe8df62990e14b64a465898b0707bc1288586b68f9f4f2f20bea5cb1cada296beb8009e91bc8fb57a4b81b8923299b6eb7
+```
+
+### Go
+
+```go
+package main
+
+import (
+ "crypto/rand"
+ "crypto/rsa"
+ "crypto/sha256"
+ "crypto/x509"
+ "encoding/hex"
+ "encoding/pem"
+ "fmt"
+ "time"
+)
+
+func main() {
+ result, err := getCorrespondPath(time.Now().UnixMilli())
+ if err != nil {
+ panic(err)
+ }
+ fmt.Println(result)
+}
+
+func getCorrespondPath(ts int64) (string, error) {
+ const publicKeyPEM = `
+-----BEGIN PUBLIC KEY-----
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLgd2OAkcGVtoE3ThUREbio0Eg
+Uc/prcajMKXvkCKFCWhJYJcLkcM2DKKcSeFpD/j6Boy538YXnR6VhcuUJOhH2x71
+nzPjfdTcqMz7djHum0qSZA0AyCBDABUqCrfNgCiJ00Ra7GmRj+YCK1NJEuewlb40
+JNrRuoEUXpabUzGB8QIDAQAB
+-----END PUBLIC KEY-----
+`
+ pubKeyBlock, _ := pem.Decode([]byte(publicKeyPEM))
+ hash := sha256.New()
+ random := rand.Reader
+ msg := []byte(fmt.Sprintf("refresh_%d", ts))
+ var pub *rsa.PublicKey
+ pubInterface, parseErr := x509.ParsePKIXPublicKey(pubKeyBlock.Bytes)
+ if parseErr != nil {
+ return "", parseErr
+ }
+ pub = pubInterface.(*rsa.PublicKey)
+ encryptedData, encryptErr := rsa.EncryptOAEP(hash, random, pub, msg, nil)
+ if encryptErr != nil {
+ return "", encryptErr
+ }
+ return hex.EncodeToString(encryptedData), nil
+}
+```
+
+```
+97759947aa357ed5d88cf9bf1172737570b7bba2d6788d39006f082b2b25ddf53b581f1f0c61ed8573317485ef525d2789faa25a277b4602a4b9cbf837681093a03e96cb9773a11df4bb1e20f1587180b3e958194de922d7dd94d0a2f0b9b0ef74e426e8041f99b99e7c02407ef4ab38040e61be81e4fdfbdb73461e3a2ad810
+```
+
+#### vercel云函数
+
+```bash
+curl -G 'https://wasm-rsa.vercel.app/api/rsa' \
+ --data-urlencode "t=$((`date '+%s'`*1000+`date '+%N'`/1000000))"
+```
+
+```json
+{
+ "timestamp": "1684468084078",
+ "hash": "a768efe5114ef8610f9ed9ebc28c00827375f4a3448ec4ab17958cacc4fde9898e5b7aa27f649426bba1acae4aa222aafaff7d528669b15249de0b2b60d86618557d8dc90684db4ec68e8d98e41d94f1c97d1d431c288e595ceb522d033822442a9e1ee150b32771a83fbf65c13329e9fda080fbe3bc85c49c1de7ab148d228f",
+ "code": 0
+}
+```
+
+## 获取refresh_csrf
+
+> https://www.bilibili.com/correspond/1/{correspondPath}
+
+*请求方式:GET*
+
+鉴权方式:Cookie
+
+**path 参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| -------------- | ---- | ---------------------------- | ------ | ------------------------------------------------------------ |
+| correspondPath | str | 使用当前毫秒时间戳生成的签名 | 必要 | 由 [生成CorrespondPath算法](#生成CorrespondPath算法) 加密获得 |
+
+将参数`correspondPath`拼接在 https://www.bilibili.com/correspond/1/ 后进行请求,例如
+
+> https://www.bilibili.com/correspond/1/0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95
+
+请求该 url 会返回一个 html 页面,通常由 iframe 方式加载,它通过 SSR 方式返回一个实时刷新口令`refresh_csrf`存放于 html 标签中,并在 Client 端通过 js 请求 RestAPI 完成一些列的提交刷新、确认、SSO 站点登录等操作
+
+若参数`correspondPath`错误或过期,则返回一个 404 Page
+
+以下为返回的参数:
+
+| 标签 id | 内容 | xpath | 备注 |
+| ------- | ------------ | ------------------------- | --------------------------------- |
+| 1-name | refresh_csrf | //div[id='1-name']/text() | 实时刷新口令
用于更新 Cookie |
+
+**示例:**
+
+```bash
+correspondPath='0248397e5139a8b878894cae46f8d6742ef7c728e46403706452b5dda90fe248e58e73bd6c2da0dba515c53af107dc1ecda757ce843579bcf197fcd7800586126e9b896b646cc94c23183a5a067642e96f7b6e803880e1d3cceabc9f1dc52a121b5e3ba5619e008f6b6dcb65a09d7864084ac114f4ec9ccf6218776fe4f2fa95'
+
+curl -G "https://www.bilibili.com/correspond/1/$correspondPath" \
+ -b 'SESSDATA=xxx'
+```
+
+```html
+
+
+
+
+
+
+
+Correspond
+
+
+
+ b0cc8411ded2f9db2cff2edb3123acac
+
+
+
+
+
+
+
+```
+
+所以当前账号的实时刷新口令`refresh_csrf`为`b0cc8411ded2f9db2cff2edb3123acac`
+
+## 刷新Cookie
+
+> https://passport.bilibili.com/x/passport-login/web/cookie/refresh
+
+*请求方式:POST*
+
+鉴权方式:Cookie
+
+刷新成功后会设置以下 Cookie 项:
+
+`sid`、`DedeUserID`、`DedeUserID__ckMd5`、`SESSDATA`、`bili_jct`
+
+**正文参数 (application/x-www-form-urlencoded)或 url 参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------------- | ---- | -------------- | ------ | ------------------------------------------------------------ |
+| csrf | str | CSRF Token | 必要 | 位于 Cookie 中的`bili_jct`字段 |
+| refresh_csrf | str | 实时刷新口令 | 必要 | 通过 [获取refresh_csrf](#获取refresh_csrf) 获得 |
+| source | str | 访问来源? | 必要 | 一般为`main_web` |
+| refresh_token | str | 持久化刷新口令 | 必要 | localStorage 中的`ac_time_value`字段,在登录成功后返回并保存 |
+
+**json 回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
86095:refresh_csrf 错误或 refresh_token 与 cookie 不匹配 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------------- | ---- | ------------------ | ----------------------------------------------------------- |
+| status | num | 0 | |
+| message | str | 空 | |
+| refresh_token | str | 新的持久化刷新口令 | 将存储于 localStorage 中的`ac_time_value`字段,以便下次使用 |
+
+**示例:**
+
+```bash
+curl -i 'https://passport.bilibili.com/x/passport-login/web/cookie/refresh' \
+ --data-urlencode 'csrf=f610640a37f51f6266f6b83cfc5eedbb' \
+ --data-urlencode 'refresh_csrf=b0cc8411ded2f9db2cff2edb3123acac' \
+ --data-urlencode 'source=main_web' \
+ --data-urlencode 'refresh_token=45240a041836905fe953e3b98b83d751' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+http 响应(关键信息已做脱敏处理):
+
+```http
+HTTP/2 200
+date: Fri, 19 May 2023 07:34:11 GMT
+content-type: application/json; charset=utf-8
+content-length: 116
+bili-status-code: 0
+bili-trace-id: 17f4251365646726
+set-cookie: SESSDATA=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT; HttpOnly; Secure
+set-cookie: bili_jct=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
+set-cookie: DedeUserID=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
+set-cookie: DedeUserID__ckMd5=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
+set-cookie: sid=***; Path=/; Domain=bilibili.com; Expires=Wed, 15 Nov 2023 07:34:10 GMT
+x-bili-trace-id: 3f6f6174aaa087b517f4251365646726
+expires: Fri, 19 May 2023 07:34:10 GMT
+cache-control: no-cache
+x-cache-webcdn: BYPASS from blzone03
+
+{"code":0,"message":"0","ttl":1,"data":{"status":0,"message":"","refresh_token":"ae1bd1149b56af9743ffe7bbbeff3e51"}}
+```
+
+JSON Payload:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "status": 0,
+ "message": "",
+ "refresh_token": "ae1bd1149b56af9743ffe7bbbeff3e51"
+ }
+}
+```
+
+
+
+## 确认更新
+
+> https://passport.bilibili.com/x/passport-login/web/confirm/refresh
+
+*请求方式:POST*
+
+鉴权方式:Cookie
+
+该步操作将让旧的`refresh_token`对应的 Cookie 失效
+
+**正文参数 (application/x-www-form-urlencoded)或 url 参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------------- | ---- | ------------------------- | ------ | ------------------------------------------------------------ |
+| csrf | str | CSRF Token(位于 cookie) | 必要 | 从新的 cookie 中获取,位于 Cookie 中的`bili_jct`字段 |
+| refresh_token | str | 旧的持久化刷新口令 | 必要 | 在刷新前 localStorage 中的`ac_time_value`获取,**并非刷新后返回的值** |
+
+**json 回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf 校验失败
-400:请求错误 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+
+**示例:**
+
+```bash
+curl 'https://passport.bilibili.com/x/passport-login/web/confirm/refresh' \
+ --data-urlencode 'csrf=1e9658858e6da76be64bd92cdc0fa324' \
+ --data-urlencode 'refresh_token=45240a041836905fe953e3b98b83d751' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1
+}
+```
+
+
diff --git a/docs/login/login_action/QR.md b/docs/login/login_action/QR.md
index d826af9..ecee7fd 100644
--- a/docs/login/login_action/QR.md
+++ b/docs/login/login_action/QR.md
@@ -83,18 +83,19 @@ curl 'https://passport.bilibili.com/x/passport-login/web/qrcode/generate'
*请求方式:GET*
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|------------|-----|--------|-----|-----|
+| qrcode_key | str | 扫码登录秘钥 | 必要 | |
+
+
密钥超时为180秒
验证登录成功后会进行设置以下cookie项:
`DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
-**url参数:**
-
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------------|-----|--------|-----|-----|
-| qrcode_key | str | 扫码登录秘钥 | 非必要 | |
-
**json回复:**
根对象:
@@ -243,7 +244,7 @@ x-cache-webcdn: BYPASS from blzone02
## web端扫码登录-旧版
-以下为旧版扫码登录 API,尚可正常访问
+以下为旧版扫码登录 API,部分可正常访问
### 申请二维码(web端-旧版)
@@ -298,10 +299,15 @@ curl 'https://passport.bilibili.com/qrcode/getLoginUrl'
### 扫码登录(web端-旧版)
-> https://passport.bilibili.com/qrcode/getLoginInfo
+**接口已失效,请求结果始终为 `{ code: 20000, message: '该版本已不支持当前功能,请升级新版本!' }`**
+
+> ~~https://passport.bilibili.com/qrcode/getLoginInfo~~
*请求方式:POST*
+
+内容已过时:
+
密钥超时为180秒
验证登录成功后会进行设置以下cookie项:
@@ -321,7 +327,7 @@ curl 'https://passport.bilibili.com/qrcode/getLoginUrl'
| 字段 | 类型 | 内容 | 备注 |
|---------|----------------------|---------------------------|---------------------------------------------------------|
-| code | num | 返回值 | 0:成功 |
+| code | num | 返回值 | 0:成功,
20000:该版本已不支持当前功能,请升级新版本! |
| message | str | | 正确无 |
| ts | num | 扫码时间 | 错误无 |
| status | bool | 扫码是否成功 | true:成功
false:未成功 |
@@ -417,6 +423,8 @@ X-Cache-Webcdn: BYPASS from ks-sxhz-dx-w-01
+
+
## TV端扫码登录
### 申请二维码(TV端)
@@ -437,8 +445,8 @@ X-Cache-Webcdn: BYPASS from ks-sxhz-dx-w-01
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ---------- | ------------ | -------------------------- |
-| appkey | str | APP 密钥 | APP 方式必要 | 仅可用`4409e2ce8ffd12b8` |
-| local_id | str | TV 端 id | TV 端必要 | 可为`0` |
+| appkey | str | APP 密钥 | APP 方式必要 | [可用](#appkey-可用列表) |
+| local_id | num | TV 端 id | TV 端必要 | 可为`0` |
| ts | num | 当前时间戳 | APP 方式必要 | |
| sign | str | APP 签名 | APP 方式必要 | |
| mobi_app | str | 平台标识 | 非必要 | 会被拼接到返回的 url query |
@@ -506,9 +514,9 @@ curl 'https://passport.snm0516.aisee.tv/x/passport-tv-login/qrcode/auth_code' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|-----------|-----|-------|---------|-----------------------|
-| appkey | str | APP密钥 | APP方式必要 | 仅可用`4409e2ce8ffd12b8` |
+| appkey | str | APP密钥 | APP方式必要 |[可用](#appkey-可用列表) |
| auth_code | str | 扫码秘钥 | 必要 | |
-| local_id | str | TV端id | TV端必要 | 可为0 |
+| local_id | num | TV端id | TV端必要 | 可为0 |
| ts | num | 当前时间戳 | APP方式必要 | |
| sign | str | APP签名 | APP方式必要 | |
@@ -621,3 +629,24 @@ curl 'https://passport.snm0516.aisee.tv/x/passport-tv-login/qrcode/poll' \
```
+
+### appkey 可用列表
+
+**仅覆盖 [docs/misc/sign/APPKey](../../misc/sign/APPKey.md) 中包含的 appkey**
+
+| APPKEY | APPSEC | platform | APP类型 | neuronAppId | mobi_app2 | 备注 |
+| :--------------: | :------------------------------: | :------------------: | :----------------: | :---------------------: | :------------------: | :----------------------------------------: |
+| 783bbb7264451d82 | 2653583c8873dea268ab9386918b1d65 | `android` | 粉版 | `1` | `android` | 仅获取用户信息时使用(7.X及更新版本) |
+| 8d23902c1688a798 | 710f0212e62bd499b8d3ac6e1db9302a | `android` | AndroidBiliThings | ? | ? | |
+| bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | ? | login | - | ? | |
+| 27eb53fc9058f8c3 | c2ed53a74eeefe3cf99fbd01d8c9c375 | `web`/`ios`? | - | - | - | 第三方授权使用 |
+| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | `android` | 云视听小电视(TV版) | `9`? | `android_tv_yst`? | |
+| dfca71928277209b | b5475a8825547a4fc26c7d518eaaa02e | `android` | HD 版 | `5` | `android_hd` | |
+
+**注意:**
+
+通过某一组 APPKEY/APPSEC 获取到的 access_token,当接口需要 `sign` 签名时也只能使用该组 APPKEY/APPSEC,否则出现 `{ code: -663, message: '鉴权失败,请联系账号组', ttl: 1 }` 错误。
+
+**例外:**
+
+`783bbb7264451d82`/`2653583c8873dea268ab9386918b1d65` 获取到的 access_token 可配合 `1d8b6e7d45233436`/`560c52ccd288fed045859ed18bffd973` 使用。
diff --git a/docs/login/login_action/SMS.md b/docs/login/login_action/SMS.md
index b359be7..21a8d53 100644
--- a/docs/login/login_action/SMS.md
+++ b/docs/login/login_action/SMS.md
@@ -89,6 +89,102 @@ curl 'https://passport.bilibili.com/web/generic/country/list'
+
+## 发送短信验证码_app端
+
+> https://passport.bilibili.com/x/passport-login/sms/send
+
+*请求方式:POST*
+
+同手机号短信发送 CD 时间为 60s
+
+短信验证码 timeout 为 5min
+
+验证内容由第一次返回进行处理,解析recaptcha_url的params传到极验进行验证后取到验证结果入参后再次调用即可
+
+**正文参数 (application/x-www-form-urlencoded):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| --- | --- | --- | --- | --- |
+| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 |
+| tel | num | 手机号码 | 必要 | |
+| login_session_id | str | 登录标识 | 必要 | uuid去掉'-'后得到
+| recaptcha_token | str | 登录 API token | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 |
+| gee_challenge | str | 极验 challenge | 必要 | 在[申请 captcha 验证码](readme.md#申请captcha验证码)接口处获取 |
+| gee_validate | str | 极验 result | 必要 | 极验验证后得到 |
+| gee_seccode | str | 极验 result +`\|jordan` | 必要 | 极验验证后得到 |
+| channel | str | 通道? | 必要 | 一般固定值为"bili" |
+| buvid | str | buvid | 必要 | 参考如下方法生成 |
+| local_id | str | 同上 | 必要 | 同上 |
+| statistics | str | ? | 必要 | 一般固定为{"appId":1,"platform":3,"version":"7.27.0","abtest":""},非key-value入参需要转URL编码 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ---- | -------- | --------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
1002:手机号格式错误
86203:短信发送次数已达上限
1003:验证码已经发送
1025:该手机号在哔哩哔哩有过永久封禁记录,无法再次注册或绑定新账号
2400:登录秘钥错误
2406:验证极验服务出错 |
+| message | str | 错误信息 | 成功为0 |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | -------------- | ------------------------ |
+| captcha_key | str | 短信登录 token | 在下方传参时需要,请备用 |
+
+**示例:**
+
+例如手机号为`13888888888`,国际id为`1 (中国大陆)`,登录秘钥为`aabbccdd`,极验challenge为`2333`,极验结果为`666666`,进行发送短信验证码操作
+
+```shell
+curl 'https://passport.bilibili.com/x/passport-login/sms/send' \
+--data-urlencode 'tel=13888888888' \
+--data-urlencode 'cid=1' \
+--data-urlencode 'login_session_id=669900' \
+--data-urlencode 'recaptcha_token=aabbccdd' \
+--data-urlencode 'gee_challenge=2333' \
+--data-urlencode 'gee_validate=666666' \
+--data-urlencode 'gee_seccode=666666|jordan' \
+--data-urlencode 'channel=bili' \
+--data-urlencode 'buvid=999999' \
+--data-urlencode 'local_id=999999' \
+--data-urlencode 'statistics=%7B%22appId%22%3A1%2C%22platform%22%3A3%2C%22version%22%3A%227.27.0%22%2C%22abtest%22%3A%22%22%7D'
+```
+
+生成buvid方法
+``` javascript
+static buvid() : string {
+ var mac = [];
+ for (let i = 0; i < 6; i++) {
+ var min = Math.min(0, 0xff)
+ var max = Math.max(0, 0xff)
+ var num = parseInt((Math.random() * (min - max + 1) + max).toString()).toString(16)
+ mac.push(num)
+ }
+ var md5 = this.md5(mac.join(':'));
+ var md5Arr = md5.split('');
+ return "XY${md5Arr[2]}${md5Arr[12]}${md5Arr[22]}${md5}"
+}
+```
+
+
+查看响应示例:
+
+```json
+{"code":0,
+ "message":"0",
+ "ttl":1,
+ "data":{
+ "captcha_key":"7542f109c3318d74847626495c68c321",
+ "recaptcha_url":"...."
+ }
+}
+```
+
+
+
## 发送短信验证码_web端
> https://passport.bilibili.com/x/passport-login/web/sms/send
@@ -157,6 +253,111 @@ curl 'https://passport.bilibili.com/x/passport-login/web/sms/send' \
+## 使用短信验证码登录_app端
+
+> https://passport.bilibili.com/x/passport-login/login/sms
+
+*请求方式:POST*
+
+验证登录成功后会返回实体内容:
+
+ `mid` `expires_in` `access_token` `refresh_token`
+
+**正文参数 (application/x-www-form-urlencoded):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| --- | --- | --- | --- | --- |
+| cid | num | 国际冠字码 | 必要 | 可以从[获取国际冠字码](#获取国际冠字码(web端))获取 |
+| tel | num | 手机号码 | 必要 | |
+| login_session_id | str | 登录标识 | 必要 | 必须与上述login_session_id保持一致
+| code | num | 短信验证码 | 必要 | timeout 为 5min |
+| captcha_key | str | 短信登录 token | 必要 | 从[上述API](#发送短信验证码(web端))请求成功后返回 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| --- | --- | --- | --- |
+| code | num | 返回值 | 0:成功
-400:请求错误
1006:请输入正确的短信验证码
1007:短信验证码已过期 |
+| message | str | 错误信息 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| --- | --- | --- | --- |
+| mid | str | 用户uid | |
+| expires_in | str | 过时时间 | |
+| access_token | str | 登录 token | |
+| refresh_token | str | 刷新 token | |
+| cookie_info | Array | cookie集合 | |
+
+**示例:**
+
+使用手机号`13888888888`,短信验证码为`123456`,进行验证登录操作
+
+```shell
+curl 'https://passport.bilibili.com/x/passport-login/login/sms'
+--data-urlencode 'cid=1' \
+--data-urlencode 'tel=13888888888' \
+--data-urlencode 'code=123456' \
+--data-urlencode 'captcha_key=999999' \
+--data-urlencode 'login_session_id=669900'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "data": {
+ "token_info": {
+ "mid": "...",
+ "expires_in": "114514",
+ "access_token": "",
+ "refresh_token": ""
+ //...
+ },
+ "cookie_info":[
+ //...
+ ],
+ "message": "0"
+ }
+}
+```
+
+
+
+**响应头部抓包信息:**
+
+可明显看见设置了几个cookie(填入浏览器即可成功登录)
+
+
+查看响应示例:
+
+```http
+HTTP/1.1 200 OK
+Date: Mon, 13 Jul 2020 09:57:33 GMT
+Content-Type: application/json;charset=UTF-8
+Content-Length: 78
+Connection: keep-alive
+Server: Apache-Coyote/1.1
+Set-Cookie: DedeUserID=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
+Set-Cookie: DedeUserID__ckMd5=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
+Set-Cookie: SESSDATA=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/; HttpOnly
+Set-Cookie: bili_jct=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
+Set-Cookie: sid=***; Domain=.bilibili.com; Expires=Sat, 18-Jul-2020 09:57:57 GMT; Path=/
+Expires: Mon, 13 Jul 2020 09:57:32 GMT
+Cache-Control: no-cache
+X-Cache-Webcdn: BYPASS from jd-sxhz-dx-w-01
+
+```
+
+
+
+
## 使用短信验证码登录_web端
> https://passport.bilibili.com/x/passport-login/web/login/sms
diff --git a/docs/login/login_action/password.md b/docs/login/login_action/password.md
index 3eb9bc7..b4206c1 100644
--- a/docs/login/login_action/password.md
+++ b/docs/login/login_action/password.md
@@ -227,7 +227,7 @@ curl 'https://passport.bilibili.com/login?act=getkey'
`sid` `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`
-**正文参数 (application/x-www-form-urlencoded ):**
+**正文参数 (application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
@@ -241,8 +241,6 @@ curl 'https://passport.bilibili.com/login?act=getkey'
| validate | str | 极验 result | 必要 | 极验验证后得到 |
| seccode | str | 极验 result +`\|jordan` | 必要 | 极验验证后得到 |
-
-
**json回复:**
根对象:
diff --git a/docs/login/login_info.md b/docs/login/login_info.md
index e9873a7..c87c4b5 100644
--- a/docs/login/login_info.md
+++ b/docs/login/login_info.md
@@ -2,7 +2,7 @@
## 导航栏用户信息
-> https://api.bilibili.com/nav(带有转义)
+> ~~https://api.bilibili.com/nav(带有转义)~~ (已失效)
>
> https://api.bilibili.com/x/web-interface/nav(原始数据)
@@ -27,30 +27,33 @@
| -------------------- | ---- | ---------------- | ------------------------------------------------- |
| isLogin | bool | 是否已登录 | false:未登录
true:已登录 |
| email_verified | num | 是否验证邮箱地址 | 0:未验证
1:已验证 |
-| face | str | 用户头像url | |
+| face | str | 用户头像 url | |
| level_info | obj | 等级信息 | |
-| mid | num | 用户mid | |
+| mid | num | 用户 mid | |
| mobile_verified | num | 是否验证手机号 | 0:未验证
1:已验证 |
| money | num | 拥有硬币数 | |
| moral | num | 当前节操值 | 上限为70 |
| official | obj | 认证信息 | |
-| officialVerify | obj | 认证信息2 | |
+| officialVerify | obj | 认证信息 2 | |
| pendant | obj | 头像框信息 | |
-| scores | num | 0 | 作用尚不明确 |
+| scores | num | (?) | |
| uname | str | 用户昵称 | |
| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 |
| vipStatus | num | 会员开通状态 | 0:无
1:有 |
| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度及以上大会员 |
| vip_pay_type | num | 会员开通状态 | 0:无
1:有 |
-| vip_theme_type | num | 0 | 作用尚不明确 |
+| vip_theme_type | num | (?) | |
| vip_label | obj | 会员标签 | |
| vip_avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 |
| vip_nickname_color | str | 会员昵称颜色 | 颜色码 |
| wallet | obj | B币钱包信息 | |
| has_shop | bool | 是否拥有推广商品 | false:无
true:有 |
-| shop_url | str | 商品推广页面url | |
-| allowance_count | num | 0 | 作用尚不明确 |
-| answer_status | num | 0 | 作用尚不明确 |
+| shop_url | str | 商品推广页面 url | |
+| allowance_count | num | (?) | |
+| answer_status | num | (?) | |
+| is_senior_member | num | 是否硬核会员 | 0:非硬核会员
1:硬核会员 |
+| wbi_img | obj | Wbi 签名实时口令 | 该字段即使用户未登录也存在 |
+| is_jury | bool | 是否风纪委员 | true:风纪委员
false:非风纪委员 |
`data`中的`level_info`对象:
@@ -65,7 +68,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | -------- | ------------------------------------------------- |
-| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 |
+| role | num | 认证类型 | 见[用户认证类型一览](../user/official_role.md) |
| title | str | 认证信息 | 无为空 |
| desc | str | 认证备注 | 无为空 |
| type | num | 是否认证 | -1:无
0:认证 |
@@ -79,35 +82,44 @@
`data`中的`pendant`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------ | ---- | ----------- | ------------ |
-| pid | num | 挂件id | |
-| name | str | 挂件名称 | |
-| image | str | 挂件图片url | |
-| expire | num | 0 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ---- | ----------- | ---- |
+| pid | num | 挂件id | |
+| name | str | 挂件名称 | |
+| image | str | 挂件图片url | |
+| expire | num | (?) | |
`data`中的`vip_label`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | -------- | ------------------------------------------------------------ |
-| path | str | 空 | 作用尚不明确 |
+| path | str | (?) | |
| text | str | 会员名称 | |
| label_theme | str | 会员标签 | vip:大会员
annual_vip:年度大会员
ten_annual_vip:十年大会员
hundred_annual_vip:百年大会员 |
`data`中的`wallet`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ---- | ------------- | ------------ |
-| mid | num | 登录用户mid | |
-| bcoin_balance | num | 拥有B币数 | |
-| coupon_balance | num | 每月奖励B币数 | |
-| coupon_due_time | num | 0 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| --------------- | ---- | ------------- | ---- |
+| mid | num | 登录用户mid | |
+| bcoin_balance | num | 拥有B币数 | |
+| coupon_balance | num | 每月奖励B币数 | |
+| coupon_due_time | num | (?) | |
+
+`data`中的`wbi_img`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | ------------------------------- | ---------------------------------------- |
+| img_url | str | Wbi 签名参数 `imgKey`的伪装 url | 详见文档 [Wbi 签名](../misc/sign/wbi.md) |
+| sub_url | str | Wbi 签名参数 `subKey`的伪装 url | 详见文档 [Wbi 签名](../misc/sign/wbi.md) |
**示例:**
+**登录状态:**
+
```shell
-curl 'https://api.bilibili.com/nav' \
--b 'SESSDATA=xxx'
+curl 'https://api.bilibili.com/x/web-interface/nav' \
+ -b 'SESSDATA=xxx'
```
@@ -115,64 +127,136 @@ curl 'https://api.bilibili.com/nav' \
```json
{
- "code":0,
- "message":"0",
- "ttl":1,
- "data":{
- "isLogin":true,
- "email_verified":1,
- "face":"http://i1.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
- "level_info":{
- "current_level":5,
- "current_min":10800,
- "current_exp":17065,
- "next_exp":28800
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "isLogin": true,
+ "email_verified": 1,
+ "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
+ "face_nft": 0,
+ "face_nft_type": 0,
+ "level_info": {
+ "current_level": 6,
+ "current_min": 28800,
+ "current_exp": 52689,
+ "next_exp": "--"
},
- "mid":293793435,
- "mobile_verified":1,
- "money":33.4,
- "moral":70,
- "official":{
- "role":0,
- "title":"",
- "desc":"",
- "type":-1
+ "mid": 293793435,
+ "mobile_verified": 1,
+ "money": 172.4,
+ "moral": 70,
+ "official": {
+ "role": 0,
+ "title": "",
+ "desc": "",
+ "type": -1
},
- "officialVerify":{
- "type":-1,
- "desc":""
+ "officialVerify": {
+ "type": -1,
+ "desc": ""
},
- "pendant":{
- "pid":0,
- "name":"",
- "image":"",
- "expire":0,
- "image_enhance":""
+ "pendant": {
+ "pid": 2511,
+ "name": "初音未来13周年",
+ "image": "https://i0.hdslb.com/bfs/garb/item/4f8f3f1f2d47f0dad84f66aa57acd4409ea46361.png",
+ "expire": 0,
+ "image_enhance": "https://i0.hdslb.com/bfs/garb/item/fe0b83b53e2342b16646f6e7a9370d8a867decdb.webp",
+ "image_enhance_frame": "https://i0.hdslb.com/bfs/garb/item/127c507ec8448be30cf5f79500ecc6ef2fd32f2c.png"
},
- "scores":0,
- "uname":"社会易姐QwQ",
- "vipDueDate":1612454400000,
- "vipStatus":1,
- "vipType":2,
- "vip_pay_type":1,
- "vip_theme_type":0,
- "vip_label":{
- "path":"",
- "text":"年度大会员",
- "label_theme":"annual_vip"
+ "scores": 0,
+ "uname": "社会易姐QwQ",
+ "vipDueDate": 1707494400000,
+ "vipStatus": 1,
+ "vipType": 2,
+ "vip_pay_type": 0,
+ "vip_theme_type": 0,
+ "vip_label": {
+ "path": "",
+ "text": "年度大会员",
+ "label_theme": "annual_vip",
+ "text_color": "#FFFFFF",
+ "bg_style": 1,
+ "bg_color": "#FB7299",
+ "border_color": "",
+ "use_img_label": true,
+ "img_label_uri_hans": "",
+ "img_label_uri_hant": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png"
},
- "vip_avatar_subscript":1,
- "vip_nickname_color":"#FB7299",
- "wallet":{
- "mid":293793435,
- "bcoin_balance":8,
- "coupon_balance":5,
- "coupon_due_time":0
+ "vip_avatar_subscript": 1,
+ "vip_nickname_color": "#FB7299",
+ "vip": {
+ "type": 2,
+ "status": 1,
+ "due_date": 1707494400000,
+ "vip_pay_type": 0,
+ "theme_type": 0,
+ "label": {
+ "path": "",
+ "text": "年度大会员",
+ "label_theme": "annual_vip",
+ "text_color": "#FFFFFF",
+ "bg_style": 1,
+ "bg_color": "#FB7299",
+ "border_color": "",
+ "use_img_label": true,
+ "img_label_uri_hans": "",
+ "img_label_uri_hant": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/8d4f8bfc713826a5412a0a27eaaac4d6b9ede1d9.png",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/VEW8fCC0hg.png"
+ },
+ "avatar_subscript": 1,
+ "nickname_color": "#FB7299",
+ "role": 3,
+ "avatar_subscript_url": "",
+ "tv_vip_status": 0,
+ "tv_vip_pay_type": 0,
+ "tv_due_date": 1640793600
+ },
+ "wallet": {
+ "mid": 293793435,
+ "bcoin_balance": 5,
+ "coupon_balance": 5,
+ "coupon_due_time": 0
+ },
+ "has_shop": true,
+ "shop_url": "https://gf.bilibili.com?msource=main_station",
+ "allowance_count": 0,
+ "answer_status": 0,
+ "is_senior_member": 1,
+ "wbi_img": {
+ "img_url": "https://i0.hdslb.com/bfs/wbi/653657f524a547ac981ded72ea172057.png",
+ "sub_url": "https://i0.hdslb.com/bfs/wbi/6e4909c702f846728e64f6007736a338.png"
+ },
+ "is_jury": false
+ }
+}
+```
+
+
+
+**未登录状态:**
+
+```shell
+curl 'https://api.bilibili.com/x/web-interface/nav'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": -101,
+ "message": "账号未登录",
+ "ttl": 1,
+ "data": {
+ "isLogin": false,
+ "wbi_img": {
+ "img_url": "https://i0.hdslb.com/bfs/wbi/653657f524a547ac981ded72ea172057.png",
+ "sub_url": "https://i0.hdslb.com/bfs/wbi/6e4909c702f846728e64f6007736a338.png"
},
- "has_shop":false,
- "shop_url":"",
- "allowance_count":0,
- "answer_status":0
}
}
```
@@ -558,4 +642,4 @@ curl 'https://account.bilibili.com/site/getCoin' \
}
```
-
\ No newline at end of file
+
diff --git a/docs/login/member_center.md b/docs/login/member_center.md
index 34160d0..9612d60 100644
--- a/docs/login/member_center.md
+++ b/docs/login/member_center.md
@@ -101,9 +101,9 @@ curl 'https://api.bilibili.com/x/member/web/account' \
| watch | bool | 每日观看 | false:未完成
true:已完成
完成奖励5经验 |
| coins | num | 每日投币所奖励的经验 | 上限为50
注:该值更新存在延迟
[另外一个专门API](#查询每日投币获得经验数) |
| share | bool | 每日分享 | false:未完成
true:已完成
完成奖励5经验 |
-| email | bool | 绑定邮箱 | false:未完成
true:已完成 |
-| tel | bool | 绑定手机号 | false:未完成
true:已完成
首次完成完成奖励100经验 |
-| safe_question | bool | 设置密保问题 | false:未完成
true:已完成 |
+| email | bool | 绑定邮箱 | false:未完成
true:已完成
首次完成奖励20经验 |
+| tel | bool | 绑定手机号 | false:未完成
true:已完成
首次完成奖励100经验 |
+| safe_question | bool | 设置密保问题 | false:未完成
true:已完成
首次完成奖励30经验 |
| identify_card | bool | 实名认证 | false:未完成
true:已完成
首次完成奖励50经验 |
**示例:**
@@ -283,7 +283,7 @@ curl 'https://api.bilibili.com/x/vip/web/user/info' \
| tel_verify | bool | 是否验证手机号 | false:未验证
true:已验证 |
| mail_verify | bool | 是否验证邮箱 | false:未验证
true:已验证 |
| unneeded_check | bool | 是否未设置密码 | false:已设置
true:未设置 |
-| realname_certified | bool | 是否实名认证 | false:已认证
true:未认证 |
+| realname_certified | bool | 是否实名认证 | false:未认证
true:已认证 |
`data`中的`account_safe`对象:
diff --git a/docs/manga/Download.md b/docs/manga/Download.md
index d513947..fea8a8f 100644
--- a/docs/manga/Download.md
+++ b/docs/manga/Download.md
@@ -44,7 +44,7 @@
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
-| path | str | .index 文件路径 | 解密详见[此处](./unlock_index_data.md) |
+| path | str | .index 文件路径 | |
| images | array | 本话图片信息 | |
| last_modified | str | 本话信息最后修改时间 | |
| host | str | `https://manga.hdslb.com` | |
diff --git a/docs/message/private_msg.md b/docs/message/private_msg.md
index c12adb3..e3241f1 100644
--- a/docs/message/private_msg.md
+++ b/docs/message/private_msg.md
@@ -73,6 +73,7 @@ curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
| msg[msg_status] | num | 0 | 非必要 | |
| msg[dev_id] | string | 372778FD-E359-461D-86A3-EA2BCC6FF52A | 必要 | **获取方式在下面** |
| msg[timestamp] | num | 时间戳(秒) | 必要 | |
+| msg[new_face_version] | num | 表情包版本 | 非必要 | **详见下表** |
| msg[content] | 发送文字时:str
撤回消息时:num | 消息内容 | 必要 | **详见下表** |
| csrf | str | CSRF Token(位于cookie) | 必要 | |
@@ -248,9 +249,11 @@ curl 'https://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \
| sender_device_id | num | 发送者设备 | 可选 | 1 |
| talker_id | num | 聊天对象的UID | 必要 | -------------- |
| session_type | num | 聊天对象的类型 | 必要 | 1为用户,2为粉丝团 |
-| size | num | 列出消息条数 | 可选 | 默认是20 |
+| size | num | 列出消息条数 | 可选 | 默认是20,最大为200 |
| build | num | 未知 | 可选 | 默认是0 |
| mobi_app | str | 设备 | 可选 | web |
+| begin_seqno | num | 开始的序列号 | 可选 | 默认0为全部 |
+| end_seqno | num | 结束的序列号 | 可选 | 默认0为全部 |
**json回复:**
@@ -270,8 +273,8 @@ curl 'https://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \
| ---- | ---- | ------------- | ---- |
| messages | array | 聊天记录列表 | |
| has_more | num | 0 | |
-| min_seqno | num | 未知 | |
-| max_seqno | num | 未知 | |
+| min_seqno | num | 所有消息最小的序列号(最早) | |
+| max_seqno | num | 所有消息最大的序列号(最晚) | |
| e_infos | array | 聊天表情列表 | |
`messages`数组:
@@ -283,13 +286,13 @@ curl 'https://api.vc.bilibili.com/web_im/v1/web_im/send_msg' \
| receiver_id | num | 接收者uid | 注意名称是receiver_id |
| msg_type | num | 消息类型 | 1:文字消息
2:图片消息
5:撤回的消息
12、13:通知 |
| content | str | 消息内容 | 此处存在设计缺陷 |
-| msg_seqno | num | 未知 | |
+| msg_seqno | num | 消息序列号,保证按照时间顺序从小到大 | |
| timestamp | num | 消息发送时间戳 | |
| at_uids | array | 未知 | |
| msg_key | num | 未知 | |
| msg_status | num | 消息状态 | 0 |
| notify_code |str | 未知 | |
-| new_face_version |num | 未知 | 疑似只在粉丝团消息中出现 |
+| new_face_version |num | 表情包版本 | 0或者没有是旧版,此时b站会自动转换成新版表情包,例如`[doge]` -> `[tv_doge]`;1是新版 |
`e_infos`数组:
diff --git a/docs/misc/bvid_desc.md b/docs/misc/bvid_desc.md
new file mode 100644
index 0000000..86c80c6
--- /dev/null
+++ b/docs/misc/bvid_desc.md
@@ -0,0 +1,657 @@
+
+# bvid说明
+
+2020-03-23 B站推出了全新的稿件视频id`bvid`来接替之前的`avid`,其意义与之相同
+
+详见:
+
+1. [【升级公告】AV号全面升级至BV号(专栏)](https://www.bilibili.com/read/cv5167957)
+2. [【升级公告】AV号全面升级至BV号](https://www.bilibili.com/blackboard/activity-BV-PC.html)
+
+## 概述
+
+### 格式
+
+“bvid”恒为长度为 12 的字符串,前两个固定为“BV1”,后 9 个为 base58 计算结果(不包含数字 `0` 和大写字母 `I`、 `O` 以及小写字母 `l`)
+
+### 实质
+
+“bvid"为“avid”的base58编码,可通过算法进行相互转化
+
+### avid发号方式的变化
+
+从 2009-09-09 09:09:09 [av2](https://www.bilibili.com/video/av2) 的发布到 2020-03-28 19:45:02 [av99999999](https://www.bilibili.com/video/av99999999) 的发布B站结束了以投稿时间为顺序的avid发放,改为随机发放avid
+
+~~暗示B站东方要完?泪目~~
+
+## 算法概述
+
+~~算法以及程序主要参考[知乎@mcfx的回答](https://www.zhihu.com/question/381784377/answer/1099438784)~~
+~~实际上该算法并不完整,新的算法参考自[【揭秘】av号转bv号的过程](https://www.bilibili.com/video/BV1N741127Tj)~~
+实际上上面的算法依然不完整,新的算法参考自 [SocialSisterYi#740](https://github.com/SocialSisterYi/bilibili-API-collect/issues/740)~~来自 B 站某个 JS 文件?~~
+
+### av->bv算法
+
+**说明**
+
+1. 目前的 BV 格式为 BV1XXXXXXXXX,以 BV1 开头,后面包含 9 位有效数据。
+2. AV 最大值为 2⁵¹。
+
+**算法**
+
+- 定义一个包含初始值为 `['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0']` 的长度为 12 的数组`bytes`,用于存储转换后的字符。
+ - 定义变量 `bv_idx` 并初始化为数组 `bytes` 的最后一个索引。
+ - 将输入的 `aid` 与 avid 最大值(2⁵¹)进行按位或运算,其结果与常量 `XOR_CODE`(23442827791579)进行异或运算,得到变量 `tmp`。
+ - 当 `tmp` 大于0时,循环执行以下操作直到小于0:
+ - 将 `tmp` 除以 58(码表的长度) 的余数作为索引,从 `FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf` 码表中取出对应的字符,并将其赋值给 `bytes[bv_idx]`。
+ - 将 `tmp` 与 58 求模赋值给 `tmp`。
+ - 将 `bv_idx` 减1。
+ - 将 `bytes` 数组中索引为 3 和 9 的元素进行交换。
+ - 将 `bytes` 数组中索引为 4 和 7 的元素进行交换。
+ - 将 `bytes` 数组转换为字符串,并返回结果。
+
+### bv->av算法
+
+是 #av->bv算法 的逆向
+
+- 将 `bvid` 中索引为 3 和 9 的字符进行交换。
+- 将 `bvid` 中索引为 4 和 7 的字符进行交换。
+- 删除 `bvid` 前3个字符(固定为 BV1)。
+- 定义变量 `tmp` 并初始化为 0。
+- 遍历 `bvid` 的每个字符,执行以下操作:
+ - 获取当前字符在 `FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf` 码表中的索引,并将其赋值给变量 `idx`。
+ - 将 `tmp` 乘以常量 58,并加上 `idx`,最后赋值给 `tmp`。
+- 将 `tmp` 与常量 2⁵¹ - 1 进行按位与运算,其结果与常量 `XOR_CODE`(23442827791579) 进行异或运算,得到最终结果。
+
+## 编程实现
+
+### JavaScript/TypeScript
+
+
+
+
+```javascript
+const XOR_CODE = 23442827791579n;
+const MASK_CODE = 2251799813685247n;
+const MAX_AID = 1n << 51n;
+const BASE = 58n;
+
+const data = 'FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf';
+
+function av2bv(aid) {
+ const bytes = ['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'];
+ let bvIndex = bytes.length - 1;
+ let tmp = (MAX_AID | BigInt(aid)) ^ XOR_CODE;
+ while (tmp > 0) {
+ bytes[bvIndex] = data[Number(tmp % BigInt(BASE))];
+ tmp = tmp / BASE;
+ bvIndex -= 1;
+ }
+ [bytes[3], bytes[9]] = [bytes[9], bytes[3]];
+ [bytes[4], bytes[7]] = [bytes[7], bytes[4]];
+ return bytes.join('');
+}
+
+function bv2av(bvid) {
+ const bvidArr = Array.from(bvid);
+ [bvidArr[3], bvidArr[9]] = [bvidArr[9], bvidArr[3]];
+ [bvidArr[4], bvidArr[7]] = [bvidArr[7], bvidArr[4]];
+ bvidArr.splice(0, 3);
+ const tmp = bvidArr.reduce((pre, bvidChar) => pre * BASE + BigInt(data.indexOf(bvidChar)), 0n);
+ return Number((tmp & MASK_CODE) ^ XOR_CODE);
+}
+
+console.log(av2bv(111298867365120));
+console.log(bv2av('BV1L9Uoa9EUx'));
+```
+
+
+
+
+
+```typescript
+const XOR_CODE = 23442827791579n;
+const MASK_CODE = 2251799813685247n;
+const MAX_AID = 1n << 51n;
+const BASE = 58n;
+
+const data = 'FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf';
+
+function av2bv(aid: number) {
+ const bytes = ['B', 'V', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0'];
+ let bvIndex = bytes.length - 1;
+ let tmp = (MAX_AID | BigInt(aid)) ^ XOR_CODE;
+ while (tmp > 0) {
+ bytes[bvIndex] = data[Number(tmp % BigInt(BASE))];
+ tmp = tmp / BASE;
+ bvIndex -= 1;
+ }
+ [bytes[3], bytes[9]] = [bytes[9], bytes[3]];
+ [bytes[4], bytes[7]] = [bytes[7], bytes[4]];
+ return bytes.join('') as `BV1${string}`;
+}
+
+function bv2av(bvid: `BV1${string}`) {
+ const bvidArr = Array.from(bvid);
+ [bvidArr[3], bvidArr[9]] = [bvidArr[9], bvidArr[3]];
+ [bvidArr[4], bvidArr[7]] = [bvidArr[7], bvidArr[4]];
+ bvidArr.splice(0, 3);
+ const tmp = bvidArr.reduce((pre, bvidChar) => pre * BASE + BigInt(data.indexOf(bvidChar)), 0n);
+ return Number((tmp & MASK_CODE) ^ XOR_CODE);
+}
+
+console.log(av2bv(111298867365120));
+console.log(bv2av('BV1L9Uoa9EUx'));
+```
+
+
+
+### Python
+
+来自:[#847](https://github.com/SocialSisterYi/bilibili-API-collect/issues/847#issuecomment-1807020675)
+
+```python
+XOR_CODE = 23442827791579
+MASK_CODE = 2251799813685247
+MAX_AID = 1 << 51
+ALPHABET = "FcwAPNKTMug3GV5Lj7EJnHpWsx4tb8haYeviqBz6rkCy12mUSDQX9RdoZf"
+ENCODE_MAP = 8, 7, 0, 5, 1, 3, 2, 4, 6
+DECODE_MAP = tuple(reversed(ENCODE_MAP))
+
+BASE = len(ALPHABET)
+PREFIX = "BV1"
+PREFIX_LEN = len(PREFIX)
+CODE_LEN = len(ENCODE_MAP)
+
+def av2bv(aid: int) -> str:
+ bvid = [""] * 9
+ tmp = (MAX_AID | aid) ^ XOR_CODE
+ for i in range(CODE_LEN):
+ bvid[ENCODE_MAP[i]] = ALPHABET[tmp % BASE]
+ tmp //= BASE
+ return PREFIX + "".join(bvid)
+
+def bv2av(bvid: str) -> int:
+ assert bvid[:3] == PREFIX
+
+ bvid = bvid[3:]
+ tmp = 0
+ for i in range(CODE_LEN):
+ idx = ALPHABET.index(bvid[DECODE_MAP[i]])
+ tmp = tmp * BASE + idx
+ return (tmp & MASK_CODE) ^ XOR_CODE
+
+assert av2bv(111298867365120) == "BV1L9Uoa9EUx"
+assert bv2av("BV1L9Uoa9EUx") == 111298867365120
+```
+
+### Rust
+
+参考
+
+### Swift
+
+```swift
+fileprivate let XOR_CODE: UInt64 = 23442827791579
+fileprivate let MASK_CODE: UInt64 = 2251799813685247
+fileprivate let MAX_AID: UInt64 = 1 << 51
+
+fileprivate let data: [UInt8] = [70, 99, 119, 65, 80, 78, 75, 84, 77, 117, 103, 51, 71, 86, 53, 76, 106, 55, 69, 74, 110, 72, 112, 87, 115, 120, 52, 116, 98, 56, 104, 97, 89, 101, 118, 105, 113, 66, 122, 54, 114, 107, 67, 121, 49, 50, 109, 85, 83, 68, 81, 88, 57, 82, 100, 111, 90, 102]
+
+fileprivate let BASE: UInt64 = 58
+fileprivate let BV_LEN: Int = 12
+fileprivate let PREFIX: String = "BV1"
+
+func av2bv(avid: UInt64) -> String {
+ var bytes: [UInt8] = [66, 86, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48]
+ var bvIdx = BV_LEN - 1
+ var tmp = (MAX_AID | avid) ^ XOR_CODE
+
+ while tmp != 0 {
+ bytes[bvIdx] = data[Int(tmp % BASE)]
+ tmp /= BASE
+ bvIdx -= 1
+ }
+
+ bytes.swapAt(3, 9)
+ bytes.swapAt(4, 7)
+
+ return String(decoding: bytes, as: UTF8.self)
+}
+
+func bv2av(bvid: String) -> UInt64 {
+ let fixedBvid: String
+ if bvid.hasPrefix("BV") {
+ fixedBvid = bvid
+ } else {
+ fixedBvid = "BV" + bvid
+ }
+ var bvidArray = Array(fixedBvid.utf8)
+
+ bvidArray.swapAt(3, 9)
+ bvidArray.swapAt(4, 7)
+
+ let trimmedBvid = String(decoding: bvidArray[3...], as: UTF8.self)
+
+ var tmp: UInt64 = 0
+
+ for char in trimmedBvid {
+ if let idx = data.firstIndex(of: char.utf8.first!) {
+ tmp = tmp * BASE + UInt64(idx)
+ }
+ }
+
+ return (tmp & MASK_CODE) ^ XOR_CODE
+}
+
+print(av2bv(avid: 111298867365120))
+print(bv2av(bvid: "BV1L9Uoa9EUx"))
+```
+
+## 老版算法存档
+
+**以下算法已失效**,编解码函数值域有限,不推荐使用,在此仅作为存档
+
+
+查看折叠内容:
+
+算法参考自[【揭秘】av号转bv号的过程](https://www.bilibili.com/video/BV1N741127Tj)
+
+### av->bv算法
+
+注:本算法及示例程序仅能编解码`avid < 29460791296`,且暂无法验证`avid >= 29460791296`的正确性
+再注:本人不清楚新算法能否编解码`avid >= 29460791296`
+
+1. a = (avid ⊕ 177451812) + 100618342136696320
+2. 以 i 为循环变量循环 6 次 b[i] = (a / 58 ^ i) % 58
+3. 将 b[i] 中各个数字转换为以下码表中的字符
+
+码表:
+
+> fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF
+
+4. 初始化字符串 b[i]=` `
+
+5. 按照以下字符顺序编码表编码并填充至 b[i]
+
+字符顺序编码表:
+
+> 0 -> 9
+>
+> 1 -> 8
+>
+> 2 -> 1
+>
+> 3 -> 6
+>
+> 4 -> 2
+>
+> 5 -> 4
+>
+> 6 -> 0
+>
+> 7 -> 7
+>
+> 8 -> 3
+>
+> 9 -> 5
+
+### bv->av算法
+
+为以上算法的逆运算
+
+### 编程实现
+
+使用 [Python](#Python) [C](#C) [TypeScript](#TypeScript) [Java](#Java) [Kotlin](#Kotlin) [Golang](#Golang) [Rust](#Rust) 等语言作为示例,欢迎社区提交更多例程
+
+注: 新算法只提供了 [Python](#Python) 和 [Rust](#Rust) 版本
+
+#### Python
+
+```python
+XOR = 177451812
+ADD = 100618342136696320
+TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
+MAP = 9, 8, 1, 6, 2, 4, 0, 7, 3, 5
+
+
+def av2bv(av: int) -> str:
+ av = (av ^ XOR) + ADD
+ bv = [""] * 10
+ for i in range(10):
+ bv[MAP[i]] = TABLE[(av // 58**i) % 58]
+ return "".join(bv)
+
+
+def bv2av(bv: int) -> int:
+ av = [""] * 10
+ s = 0
+ for i in range(10):
+ s += TABLE.find(bv[MAP[i]]) * 58**i
+ av = (s - ADD) ^ XOR
+
+ return av
+
+
+def main():
+ while 1:
+ mode = input("1. AV to BV\n2. BV to AV\n3. Exit\n你的选择:")
+ if mode == "1":
+ print(f"BV号是:BV {av2bv(int(input('AV号是:')))}")
+ elif mode == "2":
+ print(f"AV号是:AV {bv2av(input('BV号是:'))}")
+ elif mode == "3":
+ break
+ else:
+ print("输入错误请重新输入")
+
+
+if __name__ == "__main__":
+ main()
+```
+
+#### C
+
+```c
+#include
+#include
+#include
+#include
+
+const char table[] = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"; // 码表
+char tr[124]; // 反查码表
+const unsigned long long XOR = 177451812; // 固定异或值
+const unsigned long long ADD = 8728348608; // 固定加法值
+const int s[] = {11, 10, 3, 8, 4, 6}; // 位置编码表
+
+// 初始化反查码表
+void tr_init() {
+ for (int i = 0; i < 58; i++)
+ tr[table[i]] = i;
+}
+
+unsigned long long bv2av(char bv[]) {
+ unsigned long long r = 0;
+ unsigned long long av;
+ for (int i = 0; i < 6; i++)
+ r += tr[bv[s[i]]] * (unsigned long long)pow(58, i);
+ av = (r - ADD) ^ XOR;
+ return av;
+}
+
+char *av2bv(unsigned long long av) {
+ char *result = (char*)malloc(13);
+ strcpy(result,"BV1 4 1 7 ");
+ av = (av ^ XOR) + ADD;
+ for (int i = 0; i < 6; i++)
+ result[s[i]] = table[(unsigned long long)(av / (unsigned long long)pow(58, i)) % 58];
+ return result;
+}
+
+int main() {
+ tr_init();
+ printf("%s\n", av2bv(170001));
+ printf("%u\n", bv2av("BV17x411w7KC"));
+ return 0;
+}
+```
+
+输出为:
+
+```
+BV17x411w7KC
+170001
+```
+
+#### TypeScript
+
+感谢[#417](https://github.com/SocialSisterYi/bilibili-API-collect/issues/417#issuecomment-1186475063)提供
+
+```typescript
+export default class BvCode {
+ private TABEL = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'; // 码表
+ private TR: Record = {}; // 反查码表
+ private S = [11, 10, 3, 8, 4, 6]; // 位置编码表
+ private XOR = 177451812; // 固定异或值
+ private ADD = 8728348608; // 固定加法值
+ constructor() {
+ // 初始化反查码表
+ const len = this.TABEL.length;
+ for (let i = 0; i < len; i++) {
+ this.TR[this.TABEL[i]] = i;
+ }
+ }
+ av2bv(av: number): string {
+ const x_ = (av ^ this.XOR) + this.ADD;
+ const r = ['B', 'V', '1', , , '4', , '1', , '7'];
+ for (let i = 0; i < 6; i++) {
+ r[this.S[i]] = this.TABEL[Math.floor(x_ / 58 ** i) % 58];
+ }
+ return r.join('');
+ }
+ bv2av(bv: string): number {
+ let r = 0;
+ for (let i = 0; i < 6; i++) {
+ r += this.TR[bv[this.S[i]]] * 58 ** i;
+ }
+ return (r - this.ADD) ^ this.XOR;
+ }
+}
+
+const bvcode = new BvCode();
+
+console.log(bvcode.av2bv(170001));
+console.log(bvcode.bv2av('BV17x411w7KC'));
+```
+
+输出为:
+
+```
+BV17x411w7KC
+170001
+```
+
+#### Java
+
+```java
+/**
+ * 算法来自:https://www.zhihu.com/question/381784377/answer/1099438784
+ */
+public class Util {
+ private static final String TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
+ private static final int[] S = new int[]{11, 10, 3, 8, 4, 6};
+ private static final int XOR = 177451812;
+ private static final long ADD = 8728348608L;
+ private static final Map MAP = new HashMap<>();
+
+ static {
+ for (int i = 0; i < 58; i++) {
+ MAP.put(TABLE.charAt(i), i);
+ }
+ }
+
+ public static String aidToBvid(int aid) {
+ long x = (aid ^ XOR) + ADD;
+ char[] chars = new char[]{'B', 'V', '1', ' ', ' ', '4', ' ', '1', ' ', '7', ' ', ' '};
+ for (int i = 0; i < 6; i++) {
+ int pow = (int) Math.pow(58, i);
+ long i1 = x / pow;
+ int index = (int) (i1 % 58);
+ chars[S[i]] = TABLE.charAt(index);
+ }
+ return String.valueOf(chars);
+ }
+
+ public static int bvidToAid(String bvid) {
+ long r = 0;
+ for (int i = 0; i < 6; i++) {
+ r += MAP.get(bvid.charAt(S[i])) * Math.pow(58, i);
+ }
+ return (int) ((r - ADD) ^ XOR);
+ }
+}
+```
+
+#### Kotlin
+
+```kotlin
+/**
+ * 此程序非完全原创,改编自GH站内某大佬的Java程序,修改了部分代码,且转换为Kotlin
+ * 算法来源同上
+ */
+object VideoUtils {
+ //这里是由知乎大佬不知道用什么方法得出的转换用数字
+ var ss = intArrayOf(11, 10, 3, 8, 4, 6, 2, 9, 5, 7)
+ var xor: Long = 177451812 //二进制时加减数1
+
+ var add = 8728348608L //十进制时加减数2
+
+ //变量初始化工作,加载哈希表
+ private const val table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
+ private val mp = HashMap()
+ private val mp2 = HashMap()
+
+ //现在,定义av号和bv号互转的方法
+//定义一个power乘方方法,这是转换进制必要的
+ fun power(a: Int, b: Int): Long {
+ var power: Long = 1
+ for (c in 0 until b) power *= a.toLong()
+ return power
+ }
+
+ //bv转av方法
+ fun bv2av(s: String): String {
+ var r: Long = 0
+ //58进制转换
+ for (i in 0..57) {
+ val s1 = table.substring(i, i + 1)
+ mp[s1] = i
+ }
+ for (i in 0..5) {
+ r += mp[s.substring(ss[i], ss[i] + 1)]!! * power(58, i)
+ }
+ //转换完成后,需要处理,带上两个随机数
+ return (r - add xor xor).toString()
+ }
+
+ //av转bv方法
+ fun av2bv(st: String): String {
+ try {
+ var s = java.lang.Long.valueOf(st.split("av".toRegex()).dropLastWhile { it.isEmpty() }
+ .toTypedArray()[1])
+ val sb = StringBuffer("BV1 4 1 7 ")
+ //逆向思路,先将随机数还原
+ s = (s xor xor) + add
+ //58进制转回
+ for (i in 0..57) {
+ val s1 = table.substring(i, i + 1)
+ mp2[i] = s1
+ }
+ for (i in 0..5) {
+ val r = mp2[(s / power(58, i) % 58).toInt()]
+ sb.replace(ss[i], ss[i] + 1, r!!)
+ }
+ return sb.toString()
+ } catch (e: ArrayIndexOutOfBoundsException) {
+ return ""
+ }
+ }
+
+}
+```
+
+#### Golang
+
+```go
+package main
+
+import "math"
+
+const TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
+var S = [11]uint{11, 10, 3, 8, 4, 6}
+const XOR = 177451812
+const ADD = 8728348608
+
+var TR = map[string]int64{}
+
+// 初始化 TR
+func init() {
+ for i := 0; i < 58; i++ {
+ TR[TABLE[i:i+1]] = int64(i)
+ }
+}
+
+func BV2AV(bv string) int64 {
+ r := int64(0)
+ for i := 0; i < 6; i++ {
+ r += TR[bv[S[i]:S[i]+1]] * int64(math.Pow(58, float64(i)))
+ }
+ return (r - ADD) ^ XOR
+}
+
+func AV2BV(av int64) string {
+ x := (av ^ XOR) + ADD
+ r := []rune("BV1 4 1 7 ")
+ for i := 0; i < 6; i++ {
+ r[S[i]] = rune(TABLE[x/int64(math.Pow(58, float64(i)))%58])
+ }
+ return string(r)
+}
+
+func main() {
+ println(AV2BV(170001))
+ println(BV2AV("BV17x411w7KC"))
+}
+```
+
+输出为:
+
+```
+BV17x411w7KC
+170001
+```
+
+#### Rust
+
+crate: https://github.com/stackinspector/bvid
+
+```rust
+// Copyright (c) 2023 stackinspector. MIT license.
+
+const XORN: u64 = 177451812;
+const ADDN: u64 = 100618342136696320;
+const TABLE: [u8; 58] = *b"fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
+const MAP: [usize; 10] = [9, 8, 1, 6, 2, 4, 0, 7, 3, 5];
+const REV_TABLE: [u8; 74] = [
+ 13, 12, 46, 31, 43, 18, 40, 28, 5, 0, 0, 0, 0, 0, 0, 0, 54, 20, 15, 8,
+ 39, 57, 45, 36, 0, 38, 51, 42, 49, 52, 0, 53, 7, 4, 9, 50, 10, 44, 34, 6,
+ 25, 1, 0, 0, 0, 0, 0, 0, 26, 29, 56, 3, 24, 0, 47, 27, 22, 41, 16, 0,
+ 11, 37, 2, 35, 21, 17, 33, 30, 48, 23, 55, 32, 14, 19,
+];
+const POW58: [u64; 10] = [
+ 1, 58, 3364, 195112, 11316496, 656356768, 38068692544,
+ 2207984167552, 128063081718016, 7427658739644928,
+];
+
+fn av2bv(avid: u64) -> [u8; 10] {
+ let a = (avid ^ XORN) + ADDN;
+ let mut bvid = [0; 10];
+ for i in 0..10 {
+ bvid[MAP[i]] = TABLE[(a / POW58[i]) as usize % 58];
+ }
+ bvid
+}
+
+fn bv2av(bvid: [u8; 10]) -> u64 {
+ let mut a = 0;
+ for i in 0..10 {
+ a += REV_TABLE[bvid[MAP[i]] as usize - 49] as u64 * POW58[i];
+ }
+ (a - ADDN) ^ XORN
+}
+
+// assert_eq!(*b"17x411w7KC", av2bv(170001));
+// assert_eq!(170001, bv2av(*b"17x411w7KC"));
+```
+
+
diff --git a/docs/misc/device_identity.md b/docs/misc/device_identity.md
new file mode 100644
index 0000000..5fae7fd
--- /dev/null
+++ b/docs/misc/device_identity.md
@@ -0,0 +1,104 @@
+# 设备各类标识算法(APP 端)
+
+## 设备唯一标识 BUVID
+
+注意区分于 Web 端的 buvid3, buvid4.
+
+BUVID 在 APP 首次安装于某设备, 且首次启动时生成.
+
+APP 首次(即每次安装后)启动, 会向云端发送本机各类设备特征, 含 `AndroidId`, `DrmId` 等, 请求是否有匹配的 BUVID, 有就使用云端的, 否则使用本地生成的.
+
+APP 请求是否有匹配的 BUVID 发送的本机各类设备特征包括(但不限于):
+
++ `AndroidID`
++ `DrmId`
++ `IMEI`
++ `OAID`
++ 手机网卡 `MAC`
++ 设备品牌
++ 设备 Model
++ 本地生成的 BUVID
+
+### 生成方法
+
+1. 选定设备特征码, 可以是 `AndroidID`, `DrmId`, 手机网卡 `MAC` 等. 记为 `ID`. 特别地, `MAC` 应当去掉 `:`, `GUID`(即 UUID) 应当去掉 `-`.
+
+2. 计算 `ID` 的 MD5. 记为 `ID_MD5`.
+
+3. 从 `ID_MD5` 抽取第 3, 13, 23 位, 失败就默认为 000, 记为 `ID_E`.
+
+4. 根据选定的设备特征码类型确定 BUVID Prefix, 见附录. 记为 `BUVID_Prefix`.
+
+5. 按 `{BUVID_Prefix}{ID_E}{ID_MD5}` 的顺序连接起来, 共37位(2+3+32). 结果应当为大写.
+
+### Demo
+
+#### Rust
+
+代码及测试样例见 [Rust Playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=40b5906cf3838a60efa83fa368b15147).
+
+## 设备指纹 fp (fp_local, fp_remote)
+
+用于请求账户相关 REST API, 及 gRPC Metadata 生成.
+
+在请求头中, `fp_local` 和 `fp_remote` 设置为同一值即可, 暂不清楚区别.
+
+### 生成方法
+
+1. 获取 BUVID. 此处一般使用 XU Prefix 的 BUVID.
+
+2. 获取设备 Model(`Build.MODEL`), 如 `NOH-AN01`.
+
+3. 获取手机无线电固件版本号(`Build.getRadioVersion()`), 失败则留空. 如 `21C20B686S000C000,21C20B686S000C000`.
+
+4. 按前述顺序拼接字符串, 计算得 MD5.
+
+5. 获取年月日, 格式 `yyyyMMddhhmmss`, 拼接到 4 得到的字符串后.
+
+6. 生成 16 位随机字符串, CharSet 为 `0123456789abcdef`, 拼接到 5 得到的字符串后, 记为 `fp_raw`.
+
+7. 计算得到一个特殊字符串, 拼接到 `fp_raw` 后, 即得到最终的 `fp`, 特殊字符串算法见下:
+
+```rust
+let mut veri_code = 0;
+// 有点像 HEX 的操作
+let fp_raw_sub_str = fp_raw
+ .as_bytes() // 将字符串 fp_raw 转换为字节数组
+ .chunks(2) // 按每两个字节一组进行切分
+ .map(|s| unsafe { ::std::str::from_utf8_unchecked(s) }) // 对每一组解析作为 UTF-8 字符串
+ .collect::>(); // 将结果收集到 Vec 中
+// 如果 fp_raw 的长度小于 62, 则向下取偶数减半作为循环终止条件, 否则终止条件为31
+for i in 0..({
+ if fp_raw.len() < 62 {
+ fp_raw.len() - fp_raw.len() % 2 // 取偶数
+ } else {
+ 62
+ }
+} / 2)
+{
+ // 将每组字符串转换为对应的 16 进制整数, 将转换得到的整数加到 veri_code 上.
+ veri_code += i32::from_str_radix(fp_raw_sub_str[i], 16).unwrap_or(0);
+}
+// 最后将 veri_code 对 256 取余, 格式化为两位的 16 进制字符串
+let veri_code = format!("{:0>2x}", veri_code % 256);
+```
+
+### Demo
+
+#### Rust
+
+代码及测试样例见 [Rust Playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=40b5906cf3838a60efa83fa368b15147).
+
+## 附录
+
+### BUVID Prefix
+
+|设备特征码|BUVID Prefix|备注|
+|:-:|:-:|:-:|
+|`AndroidID`|`XX`||
+|`DrmId`|`XU`||
+|`IMEI`|`XZ`|已弃用|
+|`GUID`|`XW`|已弃用|
+|`MAC`|`XY`||
+|`GoogleId`|`XG`|东南亚版本|
+|`FacebookId`|`XF`|东南亚版本|
diff --git a/docs/other/errcode.md b/docs/misc/errcode.md
similarity index 97%
rename from docs/other/errcode.md
rename to docs/misc/errcode.md
index ad11f62..7e3d4a7 100644
--- a/docs/other/errcode.md
+++ b/docs/misc/errcode.md
@@ -57,4 +57,5 @@
| -688 | 地理区域限制 |
| -689 | 版权限制 |
| -701 | 扣节操失败 |
+| -799 | 请求过于频繁,请稍后再试 |
|-8888|对不起,服务器开小差了~ (ಥ﹏ಥ)|
diff --git a/docs/other/picture.md b/docs/misc/picture.md
similarity index 65%
rename from docs/other/picture.md
rename to docs/misc/picture.md
index 2b1aaad..01a51a5 100644
--- a/docs/other/picture.md
+++ b/docs/misc/picture.md
@@ -9,7 +9,7 @@
| width | 图片最大限制宽度 | |
| high | 图片最大限制高度 | |
| quality | 图片质量百分比 | 仅限webp |
-| format | 图片格式 | 仅限png/jpg/webp |
+| format | 图片格式 | 仅限png/jpg/webp/[avg_color](#avg_color格式说明) |
**示例:**
@@ -41,4 +41,40 @@ https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.w
https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@1q.webp
-
\ No newline at end of file
+
+
+
+## avg_color格式说明
+
+当图片格式化输出格式为`avg_color`时
+
+> \*.hdslb.com/bfs/\*/\*.*@\*.avg_color
+
+*请求方式:GET*
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ---- | ----------- | ------ |
+| RGB | str | 平均颜色值 | HEX |
+
+**示例:**
+
+获取 https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg 的平均颜色值
+
+```shell
+curl 'https://i1.hdslb.com/bfs/archive/e5fff1472bad1c0c6bcb3004205f9be23b58ffc0.jpg@.avg_color'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "RGB": "#7d6f6c"
+}
+```
+
+
diff --git a/docs/misc/sign/APP.md b/docs/misc/sign/APP.md
new file mode 100644
index 0000000..fa14fee
--- /dev/null
+++ b/docs/misc/sign/APP.md
@@ -0,0 +1,216 @@
+# APP API 签名与鉴权
+
+## APP API 签名特性
+
+部分客户端专用的 REST API 存在基于参数签名的鉴权,需要使用规定的`appkey`及其对应的`appsec`与原始请求参数进行签名计算,部分`AppKey`及与之对应的`AppSec`已经被公开:见该文档 [APPKey](APPKey.md)
+
+- 不同 `appkey` 对应不同的 app (如客户端、概念版、必剪、漫画、bililink等)
+
+- 不同平台同 app 也会存在不同的 `appkey` (如安卓端、ios端、TV端等)
+
+- 同平台同 app 下不同功能也会存在不同的 `appkey`(如登录专用、取流专用等)
+
+- 不同版本的客户端的 `appkey` 也可能不同
+
+- **appkey与appsec一一对应**
+
+## APP API 签名算法
+
+1. 首先为参数中添加`appkey`字段
+2. 然后按照参数的 Key 重新排序
+3. 再对这个 Key-Value 进行 url query 序列化,并拼接与之对应的`appsec` (盐) 进行 **md5 Hash 运算**(32-bit 字符小写),该 hash 便是 API 签名
+4. 最后在参数尾部增添`sign`字段,它的 Value 为上一步计算所得的 hash,一并作为表单或 Query 提交
+
+## Demo
+
+该 Demo 提供 [Python](#Python) 和 [Java](#Java) 和 [TS/JS](#TypeScript/JavaScript) 和 [Swift](#Swift) 语言例程
+
+使用 appkey = `1d8b6e7d45233436`, appsec = `560c52ccd288fed045859ed18bffd973` 对如下 `params` 参数进行签名
+
+上述示例`appkey`、`AppSec`均来自文档 [APPKey](APPKey.md)
+
+### Python
+
+```python
+import hashlib
+import urllib.parse
+
+def appsign(params, appkey, appsec):
+ '为请求参数进行 APP 签名'
+ params.update({'appkey': appkey})
+ params = dict(sorted(params.items())) # 按照 key 重排参数
+ query = urllib.parse.urlencode(params) # 序列化参数
+ sign = hashlib.md5((query+appsec).encode()).hexdigest() # 计算 api 签名
+ params.update({'sign':sign})
+ return params
+
+appkey = '1d8b6e7d45233436'
+appsec = '560c52ccd288fed045859ed18bffd973'
+params = {
+ 'id':114514,
+ 'str':'1919810',
+ 'test':'いいよ,こいよ',
+}
+signed_params = appsign(params, appkey, appsec)
+query = urllib.parse.urlencode(signed_params)
+print(signed_params)
+print(query)
+```
+
+输出内容分别是进行 APP 签名的后参数的 key-Value 以及 url query 形式
+
+```
+{'appkey': '1d8b6e7d45233436', 'id': 114514, 'str': '1919810', 'test': 'いいよ,こいよ', 'sign': '01479cf20504d865519ac50f33ba3a7d'}
+appkey=1d8b6e7d45233436&id=114514&str=1919810&test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88&sign=01479cf20504d865519ac50f33ba3a7d
+```
+
+### Java
+
+
+```java
+package io.github.cctyl;
+
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.net.URLEncoder;
+import java.util.TreeMap;
+
+/**
+ * @author cctyl
+ */
+public class AppSigner {
+
+ private static final String APP_KEY = "1d8b6e7d45233436";
+ private static final String APP_SEC = "560c52ccd288fed045859ed18bffd973";
+
+ public static String appSign(Map params) {
+ // 为请求参数进行 APP 签名
+ params.put("appkey", APP_KEY);
+ // 按照 key 重排参数
+ Map sortedParams = new TreeMap<>(params);
+ // 序列化参数
+ StringBuilder queryBuilder = new StringBuilder();
+ for (Map.Entry entry : sortedParams.entrySet()) {
+ if (queryBuilder.length() > 0) {
+ queryBuilder.append('&');
+ }
+ queryBuilder
+ .append(URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8))
+ .append('=')
+ .append(URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8));
+ }
+ return generateMD5(queryBuilder .append(APP_SEC).toString());
+ }
+
+ private static String generateMD5(String input) {
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ byte[] digest = md.digest(input.getBytes());
+ StringBuilder sb = new StringBuilder();
+ for (byte b : digest) {
+ sb.append(String.format("%02x", b));
+ }
+ return sb.toString();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static void main(String[] args) {
+ Map params = new HashMap<>();
+ params.put("id", "114514");
+ params.put("str", "1919810");
+ params.put("test", "いいよ,こいよ");
+ System.out.println(appSign(params));
+ }
+}
+```
+
+输出结果为:01479cf20504d865519ac50f33ba3a7d
+
+### TypeScript/JavaScript
+
+```typescript
+import { createHash } from 'node:crypto'
+
+type Params = Record
+
+const md5 = (str: string) => createHash('md5').update(str).digest('hex')
+
+/**
+ * 为请求参数进行 APP 签名
+ */
+export function appSign(params: Params, appkey: string, appsec: string) {
+ params.appkey = appkey
+ const searchParams = new URLSearchParams(params)
+ searchParams.sort()
+ return md5(searchParams.toString() + appsec)
+}
+
+console.log(
+ appSign(
+ {
+ id: 114514,
+ str: '1919810',
+ test: 'いいよ,こいよ',
+ },
+ '1d8b6e7d45233436',
+ '560c52ccd288fed045859ed18bffd973',
+ ),
+ '01479cf20504d865519ac50f33ba3a7d',
+)
+```
+
+输出结果为:01479cf20504d865519ac50f33ba3a7d
+
+### Swift
+
+```swift
+import Foundation
+import CommonCrypto
+
+//Swift标准库没有MD5函数,所以我们要自己实现一个
+func MD5(string: String) -> String {
+ let length = Int(CC_MD5_DIGEST_LENGTH)
+ var digest = [UInt8](repeating: 0, count: length)
+
+ if let d = string.data(using: .utf8) {
+ _ = d.withUnsafeBytes { body -> String in
+ CC_MD5(body.baseAddress, CC_LONG(d.count), &digest)
+ return ""
+ }
+ }
+
+ return (0.. String {
+ var signedParams = params
+ signedParams["appkey"] = appKey
+ let sortedParams = signedParams.sorted { $0.key < $1.key }
+ //在制作成query时,需要显式addingPercentEncoding转换
+ let query = sortedParams.map { "\($0.key)=\($0.value.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)" }.joined(separator: "&")
+ let sign = MD5(string: query+appSec)
+ return sign
+}
+
+
+//testSign
+let appKey = "1d8b6e7d45233436"
+let appSec = "560c52ccd288fed045859ed18bffd973"
+let signResult = appSign(params: [
+ "id": "114514",
+ "str": "1919810",
+ "test": "いいよ,こいよ",
+],appKey:appKey,appSec:appSec)
+print(signResult)
+```
+
+输出结果为:01479cf20504d865519ac50f33ba3a7d
+
diff --git a/docs/misc/sign/APPKey.md b/docs/misc/sign/APPKey.md
new file mode 100644
index 0000000..398ebb0
--- /dev/null
+++ b/docs/misc/sign/APPKey.md
@@ -0,0 +1,55 @@
+# APPKey
+
+以下为已知的 APPkey / APPSec,及部分使用场景参数信息,均来自抓包与逆向工程
+
+| APPKEY | APPSEC | platform2 | APP类型 | neuronAppId1 | mobi_app2 | 备注 |
+| :--------------: | :------------------------------: | :------------------: | :----------------: | :---------------------: | :------------------: | :----------------------------------------: |
+| 9d5889cf67e615cd | 8fd9bb32efea8cef801fd895bef2713d | `android` | Ai4cCreatorAndroid | | | |
+| 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | `android` | 粉版 | `1` | `android` | 获取资源通用 |
+| 783bbb7264451d82 | 2653583c8873dea268ab9386918b1d65 | `android` | 粉版 | `1` | `android` | 仅获取用户信息时使用(7.X及更新版本) |
+| 57263273bc6b67f6 | a0488e488d1567960d3a765e8d129f90 | `android` | 粉版 | `1` | `android` | 可能来自旧版 |
+| 07da50c9a0bf829f | 25bdede4e1581c836cab73a48790ca6e | `android` | 概念版 | `3` | `android_b` | |
+| 191c3b6b975af184 | 1673b15a09ef5e4427627f47b03a0578 | `android` | 概念版 | `3` | `android_b` | 仅获取用户信息时使用(7.X及更新版本) |
+| 178cf125136ca8ea | 34381a26236dd1171185c0beb042e1c6 | `android` | 概念版 | `3` | `android_b` | 可能来自旧版 |
+| 7d336ec01856996b | a1ce6983bc89e20a36c37f40c4f1a0dd | `android` | 概念版 | `3` | `android_b` | 可能来自旧版 |
+| dfca71928277209b | b5475a8825547a4fc26c7d518eaaa02e | `android` | HD 版 | `5` | `android_hd` | |
+| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | `android` | 白版 | `14` | `android_i` | |
+| ae57252b0c09105d | c75875c596a69eb55bd119e74b07cfe3 | `android` | 白版 | `14` | `android_i` | 仅获取用户信息时使用(7.X及更新版本) |
+| 8e16697a1b4f8121 | f5dd03b752426f2e623d7badb28d190a | `android` | 白版 | `14` | `android_i` | 可能来自旧版 |
+| 7d089525d3611b1c | acd495b248ec528c2eed1e862d393126 | `android` | 蓝版 | `30` | `bstar_a` | |
+| iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | `android` | - | - | - | 视频取流专用, 仅5.X旧版使用 |
+| YvirImLGlLANCLvM | JNlZNgfNGKZEpaDTkCdPQVXntXhuiJEM | `ios` | - | - | - | 视频取流专用 |
+| 27eb53fc9058f8c3 | c2ed53a74eeefe3cf99fbd01d8c9c375 | `web`/`ios`? | - | - | - | 第三方授权使用 |
+| 84956560bc028eb7 | 94aba54af9065f71de72f5508f1cd42e | ? | UWP 版 | - | - | 部分API不接受此appkey, 返回-663错误 |
+| 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | ? | UWP 版? | - | - | 部分API不接受此appkey, 返回-663错误 |
+| 4ebafd7c4951b366 | 8cb98205e9b2ad3669aad0fce12a4c13 | `ios` | iPhone 客户端? | `iphone` | ? | |
+| 8d23902c1688a798 | 710f0212e62bd499b8d3ac6e1db9302a | `android` | AndroidBiliThings | ? | ? | |
+| 4c6e1021617d40d9 | e559a59044eb2701b7a8628c86aa12ae | `android` | AndroidMallTicket | ? | ? | |
+| c034e8b74130a886 | e4e8966b1e71847dc4a3830f2d078523 | `android` | AndroidOttSdk | `7` | ? | |
+| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | `android` | 云视听小电视(TV版) | `9`? | `android_tv_yst`? | |
+| 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | `android` | BiliLink | ? | ? | |
+| 9a75abf7de2d8947 | 35ca1c82be6c2c242ecc04d88c735f31 | `android` | BiliScan | ? | ? | |
+| aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | ? | PC 投稿工具 | - | ? | |
+| bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | ? | login | - | ? | |
+| h9Ejat5tFh81cq8V | BdiI92bjmZ9QRcjJBWv2EEssyjekAGKt | | | | | bilibili游戏 web端 游戏详情页API |
+
+注释:
+
+1 `neuronAppId`,产品编号,由数据平台分配,详情如下:
+
+- 粉(国内版)=1
+- 白(GooglePlay 版)=2
+- 蓝(东南亚版)=3
+- 直播姬=4
+- HD=5
+- 海外=6
+- OTT=7
+- 漫画=8
+- TV野版=9
+- 小视频=10
+- 网易漫画=11
+- 网易漫画lite=12
+- 网易漫画HD=13,
+- 国际版=14
+
+2 `platform`, `mobi_app` 仅供参考, 具体值需要抓包确定.
diff --git a/docs/misc/sign/bili_ticket.md b/docs/misc/sign/bili_ticket.md
new file mode 100644
index 0000000..a9d40a9
--- /dev/null
+++ b/docs/misc/sign/bili_ticket.md
@@ -0,0 +1,62 @@
+`bili_ticket` 目前没发现多少风控价值,但是暂且在这里提供一份示例。
+
+由 [@aynuarance](https://github.com/aynuarance) 于 [#903](https://github.com/SocialSisterYi/bilibili-API-collect/issues/903) 提供的思路,根据时间戳使用 `hmac_sha256` 算法计算 `hexsign`。
+
+
+是 [JWT 令牌](https://jwt.io/),有效时长为 259260 秒,即 3 天。
+例如 `eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDI3NDI3NDYsImlhdCI6MTcwMjQ4MzQ4NiwicGx0IjotMX0.xQgtTAc41NA1gzvd9yKUPgucUy_DKcQj6OG1vj8V7ZA`
+
+```json
+{
+ "alg": "HS256",
+ "kid": "s03",
+ "typ": "JWT"
+}
+```
+
+# Python 示例
+
+```python
+import hmac
+import hashlib
+import requests
+import time
+
+def hmac_sha256(key, message):
+ """
+ 使用HMAC-SHA256算法对给定的消息进行加密
+ :param key: 密钥
+ :param message: 要加密的消息
+ :return: 加密后的哈希值
+ """
+ # 将密钥和消息转换为字节串
+ key = key.encode('utf-8')
+ message = message.encode('utf-8')
+
+ # 创建HMAC对象,使用SHA256哈希算法
+ hmac_obj = hmac.new(key, message, hashlib.sha256)
+
+ # 计算哈希值
+ hash_value = hmac_obj.digest()
+
+ # 将哈希值转换为十六进制字符串
+ hash_hex = hash_value.hex()
+
+ return hash_hex
+
+
+if __name__ == '__main__':
+ o = hmac_sha256("XgwSnGZ1p",f"ts{int(time.time())}")
+ url = "https://api.bilibili.com/bapis/bilibili.api.ticket.v1.Ticket/GenWebTicket"
+ params = {
+ "key_id":"ec02",
+ "hexsign":o,
+ "context[ts]":f"{int(time.time())}",
+ "csrf": ''
+ }
+
+ headers = {
+ 'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0"
+ }
+ resp = requests.post(url, params=params,headers=headers).json()
+```
\ No newline at end of file
diff --git a/docs/misc/sign/wbi.md b/docs/misc/sign/wbi.md
new file mode 100644
index 0000000..9aa9520
--- /dev/null
+++ b/docs/misc/sign/wbi.md
@@ -0,0 +1,906 @@
+# WBI 签名
+
+自 2023 年 3 月起,Bilibili Web 端部分接口开始采用 WBI 签名鉴权,表现在 REST API 请求时在 Query param 中添加了 `w_rid` 和 `wts` 字段。WBI 签名鉴权独立于 [APP 鉴权](APP.md) 与其他 Cookie 鉴权,目前被认为是一种 Web 端风控手段。
+
+经持续观察,大部分查询性接口都已经或准备采用 WBI 签名鉴权,请求 WBI 签名鉴权接口时,若签名参数 `w_rid` 与时间戳 `wts` 缺失、错误,会返回 `v_voucher`(推测为内部记录错误请求的 ID 方便 Debug),如:
+
+```json
+{"code":0,"message":"0","ttl":1,"data":{"v_voucher":"voucher_******"}}
+```
+
+感谢 [#631](https://github.com/SocialSisterYi/bilibili-API-collect/issues/631) 的研究与逆向工程。
+
+细节更新:[#885](https://github.com/SocialSisterYi/bilibili-API-collect/issues/885)。
+
+## WBI 签名算法
+
+1. 获取实时口令 `img_key`、`sub_key`
+
+ 从 [nav 接口](../../login/login_info.md#导航栏用户信息) 中获取 `img_url`、`sub_url` 两个字段的参数。
+
+ **注:`img_url`、`sub_url` 两个字段的值看似为存于 BFS 中的 png 图片 url,实则只是经过伪装的实时 Token,故无需且不能试图访问这两个 url**
+
+ ```json
+ {"code":-101,"message":"账号未登录","ttl":1,"data":{"isLogin":false,"wbi_img":{"img_url":"https://i0.hdslb.com/bfs/wbi/7cd084941338484aae1ad9425b84077c.png","sub_url":"https://i0.hdslb.com/bfs/wbi/4932caff0ff746eab6f01bf08b70ac45.png"}}}
+ ```
+
+ 截取其文件名,分别记为 `img_key`、`sub_key`,如上述例子中的 `7cd084941338484aae1ad9425b84077c` 和 `4932caff0ff746eab6f01bf08b70ac45`。
+
+ `img_key`、`sub_key` 全站统一使用,观测知应为**每日更替**,使用时建议做好**缓存和刷新**处理。
+
+ 特别地,发现部分接口将 `img_key`、`sub_key` 硬编码进 JavaScript 文件内,如搜索接口 `https://s1.hdslb.com/bfs/static/laputa-search/client/assets/index.1ea39bea.js`,暂不清楚原因及影响。
+
+2. 打乱重排实时口令获得 `mixin_key`
+
+ 把上一步获取到的 `sub_key` 拼接在 `img_key` 后面(下例记为 `raw_wbi_key`),遍历重排映射表 `MIXIN_KEY_ENC_TAB`,取出 `raw_wbi_key` 中对应位置的字符拼接得到新的字符串,截取前 32 位,即为 `mixin_key`。
+
+ 重排映射表 `MIXIN_KEY_ENC_TAB` 长为 64,内容如下:
+
+ ```rust
+ const MIXIN_KEY_ENC_TAB: [u8; 64] = [
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
+ 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
+ 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
+ 36, 20, 34, 44, 52
+ ]
+ ```
+
+ 重排操作如下例:
+
+ ```rust
+ fn gen_mixin_key(raw_wbi_key: impl AsRef<[u8]>) -> String {
+ const MIXIN_KEY_ENC_TAB: [u8; 64] = [
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42,
+ 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60,
+ 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52,
+ ];
+ let raw_wbi_key = raw_wbi_key.as_ref();
+ let mut mixin_key = {
+ let binding = MIXIN_KEY_ENC_TAB
+ .iter()
+ // 此步操作即遍历 MIXIN_KEY_ENC_TAB,取出 raw_wbi_key 中对应位置的字符
+ .map(|n| raw_wbi_key[*n as usize])
+ // 并收集进数组内
+ .collect::>();
+ unsafe { String::from_utf8_unchecked(binding) }
+ };
+ let _ = mixin_key.split_off(32); // 截取前 32 位字符
+ mixin_key
+ }
+ ```
+
+ 如 `img_key` -> `7cd084941338484aae1ad9425b84077c`、`sub_key` -> `4932caff0ff746eab6f01bf08b70ac45` 经过上述操作后得到 `mixin_key` -> `ea1db124af3c7062474693fa704f4ff8`。
+
+3. 计算签名(即 `w_rid`)
+
+ 若下方内容为欲签名的**原始**请求参数(以 JavaScript Object 为例)
+
+ ```javascript
+ {
+ foo: '114',
+ bar: '514',
+ zab: 1919810
+ }
+ ```
+
+ `wts` 字段的值应为当前以秒为单位的 Unix 时间戳,如 `1702204169`
+
+ 复制一份参数列表,添加 `wts` 参数,即:
+
+ ```javascript
+ {
+ foo: '114',
+ bar: '514',
+ zab: 1919810,
+ wts: 1702204169
+ }
+ ```
+
+ 随后按键名升序排序后编码 URL Query,拼接前面得到的 `mixin_key`,如 `bar=514&foo=114&wts=1702204169&zab=1919810ea1db124af3c7062474693fa704f4ff8`,计算其 MD5 即为 `w_rid`。
+
+ 需要注意的是:如果参数值含中文或特殊字符等,编码字符字母应当**大写** (部分库会编码为小写字母),空格应当编码为 `%20`(部分库按 `application/x-www-form-urlencoded` 约定编码为 `+`)。
+
+ 例如:
+
+ ```javascript
+ {
+ foo: 'one one four',
+ bar: '五一四',
+ baz: 1919810
+ }
+ ```
+
+ 应该被编码为 `bar=%E4%BA%94%E4%B8%80%E5%9B%9B&baz=1919810&foo=one%20one%20four`。
+
+4. 向原始请求参数中添加 `w_rid`、`wts` 字段
+
+ 将上一步得到的 `w_rid` 以及前面的 `wts` 追加到**原始**请求参数编码得到的 URL Query 后即可,目前看来无需对原始请求参数排序。
+
+ 如前例最终得到 `bar=514&foo=114&zab=1919810&w_rid=8f6f2b5b3d485fe1886cec6a0be8c5d4&wts=1702204169`。
+
+## Demo
+
+含 [Python](#Python)、[JavaScript](#JavaScript)、[Golang](#Golang)、[C#](#CSharp)、[Java](#Java) 和 [Swift](#Swift) 语言编写的 Demo 。
+
+### Python
+
+需要`requests`依赖
+
+```python
+from functools import reduce
+from hashlib import md5
+import urllib.parse
+import time
+import requests
+
+mixinKeyEncTab = [
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
+ 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
+ 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
+ 36, 20, 34, 44, 52
+]
+
+def getMixinKey(orig: str):
+ '对 imgKey 和 subKey 进行字符顺序打乱编码'
+ return reduce(lambda s, i: s + orig[i], mixinKeyEncTab, '')[:32]
+
+def encWbi(params: dict, img_key: str, sub_key: str):
+ '为请求参数进行 wbi 签名'
+ mixin_key = getMixinKey(img_key + sub_key)
+ curr_time = round(time.time())
+ params['wts'] = curr_time # 添加 wts 字段
+ params = dict(sorted(params.items())) # 按照 key 重排参数
+ # 过滤 value 中的 "!'()*" 字符
+ params = {
+ k : ''.join(filter(lambda chr: chr not in "!'()*", str(v)))
+ for k, v
+ in params.items()
+ }
+ query = urllib.parse.urlencode(params) # 序列化参数
+ wbi_sign = md5((query + mixin_key).encode()).hexdigest() # 计算 w_rid
+ params['w_rid'] = wbi_sign
+ return params
+
+def getWbiKeys() -> tuple[str, str]:
+ '获取最新的 img_key 和 sub_key'
+ resp = requests.get('https://api.bilibili.com/x/web-interface/nav')
+ resp.raise_for_status()
+ json_content = resp.json()
+ img_url: str = json_content['data']['wbi_img']['img_url']
+ sub_url: str = json_content['data']['wbi_img']['sub_url']
+ img_key = img_url.rsplit('/', 1)[1].split('.')[0]
+ sub_key = sub_url.rsplit('/', 1)[1].split('.')[0]
+ return img_key, sub_key
+
+img_key, sub_key = getWbiKeys()
+
+signed_params = encWbi(
+ params={
+ 'foo': '114',
+ 'bar': '514',
+ 'baz': 1919810
+ },
+ img_key=img_key,
+ sub_key=sub_key
+)
+query = urllib.parse.urlencode(signed_params)
+print(signed_params)
+print(query)
+```
+
+输出内容分别是进行 Wbi 签名的后参数的 key-Value 以及 url query 形式
+
+```
+{'bar': '514', 'baz': '1919810', 'foo': '114', 'wts': '1702204169', 'w_rid': 'd3cbd2a2316089117134038bf4caf442'}
+bar=514&baz=1919810&foo=114&wts=1702204169&w_rid=d3cbd2a2316089117134038bf4caf442
+```
+
+### JavaScript
+
+需要 `axios`、`md5` 依赖
+
+```javascript
+import md5 from 'md5'
+
+const mixinKeyEncTab = [
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
+ 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
+ 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
+ 36, 20, 34, 44, 52
+]
+
+// 对 imgKey 和 subKey 进行字符顺序打乱编码
+const getMixinKey = (orig) => mixinKeyEncTab.map(n => orig[n]).join('').slice(0, 32)
+
+// 为请求参数进行 wbi 签名
+function encWbi(params, img_key, sub_key) {
+ const mixin_key = getMixinKey(img_key + sub_key),
+ curr_time = Math.round(Date.now() / 1000),
+ chr_filter = /[!'()*]/g
+
+ Object.assign(params, { wts: curr_time }) // 添加 wts 字段
+ // 按照 key 重排参数
+ const query = Object
+ .keys(params)
+ .sort()
+ .map(key => {
+ // 过滤 value 中的 "!'()*" 字符
+ const value = params[key].toString().replace(chr_filter, '')
+ return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
+ })
+ .join('&')
+
+ const wbi_sign = md5(query + mixin_key) // 计算 w_rid
+
+ return query + '&w_rid=' + wbi_sign
+}
+
+// 获取最新的 img_key 和 sub_key
+async function getWbiKeys() {
+ const res = await fetch('https://api.bilibili.com/x/web-interface/nav', {
+ headers: {
+ // SESSDATA 字段
+ Cookie: "SESSDATA=xxxxxx"
+ }
+ })
+ const { data: { wbi_img: { img_url, sub_url } } } = await res.json()
+
+ return {
+ img_key: img_url.slice(
+ img_url.lastIndexOf('/') + 1,
+ img_url.lastIndexOf('.')
+ ),
+ sub_key: sub_url.slice(
+ sub_url.lastIndexOf('/') + 1,
+ sub_url.lastIndexOf('.')
+ )
+ }
+}
+
+async function main() {
+ const web_keys = await getWbiKeys()
+ const params = { foo: '114', bar: '514', baz: 1919810 },
+ img_key = web_keys.img_key,
+ sub_key = web_keys.sub_key
+ const query = encWbi(params, img_key, sub_key)
+ console.log(query)
+}
+
+main()
+```
+
+输出内容为进行 Wbi 签名的后参数的 url query 形式
+
+```
+bar=514&baz=1919810&foo=114&wts=1684805578&w_rid=bb97e15f28edf445a0e4420d36f0157e
+```
+
+### Golang
+
+需要 `github.com/tidwall/gjson` 作为依赖
+
+```golang
+package main
+
+import (
+ "crypto/md5"
+ "encoding/hex"
+ "fmt"
+ "io"
+ "net/http"
+ "net/url"
+ "sort"
+ "strconv"
+ "strings"
+ "sync"
+ "time"
+
+ "github.com/tidwall/gjson"
+)
+
+var (
+ mixinKeyEncTab = []int{
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
+ 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
+ 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
+ 36, 20, 34, 44, 52,
+ }
+ cache sync.Map
+ lastUpdateTime time.Time
+)
+
+func main() {
+ urlStr := "https://api.bilibili.com/x/space/wbi/acc/info?mid=1850091"
+ newUrlStr, err := signAndGenerateURL(urlStr)
+ if err != nil {
+ fmt.Printf("Error: %s", err)
+ return
+ }
+ req, err := http.NewRequest("GET", newUrlStr, nil)
+ if err != nil {
+ fmt.Printf("Error: %s", err)
+ return
+ }
+ req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
+ response, err := http.DefaultClient.Do(req)
+ if err != nil {
+ fmt.Printf("Request failed: %s", err)
+ return
+ }
+ defer response.Body.Close()
+ body, err := io.ReadAll(response.Body)
+ if err != nil {
+ fmt.Printf("Failed to read response: %s", err)
+ return
+ }
+ fmt.Println(string(body))
+}
+
+func signAndGenerateURL(urlStr string) (string, error) {
+ urlObj, err := url.Parse(urlStr)
+ if err != nil {
+ return "", err
+ }
+ imgKey, subKey := getWbiKeysCached()
+ query := urlObj.Query()
+ params := map[string]string{}
+ for k, v := range query {
+ params[k] = v[0]
+ }
+ newParams := encWbi(params, imgKey, subKey)
+ for k, v := range newParams {
+ query.Set(k, v)
+ }
+ urlObj.RawQuery = query.Encode()
+ newUrlStr := urlObj.String()
+ return newUrlStr, nil
+}
+
+func encWbi(params map[string]string, imgKey, subKey string) map[string]string {
+ mixinKey := getMixinKey(imgKey + subKey)
+ currTime := strconv.FormatInt(time.Now().Unix(), 10)
+ params["wts"] = currTime
+
+ // Sort keys
+ keys := make([]string, 0, len(params))
+ for k := range params {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+
+ // Remove unwanted characters
+ for k, v := range params {
+ v = sanitizeString(v)
+ params[k] = v
+ }
+
+ // Build URL parameters
+ query := url.Values{}
+ for _, k := range keys {
+ query.Set(k, params[k])
+ }
+ queryStr := query.Encode()
+
+ // Calculate w_rid
+ hash := md5.Sum([]byte(queryStr + mixinKey))
+ params["w_rid"] = hex.EncodeToString(hash[:])
+ return params
+}
+
+func getMixinKey(orig string) string {
+ var str strings.Builder
+ for _, v := range mixinKeyEncTab {
+ if v < len(orig) {
+ str.WriteByte(orig[v])
+ }
+ }
+ return str.String()[:32]
+}
+
+func sanitizeString(s string) string {
+ unwantedChars := []string{"!", "'", "(", ")", "*"}
+ for _, char := range unwantedChars {
+ s = strings.ReplaceAll(s, char, "")
+ }
+ return s
+}
+
+func updateCache() {
+ if time.Since(lastUpdateTime).Minutes() < 10 {
+ return
+ }
+ imgKey, subKey := getWbiKeys()
+ cache.Store("imgKey", imgKey)
+ cache.Store("subKey", subKey)
+ lastUpdateTime = time.Now()
+}
+
+func getWbiKeysCached() (string, string) {
+ updateCache()
+ imgKeyI, _ := cache.Load("imgKey")
+ subKeyI, _ := cache.Load("subKey")
+ return imgKeyI.(string), subKeyI.(string)
+}
+
+func getWbiKeys() (string, string) {
+ resp, err := http.Get("https://api.bilibili.com/x/web-interface/nav")
+ if err != nil {
+ fmt.Printf("Error: %s", err)
+ return "", ""
+ }
+ defer resp.Body.Close()
+ body, err := io.ReadAll(resp.Body)
+ if err != nil {
+ fmt.Printf("Error: %s", err)
+ return "", ""
+ }
+ json := string(body)
+ imgURL := gjson.Get(json, "data.wbi_img.img_url").String()
+ subURL := gjson.Get(json, "data.wbi_img.sub_url").String()
+ imgKey := strings.Split(strings.Split(imgURL, "/")[len(strings.Split(imgURL, "/"))-1], ".")[0]
+ subKey := strings.Split(strings.Split(subURL, "/")[len(strings.Split(subURL, "/"))-1], ".")[0]
+ return imgKey, subKey
+}
+```
+
+### CSharp
+
+无需依赖外部库
+
+```cs
+using System.Security.Cryptography;
+using System.Text;
+using System.Text.Json.Nodes;
+
+class Program
+{
+ private static HttpClient _httpClient = new();
+
+ private static readonly int[] MixinKeyEncTab =
+ {
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39,
+ 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63,
+ 57, 62, 11, 36, 20, 34, 44, 52
+ };
+
+ //对 imgKey 和 subKey 进行字符顺序打乱编码
+ private static string GetMixinKey(string orig)
+ {
+ return MixinKeyEncTab.Aggregate("", (s, i) => s + orig[i])[..32];
+ }
+
+ private static Dictionary EncWbi(Dictionary parameters, string imgKey,
+ string subKey)
+ {
+ string mixinKey = GetMixinKey(imgKey + subKey);
+ string currTime = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
+ //添加 wts 字段
+ parameters["wts"] = currTime;
+ // 按照 key 重排参数
+ parameters = parameters.OrderBy(p => p.Key).ToDictionary(p => p.Key, p => p.Value);
+ //过滤 value 中的 "!'()*" 字符
+ parameters = parameters.ToDictionary(
+ kvp => kvp.Key,
+ kvp => new string(kvp.Value.Where(chr => !"!'()*".Contains(chr)).ToArray())
+ );
+ // 序列化参数
+ string query = new FormUrlEncodedContent(parameters).ReadAsStringAsync().Result;
+ //计算 w_rid
+ using MD5 md5 = MD5.Create();
+ byte[] hashBytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query + mixinKey));
+ string wbiSign = BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
+ parameters["w_rid"] = wbiSign;
+
+ return parameters;
+ }
+
+ // 获取最新的 img_key 和 sub_key
+ private static async Task<(string, string)> GetWbiKeys()
+ {
+ HttpResponseMessage responseMessage = await _httpClient.SendAsync(new HttpRequestMessage
+ {
+ Method = HttpMethod.Get,
+ RequestUri = new Uri("https://api.bilibili.com/x/web-interface/nav"),
+ });
+
+ JsonNode response = JsonNode.Parse(await responseMessage.Content.ReadAsStringAsync())!;
+
+ string imgUrl = (string)response["data"]!["wbi_img"]!["img_url"]!;
+ imgUrl = imgUrl.Split("/")[^1].Split(".")[0];
+
+ string subUrl = (string)response["data"]!["wbi_img"]!["sub_url"]!;
+ subUrl = subUrl.Split("/")[^1].Split(".")[0];
+ return (imgUrl, subUrl);
+ }
+
+ public static async Task Main()
+ {
+ var (imgKey, subKey) = await GetWbiKeys();
+
+ Dictionary signedParams = EncWbi(
+ parameters: new Dictionary
+ {
+ { "foo", "114" },
+ { "bar", "514" },
+ { "baz", "1919810" }
+ },
+ imgKey: imgKey,
+ subKey: subKey
+ );
+
+ string query = await new FormUrlEncodedContent(signedParams).ReadAsStringAsync();
+
+ Console.WriteLine(query);
+ }
+}
+```
+输出内容为进行 Wbi 签名的后参数的 url query 形式
+
+```
+bar=514&baz=1919810&foo=114&wts=1687541921&w_rid=26e82b1b9b3a11dbb1807a9228a40d3b
+```
+
+### Java
+
+需要 `hutool` 依赖
+
+```java
+package com.example.demo;
+
+import cn.hutool.crypto.SecureUtil;
+
+import java.util.*;
+
+public class WbiTest {
+ private static final int[] mixinKeyEncTab = new int[]{
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
+ 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
+ 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
+ 36, 20, 34, 44, 52
+ };
+
+ public static String getMixinKey(String imgKey, String subKey) {
+ String s = imgKey + subKey;
+ StringBuilder key = new StringBuilder();
+ for (int i = 0; i < 32; i++) {
+ key.append(s.charAt(mixinKeyEncTab[i]));
+ }
+ return key.toString();
+ }
+
+ public static void main(String[] args) {
+ String imgKey = "653657f524a547ac981ded72ea172057";
+ String subKey = "6e4909c702f846728e64f6007736a338";
+ String mixinKey = getMixinKey(imgKey, subKey);
+ System.out.println(mixinKey);
+ //72136226c6a73669787ee4fd02a74c27
+ //{
+ // foo: 'one one four',
+ // bar: '五一四',
+ // baz: 1919810
+ //}
+ LinkedHashMap map = new LinkedHashMap<>();
+ map.put("foo", "one one four");
+ map.put("bar", "五一四");
+ map.put("baz", 1919810);
+ map.put("wts", System.currentTimeMillis() / 1000);
+ StringJoiner param = new StringJoiner("&");
+ //排序 + 拼接字符串
+ map.entrySet().stream()
+ .sorted(Map.Entry.comparingByKey())
+ .forEach(entry -> param.add(entry.getKey() + "=" + URLUtil.encode(entry.getValue().toString())));
+ String s = param + mixinKey;
+ String wbiSign = SecureUtil.md5(s);
+ System.out.println(wbiSign);
+ String finalParam = param + "&w_rid=" + wbiSign;
+ System.out.println(finalParam);
+ }
+}
+```
+
+### PHP
+
+来自[SocialSisterYi/bilibili-API-collect#813](https://github.com/SocialSisterYi/bilibili-API-collect/issues/813)
+
+```php
+getWbiKeys();
+ return $this->encWbi($query, $wbi_keys['img_key'], $wbi_keys['sub_key']);
+ }
+
+ private function getMixinKey($orig) {
+ $t = '';
+ foreach ($this->mixinKeyEncTab as $n) $t .= $orig[$n];
+ return substr($t, 0, 32);
+ }
+
+ private function encWbi($params, $img_key, $sub_key) {
+ $mixin_key = $this->getMixinKey($img_key . $sub_key);
+ $curr_time = time();
+ $chr_filter = "/[!'()*]/";
+
+ $query = [];
+ $params['wts'] = $curr_time;
+
+ ksort($params);
+
+ foreach ($params as $key => $value) {
+ $value = preg_replace($chr_filter, '', $value);
+ $query[] = urlencode($key) . '=' . urlencode($value);
+ }
+
+ $query = implode('&', $query);
+ $wbi_sign = md5($query . $mixin_key);
+
+ return $query . '&w_rid=' . $wbi_sign;
+ }
+
+ private function getWbiKeys() {
+ $resp = @json_decode(
+ $this->curl_get(
+ 'https://api.bilibili.com/x/web-interface/nav',
+ null,
+ 'https://www.bilibili.com/'
+ ), true
+ );
+
+ if (!$resp) throw new Exception('请求失败');
+
+ $img_url = $resp['data']['wbi_img']['img_url'];
+ $sub_url = $resp['data']['wbi_img']['sub_url'];
+
+ return [
+ 'img_key' => substr(basename($img_url), 0, strpos(basename($img_url), '.')),
+ 'sub_key' => substr(basename($sub_url), 0, strpos(basename($sub_url), '.'))
+ ];
+ }
+
+ private function curl_get($url, $cookies = null, $referer = 'https://www.bilibili.com/', $ua = null, $proxy = null, $header = []) {
+ $ch = curl_init();
+ $header[] = "Accept: */*";
+ $header[] = "Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7";
+ $header[] = "Connection: close";
+ $header[] = "Cache-Control: max-age=0";
+ curl_setopt_array($ch, [
+ CURLOPT_HTTPGET => 1,
+ CURLOPT_CUSTOMREQUEST => 'GET',
+ CURLOPT_RETURNTRANSFER => 1,
+ CURLOPT_HTTPHEADER => $header,
+ CURLOPT_ENCODING => '',
+ CURLOPT_URL => $url,
+ CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.39',
+ CURLOPT_TIMEOUT => 15
+ ]);
+
+ if ($cookies) curl_setopt(
+ $ch,
+ CURLOPT_COOKIE,
+ $cookies
+ );
+
+ if ($referer) curl_setopt_array($ch, [
+ CURLOPT_AUTOREFERER => $referer,
+ CURLOPT_REFERER => $referer
+ ]);
+
+ $content = curl_exec($ch);
+ curl_close($ch);
+ return $content;
+ }
+}
+
+$c = new Bilibili();
+echo $c->reQuery(['foo' => '114', 'bar' => '514', 'baz' => 1919810]);
+// bar=514&baz=1919810&foo=114&wts=1700384803&w_rid=4614cb98d60a43e50c3a3033fe3d116b
+```
+
+### Rust
+
+需要 serde、serde_json、reqwest、tokio 以及 md5
+
+```rust
+use reqwest::header::USER_AGENT;
+use serde::Deserialize;
+use std::time::{SystemTime, UNIX_EPOCH};
+
+const MIXIN_KEY_ENC_TAB: [usize; 64] = [
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29,
+ 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25,
+ 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52,
+];
+
+#[derive(Deserialize)]
+struct WbiImg {
+ img_url: String,
+ sub_url: String,
+}
+
+#[derive(Deserialize)]
+struct Data {
+ wbi_img: WbiImg,
+}
+
+#[derive(Deserialize)]
+struct ResWbi {
+ data: Data,
+}
+
+// 对 imgKey 和 subKey 进行字符顺序打乱编码
+fn get_mixin_key(orig: &[u8]) -> String {
+ MIXIN_KEY_ENC_TAB
+ .iter()
+ .map(|&i| orig[i] as char)
+ .collect::()
+}
+
+fn get_url_encoded(s: &str) -> String {
+ s.chars()
+ .filter_map(|c| match c.is_ascii_alphanumeric() || "-_.~".contains(c) {
+ true => Some(c.to_string()),
+ false => {
+ // 过滤 value 中的 "!'()*" 字符
+ if "!'()*".contains(c) {
+ return None;
+ }
+ let encoded = c
+ .encode_utf8(&mut [0; 4])
+ .bytes()
+ .fold("".to_string(), |acc, b| acc + &format!("%{:02X}", b));
+ Some(encoded)
+ }
+ })
+ .collect::()
+}
+
+// 为请求参数进行 wbi 签名
+fn encode_wbi(params: &mut Vec<(&str, String)>, (img_key, sub_key): (String, String)) -> String {
+ let mixin_key = get_mixin_key((img_key + &sub_key).as_bytes());
+ let cur_time = match SystemTime::now().duration_since(UNIX_EPOCH) {
+ Ok(t) => t.as_secs(),
+ Err(_) => panic!("SystemTime before UNIX EPOCH!"),
+ };
+ // 添加当前时间戳
+ params.push(("wts", cur_time.to_string()));
+ // 重新排序
+ params.sort_by(|a, b| a.0.cmp(b.0));
+ let query = params.iter().fold(String::from(""), |acc, (k, v)| {
+ acc + format!("{}={}&", get_url_encoded(k), get_url_encoded(v)).as_str()
+ });
+
+ let web_sign = format!("{:?}", md5::compute(query.clone() + &mixin_key));
+
+ query + &format!("w_rid={}", web_sign)
+}
+
+async fn get_wbi_keys() -> Result<(String, String), reqwest::Error> {
+ let client = reqwest::Client::new();
+ let ResWbi { data:Data{wbi_img} } = client
+ .get("https://api.bilibili.com/x/web-interface/nav")
+ .header(USER_AGENT,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
+ // SESSDATA=xxxxx
+ .header("Cookie", "SESSDATA=xxxxx")
+ .send()
+ .await?
+ .json::()
+ .await?;
+
+ Ok((wbi_img.img_url, wbi_img.sub_url))
+}
+
+#[tokio::main]
+async fn main() {
+ let urls = get_wbi_keys().await.unwrap();
+ let mut params = vec![
+ ("foo", String::from("114")),
+ ("bar", String::from("514")),
+ ("baz", String::from("1919810")),
+ ];
+
+ let query = encode_wbi(&mut params, urls);
+
+ println!("{}", query);
+}
+```
+
+### Swift
+
+需要 [Alamofire](https://github.com/Alamofire/Alamofire) 和 [SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON) 库
+
+```swift
+import Foundation
+import CommonCrypto
+import Alamofire
+import SwiftyJSON
+
+func biliWbiSign(param: String, completion: @escaping (String?) -> Void) {
+ func getMixinKey(orig: String) -> String {
+ return String(mixinKeyEncTab.map { orig[orig.index(orig.startIndex, offsetBy: $0)] }.prefix(32))
+ }
+
+ func encWbi(params: [String: Any], imgKey: String, subKey: String) -> [String: Any] {
+ var params = params
+ let mixinKey = getMixinKey(orig: imgKey + subKey)
+ let currTime = round(Date().timeIntervalSince1970)
+ params["wts"] = currTime
+ params = params.sorted { $0.key < $1.key }.reduce(into: [:]) { $0[$1.key] = $1.value }
+ params = params.mapValues { String(describing: $0).filter { !"!'()*".contains($0) } }
+ let query = params.map { "\($0.key)=\($0.value)" }.joined(separator: "&")
+ let wbiSign = calculateMD5(string: query + mixinKey)
+ params["w_rid"] = wbiSign
+ return params
+ }
+
+ func getWbiKeys(completion: @escaping (Result<(imgKey: String, subKey: String), Error>) -> Void) {
+ AF.request("https://api.bilibili.com/x/web-interface/nav").responseJSON { response in
+ switch response.result {
+ case .success(let value):
+ let json = JSON(value)
+ let imgURL = json["data"]["wbi_img"]["img_url"].string ?? ""
+ let subURL = json["data"]["wbi_img"]["sub_url"].string ?? ""
+ let imgKey = imgURL.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? ""
+ let subKey = subURL.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? ""
+ completion(.success((imgKey, subKey)))
+ case .failure(let error):
+ completion(.failure(error))
+ }
+ }
+ }
+
+ func calculateMD5(string: String) -> String {
+ let data = Data(string.utf8)
+ var digest = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH))
+ _ = data.withUnsafeBytes {
+ CC_MD5($0.baseAddress, CC_LONG(data.count), &digest)
+ }
+ return digest.map { String(format: "%02hhx", $0) }.joined()
+ }
+
+ let mixinKeyEncTab = [
+ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
+ 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
+ 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
+ 36, 20, 34, 44, 52
+ ]
+
+ getWbiKeys { result in
+ switch result {
+ case .success(let keys):
+ let spdParam = param.components(separatedBy: "&")
+ var spdDicParam = [String: String]()
+ spdParam.forEach { pair in
+ let components = pair.components(separatedBy: "=")
+ if components.count == 2 {
+ spdDicParam[components[0]] = components[1]
+ }
+ }
+
+ let signedParams = encWbi(params: spdDicParam, imgKey: keys.imgKey, subKey: keys.subKey)
+ let query = signedParams.map { "\($0.key)=\($0.value)" }.joined(separator: "&")
+ completion(query)
+ case .failure(let error):
+ print("Error getting keys: \(error)")
+ completion(nil)
+ }
+ }
+}
+
+```
diff --git a/docs/other/time_stamp.md b/docs/misc/time_stamp.md
similarity index 100%
rename from docs/other/time_stamp.md
rename to docs/misc/time_stamp.md
diff --git a/docs/note/action.md b/docs/note/action.md
index 7935bab..15c40e9 100644
--- a/docs/note/action.md
+++ b/docs/note/action.md
@@ -119,6 +119,7 @@ curl 'https://api.bilibili.com/x/note/del' \
查看响应示例:
+
```json
{
"code": 0,
diff --git a/docs/other/API_sign.md b/docs/other/API_sign.md
deleted file mode 100644
index 0549011..0000000
--- a/docs/other/API_sign.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# API 签名与鉴权
-
-部分客户端专用的 rest api 存在基于 sign 的鉴权,需要使用规定的`appkey`及其对应的`appsec`与原始请求参数进行签名计算
-
-不同`appkey`对应不同的 app (如客户端、概念版、必剪、漫画、bililink等)
-
-不同平台同 app 也会存在不同的 `appkey`(如安卓端、ios端、TV端等)
-
-同平台同 app 下不同功能也会存在不同的 `appkey`(如登录专用、取流专用等)
-
-**appkey与appsec一一对应**
-
-## API签名的计算方式
-
-首先为参数中添加`appkey`字段,然后按照参数的 key 重新排序,再将重排序后的参数使用 url query 格式序列化拼接与该 appkey 相对应的 appsec (盐值) 进行**md5 hash计算**(32位小写),该 hash 便是 API 签名
-
-为参数尾部增添`sign`字段,它的值为上一步计算所得的 hash,一并作为表单提交
-
-**实例:**
-
-使用 appkey = `1d8b6e7d45233436`, appsec = `560c52ccd288fed045859ed18bffd973` 对如下 `params` 参数进行签名
-
-```python
-import hashlib
-import urllib.parse
-
-def appsign(params, appkey, appsec):
- '为请求参数进行 api 签名'
- params.update({'appkey': appkey})
- params = dict(sorted(params.items())) # 重排序参数 key
- query = urllib.parse.urlencode(params) # 序列化参数
- sign = hashlib.md5((query+appsec).encode()).hexdigest() # 计算 api 签名
- params.update({'sign':sign})
- return params
-
-appkey = '1d8b6e7d45233436'
-appsec = '560c52ccd288fed045859ed18bffd973'
-params = {
- 'id':114514,
- 'str':'1919810',
- 'test':'いいよ,こいよ',
-}
-signed_params = appsign(params, appkey, appsec)
-query = urllib.parse.urlencode(signed_params)
-print(signed_params)
-print(query)
-```
-
-输出以下内容,分别是进行 api 签名后参数的 dict 以及 url query 格式
-
-```
-{'appkey': '1d8b6e7d45233436', 'id': 114514, 'str': '1919810', 'test': 'いいよ,こいよ', 'sign': '01479cf20504d865519ac50f33ba3a7d'}
-appkey=1d8b6e7d45233436&id=114514&str=1919810&test=%E3%81%84%E3%81%84%E3%82%88%EF%BC%8C%E3%81%93%E3%81%84%E3%82%88&sign=01479cf20504d865519ac50f33ba3a7d
-```
-
-## 已知的APPKey
-
-| appkey | appsec(sign盐值) | 平台 | 应用 | 备注 |
-|------------------|----------------------------------|-----|----------|------|
-| 07da50c9a0bf829f | 25bdede4e1581c836cab73a48790ca6e | 安卓 | 概念版 | |
-| 1d8b6e7d45233436 | 560c52ccd288fed045859ed18bffd973 | 安卓 | 客户端 | 一般用途 |
-| 178cf125136ca8ea | 34381a26236dd1171185c0beb042e1c6 | 安卓 | 概念版 | |
-| 27eb53fc9058f8c3 | c2ed53a74eeefe3cf99fbd01d8c9c375 | ios | 客户端 | 一般用途 |
-| 37207f2beaebf8d7 | e988e794d4d4b6dd43bc0e89d6e90c43 | 安卓 | biliLink | |
-| 4409e2ce8ffd12b8 | 59b43e04ad6965f34319062b478f83dd | TV | 客户端 | |
-| 57263273bc6b67f6 | a0488e488d1567960d3a765e8d129f90 | 安卓 | 客户端 | |
-| 8d23902c1688a798 | 710f0212e62bd499b8d3ac6e1db9302a | 安卓 | 车机版 | |
-| 5dce947fe22167f9 | | 安卓 | 必剪 | |
-| 7d336ec01856996b | a1ce6983bc89e20a36c37f40c4f1a0dd | 安卓 | 概念版 | |
-| 85eb6835b0a1034e | 2ad42749773c441109bdc0191257a664 | | | |
-| 8e16697a1b4f8121 | f5dd03b752426f2e623d7badb28d190a | 安卓 | 国际版 | |
-| aae92bc66f3edfab | af125a0d5279fd576c1b4418a3e8276d | PC | 投稿工具 | |
-| ae57252b0c09105d | c75875c596a69eb55bd119e74b07cfe3 | 安卓 | 国际版 | |
-| bb3101000e232e27 | 36efcfed79309338ced0380abd824ac1 | 安卓 | 国际版 | |
-| bca7e84c2d947ac6 | 60698ba2f68e01ce44738920a0ffe768 | 安卓 | 客户端 | 登录专用 |
-| cc578d267072c94d | ffb6bb4c4edae2566584dbcacfc6a6ad | 安卓 | 轻视频 | |
-| cc8617fd6961e070 | 3131924b941aac971e45189f265262be | 安卓 | 漫画 | |
-| iVGUTjsxvpLeuDCf | aHRmhWMLkdeMuILqORnYZocwMBpMEOdt | 安卓 | 客户端 | 取流专用 |
-| YvirImLGlLANCLvM | JNlZNgfNGKZEpaDTkCdPQVXntXhuiJEM | ios | 客户端 | 取流专用 |
diff --git a/docs/other/bvid_desc.md b/docs/other/bvid_desc.md
deleted file mode 100644
index 25bb0e1..0000000
--- a/docs/other/bvid_desc.md
+++ /dev/null
@@ -1,362 +0,0 @@
-# bvid说明
-
-2020-03-23 B站推出了全新的稿件视频id`bvid`来接替之前的`avid`,其意义与之相同
-
-详见:
-
-1. [【升级公告】AV号全面升级至BV号(专栏)](https://www.bilibili.com/read/cv5167957)
-2. [【升级公告】AV号全面升级至BV号](https://www.bilibili.com/blackboard/activity-BV-PC.html)
-
-## 概述
-
-### 格式
-
-“bvid”恒为长度为 12 的字符串,前两个字母为大写“BV”,后 10 个为 base58 计算结果
-
-### 实质
-
-“bvid"为“avid”的base58编码,可通过算法进行相互转化
-
-### avid发号方式的变化
-
-从 2009-09-09 09:09:09 [av2](https://www.bilibili.com/video/av2) 的发布到 2020-03-28 19:45:02 [av99999999](https://www.bilibili.com/video/av99999999) 的发布B站结束了以投稿时间为顺序的avid发放,改为随机发放avid
-
-~~暗示B站东方要完?泪目~~
-
-## 算法概述
-
-算法以及程序主要参考[知乎@mcfx的回答](https://www.zhihu.com/question/381784377/answer/1099438784)
-
-### av->bv算法
-
-注:本算法及示例程序仅能编解码`avid < 29460791296`,且暂无法验证`avid >= 29460791296`的正确性
-
-1. a = (avid ⊕ 177451812) + 8728348608
-2. 以 i 为循环变量循环 6 次 b[i] = (a / 58 ^ i) % 58
-3. 将 b[i] 中各个数字转换为以下码表中的字符
-
-码表:
-
-> fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF
-
-4. 初始化字符串 b[i]=`BV1 4 1 7 `
-
-5. 按照以下字符顺序编码表编码并填充至 b[i]
-
-字符顺序编码表:
-
-> 0 -> 11
->
-> 1 -> 10
->
-> 2 -> 3
->
-> 3 -> 8
->
-> 4 -> 4
->
-> 5 -> 6
-
-
-### bv->av算法
-
-为以上算法的逆运算
-
-## 编程实现
-
-使用 Python、C、TypeScript、Java、Kotlin 以及 Golang 等语言作为示例,欢迎社区提交更多例程
-
-### Python
-
-```python
-table = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF' # 码表
-tr = {} # 反查码表
-# 初始化反查码表
-for i in range(58):
- tr[table[i]] = i
-s = [11, 10, 3, 8, 4, 6] # 位置编码表
-XOR = 177451812 # 固定异或值
-ADD = 8728348608 # 固定加法值
-
-def bv2av(x):
- r = 0
- for i in range(6):
- r += tr[x[s[i]]] * 58 ** i
- return (r - ADD) ^ XOR
-
-def av2bv(x):
- x = (x ^ XOR) + ADD
- r = list('BV1 4 1 7 ')
- for i in range(6):
- r[s[i]] = table[x // 58 ** i % 58]
- return ''. join(r)
-
-print(av2bv(170001))
-print(bv2av('BV17x411w7KC'))
-```
-
-输出为:
-
-```
-BV17x411w7KC
-170001
-```
-
-### C
-
-```c
-#include
-#include
-#include
-#include
-
-const char table[] = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"; // 码表
-char tr[124]; // 反查码表
-const unsigned long long XOR = 177451812; // 固定异或值
-const unsigned long long ADD = 8728348608; // 固定加法值
-const int s[] = {11, 10, 3, 8, 4, 6}; // 位置编码表
-
-// 初始化反查码表
-void tr_init() {
- for (int i = 0; i < 58; i++)
- tr[table[i]] = i;
-}
-
-unsigned long long bv2av(char bv[]) {
- unsigned long long r = 0;
- unsigned long long av;
- for (int i = 0; i < 6; i++)
- r += tr[bv[s[i]]] * (unsigned long long)pow(58, i);
- av = (r - ADD) ^ XOR;
- return av;
-}
-
-char *av2bv(unsigned long long av) {
- char *result = (char*)malloc(13);
- strcpy(result,"BV1 4 1 7 ");
- av = (av ^ XOR) + ADD;
- for (int i = 0; i < 6; i++)
- result[s[i]] = table[(unsigned long long)(av / (unsigned long long)pow(58, i)) % 58];
- return result;
-}
-
-int main() {
- tr_init();
- printf("%s\n", av2bv(170001));
- printf("%u\n", bv2av("BV17x411w7KC"));
- return 0;
-}
-```
-
-输出为:
-
-```
-BV17x411w7KC
-170001
-```
-
-### TypeScript
-
-感谢[#417](https://github.com/SocialSisterYi/bilibili-API-collect/issues/417#issuecomment-1186475063)提供
-
-```typescript
-export default class BvCode {
- private TABEL = 'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'; // 码表
- private TR: Record = {}; // 反查码表
- private S = [11, 10, 3, 8, 4, 6]; // 位置编码表
- private XOR = 177451812; // 固定异或值
- private ADD = 8728348608; // 固定加法值
- constructor() {
- // 初始化反查码表
- const len = this.TABEL.length;
- for (let i = 0; i < len; i++) {
- this.TR[this.TABEL[i]] = i;
- }
- }
- av2bv(av: number): string {
- const x_ = (av ^ this.XOR) + this.ADD;
- const r = ['B', 'V', '1', , , '4', , '1', , '7'];
- for (let i = 0; i < 6; i++) {
- r[this.S[i]] = this.TABEL[Math.floor(x_ / 58 ** i) % 58];
- }
- return r.join('');
- }
- bv2av(bv: string): number {
- let r = 0;
- for (let i = 0; i < 6; i++) {
- r += this.TR[bv[this.S[i]]] * 58 ** i;
- }
- return (r - this.ADD) ^ this.XOR;
- }
-}
-
-const bvcode = new BvCode();
-
-console.log(bvcode.av2bv(170001));
-console.log(bvcode.bv2av('BV17x411w7KC'));
-```
-
-输出为:
-
-```
-BV17x411w7KC
-170001
-```
-
-### Java
-
-```java
-/**
- * 算法来自:https://www.zhihu.com/question/381784377/answer/1099438784
- */
-public class Util {
- private static final String TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
- private static final int[] S = new int[]{11, 10, 3, 8, 4, 6};
- private static final int XOR = 177451812;
- private static final long ADD = 8728348608L;
- private static final Map MAP = new HashMap<>();
-
- static {
- for (int i = 0; i < 58; i++) {
- MAP.put(TABLE.charAt(i), i);
- }
- }
-
- public static String aidToBvid(int aid) {
- long x = (aid ^ XOR) + ADD;
- char[] chars = new char[]{'B', 'V', '1', ' ', ' ', '4', ' ', '1', ' ', '7', ' ', ' '};
- for (int i = 0; i < 6; i++) {
- int pow = (int) Math.pow(58, i);
- long i1 = x / pow;
- int index = (int) (i1 % 58);
- chars[S[i]] = TABLE.charAt(index);
- }
- return String.valueOf(chars);
- }
-
- public static int bvidToAid(String bvid) {
- long r = 0;
- for (int i = 0; i < 6; i++) {
- r += MAP.get(bvid.charAt(S[i])) * Math.pow(58, i);
- }
- return (int) ((r - ADD) ^ XOR);
- }
-}
-```
-
-### Kotlin
-```kotlin
-/**
- * 此程序非完全原创,改编自GH站内某大佬的Java程序,修改了部分代码,且转换为Kotlin
- * 算法来源同上
- */
-object VideoUtils {
- //这里是由知乎大佬不知道用什么方法得出的转换用数字
- var ss = intArrayOf(11, 10, 3, 8, 4, 6, 2, 9, 5, 7)
- var xor: Long = 177451812 //二进制时加减数1
-
- var add = 8728348608L //十进制时加减数2
-
- //变量初始化工作,加载哈希表
- private const val table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
- private val mp = HashMap()
- private val mp2 = HashMap()
-
- //现在,定义av号和bv号互转的方法
-//定义一个power乘方方法,这是转换进制必要的
- fun power(a: Int, b: Int): Long {
- var power: Long = 1
- for (c in 0 until b) power *= a.toLong()
- return power
- }
-
- //bv转av方法
- fun bv2av(s: String): String {
- var r: Long = 0
- //58进制转换
- for (i in 0..57) {
- val s1 = table.substring(i, i + 1)
- mp[s1] = i
- }
- for (i in 0..5) {
- r += mp[s.substring(ss[i], ss[i] + 1)]!! * power(58, i)
- }
- //转换完成后,需要处理,带上两个随机数
- return (r - add xor xor).toString()
- }
-
- //av转bv方法
- fun av2bv(st: String): String {
- try {
- var s = java.lang.Long.valueOf(st.split("av".toRegex()).dropLastWhile { it.isEmpty() }
- .toTypedArray()[1])
- val sb = StringBuffer("BV1 4 1 7 ")
- //逆向思路,先将随机数还原
- s = (s xor xor) + add
- //58进制转回
- for (i in 0..57) {
- val s1 = table.substring(i, i + 1)
- mp2[i] = s1
- }
- for (i in 0..5) {
- val r = mp2[(s / power(58, i) % 58).toInt()]
- sb.replace(ss[i], ss[i] + 1, r!!)
- }
- return sb.toString()
- } catch (e: ArrayIndexOutOfBoundsException) {
- return ""
- }
- }
-
-}
-```
-
-### Golang
-```go
-package main
-
-import "math"
-
-const TABLE = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF"
-var S = [11]uint{11, 10, 3, 8, 4, 6}
-const XOR = 177451812
-const ADD = 8728348608
-
-var TR = map[string]int64{}
-
-// 初始化 TR
-func init() {
- for i := 0; i < 58; i++ {
- TR[TABLE[i:i+1]] = int64(i)
- }
-}
-
-func BV2AV(bv string) int64 {
- r := int64(0)
- for i := 0; i < 6; i++ {
- r += TR[bv[S[i]:S[i]+1]] * int64(math.Pow(58, float64(i)))
- }
- return (r - ADD) ^ XOR
-}
-
-func AV2BV(av int64) string {
- x := (av ^ XOR) + ADD
- r := []rune("BV1 4 1 7 ")
- for i := 0; i < 6; i++ {
- r[S[i]] = rune(TABLE[x/int64(math.Pow(58, float64(i)))%58])
- }
- return string(r)
-}
-
-func main() {
- println(AV2BV(170001))
- println(BV2AV("BV17x411w7KC"))
-}
-```
-
-输出为:
-
-```
-BV17x411w7KC
-170001
-```
diff --git a/docs/search/hot.md b/docs/search/hot.md
index e9bcfac..02fdf2e 100644
--- a/docs/search/hot.md
+++ b/docs/search/hot.md
@@ -2,10 +2,14 @@
## 获取默认搜索内容(web端)
-> https://api.bilibili.com/x/web-interface/search/default
+> https://api.bilibili.com/x/web-interface/wbi/search/default
+
+> ~~https://api.bilibili.com/x/web-interface/search/default~~ (旧链接)
*请求方式:GET*
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
默认搜索为搜索框中默认填充内容,用于官方推荐内容,若不输入点击搜索按钮跳转为`url`中的链接
**json回复:**
@@ -353,6 +357,12 @@ curl 'https://s.search.bilibili.com/main/hotword'
带有转义
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ---------------- | ------ | ---- |
+| limit | num | 热搜数量 | 非必要 | 1~100 |
+
**json回复:**
根对象:
@@ -376,16 +386,16 @@ curl 'https://s.search.bilibili.com/main/hotword'
| ---- | ---- | --------------- | ------------ |
| 0 | obj | 榜单第1名 | |
| n | obj | 榜单第(n+1)名 | 按照名次顺序 |
-| 20 | obj | 榜单第20名 | 最后一项 |
+| 20/limit | obj | 榜单第20名 | 最后一项 |
`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | -------- | ------- |
-| position | num | 名次 | 1-20 |
+| position | num | 名次 | 1-20/limit |
| keyword | str | 关键词 | |
| show_name | str | 完整关键词| |
-| word_type | num | 条目属性 | 均返回8 |
+| word_type | num | 条目属性 | 4:新
5:热
6:雾?
8:默认 |
| icon | str | 图标url | |
| hot_id | num | 热词id | 大概是吧? |
@@ -400,163 +410,165 @@ curl 'https://app.bilibili.com/x/v2/search/trending/ranking'
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "trackid": "12666380188451258075",
- "list": [
- {
- "position": 1,
- "keyword": "流浪地球2刘德华",
- "show_name": "流浪地球2刘德华造型",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png",
- "hot_id": 11003
- },
- {
- "position": 2,
- "keyword": "QQ飞车手游飞跃黄河",
- "show_name": "QQ飞车手游飞跃黄河",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png",
- "hot_id": 11012
- },
- {
- "position": 3,
- "keyword": "西工大遭网络攻击最新调查",
- "show_name": "西工大遭网络攻击最新调查",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png",
- "hot_id": 10996
- },
- {
- "position": 4,
- "keyword": "EDG 起诉",
- "show_name": "EDGJieJie已起诉多家企业",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png",
- "hot_id": 11004
- },
- {
- "position": 5,
- "keyword": "隐入尘烟",
- "show_name": "隐入尘烟全平台下架",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/e9e7a2d8497d4063421b685e72680bf1cfb99a0d.png",
- "hot_id": 10992
- },
- {
- "position": 6,
- "keyword": "原神半年内最良心封神池",
- "show_name": "原神半年内最良心封神池",
- "word_type": 8,
- "hot_id": 10987
- },
- {
- "position": 7,
- "keyword": "高校回应设国内首个元宇宙院系",
- "show_name": "高校回应设国内首个元宇宙院系",
- "word_type": 8,
- "hot_id": 10988
- },
- {
- "position": 8,
- "keyword": "美宇宙飞船成功撞击小行星",
- "show_name": "美宇宙飞船成功撞击小行星",
- "word_type": 8,
- "hot_id": 10994
- },
- {
- "position": 9,
- "keyword": "你薅的羊毛可能已违法",
- "show_name": "你薅的羊毛可能已违法",
- "word_type": 8,
- "hot_id": 10991
- },
- {
- "position": 10,
- "keyword": "火锅店剩锅底重新给顾客",
- "show_name": "火锅店剩锅底重新给顾客",
- "word_type": 1,
- "hot_id": 11014
- },
- {
- "position": 11,
- "keyword": "海月",
- "show_name": "王者海月逆天",
- "word_type": 8,
- "hot_id": 10999
- },
- {
- "position": 12,
- "keyword": "周琦重返NBL",
- "show_name": "徐静雨评周琦重返NBL",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png",
- "hot_id": 11007
- },
- {
- "position": 13,
- "keyword": "小超梦剑魔连招",
- "show_name": "小超梦剑魔QA连招",
- "word_type": 8,
- "hot_id": 11006
- },
- {
- "position": 14,
- "keyword": "东八区的先生们已下架",
- "show_name": "东八区的先生们已下架",
- "word_type": 8,
- "hot_id": 10955
- },
- {
- "position": 15,
- "keyword": "三国杀新武将全惠解",
- "show_name": "三国杀新武将全惠解",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png",
- "hot_id": 11009
- },
- {
- "position": 16,
- "keyword": "ALGS训练赛",
- "show_name": "ALGS训练赛",
- "word_type": 8,
- "icon": "http://i0.hdslb.com/bfs/feed-admin/4d579fb61f9655316582db193118bba3a721eec0.png",
- "hot_id": 11011
- },
- {
- "position": 17,
- "keyword": "王者青白蛇皮肤优化",
- "show_name": "王者青白蛇皮肤优化",
- "word_type": 8,
- "hot_id": 11000
- },
- {
- "position": 18,
- "keyword": "普京授予斯诺登俄公民身份",
- "show_name": "普京授予斯诺登俄公民身份",
- "word_type": 1,
- "hot_id": 10977
- },
- {
- "position": 19,
- "keyword": "赛诺角色演示",
- "show_name": "原神赛诺角色演示",
- "word_type": 8,
- "hot_id": 10998
- },
- {
- "position": 20,
- "keyword": "COD19被玩坏了",
- "show_name": "COD19被玩坏了",
- "word_type": 8,
- "hot_id": 10971
- }
- ],
- "exp_str": "8000#5509#6605#7708"
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "trackid": "2578006123492681222",
+ "list": [{
+ "position": 1,
+ "keyword": "列车延误乘务员哽咽安抚乘客",
+ "show_name": "列车延误乘务员哽咽安抚乘客",
+ "word_type": 5,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
+ "hot_id": 107814,
+ "is_commercial": "0"
+ }, {
+ "position": 2,
+ "keyword": "黑神话悟空首次线下试玩",
+ "show_name": "黑神话悟空首次线下试玩",
+ "word_type": 5,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
+ "hot_id": 107781,
+ "is_commercial": "0"
+ }, {
+ "position": 3,
+ "keyword": "22万人打出9.9分的动画",
+ "show_name": "22万人打出9.9分的动画",
+ "word_type": 6,
+ "icon": "https://i0.hdslb.com/bfs/legacy/463fa23613670218608e68247a137dd071c0e9c8.png",
+ "hot_id": 107818,
+ "is_commercial": "0"
+ }, {
+ "position": 4,
+ "keyword": "冰冻近五万年线虫被复活",
+ "show_name": "冰冻近五万年线虫被复活",
+ "word_type": 5,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221213/eaf2dd702d7cc14d8d9511190245d057/lrx9rnKo24.png",
+ "hot_id": 107774,
+ "is_commercial": "0"
+ }, {
+ "position": 5,
+ "keyword": "LNG前任和现任的较量",
+ "show_name": "LNG前任和现任的较量",
+ "word_type": 4,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
+ "hot_id": 107853,
+ "is_commercial": "0"
+ }, {
+ "position": 6,
+ "keyword": "LOL手游剑姬女警新皮",
+ "show_name": "LOL手游剑姬女警新皮",
+ "word_type": 8,
+ "hot_id": 107841,
+ "is_commercial": "0"
+ }, {
+ "position": 7,
+ "keyword": "抽奖中金条却因过号被取消",
+ "show_name": "抽奖中金条却因过号被取消",
+ "word_type": 8,
+ "hot_id": 107817,
+ "is_commercial": "0"
+ }, {
+ "position": 8,
+ "keyword": "雪王到长城开蜜雪冰城",
+ "show_name": "雪王到长城开蜜雪冰城",
+ "word_type": 4,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
+ "hot_id": 107849,
+ "is_commercial": "0"
+ }, {
+ "position": 9,
+ "keyword": "堡垒之夜联动终结者",
+ "show_name": "堡垒之夜联动终结者",
+ "word_type": 8,
+ "hot_id": 107846,
+ "is_commercial": "0"
+ }, {
+ "position": 10,
+ "keyword": "王者新英雄海诺动画",
+ "show_name": "王者新英雄海诺动画",
+ "word_type": 4,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
+ "hot_id": 107870,
+ "is_commercial": "0"
+ }, {
+ "position": 11,
+ "keyword": "周星驰功夫10万字拆解",
+ "show_name": "周星驰功夫10万字拆解",
+ "word_type": 4,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
+ "hot_id": 107848,
+ "is_commercial": "0"
+ }, {
+ "position": 12,
+ "keyword": "张杰铁粉彭奶奶去世",
+ "show_name": "张杰铁粉彭奶奶去世",
+ "word_type": 4,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
+ "hot_id": 107840,
+ "is_commercial": "0"
+ }, {
+ "position": 13,
+ "keyword": "李玟二姐回应礼服争议",
+ "show_name": "李玟二姐回应礼服争议",
+ "word_type": 8,
+ "hot_id": 107833,
+ "is_commercial": "0"
+ }, {
+ "position": 14,
+ "keyword": "洪水中飘来冰箱市民取走饮料",
+ "show_name": "洪水中飘来冰箱市民取走饮料",
+ "word_type": 8,
+ "hot_id": 107802,
+ "is_commercial": "0"
+ }, {
+ "position": 15,
+ "keyword": "LOL斗魂觉醒佛耶戈语音",
+ "show_name": "LOL斗魂觉醒佛耶戈语音",
+ "word_type": 8,
+ "hot_id": 107790,
+ "is_commercial": "0"
+ }, {
+ "position": 16,
+ "keyword": "全面落实带薪休假制度",
+ "show_name": "全面落实带薪休假制度",
+ "word_type": 4,
+ "icon": "http://i0.hdslb.com/bfs/activity-plat/static/20221118/eaf2dd702d7cc14d8d9511190245d057/UF7B1wVKT2.png",
+ "hot_id": 107839,
+ "is_commercial": "0"
+ }, {
+ "position": 17,
+ "keyword": "花少北 把病娇治好了",
+ "show_name": "花少北 把病娇治好了",
+ "word_type": 8,
+ "hot_id": 107782,
+ "is_commercial": "0"
+ }, {
+ "position": 18,
+ "keyword": "2.28米高的村超娃",
+ "show_name": "2.28米高的村超娃",
+ "word_type": 8,
+ "hot_id": 107805,
+ "is_commercial": "0"
+ }, {
+ "position": 19,
+ "keyword": "当在动漫中不小心撞到",
+ "show_name": "当在动漫中不小心撞到",
+ "word_type": 8,
+ "hot_id": 107832,
+ "is_commercial": "0"
+ }, {
+ "position": 20,
+ "keyword": "台风卡努路径趋向日本",
+ "show_name": "台风卡努路径趋向日本",
+ "word_type": 8,
+ "hot_id": 107800,
+ "is_commercial": "0"
+ }],
+ "exp_str": "8000#5508#6604#7703",
+ "hotword_egg_info": "0"
+ }
}
```
diff --git a/docs/search/search_request.md b/docs/search/search_request.md
index e4b2ad6..07a2a75 100644
--- a/docs/search/search_request.md
+++ b/docs/search/search_request.md
@@ -4,12 +4,16 @@
## 综合搜索(web端)
-> https://api.bilibili.com/x/web-interface/search/all/v2
+> https://api.bilibili.com/x/web-interface/wbi/search/all/v2
+
+> ~~https://api.bilibili.com/x/web-interface/search/all/v2~~ (旧链接)
*方式:GET*
认证方式:Cookie(SESSDATA)
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
返回和关键字相关的20条信息
综合搜索为默认搜索方式,主要用于优先搜索用户、影视、番剧、游戏、话题等,并加载第一页的20项相关视频,还用于展示各个类型的结果数目,便于进一步分类搜索
@@ -37,7 +41,7 @@
| ---------------- | ----- | ---------------- | ---------------- |
| seid | str | 搜索id | |
| page | num | 页数 | 固定为1 |
-| pagesize | num | 每页条数 | 固定为20 |
+| page_size | num | 每页条数 | 固定为20 |
| numResults | num | 总条数 | 最大值为1000 |
| numPages | num | 分页数 | 最大值为50 |
| suggest_keyword | str | 空 | **作用尚不明确** |
@@ -579,12 +583,16 @@ curl -G 'https://api.bilibili.com/x/web-interface/search/all/v2' \
## 分类搜索(web端)
-> https://api.bilibili.com/x/web-interface/search/type
+> https://api.bilibili.com/x/web-interface/wbi/search/type
+
+> ~~https://api.bilibili.com/x/web-interface/search/type~~ (旧链接)
*请求方式:GET*
认证方式:Cookie(SESSDATA)
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
根据关键词进行搜索,返回结果每页20项
**url参数:**
diff --git a/docs/teenager/teenager_mode.md b/docs/teenager/teenager_mode.md
new file mode 100644
index 0000000..e7f5a1b
--- /dev/null
+++ b/docs/teenager/teenager_mode.md
@@ -0,0 +1,84 @@
+# 青少年模式
+## 开启/关闭
+> https://app.bilibili.com/x/v2/account/teenagers/update
+
+*请求方式:POST*
+
+认证方式:APP(详见[设备各类标识算法](../misc/device_identity.md))
+
+**POST参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|--------|-----|-------|---------|-----|
+| appkey | str | APP密钥 | APP必要 | |
+| ts | num | 当前时间戳 | APP必要 | |
+| sign | str | APP签名 | APP必要 | |
+| access_key | str | APP登录Token | APP必要 | |
+| device_model | str | 设备 Model | APP必要 | |
+| channel | str | APP下载渠道 | APP必要 | 比如yingyongbao |
+| mobi_app | str |APP 包类型 | APP必要 | |
+| platform | str |平台类型| APP必要 | android |
+| c_locale | str |语言| 非必要 | zh_CN |
+| s_locale | str |语言| 非必要 | zh_CN |
+| statistics | str | ? | 必要 | 一般固定为{"appId":1,"platform":3,"version":"7.27.0","abtest":""},非key-value入参需要转URL编码 |
+| pwd | num |密码| 必要 | 开启时为4位,关闭时必须为空 |
+| teenagers_mode | num |开启/关闭模式| 必要 | 0为开启,1为关闭 |
+| teenagers_status | num |当前模式状态| 必要 | 0为已经开启,1为目前关闭 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------ | -------- | ---------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+
+**示例:**
+关闭本账号的青少年模式(pwd=&teenagers_mode=1&teenagers_status=0)
+```shell
+curl --location 'https://app.bilibili.com/x/v2/account/teenagers/update' \
+--header 'Device-Id: 你的设备id' \
+--header 'Fp_local: 你的本地设备指纹' \
+--header 'Fp_remote: 你的远程设备指纹' \
+--header 'Session_id: 会话id' \
+--header 'App-Key: android' \
+--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
+--data-urlencode 'access_key=你的access_key' \
+--data-urlencode 'appkey=1d8b6e7d45233436' \
+--data-urlencode 'build=6270200' \
+--data-urlencode 'c_locale=zh_CN' \
+--data-urlencode 'channel=yingyongbao' \
+--data-urlencode 'device_model=samsung%257CSM-G955N' \
+--data-urlencode 'mobi_app=android' \
+--data-urlencode 'platform=android' \
+--data-urlencode 's_locale=zh_CN' \
+--data-urlencode 'statistics=%257B%2522appId%2522%253A1%252C%2522platform%2522%253A3%252C%2522version%2522%253A%25226.27.0%2522%252C%2522abtest%2522%253A%2522%2522%257D' \
+--data-urlencode 'pwd=' \
+--data-urlencode 'teenagers_mode=1' \
+--data-urlencode 'teenagers_status=0' \
+--data-urlencode 'ts=1699301298' \
+--data-urlencode 'sign=0666c38cb79691c4a0d9570a0669ec96' \
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1
+}
+```
+pwd有数值时
+```json
+{
+ "code": -400,
+ "message": "关闭时密码必须为空",
+ "ttl": 1
+}
+```
+
+
diff --git a/docs/user/info.md b/docs/user/info.md
index db7ebe2..d202b62 100644
--- a/docs/user/info.md
+++ b/docs/user/info.md
@@ -4,70 +4,76 @@
## 用户空间详细信息
-> https://api.bilibili.com/x/space/acc/info
+> https://api.bilibili.com/x/space/wbi/acc/info
*请求方式:GET*
-认证方式:Cookie(SESSDATA)
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md), Cookie (对于某些 IP 地址,需要在 Cookie 中提供任意非空的 `buvid3` 字段)
+
+~~该接口的旧版 API :https://api.bilibili.com/x/space/acc/info~~(已废弃,不建议使用)
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ------------------------------------ |
+| mid | num | 目标用户mid | 必要 | |
+| w_rid | str | Wbi 签名 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
+| wts | num | 当前时间戳 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|---------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-400:请求错误
-403:访问权限不足
-404:用户不存在(如注销账号) |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------------------|------|------------|--------------------------------------------------------------------------------------------------|
-| mid | num | mid | |
-| name | str | 昵称 | |
-| sex | str | 性别 | 男/女/保密 |
-| face | str | 头像链接 | |
-| face_nft | num | 是否为 nft 头像 | `0`不是nft头像
`1`是 nft 头像 |
-| face_nft_type | num | | 0,1 |
-| sign | str | 签名 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------------- | ---- | ---------------- | ------------------------------------------------------------ |
+| mid | num | mid | |
+| name | str | 昵称 | |
+| sex | str | 性别 | 男/女/保密 |
+| face | str | 头像链接 | |
+| face_nft | num | 是否为 NFT 头像 | 0:不是 NFT 头像
1:是 NFT 头像 |
+| face_nft_type | num | NFT 头像类型? | |
+| sign | str | 签名 | |
| rank | num | 用户权限等级 | 目前应该无任何作用
5000:0级未答题
10000:普通会员
20000:字幕君
25000:VIP
30000:真·职人
32000:管理员 |
-| level | num | 当前等级 | 0-6级 |
-| jointime | num | 注册时间 | 此接口返回恒为`0` |
-| moral | num | 节操值 | 此接口返回恒为`0` |
-| silence | num | 封禁状态 | 0:正常
1:被封 |
-| coins | num | 硬币数 | 需要登录(Cookie)
只能查看自己的
默认为0 |
-| fans_badge | bool | 是否具有粉丝勋章 | false:无
true:有 |
-| fans_medal | obj | 粉丝勋章信息 | |
-| official | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-| pendant | obj | 头像框信息 | |
-| nameplate | obj | 勋章信息 | |
-| user_honour_info | obj | | |
-| is_followed | bool | 是否关注此用户 | true:已关注
false:未关注
需要登录(Cookie)
未登录恒为false |
-| top_photo | str | 主页头图链接 | |
-| theme | obj | 空 | **作用尚不明确** |
-| sys_notice | obj | 系统通知 | 无内容则为空对象
主要用于展示如用户争议、纪念账号等等 |
-| live_room | obj | 直播间信息 | |
-| birthday | str | 生日 | MM-DD
如设置隐私为空 |
-| school | obj | 学校 | |
-| profession | obj | 专业资质信息 | |
-| tags | null | 个人标签 | |
-| series | obj | | |
-| is_senior_member | num | 是否为硬核会员 | 0:否
1:是 |
-| mcn_info | null | | |
-| gaia_res_type | num | | |
-| gaia_data | null | | |
-| is_risk | bool | | |
-| elec | obj | 充电信息 | |
-| contract | obj | 是否显示老粉计划 | |
+| level | num | 当前等级 | 0-6 级 |
+| jointime | num | 注册时间 | 此接口返回恒为`0` |
+| moral | num | 节操值 | 此接口返回恒为`0` |
+| silence | num | 封禁状态 | 0:正常
1:被封 |
+| coins | num | 硬币数 | 需要登录(Cookie)
只能查看自己的
默认为`0` |
+| fans_badge | bool | 是否具有粉丝勋章 | false:无
true:有 |
+| fans_medal | obj | 粉丝勋章信息 | |
+| official | obj | 认证信息 | |
+| vip | obj | 会员信息 | |
+| pendant | obj | 头像框信息 | |
+| nameplate | obj | 勋章信息 | |
+| user_honour_info | obj | (?) | |
+| is_followed | bool | 是否关注此用户 | true:已关注
false:未关注
需要登录(Cookie)
未登录恒为`false` |
+| top_photo | str | 主页头图链接 | |
+| theme | obj | (?) | |
+| sys_notice | obj | 系统通知 | 无内容则为空对象
主要用于展示如用户争议、纪念账号等等的小黄条 |
+| live_room | obj | 直播间信息 | |
+| birthday | str | 生日 | MM-DD
如设置隐私为空 |
+| school | obj | 学校 | |
+| profession | obj | 专业资质信息 | |
+| tags | null | 个人标签 | |
+| series | obj | | |
+| is_senior_member | num | 是否为硬核会员 | 0:否
1:是 |
+| mcn_info | null | (?) | |
+| gaia_res_type | num | (?) | |
+| gaia_data | null | (?) | |
+| is_risk | bool | (?) | |
+| elec | obj | 充电信息 | |
+| contract | obj | 是否显示老粉计划 | |
`rank`示例
@@ -108,29 +114,29 @@
`data`中的`official`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----|------|-----------------------------------------|
-| role | num | 认证类型 | 0:无
1 2 7 9:个人认证
3 4 5 6:机构认证 |
-| title | str | 认证信息 | 无为空 |
-| desc | str | 认证备注 | 无为空 |
-| type | num | 是否认证 | -1:无
0:个人认证
1:机构认证 |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | -------- | ---------------------------------------- |
+| role | num | 认证类型 | 见 [用户认证类型一览](official_role.md) |
+| title | str | 认证信息 | 无为空 |
+| desc | str | 认证备注 | 无为空 |
+| type | num | 是否认证 | -1:无
0:个人认证
1:机构认证 |
`data`中的`vip`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|----------------------|-----|-----------|----------------------------------------------|
-| type | num | 会员类型 | 0:无
1:月大会员
2:年度及以上大会员 |
-| status | num | 会员状态 | 0:无
1:有 |
-| due_date | num | 会员过期时间 | Unix时间戳(毫秒) |
-| vip_pay_type | num | 支付类型 | 0:未支付(常见于官方账号)
1:已支付(以正常渠道获取的大会员均为此值) |
-| theme_type | num | 0 | 作用尚不明确 |
-| label | obj | 会员标签 | |
-| avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 |
-| nickname_color | str | 会员昵称颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 |
-| role | num | 大角色类型 | 1:月度大会员
3:年度大会员
7:十年大会员
15:百年大会员 |
-| avatar_subscript_url | str | 大会员角标地址 | |
-| tv_vip_status | num | 电视大会员状态 | 0:未开通 |
-| tv_vip_pay_type | num | 电视大会员支付类型 | |
+| 字段 | 类型 | 内容 | 备注 |
+| -------------------- | ---- | ------------------ | ------------------------------------------------------------ |
+| type | num | 会员类型 | 0:无
1:月大会员
2:年度及以上大会员 |
+| status | num | 会员状态 | 0:无
1:有 |
+| due_date | num | 会员过期时间 | 毫秒时间戳 |
+| vip_pay_type | num | 支付类型 | 0:未支付(常见于官方账号)
1:已支付(以正常渠道获取的大会员均为此值) |
+| theme_type | num | 0 | 作用尚不明确 |
+| label | obj | 会员标签 | |
+| avatar_subscript | num | 是否显示会员图标 | 0:不显示
1:显示 |
+| nickname_color | str | 会员昵称颜色 | 颜色码,一般为`#FB7299`,曾用于愚人节改变大会员配色 |
+| role | num | 大角色类型 | 1:月度大会员
3:年度大会员
7:十年大会员
15:百年大会员 |
+| avatar_subscript_url | str | 大会员角标地址 | |
+| tv_vip_status | num | 电视大会员状态 | 0:未开通 |
+| tv_vip_pay_type | num | 电视大会员支付类型 | |
`vip`中的`label`对象:
@@ -219,19 +225,19 @@
`sys_notice`示例
-| id | content | url | notice_type | 示例用户 |
-|-----|-------------------------------------------------|-----|-------------|-------------------------------------------------------------------------------------------------|
-| 5 | 该用户存在争议行为,已冻结其帐号功能的使用 | | 1 | [82385070](https://space.bilibili.com/82385070) |
-| 8 | 该用户存在较大争议,请谨慎甄别其内容 | | 1 | [28062215](https://space.bilibili.com/28062215) |
-| 11 | 该账号涉及合约争议,暂冻结其账号功能使用。详见公告-> | | 1 |
-| 16 | 该UP主内容存在争议,请注意甄别视频内信息 | | 1 | [382534165](https://space.bilibili.com/382534165) |
-| 20 | 请允许我们在此献上最后的告别,以此纪念其在哔哩哔哩留下的回忆与足迹。请点此查看纪念账号相关说明 | | 2 |
-| 22 | 该账号涉及合约诉讼,封禁其账号使用。 | |
-| 24 | 该账号涉及合约争议,暂冻结其账号功能使用。 | | 1 | [291229008](https://space.bilibili.com/291229008) |
-| 25 | 该用户涉及严重指控,暂冻结其账号功能使用 | | 1 | [81447581](https://space.bilibili.com/81447581) |
-| 31 | 该用户涉及严重指控,暂冻结其账号功能使用 | | 1 | [22439273](https://space.bilibili.com/22439273) |
-| 34 | 该用户涉及严重指控,暂冻结其账号功能使用 | | 1 | [1640486775](https://space.bilibili.com/1640486775) |
-| 36 | 该账户存在争议,请谨慎甄别 | | 1 | [198297](https://space.bilibili.com/198297)
[18149131](https://space.bilibili.com/18149131) |
+| id | content | notice_type | 示例用户 |
+|-----|-------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------|
+| 5 | 该用户存在争议行为,已冻结其帐号功能的使用 | 1 | [82385070](https://space.bilibili.com/82385070) |
+| 8 | 该用户存在较大争议,请谨慎甄别其内容 | 1 | [28062215](https://space.bilibili.com/28062215) |
+| 11 | 该账号涉及合约争议,暂冻结其账号功能使用。详见公告-> | 1 ||
+| 16 | 该UP主内容存在争议,请注意甄别视频内信息 | 1 | [382534165](https://space.bilibili.com/382534165) |
+| 20 | 请允许我们在此献上最后的告别,以此纪念其在哔哩哔哩留下的回忆与足迹。请点此查看纪念账号相关说明 | 2 |[212535360](https://space.bilibili.com/212535360)|
+|22| 该账号涉及合约诉讼,封禁其账号使用 | ||
+| 24 | 该账号涉及合约争议,暂冻结其账号功能使用 | 1 | [291229008](https://space.bilibili.com/291229008) |
+| 25 | 该用户涉及严重指控,暂冻结其账号功能使用 | 1 | [81447581](https://space.bilibili.com/81447581) |
+| 31 | 该用户涉及严重指控,暂冻结其账号功能使用 | 1 | [22439273](https://space.bilibili.com/22439273) |
+| 34 | 该用户涉及严重指控,暂冻结其账号功能使用 | 1 | [1640486775](https://space.bilibili.com/1640486775) |
+| 36 | 该账户存在争议,请谨慎甄别 | 1 | [198297](https://space.bilibili.com/198297)
[18149131](https://space.bilibili.com/18149131) |
`data`中的`live_room`对象:
@@ -314,12 +320,14 @@
**示例:**
-查询用户`mid=2`的详细信息
+查询用户`mid=2`的详细信息,Wbi 签名的 `wts`、`w_rid`生成方式详见 [Wbi 签名](../misc/sign/wbi.md) 文档
```shell
-curl -G 'https://api.bilibili.com/x/space/acc/info' \
---data-urlencode 'mid=2' \
--b 'SESSDATA=xxx'
+curl -G 'https://api.bilibili.com/x/space/wbi/acc/info' \
+ --data-urlencode 'mid=2' \
+ --data-urlencode 'wts=1685070149' \
+ --data-urlencode 'w_rid=f7b376124782ae8cb42c56fdd69144ed' \
+ -b 'SESSDATA=xxx'
```
@@ -327,204 +335,163 @@ curl -G 'https://api.bilibili.com/x/space/acc/info' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "mid": 2,
- "name": "碧诗",
- "sex": "男",
- "face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
- "face_nft": 0,
- "face_nft_type": 0,
- "sign": "https://kami.im 直男过气网红 # We Are Star Dust",
- "rank": 20000,
- "level": 6,
- "jointime": 0,
- "moral": 0,
- "silence": 0,
- "coins": 0,
- "fans_badge": true,
- "fans_medal": {
- "show": true,
- "wear": true,
- "medal": {
- "uid": 2,
- "target_id": 335115,
- "medal_id": 45408,
- "level": 21,
- "medal_name": "伍千万",
- "medal_color": 1725515,
- "intimacy": 1980,
- "next_intimacy": 2000,
- "day_limit": 250000,
- "medal_color_start": 1725515,
- "medal_color_end": 5414290,
- "medal_color_border": 1725515,
- "is_lighted": 1,
- "light_status": 1,
- "wearing_status": 1,
- "score": 50001980
- }
- },
- "official": {
- "role": 2,
- "title": "bilibili创始人(站长)",
- "desc": "",
- "type": 0
- },
- "vip": {
- "type": 2,
- "status": 1,
- "due_date": 3909916800000,
- "vip_pay_type": 0,
- "theme_type": 0,
- "label": {
- "path": "",
- "text": "十年大会员",
- "label_theme": "ten_annual_vip",
- "text_color": "#FFFFFF",
- "bg_style": 1,
- "bg_color": "#FB7299",
- "border_color": "",
- "use_img_label": true,
- "img_label_uri_hans": "",
- "img_label_uri_hant": "",
- "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/activity-plat/static/20221008/0597543265563f522fad443825cff578/O9l2i8GdaZ.png",
- "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png"
- },
- "avatar_subscript": 1,
- "nickname_color": "#FB7299",
- "role": 7,
- "avatar_subscript_url": "",
- "tv_vip_status": 1,
- "tv_vip_pay_type": 0
- },
- "pendant": {
- "pid": 32257,
- "name": "EveOneCat2",
- "image": "https://i2.hdslb.com/bfs/garb/item/488870931b1bba66da36d22848f0720480d3d79a.png",
- "expire": 0,
- "image_enhance": "https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp",
- "image_enhance_frame": "https://i2.hdslb.com/bfs/garb/item/4316a3910bb0bd6f2f1c267a3e9187f0b9fe5bd0.png"
- },
- "nameplate": {
- "nid": 10,
- "name": "见习偶像",
- "image": "https://i1.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png",
- "image_small": "https://i1.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png",
- "level": "普通勋章",
- "condition": "所有自制视频总播放数>=10万"
- },
- "user_honour_info": {
- "mid": 0,
- "colour": null,
- "tags": []
- },
- "is_followed": false,
- "top_photo": "http://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png",
- "theme": {},
- "sys_notice": {},
- "live_room": {
- "roomStatus": 1,
- "liveStatus": 0,
- "url": "https://live.bilibili.com/1024?broadcast_type=0&is_room_feed=0",
- "title": "试图恰鸡",
- "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/96ee5bfd0279a0f18b190340334f43f473038288.jpg",
- "roomid": 1024,
- "roundStatus": 0,
- "broadcast_type": 0,
- "watched_show": {
- "switch": true,
- "num": 14,
- "text_small": "14",
- "text_large": "14人看过",
- "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
- "icon_location": "",
- "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png"
- }
- },
- "birthday": "09-19",
- "school": {
- "name": ""
- },
- "profession": {
- "name": "",
- "department": "",
- "title": "",
- "is_show": 0
- },
- "tags": null,
- "series": {
- "user_upgrade_status": 3,
- "show_upgrade_window": false
- },
- "is_senior_member": 1,
- "mcn_info": null,
- "gaia_res_type": 0,
- "gaia_data": null,
- "is_risk": false,
- "elec": {
- "show_info": {
- "show": true,
- "state": 1,
- "title": "",
- "icon": "",
- "jump_url": ""
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "mid": 2,
+ "name": "碧诗",
+ "sex": "男",
+ "face": "https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg",
+ "face_nft": 0,
+ "face_nft_type": 0,
+ "sign": "https://kami.im 直男过气网红 # We Are Star Dust",
+ "rank": 20000,
+ "level": 6,
+ "jointime": 0,
+ "moral": 0,
+ "silence": 0,
+ "coins": 0,
+ "fans_badge": true,
+ "fans_medal": {
+ "show": true,
+ "wear": true,
+ "medal": {
+ "uid": 2,
+ "target_id": 335115,
+ "medal_id": 45408,
+ "level": 21,
+ "medal_name": "伍千万",
+ "medal_color": 1725515,
+ "intimacy": 1980,
+ "next_intimacy": 2000,
+ "day_limit": 250000,
+ "medal_color_start": 1725515,
+ "medal_color_end": 5414290,
+ "medal_color_border": 1725515,
+ "is_lighted": 1,
+ "light_status": 1,
+ "wearing_status": 1,
+ "score": 50001980
+ }
+ },
+ "official": {
+ "role": 2,
+ "title": "bilibili创始人(站长)",
+ "desc": "",
+ "type": 0
+ },
+ "vip": {
+ "type": 2,
+ "status": 1,
+ "due_date": 3931344000000,
+ "vip_pay_type": 0,
+ "theme_type": 0,
+ "label": {
+ "path": "",
+ "text": "十年大会员",
+ "label_theme": "ten_annual_vip",
+ "text_color": "#FFFFFF",
+ "bg_style": 1,
+ "bg_color": "#FB7299",
+ "border_color": "",
+ "use_img_label": true,
+ "img_label_uri_hans": "https://i0.hdslb.com/bfs/activity-plat/static/20220608/e369244d0b14644f5e1a06431e22a4d5/wltavwHAkL.gif",
+ "img_label_uri_hant": "",
+ "img_label_uri_hans_static": "https://i0.hdslb.com/bfs/vip/802418ff03911645648b63aa193ba67997b5a0bc.png",
+ "img_label_uri_hant_static": "https://i0.hdslb.com/bfs/activity-plat/static/20220614/e369244d0b14644f5e1a06431e22a4d5/8u7iRTPE7N.png"
+ },
+ "avatar_subscript": 1,
+ "nickname_color": "#FB7299",
+ "role": 7,
+ "avatar_subscript_url": "",
+ "tv_vip_status": 1,
+ "tv_vip_pay_type": 0,
+ "tv_due_date": 2000822400
+ },
+ "pendant": {
+ "pid": 32257,
+ "name": "EveOneCat2",
+ "image": "https://i2.hdslb.com/bfs/garb/item/488870931b1bba66da36d22848f0720480d3d79a.png",
+ "expire": 0,
+ "image_enhance": "https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp",
+ "image_enhance_frame": "https://i2.hdslb.com/bfs/garb/item/4316a3910bb0bd6f2f1c267a3e9187f0b9fe5bd0.png"
+ },
+ "nameplate": {
+ "nid": 10,
+ "name": "见习偶像",
+ "image": "https://i2.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png",
+ "image_small": "https://i2.hdslb.com/bfs/face/275b468b043ec246737ab8580a2075bee0b1263b.png",
+ "level": "普通勋章",
+ "condition": "所有自制视频总播放数>=10万"
+ },
+ "user_honour_info": {
+ "mid": 0,
+ "colour": null,
+ "tags": []
+ },
+ "is_followed": true,
+ "top_photo": "http://i2.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png",
+ "theme": {},
+ "sys_notice": {},
+ "live_room": {
+ "roomStatus": 1,
+ "liveStatus": 0,
+ "url": "https://live.bilibili.com/1024?broadcast_type=0&is_room_feed=0",
+ "title": "试图恰鸡",
+ "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/96ee5bfd0279a0f18b190340334f43f473038288.jpg",
+ "roomid": 1024,
+ "roundStatus": 0,
+ "broadcast_type": 0,
+ "watched_show": {
+ "switch": true,
+ "num": 19,
+ "text_small": "19",
+ "text_large": "19人看过",
+ "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png",
+ "icon_location": "",
+ "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png"
+ }
+ },
+ "birthday": "09-19",
+ "school": {
+ "name": ""
+ },
+ "profession": {
+ "name": "",
+ "department": "",
+ "title": "",
+ "is_show": 0
+ },
+ "tags": null,
+ "series": {
+ "user_upgrade_status": 3,
+ "show_upgrade_window": false
+ },
+ "is_senior_member": 0,
+ "mcn_info": null,
+ "gaia_res_type": 0,
+ "gaia_data": null,
+ "is_risk": false,
+ "elec": {
+ "show_info": {
+ "show": true,
+ "state": 1,
+ "title": "",
+ "icon": "",
+ "jump_url": "?oid=2"
+ }
+ },
+ "contract": {
+ "is_display": false,
+ "is_follow_display": false
+ }
}
- }
}
```
-**查询到的信息解析如下:**
-
-**用户昵称为**:碧诗
-
-**性别**:男
-
-**用户的头像为**:
-
-https://i2.hdslb.com/bfs/face/ef0457addb24141e15dfac6fbf45293ccf1e32ab.jpg
-
-
-
-**等级**:6级
-
-**生日**:09-19
-
-**粉丝勋章状态**:拥有
-
-**认证**:个人认证
-
-**认证名称**: bilibili创始人(站长)
-
-**大会员类型**:年度
-
-**大会员状态**:已开通
-
-**电视大会员状态**:已开通
-
-**头像框**:EveOneCat2
-
-https://i2.hdslb.com/bfs/garb/item/5974f17f9d96a88bafba2f6d18d647a486e88312.webp
-
-
-
-**粉丝勋章**: 见习偶像
-
-https://i1.hdslb.com/bfs/face/e93dd9edfa7b9e18bf46fd8d71862327a2350923.png
-
-
-
-**空间头图**:
-
-https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png
-
-
-
## 用户名片信息
> https://api.bilibili.com/x/web-interface/card
@@ -582,6 +549,7 @@ https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png
| fans | num | 粉丝数 | |
| friend | num | 关注数 | |
| attention | num | 关注数 | |
+| sign | str | 签名 | |
| level_info | obj | 等级 | |
| pendant | obj | 挂件 | |
| nameplate | obj | 勋章 | |
@@ -623,7 +591,7 @@ https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | -------- | ------------------------------------------------- |
-| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 |
+| role | num | 认证类型 | 见[用户认证类型一览](official_role.md) |
| title | str | 认证信息 | 无为空 |
| desc | str | 认证备注 | 无为空 |
| type | num | 是否认证 | -1:无
0:认证 |
@@ -653,10 +621,10 @@ https://i0.hdslb.com/bfs/space/cb1c3ef50e22b6096fde67febe863494caefebad.png
| s_img | str | 主页头图url 小图 | |
| l_img | str | 主页头图url 正常 | |
-**示列:**
+**示例:**
```shell
-curl -G 'api.bilibili.com/x/web-interface/card' \
+curl -G 'https://api.bilibili.com/x/web-interface/card' \
--data-urlencode 'mid=2' \
--data-urlencode 'photo=true' \
-b 'SESSDATA=xxx'
@@ -850,7 +818,7 @@ curl -G 'api.bilibili.com/x/web-interface/card' \
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | -------- | ------------------------------------------------- |
-| role | num | 认证类型 | 0:无
1 2 7:个人认证
3 4 5 6:机构认证 |
+| role | num | 认证类型 | 见[用户认证类型一览](official_role.md) |
| title | str | 认证信息 | 无为空 |
| desc | str | 认证备注 | 无为空 |
| type | num | 是否认证 | -1:无
0:认证 |
@@ -867,7 +835,7 @@ curl -G 'api.bilibili.com/x/web-interface/card' \
**示例:**
```shell
-curl -G 'api.bilibili.com/x/space/myinfo' \
+curl -G 'https://api.bilibili.com/x/space/myinfo' \
-b 'SESSDATA=xxx'
```
diff --git a/docs/user/official_role.md b/docs/user/official_role.md
new file mode 100644
index 0000000..fb70aac
--- /dev/null
+++ b/docs/user/official_role.md
@@ -0,0 +1,12 @@
+# 用户认证类型一览
+| ID | 认证类型 | 详细类型 |
+| -- | ------- | ------- |
+| 0 | 无 | |
+| 1 | 个人认证 | 知名UP主 |
+| 2 | 个人认证 | 大V达人 |
+| 3 | 机构认证 | 企业 |
+| 4 | 机构认证 | 组织 |
+| 5 | 机构认证 | 媒体 |
+| 6 | 机构认证 | 政府 |
+| 7 | 个人认证 | 高能主播 |
+| 9 | 个人认证 | 社会知名人士 |
\ No newline at end of file
diff --git a/docs/user/relation.md b/docs/user/relation.md
index ce8b168..9695adc 100644
--- a/docs/user/relation.md
+++ b/docs/user/relation.md
@@ -1,73 +1,54 @@
# 用户关系相关
-## 查询用户粉丝明细
+## 查询关系列表
-> https://api.bilibili.com/x/relation/followers
+### 关系列表对象
-*请求方式:GET*
+以下说明中的 “目标用户” 指被查询的用户,“对方” 指返回的关系列表中的用户。
-认证方式:Cookie(SESSDATA)或APP
+| 字段 | 类型 | 内容 | 备注 |
+| --------------- | ------------------------------------------- | -------------------------- | ------------------------------------------------------------ |
+| mid | num | 用户 mid | |
+| attribute | num | 对方对于**自己**的关系属性 | 0:未关注
1:悄悄关注(现已下线)
2:已关注
6:已互粉
128:已拉黑 |
+| mtime | num | 对方关注目标用户时间 | 秒级时间戳
互关后刷新 |
+| tag | 默认分组:null
存在至少一个分组:array | 目标用户将对方分组到的 id | |
+| special | num | 目标用户特别关注对方标识 | 0:否
1:是 |
+| contract_info | obj | 契约计划相关信息 | |
+| uname | str | 用户昵称 | |
+| face | str | 用户头像url | |
+| face_nft | num | 是否为 NFT 头像 | 0:非 NFT 头像
1:NFT 头像 |
+| sign | str | 用户签名 | |
+| official_verify | obj | 认证信息 | |
+| vip | obj | 会员信息 | |
+| nft_icon | str | (?) | |
+| rec_reason | str | (?) | |
+| track_id | str | (?) | |
-登录可看自己前1000名,其他用户可查看前250名(网页端请求时ps为20,所以直接查看只能看到前100名)
+`list`中的对象中的`tag`数组:
-**url参数:**
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------------------ | ---- |
+| 0 | num | 位于分组 1 的分组 id | |
+| n | num | 位于分组(n+1)的分组 id | |
+| …… | num | …… | …… |
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---------------------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| vmid | num | 目标用户mid | 必要 | |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1
其他用户仅可查看前5页 |
+`list`中的对象中的`contract_info`对象:
-**json回复:**
+| 字段 | 类型 | 内容 | 备注 |
+| ------------- | ---- | ------------------------------ | ----------------------------------------------------------- |
+| is_contract | bool | 目标用户是否为对方的契约者 | 仅当为 `true` 时才有此项 |
+| is_contractor | bool | 对方是否为目标用户的契约者 | 仅当为 `true` 时才有此项 |
+| ts | num | 对方成为目标用户的契约者的时间 | 秒级时间戳,仅当 `is_contractor` 项的值为 `true` 时才有此项 |
+| user_attr | num | 对方作为目标用户的契约者的属性 | 1:老粉
否则为原始粉丝
仅当有特殊属性时才有此项 |
-根对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | --------------------------------------------------- |
-| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过5页 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
-
-`data`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
-| total | num | 粉丝总数 | |
-
-`data`中的`list`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------- | ---------------- |
-| 0 | obj | 粉丝1 | |
-| n | obj | 粉丝(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ---- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 |
-| mtime | num | 成为粉丝时间 | 时间戳
互关后刷新 |
-| tag | null | | |
-| special | num | 0 | |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
`list`中的对象中的`official_verify`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:个人认证
1:机构认证 |
+| type | num | 用户认证类型 | -1:无
0:UP 主认证
1:机构认证 |
| desc | str | 用户认证信息 | 无为空 |
`list`中的对象中的`vip`对象:
@@ -76,18 +57,66 @@
| ------------- | ---- | ------------ | ----------------------------------------------- |
| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
+| dueRemark | str | (?) | |
+| accessStatus | num | (?) | |
| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
+| vipStatusWarn | str | (?) | |
+| themeType | num | (?) | |
+| label | obj | (?) | |
`vip`中的`label`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | ---- |
+| path | str | (?) | |
+
+### 查询用户粉丝明细
+
+> https://api.bilibili.com/x/relation/followers
+
+*请求方式:GET*
+
+认证方式:Cookie(SESSDATA)或 APP
+
+本接口只有登录、标头 `referer` 为 `bilibili.com` 下的子域名、UA 不含 `python` 时才会返回列表
+
+**本接口仅可返回前 1000 名粉丝**,若继续往后查询则返回空列表
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| vmid | num | 目标用户 mid | 必要 | |
+| ps | num | 每页项数 | 非必要 | 默认为 50 |
+| pn | num | 页码 | 非必要 | 默认为 1
仅可查看前 1000 名粉丝 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-352:请求被拦截
-400:请求错误
22007:访问超过 5 页 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
+| total | num | 粉丝总数 | |
+
+`data`中的`list`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------ | ---------------------------------- |
+| 0 | obj | 粉丝 1 | 详见 [关系列表对象](#关系列表对象) |
+| n | obj | 粉丝 (n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
**示例:**
@@ -95,10 +124,10 @@
```shell
curl -G 'https://api.bilibili.com/x/relation/followers' \
---data-urlencode 'vmid=293793435' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'vmid=293793435' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+ -b 'SESSDATA=xxx'
```
@@ -169,103 +198,54 @@ curl -G 'https://api.bilibili.com/x/relation/followers' \
-## 查询用户关注明细
-
-
+### 查询用户关注明细
> https://api.bilibili.com/x/relation/followings
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-登录可看自己全部,其他用户仅可查看前5页
+本接口只有登录、标头 `referer` 为 `bilibili.com` 下的子域名、UA 不含 `python` 时才会返回列表
+
+登录可看当前用户全部,其他用户仅可查看前 100 个,访问超过 100 个时返回空列表(但 `code` 值为 `0`)
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ------------------------------------------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| vmid | num | 目标用户mid | 必要 | |
-| order_type | str | 排序方式 | 非必要 | 按照关注顺序排列:留空
按照最常访问排列:attention |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1
其他用户仅可查看前5页 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ------------------------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| vmid | num | 目标用户 mid | 必要 | |
+| order_type | str | 排序方式 | 非必要 | 当目标用户为自己时有效
按照关注顺序排列:留空
按照最常访问排列:attention |
+| ps | num | 每页项数 | 非必要 | 默认为 50 |
+| pn | num | 页码 | 非必要 | 默认为 1
其他用户仅可查看前 100 个 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | ------------------------------------------------------------ |
-| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过5页
22115:用户已设置隐私,无法查看 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ---------------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-352:请求被拦截
-400:请求错误
22115:用户已设置隐私,无法查看 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
-| total | num | 关注总数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
+| total | num | 关注总数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------- | ---------------- |
-| 0 | obj | 关注1 | |
-| n | obj | 关注(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-数组`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ---------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 |
-| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | 默认分组:null
存在至少一个分组:array | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-
-数组`list`中的对象中的`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
-
-`list`中的对象中的`official_verify`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
-
-`list`中的对象中的`vip`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------------------- |
-| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
-| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-`vip`中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | -------------------------------- |
+| 0 | obj | 关注1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 关注(n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
**示例:**
@@ -273,11 +253,11 @@ curl -G 'https://api.bilibili.com/x/relation/followers' \
```shell
curl -G 'https://api.bilibili.com/x/relation/followings' \
---data-urlencode 'vmid=293793435' \
---data-urlencode 'order_type=' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'vmid=293793435' \
+ --data-urlencode 'order_type=' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+ -b 'SESSDATA=xxx'
```
@@ -348,73 +328,73 @@ curl -G 'https://api.bilibili.com/x/relation/followings' \
-## 查询用户关注明细2
-
-
+### 查询用户关注明细2
> https://app.biliapi.net/x/v2/relation/followings
*请求方式:GET*
-仅可查看前5页,对于已设置可见性隐私关注列表的用户,`$.data.list`为null,且`$.data.total`为0
+仅可查看前 5 页,对于已设置可见性隐私关注列表的用户,`$.data.list` 为 null,且 `$.data.total` 为0
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ------ | -------------------------- |
-| vmid | num | 目标用户mid | 必要 | |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1
仅可查看前5页 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------ | ------ | ----------------------------- |
+| vmid | num | 目标用户 mid | 必要 | |
+| order | str | 排序方式 | 非必要 | 按照降序排列:desc
按照升序排列:asc
默认降序排列 |
+| ps | num | 每页项数 | 非必要 | 默认为 50 |
+| pn | num | 页码 | 非必要 | 默认为 1
仅可查看前 5 页 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | --------------------------------------------------- |
-| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过5页 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过 5 页 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
-| total | num | 关注总数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
+| total | num | 关注总数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------- | ---------------- |
-| 0 | obj | 关注1 | |
-| n | obj | 关注(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | --------------------------------------------- |
+| 0 | obj | 关注 1 | 与 [关系列表对象](#关系列表对象) 数据结构不同 |
+| n | obj | 关注(n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
数组`list`中的对象:
| 字段 | 类型 | 内容 | 备注 |
| --------------- | ---------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
+| mid | num | 用户 mid | |
| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 |
| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | 默认分组:null
存在至少一个分组:array | 分组id | |
+| tag | 默认分组:null
存在至少一个分组:array | 分组 id | |
| special | num | 特别关注标志 | 0:否
1:是 |
| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
+| face | str | 用户头像 url | |
| sign | str | 用户签名 | |
| official_verify | obj | 认证信息 | |
| vip | obj | 会员信息 | |
+| live | num | 是否直播 | 0:未直播
1:直播中 |
数组`list`中的对象中的`tag`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------------------ | ---- |
+| 0 | num | 位于分组 1 的分组 id | |
+| n | num | 位于分组(n+1)的分组 id | |
+| …… | num | …… | …… |
`list`中的对象中的`official_verify`对象:
@@ -429,18 +409,18 @@ curl -G 'https://api.bilibili.com/x/relation/followings' \
| ------------- | ---- | ------------ | ----------------------------------------------- |
| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
+| dueRemark | str | (?) | |
+| accessStatus | num | (?) | |
| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
+| vipStatusWarn | str | (?) | |
+| themeType | num | (?) | |
+| label | obj | (?) | |
`vip`中的`label`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | ---- |
+| path | str | (?) | |
**示例:**
@@ -448,9 +428,9 @@ curl -G 'https://api.bilibili.com/x/relation/followings' \
```shell
curl -G 'https://app.biliapi.net/x/v2/relation/followings' \
---data-urlencode 'vmid=293793435' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1'
+ --data-urlencode 'vmid=293793435' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
```
@@ -529,7 +509,7 @@ curl -G 'https://app.biliapi.net/x/v2/relation/followings' \
*请求方式:GET*
-可获取用户所有关注列表,对于设置了可见性隐私关注列表的用户会返回空列表
+对于设置了可见性隐私关注列表的用户会返回空列表
**url参数:**
@@ -611,90 +591,48 @@ curl -G 'https://line3-h5-mobile-api.biligame.com/game/center/h5/user/relationsh
-## 搜索关注明细
-
-
+### 搜索关注明细
> https://api.bilibili.com/x/relation/followings/search
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | -------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| vmid | str | 目标用户mid | 必要 | |
-| name | str | 搜索关键词 | 必要 | |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | --------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| vmid | str | 目标用户 mid | 必要 | |
+| name | str | 搜索关键词 | 非必要 | |
+| ps | num | 每页项数 | 非必要 | 默认为 50 |
+| pn | num | 页码 | 非必要 | 默认为 1 |
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ----------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
22007:访问超过 5 页 |
+| message | str | 错误信息 | 默认为 0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
data 对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
-| total | num | 关注总数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
+| total | num | 关注总数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------- | ---------------- |
-| 0 | obj | 共同关注1 | |
-| n | obj | 共同关注(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-数组`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ------------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 |
-| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | 默认分组:null
存在至少一个分组:array | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-
-数组`list`中的对象中的`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
-
-`list`中的对象中的`official_verify`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
-
-`list`中的对象中的`vip`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------------------- |
-| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
-| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-`vip`中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | -------------------------------- |
+| 0 | obj | 匹配项目 1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 匹配项目(n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
**示例:**
@@ -702,17 +640,16 @@ data 对象:
```shell
curl -G 'https://api.bilibili.com/x/relation/followings/search' \
---data-urlencode 'vmid=293793435' \
---data-urlencode 'name=warma' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'vmid=293793435' \
+ --data-urlencode 'name=warma' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+ -b 'SESSDATA=xxx'
```
查看响应示例:
-
```json
{
"code": 0,
@@ -756,24 +693,22 @@ curl -G 'https://api.bilibili.com/x/relation/followings/search' \
-## 查询共同关注明细
-
-
+### 查询共同关注明细
> https://api.bilibili.com/x/relation/same/followings
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | -------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| vmid | num | 目标用户mid | 必要 | |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | --------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| vmid | num | 目标用户 mid | 必要 | |
+| ps | num | 每页项数 | 非必要 | 默认为 50 |
+| pn | num | 页码 | 非必要 | 默认为 1 |
**json回复:**
@@ -782,74 +717,25 @@ curl -G 'https://api.bilibili.com/x/relation/followings/search' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
data 对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
-| total | num | 关注总数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
+| total | num | 关注总数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------- | ---------------- |
-| 0 | obj | 共同关注1 | |
-| n | obj | 共同关注(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-数组`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ------------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 |
-| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | 默认分组:null
存在至少一个分组:array | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-
-数组`list`中的对象中的`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
-
-`list`中的对象中的`official_verify`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
-
-`list`中的对象中的`vip`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------------------- |
-| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
-| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-`vip`中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | -------------------------------- |
+| 0 | obj | 共同关注 1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 共同关注(n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
**示例:**
@@ -936,23 +822,19 @@ curl -G 'https://api.bilibili.com/x/relation/same/followings' \
-## 查询悄悄关注明细
+### 查询悄悄关注明细
-
-
-> https://api.bilibili.com/x/relation/whispers
+> https://api.bilibili.com/x/relation/whispers
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | -------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
**json回复:**
@@ -967,83 +849,29 @@ curl -G 'https://api.bilibili.com/x/relation/same/followings' \
data 对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------- | ---------------- |
-| 0 | obj | 关注1 | |
-| n | obj | 关注(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-数组`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ------------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉 |
-| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | 默认分组:null
存在至少一个分组:array | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-
-数组`list`中的对象中的`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
-
-`list`中的对象中的`official_verify`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
-
-`list`中的对象中的`vip`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------------------- |
-| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
-| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-`vip`中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | -------------------------------- |
+| 0 | obj | 悄悄关注 1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 悄悄关注(n+1) | 按照操作顺序排列 |
+| …… | obj | …… | …… |
**示例:**
-获取悄悄关注明细
-
```shell
curl -G 'https://api.bilibili.com/x/relation/whispers' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
--b 'SESSDATA=xxx'
+ -b 'SESSDATA=xxx'
```
查看响应示例:
-
```json
{
"code": 0,
@@ -1082,26 +910,23 @@ curl -G 'https://api.bilibili.com/x/relation/whispers' \
}
}
```
-
-## 查询互相关注明细
-
-
+### 查询互相关注明细
> https://api.bilibili.com/x/relation/friends
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
查询与自己互关的用户明细,可看全部
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | -------- |
-| access_key | str | APP登录Token | APP方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
**json回复:**
@@ -1116,81 +941,29 @@ curl -G 'https://api.bilibili.com/x/relation/whispers' \
data 对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | -------- | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | -------- | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------- | ---------------- |
-| 0 | obj | 互关1 | |
-| n | obj | 互关(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-数组`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ------------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 6:已互粉 |
-| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | 默认分组:null
存在至少一个分组:array | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-
-数组`list`中的对象中的`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
-
-`list`中的对象中的`official_verify`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
-
-`list`中的对象中的`vip`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------------------- |
-| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
-| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-`vip`中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | -------------------------------- |
+| 0 | obj | 互关 1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 互关(n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
**示例:**
-获取互相关注明细
-
```shell
curl -G 'https://api.bilibili.com/x/relation/friends' \
--b 'SESSDATA=xxx'
+ -b 'SESSDATA=xxx'
```
查看响应示例:
-
```json
{
"code": 0,
@@ -1199,44 +972,166 @@ curl -G 'https://api.bilibili.com/x/relation/friends' \
"data": {
"list": [
{
- "mid": 293793435,
- "attribute": 6,
- "mtime": 1583817598,
- "tag": [-10],
- "special": 1,
- "uname": "社会易姐QwQ",
- "face": "https://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
- "sign": "BAC项目负责人 | 带砖技术宅 | MC 编程 电子 | 车万众\u0026术术人 | 粉丝群1136462265 博客shakaianee.top",
- "face_nft": 0,
- "official_verify": {
- "type": -1,
- "desc": ""
- },
- "vip": {
- "vipType": 2,
- "vipDueDate": 1675872000000,
- "dueRemark": "",
- "accessStatus" :0,
- "vipStatus": 1,
- "vipStatusWarn": "",
- "themeType": 0,
- "label": {
- "path": "",
- "text": "年度大会员",
- "label_theme": "annual_vip",
- "text_color": "#FFFFFF",
- "bg_style": 1,
- "bg_color": "#FB7299",
- "border_color": ""
+ "mid": 596000,
+ "attribute": 6,
+ "mtime": 1685110154,
+ "tag": null,
+ "special": 0,
+ "uname": "椛椛在睡觉",
+ "face": "https://i2.hdslb.com/bfs/face/365c1ef3b2a3afe21d6832796338fad5119b2592.jpg",
+ "sign": "欢迎来找椛椛玩~ https://blogs.momiji-jin.com/",
+ "face_nft": 0,
+ "official_verify": {
+ "type": -1,
+ "desc": ""
},
- "avatar_subscript": 1,
- "nickname_color": "#FB7299",
- "avatar_subscript_url": ""
- },
- "nft_icon": "",
- "rec_reason": "",
- "track_id": ""
- }
+ "vip": {
+ "vipType": 2,
+ "vipDueDate": 1702742400000,
+ "dueRemark": "",
+ "accessStatus": 0,
+ "vipStatus": 1,
+ "vipStatusWarn": "",
+ "themeType": 0,
+ "label": {
+ "path": "",
+ "text": "年度大会员",
+ "label_theme": "annual_vip",
+ "text_color": "#FFFFFF",
+ "bg_style": 1,
+ "bg_color": "#FB7299",
+ "border_color": ""
+ },
+ "avatar_subscript": 1,
+ "nickname_color": "#FB7299",
+ "avatar_subscript_url": ""
+ },
+ "nft_icon": "",
+ "rec_reason": "",
+ "track_id": ""
+ },
+ {
+ "mid": 24022863,
+ "attribute": 6,
+ "mtime": 1685026230,
+ "tag": [
+ -10
+ ],
+ "special": 1,
+ "uname": "黄禄轩电脑专用账号",
+ "face": "https://i0.hdslb.com/bfs/face/a70ec7d2a3822980a915ef4b30371af0cbc79132.jpg",
+ "sign": "若要私信,请私信「黄禄轩手机专用账号」http://space.bilibili.com/17640193/,群:410311648",
+ "face_nft": 0,
+ "official_verify": {
+ "type": -1,
+ "desc": ""
+ },
+ "vip": {
+ "vipType": 2,
+ "vipDueDate": 1686412800000,
+ "dueRemark": "",
+ "accessStatus": 0,
+ "vipStatus": 1,
+ "vipStatusWarn": "",
+ "themeType": 0,
+ "label": {
+ "path": "",
+ "text": "年度大会员",
+ "label_theme": "annual_vip",
+ "text_color": "#FFFFFF",
+ "bg_style": 1,
+ "bg_color": "#FB7299",
+ "border_color": ""
+ },
+ "avatar_subscript": 1,
+ "nickname_color": "#FB7299",
+ "avatar_subscript_url": ""
+ },
+ "nft_icon": "",
+ "rec_reason": "",
+ "track_id": ""
+ },
+ {
+ "mid": 85438718,
+ "attribute": 6,
+ "mtime": 1684759843,
+ "tag": [
+ 194110
+ ],
+ "special": 0,
+ "uname": "忘忧北萱草Official",
+ "face": "https://i2.hdslb.com/bfs/face/68d8cba01aab907dbb2cf2e17074f20947156237.jpg",
+ "sign": "现已加入 OrangeFire 豪华套餐!",
+ "face_nft": 0,
+ "official_verify": {
+ "type": -1,
+ "desc": ""
+ },
+ "vip": {
+ "vipType": 2,
+ "vipDueDate": 1691683200000,
+ "dueRemark": "",
+ "accessStatus": 0,
+ "vipStatus": 1,
+ "vipStatusWarn": "",
+ "themeType": 0,
+ "label": {
+ "path": "",
+ "text": "年度大会员",
+ "label_theme": "annual_vip",
+ "text_color": "#FFFFFF",
+ "bg_style": 1,
+ "bg_color": "#FB7299",
+ "border_color": ""
+ },
+ "avatar_subscript": 1,
+ "nickname_color": "#FB7299",
+ "avatar_subscript_url": ""
+ },
+ "nft_icon": "",
+ "rec_reason": "",
+ "track_id": ""
+ },
+ {
+ "mid": 41620134,
+ "attribute": 6,
+ "mtime": 1684759649,
+ "tag": null,
+ "special": 0,
+ "uname": "Tiggy_Chan",
+ "face": "https://i0.hdslb.com/bfs/face/8c8d9f43eda207f8cb8503bfdf6cc3802a1cd6c1.jpg",
+ "sign": "此号只发科技类视频,娱乐类转至:虎子酱233",
+ "face_nft": 0,
+ "official_verify": {
+ "type": -1,
+ "desc": ""
+ },
+ "vip": {
+ "vipType": 1,
+ "vipDueDate": 1669219200000,
+ "dueRemark": "",
+ "accessStatus": 0,
+ "vipStatus": 0,
+ "vipStatusWarn": "",
+ "themeType": 0,
+ "label": {
+ "path": "",
+ "text": "",
+ "label_theme": "",
+ "text_color": "",
+ "bg_style": 0,
+ "bg_color": "",
+ "border_color": ""
+ },
+ "avatar_subscript": 0,
+ "nickname_color": "",
+ "avatar_subscript_url": ""
+ },
+ "nft_icon": "",
+ "rec_reason": "",
+ "track_id": ""
+ },
+ ……
],
"re_version": 0
}
@@ -1245,21 +1140,21 @@ curl -G 'https://api.bilibili.com/x/relation/friends' \
-## 查询黑名单明细
+### 查询黑名单明细
> https://api.bilibili.com/x/relation/blacks
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | -------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页码 | 非必要 | 默认为1 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | --------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| ps | num | 每页项数 | 非必要 | 默认为 50 |
+| pn | num | 页码 | 非必要 | 默认为 1 |
**json回复:**
@@ -1268,66 +1163,25 @@ curl -G 'https://api.bilibili.com/x/relation/friends' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
data 对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ---------- | ----- | ------------ | ------------ |
-| list | array | 明细列表 | |
-| re_version | num | ??? | 作用尚不明确 |
-| total | num | 黑名单总计数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ----- | ------------ | ---- |
+| list | array | 明细列表 | |
+| re_version | num | (?) | |
+| total | num | 黑名单总计数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------- | ---------------- |
-| 0 | obj | 关注1 | |
-| n | obj | 关注(n+1) | 按照关注顺序排列 |
-| …… | obj | …… | …… |
-
-数组`list`中的对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ---- | ------------ | ---------------------- |
-| mid | num | 用户mid | |
-| attribute | num | 关注属性 | 128:已拉黑 |
-| mtime | num | 关注对方时间 | 时间戳
互关后刷新 |
-| tag | null | | |
-| special | num | 0 | |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
-
-`list`中的对象中的`official_verify`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
-
-`list`中的对象中的`vip`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------------------- |
-| vipType | num | 会员类型 | 0:无
1:月度大会员
2:年度以上大会员 |
-| vipDueDate | num | 会员到期时间 | 时间戳 毫秒 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0:无
1:有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-`vip`中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------------- | -------------------------------- |
+| 0 | obj | 黑名单 1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 黑名单 (n+1) | 按照添加顺序排列 |
+| …… | obj | …… | …… |
**示例:**
@@ -1335,15 +1189,14 @@ data 对象:
```shell
curl -G 'https://api.bilibili.com/x/relation/blacks' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+ -b 'SESSDATA=xxx'
```
查看响应示例:
-
```json
{
"code": 0,
@@ -1412,25 +1265,27 @@ curl -G 'https://api.bilibili.com/x/relation/blacks' \
-## 操作用户关系
+## 操作关系
+### 操作用户关系
+
> https://api.bilibili.com/x/relation/modify
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ---------------------- | -------------- | -------------------------------------------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fid | num | 目标用户mid | 必要 | |
-| act | num | 操作代码 | 必要 | **操作代码见下表** |
-| re_src | num | 关注来源代码 | 必要 | 空间:11
视频:14
文章:115
活动页面:222 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | -------------------------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fid | num | 目标用户mid | 必要 | |
+| act | num | 操作代码 | 必要 | **操作代码见下表** |
+| re_src | num | 关注来源代码 | 必要 | 空间:11
视频:14
文章:115
活动页面:222 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
操作代码`act`:
@@ -1460,11 +1315,11 @@ curl -G 'https://api.bilibili.com/x/relation/blacks' \
```shell
curl 'https://api.bilibili.com/x/relation/modify' \
---data-urlencode 'fid=14082' \
---data-urlencode 'act=1' \
---data-urlencode 're_src=11' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'fid=14082' \
+ --data-urlencode 'act=1' \
+ --data-urlencode 're_src=11' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -1480,25 +1335,25 @@ curl 'https://api.bilibili.com/x/relation/modify' \
-## 批量操作用户关系
+### 批量操作用户关系
> https://api.bilibili.com/x/relation/batch/modify
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
此接口只支持关注和拉黑操作
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ---------------------- | -------------- | ---------------------------------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fids | nums | 目标用户mid | 必要 | 每个之间用`,`间隔 |
-| act | num | 操作代码 | 必要 | 同上
仅可为1或5,故只能进行批量关注和拉黑 |
-| re_src | num | 关注来源代码 | 必要 | 同上 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | ------------------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fids | nums | 目标用户 mid 列表 | 必要 | 每个之间用`,`间隔 |
+| act | num | 操作代码 | 必要 | 同上
仅可为 1 或 5,故只能进行批量关注和拉黑 |
+| re_src | num | 关注来源代码 | 必要 | 同上 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -1513,17 +1368,17 @@ curl 'https://api.bilibili.com/x/relation/modify' \
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ----------- | ----- | ------------- | ---- |
-| failed_fids | array | 操作失败的mid | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ----- | ------------------- | ---- |
+| failed_fids | array | 操作失败的 mid 列表 | |
`data`中的`failed_fids`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------------ | ---- |
-| 0 | num | 操作失败的mid 1 | |
-| n | num | 操作失败的mid(n+1) | |
-| …… | num | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------------- | ---- |
+| 0 | num | 操作失败的 mid 1 | |
+| n | num | 操作失败的 mid(n+1) | |
+| …… | num | …… | …… |
**示例:**
@@ -1531,11 +1386,11 @@ curl 'https://api.bilibili.com/x/relation/modify' \
```shell
curl 'https://api.bilibili.com/x/relation/batch/modify' \
---data-urlencode 'fid=1,2,3,4,5' \
---data-urlencode 'act=1' \
---data-urlencode 're_src=11' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'fid=1,2,3,4,5' \
+ --data-urlencode 'act=1' \
+ --data-urlencode 're_src=11' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -1554,20 +1409,40 @@ curl 'https://api.bilibili.com/x/relation/batch/modify' \
-## 查询用户与自己关系_仅查关注
+## 查询关系属性
+
+### 关系属性对象
+
+| 字段 | 类型 | 内容 | 备注 |
+| --------- | --------------------------------------- | ------------ | -------------------------------------------------------- |
+| mid | num | 目标用户 mid | |
+| attribute | num | 关系属性 | 0:未关注
2:已关注
6:已互粉
128:已拉黑 |
+| mtime | num | 关注对方时间 | 时间戳
未关注为 0 |
+| tag | null默认分组
array存在至少一个分组 | 分组 id | |
+| special | num | 特别关注标志 | 0:否
1:是 |
+
+`tag`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------------- | ---- |
+| 0 | num | 位于分组 1 的分组 | |
+| n | num | 位于分组(n+1)的分组 | |
+| …… | num | …… | …… |
+
+### 查询用户与自己关系(仅关注)
> https://api.bilibili.com/x/relation
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fid | num | 目标用户 mid | 必要 | |
**json回复:**
@@ -1578,34 +1453,16 @@ curl 'https://api.bilibili.com/x/relation/batch/modify' \
| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| data | obj | 信息本体 | 详见 [关系属性对象](#关系属性对象) |
-`data`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ---------------------------------------- | ------------ | --------------------------------------- |
-| mid | num | 目标用户mid | |
-| attribute | num | 关注属性 | 0:未关注
2:已关注
6:已互粉
128:拉黑 |
-| mtime | num | 关注对方时间 | 时间戳
未关注为0 |
-| tag | null默认分组
array存在至少一个分组 | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-
-`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ----------------------- | ---- |
-| 0 | num | 位于分组1的分组 | |
-| n | num | 位于分组(n+1)的分组 | |
-| …… | num | …… | …… |
-
-**示例:**
+`data`对象:**示例:**
可得对于`mid=258150656`的用户,在`2018/10/28 0:51:41`时关注,且设为特别关注,并位于为`-10`分组中
```shell
curl -G 'https://api.bilibili.com/x/relation' \
---data-urlencode 'fid=258150656' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'fid=258150656' \
+ -b 'SESSDATA=xxx'
```
@@ -1628,20 +1485,26 @@ curl -G 'https://api.bilibili.com/x/relation' \
-## 查询用户与自己关系_互相
+### 查询用户与自己关系(互相关系)
-> https://api.bilibili.com/x/space/acc/relation
+> https://api.bilibili.com/x/space/wbi/acc/relation
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
+
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
+~~该接口的旧版 API :https://api.bilibili.com/x/space/acc/relation~~(已废弃,不建议使用)
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------ | ----------- | ------------------------------------ |
+| access_key | str | APP登录Token | APP方式必要 | |
+| mid | num | 目标用户mid | 必要 | |
+| w_rid | str | Wbi 签名 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
+| wts | num | 当前时间戳 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
**json回复:**
@@ -1656,47 +1519,23 @@ curl -G 'https://api.bilibili.com/x/relation' \
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ----------- | ---- | ------------------------ | ---- |
-| relation | obj | 目标用户对于本用户的属性 | |
-| be_relation | obj | 本用户对于目标用户的属性 | |
-
-`data`中的`relation`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ---------------------------------------- | ------------ | -------------- |
-| mid | num | 对方用户mid | |
-| attribute | num | 关注属性 | 0:未关注
1:悄悄关注
2:已关注
6:已互粉
128:拉黑 |
-| mtime | num | 关注对方时间 | 互关后刷新时间 |
-| tag | null默认分组
array存在至少一个分组 | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-
-`data`中的`be_relation`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ---------------------------------------- | ------------ | -------------- |
-| mid | num | 自己的mid | |
-| attribute | num | 关注属性 | 0:未关注
1:悄悄关注
2:已关注
6:已互粉
128:拉黑 |
-| mtime | num | 成为粉丝时间 | 互关后刷新时间 |
-| tag | null默认分组
array存在至少一个分组 | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-
-`be_relation`与`relation`中的`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | -------------------------- | ---------------------------------- |
+| relation | obj | 目标用户对于当前用户的关系 | 详见 [关系属性对象](#关系属性对象) |
+| be_relation | obj | 当前用户对于目标用户的关系 | 详见 [关系属性对象](#关系属性对象) |
**示例:**
-可得对于`mid=15858903`的用户,在`2019/1/24 14:24:19`时关注了对方,且互相关注,自己将对方特别关注,并同时位于为`-10`和`194110`的分组中,对方也将自己设为特别关注,并同时位于为`-10`和`56502`的分组中(虽然我看不到)
+可得对于`mid=15858903`的用户,在`2019/1/24 14:24:19`时关注了对方,且互相关注,自己将对方特别关注,并同时位于为`-10`和`194110`的分组中,对方也将自己设为特别关注,并同时位于为`-10`和`56502`的分组中(虽然我看不到)
+
+Wbi 签名的 `wts`、`w_rid`生成方式详见 [Wbi 签名](../misc/sign/wbi.md) 文档
```shell
curl -G 'https://api.bilibili.com/x/space/acc/relation' \
---data-urlencode 'mid=15858903' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'mid=15858903' \
+ --data-urlencode 'wts=1686015899' \
+ --data-urlencode 'w_rid=e10a3c566c9be80a7cebe7bcdf262588' \
+ -b 'SESSDATA=xxx'
```
@@ -1704,46 +1543,51 @@ curl -G 'https://api.bilibili.com/x/space/acc/relation' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "relation": {
- "mid": 15858903,
- "attribute": 6,
- "mtime": 1548311059,
- "tag": [-10, 194110],
- "special": 1,
- "is_followed": false
- },
- "be_relation": {
- "mid": 293793435,
- "attribute": 6,
- "mtime": 1548311059,
- "tag": [56502, -10],
- "special": 1,
- "is_followed": false
- }
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "relation": {
+ "mid": 15858903,
+ "attribute": 6,
+ "mtime": 1548311059,
+ "tag": [
+ -10,
+ 194110,
+ 248468
+ ],
+ "special": 1
+ },
+ "be_relation": {
+ "mid": 293793435,
+ "attribute": 6,
+ "mtime": 1548311059,
+ "tag": [
+ 56502,
+ -10
+ ],
+ "special": 1
+ }
+ }
}
```
-## 批量查询用户与自己关系
+### 批量查询用户与自己关系
> https://api.bilibili.com/x/relation/relations
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------ | ----------- | ------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fids | nums | 目标用户mid | 必要 | 每个之间用`,`间隔 |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fids | nums | 目标用户 mid | 必要 | 每个之间用`,`间隔 |
**json回复:**
@@ -1758,28 +1602,10 @@ curl -G 'https://api.bilibili.com/x/space/acc/relation' \
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | ---- | ---------- | ---- |
-| {用户mid} | obj | 关注的用户 | 下同 |
-| …… | obj | …… | |
-
-`{用户mid}`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| --------- | --------------------------------------- | ------------ | ------------------------------------------------------------ |
-| mid | num | 目标用户mid | |
-| attribute | num | 关注属性 | 0:未关注
1:悄悄关注
2:已关注
6:已互粉
128:拉黑 |
-| mtime | num | 关注对方时间 | 时间戳
未关注为0 |
-| tag | null默认分组
array存在至少一个分组 | 分组id | |
-| special | num | 特别关注标志 | 0:否
1:是 |
-
-`tag`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | --------------------- | ---- |
-| 0 | num | 位于分组1的分组id | |
-| n | num | 位于分组(n+1)的分组id | |
-| …… | num | …… | …… |
+| 字段 | 类型 | 内容 | 备注 |
+| --------- | ---- | ---------- | ---------------------------------- |
+| {用户mid} | obj | 关注的用户 | 详见 [关系属性对象](#关系属性对象) |
+| …… | obj | …… | 下同 |
**示例:**
@@ -1822,19 +1648,26 @@ curl -G 'https://api.bilibili.com/x/relation/relations' \
## 关注分组相关
+分组 id 特殊值:
+
+| id | 含义 |
+| ---- | -------- |
+| 0 | 默认分组 |
+| -10 | 特别关心 |
+
### 查询关注分组列表
> https://api.bilibili.com/x/relation/tags
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
**json回复:**
@@ -1843,26 +1676,26 @@ curl -G 'https://api.bilibili.com/x/relation/relations' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------ | -------- | ----------------------------- |
| code | num | 返回值 | 0:成功
-101:账号未登录 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | array | 分组列表 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ---- |
-| 0 | obj | 特别关注分组 | |
-| 1 | obj | 默认分组 | |
-| n | obj | 其他分组 | |
-| …… | num | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | ---- |
+| 1 | obj | 分组 1 | |
+| n | obj | 分组(n+1) | |
+| …… | num | …… | …… |
数组`data`中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ----- | ---- | ---------- | ---------------------------------- |
-| tagid | num | 分组id | 特别关注恒为-10
默认分组恒为0 |
-| name | str | 分组名称 | |
-| count | num | 分组成员数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | ---------- | ---- |
+| tagid | num | 分组 id | -10:特别关注
0:默认分组 |
+| name | str | 分组名称 | |
+| count | num | 分组成员数 | |
+| tip | str | 提示信息 | |
**示例:**
@@ -1870,7 +1703,7 @@ curl -G 'https://api.bilibili.com/x/relation/relations' \
```shell
curl 'https://api.bilibili.com/x/relation/tags' \
--b 'SESSDATA=xxx'
+ -b 'SESSDATA=xxx'
```
@@ -1881,19 +1714,31 @@ curl 'https://api.bilibili.com/x/relation/tags' \
"code": 0,
"message": "0",
"ttl": 1,
- "data": [{
- "tagid": -10,
- "name": "特别关注",
- "count": 16
- }, {
- "tagid": 0,
- "name": "默认分组",
- "count": 536
- },{
- "tagid": 194111,
- "name": "我的同学",
- "count": 16
- },
+ "data": [
+ {
+ "tagid": -10,
+ "name": "特别关注",
+ "count": 19,
+ "tip": "第一时间收到该分组下用户更新稿件的通知"
+ },
+ {
+ "tagid": 0,
+ "name": "默认分组",
+ "count": 340,
+ "tip": ""
+ },
+ {
+ "tagid": 194110,
+ "name": "基友们",
+ "count": 127,
+ "tip": ""
+ },
+ {
+ "tagid": 194111,
+ "name": "我的同学",
+ "count": 22,
+ "tip": ""
+ },
…………
]
}
@@ -1907,17 +1752,19 @@ curl 'https://api.bilibili.com/x/relation/tags' \
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
+
+只可查询属于自己的分组
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ------------------------------------------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| tagid | num | 分组id | 必要 | 特别关注恒为-10
默认分组恒为0 |
-| order_type | str | 排序方式 | 非必要 | 按照关注顺序排列:留空
按照最常访问排列:attention |
-| ps | num | 每页项数 | 非必要 | 默认为50 |
-| pn | num | 页数 | 非必要 | 默认为1 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ------------------------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| tagid | num | 分组 id | 必要 | |
+| order_type | str | 排序方式 | 非必要 | 按照关注顺序排列:留空
按照最常访问排列:attention |
+| ps | num | 每页项数 | 非必要 | 默认为 20 |
+| pn | num | 页数 | 非必要 | 默认为1 |
**json回复:**
@@ -1926,54 +1773,51 @@ curl 'https://api.bilibili.com/x/relation/tags' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------ | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
22104:该分组不存在 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | array | 成员列表 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------- | ---------------- |
-| 0 | obj | 成员信息1 | |
-| n | obj | 成员信息(n+1) | 按照添加顺序排序 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | -------------------------------- |
+| 0 | obj | 成员信息 1 | 见 [关系列表对象](#关系列表对象) |
+| n | obj | 成员信息(n+1) | 按照添加顺序排序 |
+| …… | obj | …… | …… |
-数组`data`中的对象:
+`data` 中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ---- | ----------- | ---- |
-| mid | num | 用户mid | |
-| uname | str | 用户昵称 | |
-| face | str | 用户头像url | |
-| sign | str | 用户签名 | |
-| official_verify | obj | 认证信息 | |
-| vip | obj | 会员信息 | |
+| 字段 | 类型 | 内容 | 备注 |
+| --------------- | ---- | ----------- | -------------- |
+| mid | num | 用户id | |
+| attribute | num | 0 | |
+| tag | null | null | |
+| special | num | 0 | |
+| contract_info | json | 空的 | |
+| uname | str | 用户名 | |
+| face | str | 头像地址 | |
+| sign | str | 个人简介 | |
+| face_nft | int | ntf头像 | |
+| official_verify | json | 官方认证 | 具体见下 |
+| vip | json | 大会员 | 参考大会员文档 |
+| live | json | 直播状态 | 具体见下 |
+| nft_icon | str | 显示nft角标 | |
+| rec_reason | str | | |
+| track_id | str | | |
-数组`data`中的对象中的`official_verify`对象:
+`data`对象中的`official_verify`:
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ------------------- |
-| type | num | 用户认证类型 | -1:无
0:UP主认证
1:机构认证 |
-| desc | str | 用户认证信息 | 无为空 |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------ | ---- |
+| type | num | 0 | |
+| desc | str | 官方认证内容 | |
-数组`data`中的对象中的`vip`对象:
+`data`对象中的`live`:
-| 字段 | 类型 | 内容 | 备注 |
-| ------------- | ---- | ------------ | ----------------------------------- |
-| vipType | num | 大会员类型 | 0:无
1:月会员
2:年会员 |
-| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 |
-| dueRemark | str | 空 | 作用尚不明确 |
-| accessStatus | num | 0 | 作用尚不明确 |
-| vipStatus | num | 大会员状态 | 0无
1有 |
-| vipStatusWarn | str | 空 | 作用尚不明确 |
-| themeType | num | 0 | 作用尚不明确 |
-| label | obj | ??? | 作用尚不明确 |
-
-数组`data`中的对象中的`label`对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---- | ------------ |
-| path | str | 空 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | -------- | -------------------- |
+| live_status | num | 0或1 | 0:未开播,1:已直播 |
+| jump_url | str | 直播链接 |
**示例:**
@@ -1981,11 +1825,11 @@ curl 'https://api.bilibili.com/x/relation/tags' \
```shell
curl -G 'https://api.bilibili.com/x/relation/tag' \
---data-urlencode 'tagid=207542' \
---data-urlencode 'order_type=' \
---data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'tagid=207542' \
+ --data-urlencode 'order_type=' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+ -b 'SESSDATA=xxx'
```
@@ -2050,14 +1894,14 @@ curl -G 'https://api.bilibili.com/x/relation/tag' \
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fid | num | 目标用户 mid | 必要 | |
**json回复:**
@@ -2066,7 +1910,7 @@ curl -G 'https://api.bilibili.com/x/relation/tag' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
@@ -2074,9 +1918,8 @@ curl -G 'https://api.bilibili.com/x/relation/tag' \
| 字段 | 类型 | 内容 | 备注 |
| ------------------- | ---- | --------- | ---- |
-| {加入的分组id 1} | str | 分组1名称 | |
-| {加入的分组id n} | str | 分组n名称 | |
-| …… | str | …… | |
+| {加入的分组 id} | str | 分组名称 | 若目标用户存在默认分组中,则不显示 |
+| …… | str | …… | 下同 |
**示例:**
@@ -2084,8 +1927,8 @@ curl -G 'https://api.bilibili.com/x/relation/tag' \
```shell
curl -G 'https://api.bilibili.com/x/relation/tag/user' \
---data-urlencode 'fid=319214221' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'fid=319214221' \
+ -b 'SESSDATA=xxx'
```
@@ -2105,19 +1948,19 @@ curl -G 'https://api.bilibili.com/x/relation/tag/user' \
-### 查询所有特别关注的mid
+### 查询所有特别关注 mid
> https://api.bilibili.com/x/relation/tag/special
*请求方式:GET*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
**json回复:**
@@ -2126,23 +1969,23 @@ curl -G 'https://api.bilibili.com/x/relation/tag/user' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ----- | -------- | ----------------------------- |
| code | num | 返回值 | 0:成功
-101:账号未登录 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | array | 成员列表 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-| ---- | ---- | ------------ | ---- |
-| 0 | num | 成员1mid | |
-| n | num | 成员(n+1)mid | |
-| …… | num | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------------- | ---- |
+| 0 | num | 成员 1 mid | |
+| n | num | 成员(n+1)mid | |
+| …… | num | …… | …… |
**示例:**
```shell
curl 'https://api.bilibili.com/x/relation/tag/special' \
--b 'SESSDATA=xxx'
+ -b 'SESSDATA=xxx'
```
@@ -2186,15 +2029,15 @@ curl 'https://api.bilibili.com/x/relation/tag/special' \
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ---------------------- | -------------- | ---------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| tag | str | 分组名 | 必要 | 最长16字符 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | ------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| tag | str | 分组名 | 必要 | 最长 16 字符 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -2203,15 +2046,15 @@ curl 'https://api.bilibili.com/x/relation/tag/special' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22106:该分组已经存在
22103:分组名过长 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ----- | ---- | -------------- | ---- |
-| tagid | num | 创建的分组的id | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | --------------- | ---- |
+| tagid | num | 创建的分组的 id | |
**示例:**
@@ -2219,9 +2062,9 @@ curl 'https://api.bilibili.com/x/relation/tag/special' \
```shell
curl 'https://api.bilibili.com/x/relation/tag/create' \
---data-urlencode 'tag=测试' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'tag=测试' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -2246,16 +2089,16 @@ curl 'https://api.bilibili.com/x/relation/tag/create' \
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ---------------------- | -------------- | ---------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| tagid | num | 分组id | 必要 | |
-| name | str | 新名称 | 必要 | 最长16字符 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | ------------ |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| tagid | num | 分组 id | 必要 | |
+| name | str | 新名称 | 必要 | 最长 16 字符 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -2264,7 +2107,7 @@ curl 'https://api.bilibili.com/x/relation/tag/create' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22103:分组名过长
22104:该分组不存在 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
**示例:**
@@ -2273,10 +2116,10 @@ curl 'https://api.bilibili.com/x/relation/tag/create' \
```shell
curl 'https://api.bilibili.com/x/relation/tag/update' \
---data-urlencode 'tagid=194112' \
---data-urlencode 'name=膜法师' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'tagid=194112' \
+ --data-urlencode 'name=膜法师' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -2300,15 +2143,15 @@ curl 'https://api.bilibili.com/x/relation/tag/update' \
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ---------------------- | -------------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| tagid | num | 分组id | 必要 | |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ------------------------- | --------------- | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| tagid | num | 分组 id | 必要 | |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -2317,7 +2160,7 @@ curl 'https://api.bilibili.com/x/relation/tag/update' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
示例:
@@ -2326,9 +2169,9 @@ curl 'https://api.bilibili.com/x/relation/tag/update' \
```shell
curl 'https://api.bilibili.com/x/relation/tag/del' \
---data-urlencode 'tagid=216699' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'tagid=216699' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -2352,18 +2195,18 @@ curl 'https://api.bilibili.com/x/relation/tag/del' \
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-如需删除分组中的成员,请将`tagids`设为0,即移动至默认分组,而不是取关
+如需删除分组中的成员,请将`tagids`设为 0,即移动至默认分组,而不是取关
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fids | nums | 目标用户mid | 必要 | 每个之间用`,`间隔 |
-| tagids | nums | 分组id | 必要 | 每个之间用`,`间隔 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fids | nums | 目标用户 mid 列表 | 必要 | 每个之间用`,`间隔 |
+| tagids | nums | 分组 id 列表 | 必要 | 每个之间用`,`间隔 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -2372,7 +2215,7 @@ curl 'https://api.bilibili.com/x/relation/tag/del' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22104:无权限
22105:未关注 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
**示例:**
@@ -2381,10 +2224,10 @@ curl 'https://api.bilibili.com/x/relation/tag/del' \
```shell
curl 'https://api.bilibili.com/x/relation/tags/addUsers' \
---data-urlencode 'fids=205631797' \
---data-urlencode 'tagids=-10,207542' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'fids=205631797' \
+ --data-urlencode 'tagids=-10,207542' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -2406,16 +2249,16 @@ curl 'https://api.bilibili.com/x/relation/tags/addUsers' \
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ---------- | ---- | ------------------------ | -------------- | ------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| fids | nums | 待复制的用户mid | 必要 | 每个之间用`,`间隔 |
-| tagids | nums | 目标分组id | 必要 | 每个之间用`,`间隔 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| fids | nums | 待复制的用户 mid 列表 | 必要 | 每个之间用`,`间隔 |
+| tagids | nums | 目标分组 id 列表 | 必要 | 每个之间用`,`间隔 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -2424,7 +2267,7 @@ curl 'https://api.bilibili.com/x/relation/tags/addUsers' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22104:无权限
22105:未关注 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
**示例:**
@@ -2433,10 +2276,10 @@ curl 'https://api.bilibili.com/x/relation/tags/addUsers' \
```shell
curl 'https://api.bilibili.com/x/relation/tags/copyUsers' \
---data-urlencode 'fids=4856007,326499679' \
---data-urlencode 'tagids=231305' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'fids=4856007,326499679' \
+ --data-urlencode 'tagids=231305' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
@@ -2458,17 +2301,17 @@ curl 'https://api.bilibili.com/x/relation/tags/copyUsers' \
*请求方式:POST*
-认证方式:Cookie(SESSDATA)或APP
+认证方式:Cookie(SESSDATA)或 APP
-**正文参数( application/x-www-form-urlencoded ):**
+**正文参数(application/x-www-form-urlencoded):**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------ | ---- | ------------------------ | -------------- | ------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| beforeTagids | nums | 原分组id | 必要 | 每个之间用`,`间隔 |
-| afterTagids | nums | 新分组id | 必要 | 每个之间用`,`间隔 |
-| fids | nums | 待移动的用户mid | 必要 | 每个之间用`,`间隔 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| beforeTagids | nums | 原分组 id 列表 | 必要 | 每个之间用`,`间隔 |
+| afterTagids | nums | 新分组 id 列表 | 必要 | 每个之间用`,`间隔 |
+| fids | nums | 待移动的用户 mid 列表 | 必要 | 每个之间用`,`间隔 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -2477,7 +2320,7 @@ curl 'https://api.bilibili.com/x/relation/tags/copyUsers' \
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功
-111:csrf校验失败
-101:账号未登录
-400:请求错误
22104:无权限
22105:未关注 |
-| message | str | 错误信息 | 默认为0 |
+| message | str | 错误信息 | 默认为 0 |
| ttl | num | 1 | |
**示例:**
@@ -2486,11 +2329,11 @@ curl 'https://api.bilibili.com/x/relation/tags/copyUsers' \
```shell
curl 'https://api.bilibili.com/x/relation/tags/moveUsers' \
---data-urlencode 'beforeTagids=207542' \
---data-urlencode 'afterTagids=23130' \
---data-urlencode 'fids=321173469,327086920' \
---data-urlencode 'csrf=xxx' \
--b 'SESSDATA=xxx'
+ --data-urlencode 'beforeTagids=207542' \
+ --data-urlencode 'afterTagids=23130' \
+ --data-urlencode 'fids=321173469,327086920' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
```
diff --git a/docs/user/space.md b/docs/user/space.md
index ba6852f..f1c963b 100644
--- a/docs/user/space.md
+++ b/docs/user/space.md
@@ -1,5 +1,57 @@
# 用户空间相关
+- [主页](#主页)
+ - [置顶视频](#置顶视频)
+ - [查询用户置顶视频](#查询用户置顶视频)
+ - [设置置顶视频](#设置置顶视频)
+ - [取消置顶视频](#取消置顶视频)
+ - [代表作视频](#代表作视频)
+ - [查询用户代表作视频列表](#查询用户代表作视频列表)
+ - [添加代表作视频](#添加代表作视频)
+ - [删除代表作视频](#删除代表作视频)
+ - [个人TAG](#个人tag)
+ - [查看用户个人TAG](#查看用户个人tag)
+ - [修改个人TAG](#修改个人tag)
+ - [空间公告](#空间公告)
+ - [查看用户空间公告](#查看用户空间公告)
+ - [修改空间公告](#修改空间公告)
+ - [主页板块布局与权限](#主页板块布局与权限)
+ - [查询空间设置](#查询空间设置)
+ - [调整空间板块布局](#调整空间板块布局)
+ - [修改空间隐私权限](#修改空间隐私权限)
+ - [查询用户最近访问内容](#查询用户最近访问内容)
+ - [查询用户最近玩过的游戏](#查询用户最近玩过的游戏)
+ - [查询用户最近玩过的游戏V2](#查询用户最近玩过的游戏V2)
+ - [查询用户最近投币视频(Web)](#查询用户最近投币视频(Web))
+ - [查询用户最近投币视频(APP)](#查询用户最近投币视频(APP))
+ - [查询用户最近点赞视频(Web)](#查询用户最近点赞视频(Web))
+ - [查询用户最近点赞视频(APP)](#查询用户最近点赞视频(APP))
+- [投稿](#投稿)
+ - [查询用户投稿视频明细](#查询用户投稿视频明细)
+ - [查询用户投稿相簿预览](#查询用户投稿相簿预览)
+ - [查询用户投稿相簿明细](#查询用户投稿相簿明细)
+- [频道](#频道)
+ - [查询用户频道列表](#查询用户频道列表)
+ - [查询用户频道中的视频](#查询用户频道中的视频)
+ - [创建频道](#创建频道)
+ - [修改频道](#修改频道)
+ - [删除频道](#删除频道)
+ - [频道添加视频](#频道添加视频)
+ - [频道删除视频](#频道删除视频)
+ - [调整频道视频排序](#调整频道视频排序)
+ - [检查频道中有无失效视频](#检查频道中有无失效视频)
+- [收藏](#收藏)
+ - [查询用户创建的视频收藏夹](#查询用户创建的视频收藏夹)
+ - [查询用户收藏的视频收藏夹](#查询用户收藏的视频收藏夹)
+- [课程](#课程)
+ - [查询用户发布的课程列表](#查询用户发布的课程列表)
+- [订阅](#订阅)
+ - [查询用户追番预览列表](#查询用户追番预览列表)
+ - [查询用户追番(追剧)明细](#查询用户追番追剧明细)
+ - [查询用户关注的TAG(话题)](#查询用户关注的tag话题)
+
+---
+
## 主页
@@ -16,47 +68,47 @@
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|---------|-----|-----|
-| vmid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| vmid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|---------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
53016:没有置顶视频 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ---------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53016:没有置顶视频 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------------|------|-----------------|-------------------------------------------------------------------|
-| aid | num | 稿件avid | |
-| videos | num | 视频分P总数 | 默认为1 |
-| tid | num | 分区tid | |
-| tname | str | 子分区名称 | |
-| copyright | num | 是否转载 | 1:原创
2:转载 |
-| pic | str | 视频封面图片url | |
-| title | str | 稿件标题 | |
-| pubdate | num | 稿件发布时间 | 时间戳 |
-| ctime | num | 用户提交稿件的时间 | 时间戳 |
-| desc | str | 视频简介 | |
-| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`state`备注 |
-| attribute | num | 稿件属性位配置 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`attribute`备注 |
-| duration | num | 视频总计持续时长(所有分P) | 单位为秒 |
-| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`rights`对象 |
-| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`owner`对象 |
-| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`stat`对象 |
-| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
-| cid | num | 视频1P cid | |
-| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
-| bvid | str | 稿件bvid | |
-| reason | str | 置顶视频备注 | |
-| inter_video | bool | 是否为合作视频 | false:否
true:是 |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | ------------------------------ | ------------------------------------------------------------ |
+| aid | num | 稿件avid | |
+| videos | num | 视频分P总数 | 默认为1 |
+| tid | num | 分区tid | |
+| tname | str | 子分区名称 | |
+| copyright | num | 是否转载 | 1:原创
2:转载 |
+| pic | str | 视频封面图片url | |
+| title | str | 稿件标题 | |
+| pubdate | num | 稿件发布时间 | 时间戳 |
+| ctime | num | 用户提交稿件的时间 | 时间戳 |
+| desc | str | 视频简介 | |
+| state | num | 视频状态 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`state`备注 |
+| attribute | num | 稿件属性位配置 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`attribute`备注 |
+| duration | num | 视频总计持续时长(所有分P) | 单位为秒 |
+| rights | obj | 视频属性标志 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`rights`对象 |
+| owner | obj | 视频UP主信息 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`owner`对象 |
+| stat | obj | 视频状态数 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`stat`对象 |
+| dynamic | str | 视频同步发布的的动态的文字内容 | 无为空 |
+| cid | num | 视频1P cid | |
+| dimension | obj | 视频1P分辨率 | 略,见[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的`dimension`对象 |
+| bvid | str | 稿件bvid | |
+| reason | str | 置顶视频备注 | |
+| inter_video | bool | 是否为合作视频 | false:否
true:是 |
**示例:**
@@ -147,22 +199,22 @@ curl -G 'https://api.bilibili.com/x/space/top/arc' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|--------|-----|----------------------|--------|----------------------|
-| aid | num | 置顶目标稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 置顶目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| reason | str | 置顶视频备注 | 非必要 | 置顶备注最大40字符
默认为空 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------------ | -------------------------------- |
+| aid | num | 置顶目标稿件avid | 必要(可选) | avid与bvid任选一个 |
+| bvid | str | 置顶目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
+| reason | str | 置顶视频备注 | 非必要 | 置顶备注最大40字符
默认为空 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|---------------------------------------------------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-304:未修改
-400:请求错误
53014:稿件已失效
53015:备注过长
53017:置顶非自己的稿件 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-304:未修改
-400:请求错误
53014:稿件已失效
53015:备注过长
53017:置顶非自己的稿件 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -207,19 +259,19 @@ curl 'https://api.bilibili.com/x/space/top/arc/set' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|----------------------|-----|-----|
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ---- |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|--------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误(重复取消) |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误(重复取消) |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -256,28 +308,28 @@ curl 'https://api.bilibili.com/x/space/top/arc/cancel' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|---------|-----|-----|
-| vmid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| vmid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------|-------|---------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | array | 代表作列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------ | ---------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | array | 代表作列表 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|------|------------------|
-| 0 | obj | 代表作1 | 无则为空 |
-| 1 | obj | 代表作2 | 无则为空 |
-| 2 | obj | 代表作3 | 无则为空
最多设置3个 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------- | ------------------------- |
+| 0 | obj | 代表作1 | 无则为空 |
+| 1 | obj | 代表作2 | 无则为空 |
+| 2 | obj | 代表作3 | 无则为空
最多设置3个 |
`data`数组中的对象:
@@ -487,22 +539,22 @@ curl -G 'https://api.bilibili.com/x/space/masterpiece' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|--------|-----|----------------------|--------|----------------------|
-| aid | num | 置顶目标稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 置顶目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| reason | str | 代表作备注 | 非必要 | 置顶备注最大40字符
默认为空 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------------ | -------------------------------- |
+| aid | num | 置顶目标稿件avid | 必要(可选) | avid与bvid任选一个 |
+| bvid | str | 置顶目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
+| reason | str | 代表作备注 | 非必要 | 置顶备注最大40字符
默认为空 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------------------------------------------------------------------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53014:稿件已失效
53015:备注过长
53017:置顶非自己的稿件
53019:达到上限
53020:已经存在该稿件 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53014:稿件已失效
53015:备注过长
53017:置顶非自己的稿件
53019:达到上限
53020:已经存在该稿件 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -549,21 +601,21 @@ curl 'https://api.bilibili.com/x/space/masterpiece/add' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|----------------------|--------|---------------|
-| aid | num | 要删除的目标稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 要删除的目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------------ | ------------------ |
+| aid | num | 要删除的目标稿件avid | 必要(可选) | avid与bvid任选一个 |
+| bvid | str | 要删除的目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53021:置顶列表中没有该视频 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53021:置顶列表中没有该视频 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | 作用尚不明确 |
**示例:**
@@ -572,7 +624,7 @@ curl 'https://api.bilibili.com/x/space/masterpiece/add' \
avid方式:
```shell
-curl 'api.bilibili.com/x/space/masterpiece/cancel' \
+curl 'https://api.bilibili.com/x/space/masterpiece/cancel' \
--data-urlencode 'aid=59765630' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
@@ -601,42 +653,42 @@ curl 'https://api.bilibili.com/x/space/masterpiece/cancel' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------|------|---------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | array | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ----- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | array | 信息本体 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|------|---------|
-| 0 | obj | 套了个娃 | 只有1项??? |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ------------- |
+| 0 | obj | 套了个娃 | 只有1项??? |
`data`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------|-------|---------|-----|
-| mid | num | 目标用户mid | |
-| tags | array | TAG名称 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ----- | ----------- | ---- |
+| mid | num | 目标用户mid | |
+| tags | array | TAG名称 | |
`data`数组中的对象中的`tags`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|----------|------|
-| 0 | str | TAG1 | |
-| n | str | TAG(n+1) | |
-| …… | str | …… | |
-| 4 | str | TAG5 | 上限5条 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ------- |
+| 0 | str | TAG1 | |
+| n | str | TAG(n+1) | |
+| …… | str | …… | |
+| 4 | str | TAG5 | 上限5条 |
**示例:**
@@ -684,20 +736,20 @@ curl -G 'https://api.bilibili.com/x/space/acc/tags' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|------|----------------------|-----|--------------------------------------------------------------------------------|
-| tags | strs | 要设置的TAG内容 | 非必要 | 删除公告留空或省去即可
各TAG长度小于10字符
最多5个TAG
各TAG之间用","(%2C)分隔
重复TAG无效 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
+| tags | strs | 要设置的TAG内容 | 非必要 | 删除公告留空或省去即可
各TAG长度小于10字符
最多5个TAG
各TAG之间用","(%2C)分隔
重复TAG无效 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|----------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误(超出长度限制) |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误(超出长度限制) |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -741,12 +793,12 @@ curl 'https://api.bilibili.com/x/space/acc/tags/set' \
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|---------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | str | 公告信息 | 无则为空 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | str | 公告信息 | 无则为空 |
**示例:**
@@ -781,20 +833,20 @@ curl -G 'https://api.bilibili.com/x/space/notice' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|--------|-----|----------------------|-----|--------------------------|
-| notice | str | 要设置的公告内容 | 非必要 | 删除公告留空或省去即可
少于150字符 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | --------------------------------------- |
+| notice | str | 要设置的公告内容 | 非必要 | 删除公告留空或省去即可
少于150字符 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-304:未修改
-400:请求错误(超出长度限制) |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-304:未修改
-400:请求错误(超出长度限制) |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | 作用尚不明确 |
**示例:**
@@ -824,7 +876,7 @@ curl 'https://api.bilibili.com/x/space/notice/set' \
#### 查询空间设置
-> https://space.bilibili.com/ajax/settings/getSettings
+> http://space.bilibili.com/ajax/settings/getSettings
*请求方式:GET*
@@ -832,81 +884,81 @@ curl 'https://api.bilibili.com/x/space/notice/set' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|--------|-------------------------|---------------------------|----------------------|
-| status | bool | 用户是否存在 | true:存在
false:不存在 |
-| data | 用户存在时:obj
用户不存在时:str | 用户存在时:信息本体
用户不存在时:错误信息 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ------------------- | -------- | ---- |
+| status | bool | 用户是否存在 | true:存在
false:不存在 |
+| data | 用户存在时:obj
用户不存在时:str| 用户存在时:信息本体
用户不存在时:错误信息 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------------------------|-------|------------|--------|
-| privacy | obj | 空间隐私权限 | |
-| index_order | array | 空间板块布局 | |
-| theme | str | default主题? | 作用尚不明确 |
-| theme_preview_img_path | str | 主题预览图路径? | 作用尚不明确 |
-| toutu | obj | 空间头图 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------------------- | ----- | ---------------- | ------------ |
+| privacy | obj | 空间隐私权限 | |
+| index_order | array | 空间板块布局 | |
+| theme | str | default主题? | 作用尚不明确 |
+| theme_preview_img_path | str | 主题预览图路径? | 作用尚不明确 |
+| toutu | obj | 空间头图 | |
`privacy`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------------|-----|---------|------------------------|
-| bangumi | num | 追番及追剧 | 0:隐藏
1:公开
**下同** |
-| bbq | num | 轻视频 | |
-| channel | num | 频道 | |
-| coins_video | num | 最近投币的视频 | |
-| comic | num | 追漫 | |
-| dress_up | num | 装扮 | |
-| fav_video | num | 收藏夹 | |
-| groups | num | 圈子? | 作用尚不明确 |
-| likes_video | num | 最近点赞的视频 | |
-| played_game | num | 最近玩过的游戏 | |
-| tags | num | 订阅标签 | |
-| user_info | num | 个人资料 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | -------------- | ------------------------------ |
+| bangumi | num | 追番及追剧 | 0:隐藏
1:公开
**下同** |
+| bbq | num | 轻视频 | |
+| channel | num | 频道 | |
+| coins_video | num | 最近投币的视频 | |
+| comic | num | 追漫 | |
+| dress_up | num | 装扮 | |
+| fav_video | num | 收藏夹 | |
+| groups | num | 圈子? | 作用尚不明确 |
+| likes_video | num | 最近点赞的视频 | |
+| played_game | num | 最近玩过的游戏 | |
+| tags | num | 订阅标签 | |
+| user_info | num | 个人资料 | |
`index_order`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|--------------------------|
-| 0 | obj | 板块1 | 根据板块布局顺序排序
先左侧布局后右侧布局 |
-| n | obj | 板块(n+1) | |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------- | -------------------------------------------- |
+| 0 | obj | 板块1 | 根据板块布局顺序排序
先左侧布局后右侧布局 |
+| n | obj | 板块(n+1) | |
+| …… | obj | …… | …… |
`index_order`数组内对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------|-----|------|-----|
-| id | num | 板块编号 | |
-| name | str | 板块名称 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| id | num | 板块编号 | |
+| name | str | 板块名称 | |
`toutu`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------------|-----|------------|-----------------------------------|
-| sid | num | 空间头图ID | |
-| expire | num | 到期时间? | 时间戳?
作用尚不明确 |
-| s_img | str | 空间头图小图相对路径 | 完整url为`https://i0.hdslb.com/`+相对路径 |
-| l_img | str | 空间头图相对路径 | **同上** |
-| android_img | str | 空 | 注:**手机端头图与web端不同,需要用另一个api获取** |
-| iphone_img | str | 空 | |
-| ipad_img | str | 空 | |
-| thumbnail_img | str | 缩略图 | |
-| platform | num | 0 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------------- | ---- | -------------------- | -------------------------------------------------- |
+| sid | num | 空间头图ID | |
+| expire | num | 到期时间? | 时间戳?
作用尚不明确 |
+| s_img | str | 空间头图小图相对路径 | 完整url为`http://i0.hdslb.com/`+相对路径 |
+| l_img | str | 空间头图相对路径 | **同上** |
+| android_img | str | 空 | 注:**手机端头图与web端不同,需要用另一个api获取** |
+| iphone_img | str | 空 | |
+| ipad_img | str | 空 | |
+| thumbnail_img | str | 缩略图 | |
+| platform | num | 0 | 作用尚不明确 |
**示例:**
查看`mid=2`的空间设置
```shell
-curl -G 'https://space.bilibili.com/ajax/settings/getSettings' \
+curl -G 'http://space.bilibili.com/ajax/settings/getSettings' \
--data-urlencode 'mid=2'
```
@@ -1010,7 +1062,7 @@ curl -G 'https://space.bilibili.com/ajax/settings/getSettings' \
#### 调整空间板块布局
-> https://space.bilibili.com/ajax/settings/setIndexOrder
+> http://space.bilibili.com/ajax/settings/setIndexOrder
*请求方式:POST*
@@ -1020,38 +1072,38 @@ curl -G 'https://space.bilibili.com/ajax/settings/getSettings' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-------------|------|----------------------|-----|-----------------------------------------------|
-| index_order | nums | 布局列表 | 必要 | 每个值之间用","(%2C)分隔
先左侧布局再右侧布局
值的意义见下表 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ----------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
+| index_order | nums | 布局列表 | 必要 | 每个值之间用","(%2C)分隔
先左侧布局再右侧布局
值的意义见下表 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
布局参数`index_order`:
-| 值 | 含义 |
-|-----|----------------------|
-| 1 | (左侧)我的稿件 |
-| 2 | (左侧)我的收藏夹 |
-| 3 | (左侧)订阅番剧 |
-| 4 | (左侧)订阅标签 |
-| 5 | (左侧)最近投币的视频 |
-| 6 | (左侧)我的圈子**(此板块被隐藏)** |
-| 7 | (左侧)我的频道 |
-| 8 | (左侧)我的专栏 |
-| 9 | (左侧)我的相簿 |
-| 21 | (右侧)公告 |
-| 22 | (右侧)直播间 |
-| 23 | (右侧)个人资料 |
-| 24 | (右侧)官方活动 |
-| 25 | (右侧)最近玩的游戏 |
+| 值 | 含义 |
+| ---- | ------------------------------------ |
+| 1 | (左侧)我的稿件 |
+| 2 | (左侧)我的收藏夹 |
+| 3 | (左侧)订阅番剧 |
+| 4 | (左侧)订阅标签 |
+| 5 | (左侧)最近投币的视频 |
+| 6 | (左侧)我的圈子**(此板块被隐藏)** |
+| 7 | (左侧)我的频道 |
+| 8 | (左侧)我的专栏 |
+| 9 | (左侧)我的相簿 |
+| 21 | (右侧)公告 |
+| 22 | (右侧)直播间 |
+| 23 | (右侧)个人资料 |
+| 24 | (右侧)官方活动 |
+| 25 | (右侧)最近玩的游戏 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|--------|------|------|---------------------------|
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ---- | -------- | ----------------------------------- |
| ststus | bool | 操作结果 | true:操作成功
false:操作失败 |
-| data | str | 错误信息 | 正确时无此项 |
+| data | str | 错误信息 | 正确时无此项 |
**示例:**
@@ -1067,7 +1119,7 @@ curl -G 'https://space.bilibili.com/ajax/settings/getSettings' \
>我的频道
```shell
-curl 'https://space.bilibili.com/ajax/settings/setIndexOrder' \
+curl 'http://space.bilibili.com/ajax/settings/setIndexOrder' \
--data-urlencode 'index_order=1,8,3,2,9,5,4,7,22,23,21,24,25,6' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;' \
@@ -1087,7 +1139,7 @@ curl 'https://space.bilibili.com/ajax/settings/setIndexOrder' \
#### 修改空间隐私权限
-> https://space.bilibili.com/ajax/settings/setPrivacy
+> http://space.bilibili.com/ajax/settings/setPrivacy
*请求方式:POST*
@@ -1097,31 +1149,31 @@ curl 'https://space.bilibili.com/ajax/settings/setIndexOrder' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-------------|------|----------------------|-----|----------------------------|
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ----------- | ---- | ------------------------ | ------ | ---------------------------------- |
| fav_video | num | 收藏视频 | 非必要 | 0:隐藏
1:公开
**下同** |
-| bangumi | num | 追番及追剧 | 非必要 | |
-| tags | num | 关注的TAG | 非必要 | |
-| coins_video | num | 投币的视频 | 非必要 | |
-| user_info | num | 个人信息 | 非必要 | |
-| played_game | num | 玩过的游戏 | 非必要 | |
-| csrf | nstr | CSRF Token(位于cookie) | 必要 | |
+| bangumi | num | 追番及追剧 | 非必要 | |
+| tags | num | 关注的TAG | 非必要 | |
+| coins_video | num | 投币的视频 | 非必要 | |
+| user_info | num | 个人信息 | 非必要 | |
+| played_game | num | 玩过的游戏 | 非必要 | |
+| csrf | nstr | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|--------|------|------|---------------------------|
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ---- | -------- | ----------------------------------- |
| ststus | bool | 操作结果 | true:操作成功
false:操作失败 |
-| data | str | 错误信息 | 正确时无此项 |
+| data | str | 错误信息 | 正确时无此项 |
**示例:**
设置`关注的TAG`为隐藏
```shell
-curl 'https://space.bilibili.com/ajax/settings/setPrivacy' \
+curl 'http://space.bilibili.com/ajax/settings/setPrivacy' \
--data-urlencode 'tags=0' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx;DedeUserID=1;DedeUserID__ckMd5=1;' \
@@ -1139,44 +1191,50 @@ curl 'https://space.bilibili.com/ajax/settings/setPrivacy' \
-### 查询用户最近玩过的游戏
+### 查询用户最近访问内容
-> https://api.bilibili.com/x/space/lastplaygame
+#### 查询用户最近玩过的游戏
+
+> https://api.bilibili.com/x/space/lastplaygame
*请求方式:GET*
+认证方式:Cookie(SESSDATA)
+
+如设置隐私查看自己的需要认证
+
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------------------------|------|------------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | 隐藏时:null
公开时:array | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------------------------------- | -------- | ---------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | 隐藏时:null
公开时:array | 信息本体 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|----------|
-| 0 | obj | 游戏1 | |
-| n | obj | 游戏(n+1) | 项数为总计游戏数 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------- | ---------------- |
+| 0 | obj | 游戏1 | |
+| n | obj | 游戏(n+1) | 项数为总计游戏数 |
+| …… | obj | …… | …… |
`data`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|-----------|-----|
-| website | str | 游戏主页链接url | |
-| image | str | 游戏图片url | |
-| name | str | 游戏名 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | ---------- | ---- |
+| website | str | 游戏主页 url | |
+| image | str | 游戏图标 url | |
+| name | str | 游戏名 | |
**示例:**
@@ -1184,7 +1242,7 @@ curl 'https://space.bilibili.com/ajax/settings/setPrivacy' \
```shell
curl -G 'https://api.bilibili.com/x/space/lastplaygame' \
---data-urlencode 'mid=2'
+ --data-urlencode 'mid=2'
```
@@ -1227,180 +1285,79 @@ curl -G 'https://api.bilibili.com/x/space/lastplaygame' \
-### 获取用户最近投币的视频明细
+#### 查询用户最近玩过的游戏V2
-> https://api.bilibili.com/x/space/coin/video
+> https://api.bilibili.com/x/space/lastplaygame/v2
*请求方式:GET*
认证方式:Cookie(SESSDATA)
-如设置隐私查看自己的需要认证 仅包含最近投币的20个视频,如超过指定时间未投币(也许一个月),列表将为空
+如设置隐私查看自己的需要认证
**url参数:**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------- | ------ | ---- |
-| vmid | num | 目标用户mid | 必要 | |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------------------------|------|------------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | 隐藏时:null
公开时:array | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------------------------------- | -------- | ---------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | 隐藏时:null
公开时:obj | 信息本体 | |
-`data`数组:
+`data`对象:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|-----|
-| 0 | obj | 投币视频1 | |
-| n | obj | 投币视频(n+1) | |
-| …… | obj | …… | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ----- | ------ | --- |
+| page_num | num | 当前页码 | |
+| page_size | num | 每页项数 | |
+| total_count | num | 游戏总数 | |
+| list | array | 游戏列表 | |
-`data`数组中的对象:
+`list`数组:
-基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------- | ---------------- |
+| 0 | obj | 游戏1 | |
+| n | obj | 游戏(n+1) | 项数为总计游戏数 |
+| …… | obj | …… | …… |
+
+`list`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| -------------- | ----- | ----------- | ----------------- |
+| game_base_id | num | 游戏 id | biligame 的游戏 id |
+| game_name | str | 游戏名 | |
+| game_icon | str | 游戏图标 url | |
+| grade | num | 游戏评分 | 如`8.2`、`6.8` |
+| detail_url | str | 游戏主页 url | |
+| game_tags | array | 游戏标签 | |
+| notice | str | 游戏简介文案 | |
+| gift_title | str | 游戏礼物文案 | |
+| game_status_v2 | num | (?) | |
+
+`game_tags`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------ | --------------------------- |
+| 0 | obj | 游戏标签1 | 如`角色扮演`、`音乐节奏`、`休闲` |
+| n | obj | 游戏标签(n+1) | |
+| …… | obj | …… | …… |
**示例:**
-查看用户`mid=15858903`的最近投币视频
+查询`mid=2`的最近玩过的游戏
```shell
-curl -L -X GET 'https://api.bilibili.com/x/space/coin/video?vmid=15858903'
-```
-
-
-查看响应示例:
-
-```json
-{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": [
- {
- "aid": 259434557,
- "videos": 1,
- "tid": 218,
- "tname": "喵星人",
- "copyright": 1,
- "pic": "http://i2.hdslb.com/bfs/archive/47d46ad72bf1898ebbfe7d82a9d972d4b53e61fc.jpg",
- "title": "42度在家造溜冰场降温,猫上去直呼脚滑!",
- "pubdate": 1660361400,
- "ctime": 1660361407,
- "desc": "刚开始真的觉得很难,不可能,学会理论知识后觉得,就这?太简单了,所以随便做做是成立的。就是学费有点贵,1w多……,我现在空调随便修!希望日后修空调能把这钱在挣回来!(溜冰场上期指路:BV1ga411f79y)\n萌宠区手工up主往期发明指路: \n猫力跑步发电机:BV1iy4y1a7Cb \n电动撸毛器:BV1H64y1v7gq\n戒烟头盔:BV1H64y1k7tz \n猫热能暖床器:BV1xF411i7tw \n全透明赏猫床:BV1Qb4y1C7sn \n写不完啦 还有很多,就要靠各位慢慢挖掘啦!",
- "state": 0,
- "duration": 501,
- "mission_id": 859937,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 1,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 20951119,
- "name": "蒂姆嘟嘟Tim",
- "face": "http://i1.hdslb.com/bfs/face/9860c4c559fd2517b1fa92e592d3d71b95bb3ec2.jpg"
- },
- "stat": {
- "aid": 259434557,
- "view": 1403311,
- "danmaku": 5762,
- "reply": 1295,
- "favorite": 26633,
- "coin": 100847,
- "share": 4502,
- "now_rank": 0,
- "his_rank": 64,
- "like": 130944,
- "dislike": 0
- },
- "dynamic": "猫确实会两条腿滑冰!猫和老鼠诚不欺我",
- "cid": 800970167,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "season_id": 3702,
- "short_link_v2": "https://b23.tv/BV1wa411Z77n",
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220812a228chhkmeci9f0hizo6ivhzv_firsti.jpg",
- "pub_location": "上海",
- "bvid": "BV1wa411Z77n",
- "coins": 2,
- "time": 1662182649,
- "ip": "",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- }
- ]
-}
-```
-
-
-
-### 获取用户最近点赞的视频明细
-
-> https://api.bilibili.com/x/space/like/video
-
-*请求方式:GET*
-
-认证方式:Cookie(SESSDATA)
-
-如设置隐私查看自己的需要认证 仅包含最近点赞的20个视频,也可能为空
-
-**url参数:**
-
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|---------|-----|-----|
-| vmid | num | 目标用户mid | 必要 | |
-
-**json回复:**
-
-根对象:
-
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------------------------|------|------------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | 隐藏时:null
公开时:array | 信息本体 | |
-
-`data`数组:
-
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|-----|
-| 0 | obj | 点赞视频1 | |
-| n | obj | 点赞视频(n+1) | |
-| …… | obj | …… | |
-
-`data`数组中的对象:
-
-基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象
-
-**示例:**
-
-查看用户`mid=15858903`的最近投币视频
-
-```shell
-curl -L -X GET 'https://api.bilibili.com/x/space/like/video?vmid=15858903'
+curl -G 'https://api.bilibili.com/x/space/lastplaygame/v2' \
+ --data-urlencode 'mid=2'
```
@@ -1412,1202 +1369,123 @@ curl -L -X GET 'https://api.bilibili.com/x/space/like/video?vmid=15858903'
"message": "0",
"ttl": 1,
"data": {
+ "page_num": 0,
+ "page_size": 15,
+ "total_count": 8,
"list": [
{
- "aid": 53516907,
- "videos": 1,
- "tid": 26,
- "tname": "音MAD",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/3653400bb9a5996c9f0702d20fc431210dca0c5e.jpg",
- "title": "喵内我回来了Brain Power",
- "pubdate": 1558756227,
- "ctime": 1558756227,
- "desc": "在准备一个合作,所以一直没更新,O-oooooooooo AAAAE-A-A-I-A-U- JO-oooooooooooo AAE-O-A-A-U-U-A- E-eee-ee-eee AAAAE-A-E-I-E-A- JO-ooo-oo-oo-oo EEEEO-A-AAA-AAAA",
- "state": 0,
- "duration": 48,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 1,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 12466098,
- "name": "不知道4576",
- "face": "http://i0.hdslb.com/bfs/face/1361b4a2e686e9efa89fc0f1024985d0c44345c6.jpg"
- },
- "stat": {
- "aid": 53516907,
- "view": 125484,
- "danmaku": 258,
- "reply": 441,
- "favorite": 4268,
- "coin": 3132,
- "share": 859,
- "now_rank": 0,
- "his_rank": 0,
- "like": 5767,
- "dislike": 0
- },
- "dynamic": "#BRAIN POWER##音MAD##天使降临到我身边#",
- "cid": 93639076,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1V4411s7Qr",
- "bvid": "BV1V4411s7Qr",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 102567,
+ "game_name": "坎特伯雷公主与骑士唤醒冠军之剑的奇幻冒险",
+ "game_icon": "https://i0.hdslb.com/bfs/game/fc2f4fd3a347eeb9b8b6ab59d961269bdd05d4e0.png",
+ "grade": 8.2,
+ "detail_url": "https://www.biligame.com/detail/?id=102567",
+ "game_tags": [
+ "角色扮演",
+ "像素风"
+ ],
+ "notice": "像素风欢脱冒险RPG",
+ "gift_title": "",
+ "game_status_v2": 0
},
{
- "aid": 557851916,
- "videos": 1,
- "tid": 122,
- "tname": "野生技能协会",
- "copyright": 2,
- "pic": "http://i1.hdslb.com/bfs/archive/fea0d9efa7e2dc8cd9960bd466f78b2ed84d907d.jpg",
- "title": "请问:「宁可在屎山上不断堆代码,也不愿意优化项目需求」❓",
- "pubdate": 1662441923,
- "ctime": 1662441923,
- "desc": "https://fishc.com.cn/thread-217312-1-1.html\n⬆️关于产品迭代的3个关键⬆️",
- "state": 0,
- "duration": 312,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 1,
- "no_reprint": 0,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 314076440,
- "name": "鱼C-小甲鱼",
- "face": "http://i2.hdslb.com/bfs/face/4543ce186f9b74e60a85e66c010187bd3be3d0e1.jpg"
- },
- "stat": {
- "aid": 557851916,
- "view": 89834,
- "danmaku": 245,
- "reply": 164,
- "favorite": 490,
- "coin": 265,
- "share": 570,
- "now_rank": 0,
- "his_rank": 0,
- "like": 1601,
- "dislike": 0
- },
- "dynamic": "【遇山开路 逢水搭桥】超完美产品是如何「迭代」出来的❓",
- "cid": 825277912,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "season_id": 4830,
- "short_link_v2": "https://b23.tv/BV1pe4y1C7XD",
- "up_from_v2": 20,
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220906qn22r4a6hff6vie1bodoftvgi_firsti.jpg",
- "pub_location": "广东",
- "bvid": "BV1pe4y1C7XD",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 101661,
+ "game_name": "光·遇",
+ "game_icon": "https://i0.hdslb.com/bfs/game/9a1be39915f057597f9328afe503a2bbd0de7754.png",
+ "grade": 6.8,
+ "detail_url": "https://www.biligame.com/detail/?id=101661",
+ "game_tags": [
+ "休闲",
+ "治愈",
+ "唯美"
+ ],
+ "notice": "九色鹿季开启,探索本真之旅",
+ "gift_title": "光·遇九色鹿季回归礼包",
+ "game_status_v2": 0
},
{
- "aid": 730007618,
- "videos": 1,
- "tid": 27,
- "tname": "综合",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/1f65fd131db7eb81fd270e6ccb7257b68dfd60c4.jpg",
- "title": "细!《猫和老鼠》中的小穿帮竟然有这么多!画师偷懒?",
- "pubdate": 1661862565,
- "ctime": 1661862565,
- "desc": "BGM:超级马里奥世界\n 匈牙利狂想曲-李斯特\n Used to-James Carter",
- "state": 0,
- "duration": 338,
- "mission_id": 779615,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 38968617,
- "name": "大福咕咕",
- "face": "http://i0.hdslb.com/bfs/face/e4a00d5409f1888c10e7382bf15df0fbd9f78ae8.jpg"
- },
- "stat": {
- "aid": 730007618,
- "view": 8052558,
- "danmaku": 6994,
- "reply": 1905,
- "favorite": 181436,
- "coin": 113827,
- "share": 5447,
- "now_rank": 0,
- "his_rank": 2,
- "like": 698492,
- "dislike": 0
- },
- "dynamic": "考虑到广大朋友们要开学了 直接提前更新!",
- "cid": 819285197,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "season_id": 371093,
- "short_link_v2": "https://b23.tv/BV1kD4y1672t",
- "first_frame": "http://i2.hdslb.com/bfs/storyff/n220830a238owa0pg6docs2wak8t6tg2_firsti.jpg",
- "pub_location": "北京",
- "bvid": "BV1kD4y1672t",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 103496,
+ "game_name": "原神",
+ "game_icon": "https://i0.hdslb.com/bfs/game/2b29383536b3d1a2517bfcb73767f78c242f0458.png",
+ "grade": 6.5,
+ "detail_url": "https://www.biligame.com/detail/?id=103496",
+ "game_tags": [
+ "角色扮演",
+ "二次元",
+ "冒险"
+ ],
+ "notice": "跨越尘世的探索之旅",
+ "gift_title": "bilibili-原神4.4版本独家礼包",
+ "game_status_v2": 0
},
{
- "aid": 886537437,
- "videos": 2,
- "tid": 22,
- "tname": "鬼畜调教",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/db9314a8b2730ee95cb9cac7fc5054c770ea9c9f.jpg",
- "title": "电棍:向♿奔去(修复版)",
- "pubdate": 1612420280,
- "ctime": 1612420280,
- "desc": "原作@_Karasu_ \n拙劣的模仿 歌词有修改",
- "state": 0,
- "duration": 448,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 12771348,
- "name": "DJRicher",
- "face": "http://i0.hdslb.com/bfs/face/4a033640048238cb039add4e064804e227e87082.jpg"
- },
- "stat": {
- "aid": 886537437,
- "view": 8790816,
- "danmaku": 11516,
- "reply": 50330,
- "favorite": 106746,
- "coin": 157098,
- "share": 66553,
- "now_rank": 0,
- "his_rank": 0,
- "like": 155180,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 312766707,
- "dimension": {
- "width": 1280,
- "height": 720,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1vK4y1p7F5",
- "bvid": "BV1vK4y1p7F5",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 49,
+ "game_name": "命运-冠位指定(Fate/GO)",
+ "game_icon": "https://i0.hdslb.com/bfs/game/ca5d8d4b3a042beddf7cabca20ae0c946527d1bf.png",
+ "grade": 6,
+ "detail_url": "https://www.biligame.com/detail/?id=49",
+ "game_tags": [
+ "卡牌",
+ "fate",
+ "厨向"
+ ],
+ "notice": "第2部现已开启!",
+ "gift_title": "",
+ "game_status_v2": 0
},
{
- "aid": 514421957,
- "videos": 1,
- "tid": 21,
- "tname": "日常",
- "copyright": 2,
- "pic": "http://i2.hdslb.com/bfs/archive/8570e2264c585ec47fa2f90f0fb41fcbe24082c1.jpg",
- "title": "女子“巨乳症” 至Q杯,医生切除26斤赘乳",
- "pubdate": 1660436958,
- "ctime": 1660436958,
- "desc": "网络",
- "state": 0,
- "duration": 157,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 0,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 153362257,
- "name": "微胖委员会",
- "face": "http://i1.hdslb.com/bfs/face/7bce12b8b5fef2f31d215dec94fc5fc18cdd41a2.jpg"
- },
- "stat": {
- "aid": 514421957,
- "view": 1863705,
- "danmaku": 1357,
- "reply": 2953,
- "favorite": 3091,
- "coin": 95,
- "share": 25867,
- "now_rank": 0,
- "his_rank": 0,
- "like": 16315,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 802910768,
- "dimension": {
- "width": 1280,
- "height": 720,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1xg411k7L1",
- "up_from_v2": 8,
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220814qn1cm2zo6jetqmu2nvlcxssy1_firsti.jpg",
- "pub_location": "江苏",
- "bvid": "BV1xg411k7L1",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 102216,
+ "game_name": "公主连结Re:Dive",
+ "game_icon": "https://i0.hdslb.com/bfs/game/3bb819e010fe6d594d8f4d417ee380f40e8b5b06.png",
+ "grade": 8.4,
+ "detail_url": "https://www.biligame.com/detail/?id=102216",
+ "game_tags": [
+ "角色扮演"
+ ],
+ "notice": "新角色「璃乃(圣诞节)」登场!",
+ "gift_title": "",
+ "game_status_v2": 0
},
{
- "aid": 259434557,
- "videos": 1,
- "tid": 218,
- "tname": "喵星人",
- "copyright": 1,
- "pic": "http://i2.hdslb.com/bfs/archive/47d46ad72bf1898ebbfe7d82a9d972d4b53e61fc.jpg",
- "title": "42度在家造溜冰场降温,猫上去直呼脚滑!",
- "pubdate": 1660361400,
- "ctime": 1660361407,
- "desc": "刚开始真的觉得很难,不可能,学会理论知识后觉得,就这?太简单了,所以随便做做是成立的。就是学费有点贵,1w多……,我现在空调随便修!希望日后修空调能把这钱在挣回来!(溜冰场上期指路:BV1ga411f79y)\n萌宠区手工up主往期发明指路: \n猫力跑步发电机:BV1iy4y1a7Cb \n电动撸毛器:BV1H64y1v7gq\n戒烟头盔:BV1H64y1k7tz \n猫热能暖床器:BV1xF411i7tw \n全透明赏猫床:BV1Qb4y1C7sn \n写不完啦 还有很多,就要靠各位慢慢挖掘啦!",
- "state": 0,
- "duration": 501,
- "mission_id": 859937,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 1,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 20951119,
- "name": "蒂姆嘟嘟Tim",
- "face": "http://i1.hdslb.com/bfs/face/9860c4c559fd2517b1fa92e592d3d71b95bb3ec2.jpg"
- },
- "stat": {
- "aid": 259434557,
- "view": 1403315,
- "danmaku": 5762,
- "reply": 1295,
- "favorite": 26633,
- "coin": 100847,
- "share": 4502,
- "now_rank": 0,
- "his_rank": 64,
- "like": 130944,
- "dislike": 0
- },
- "dynamic": "猫确实会两条腿滑冰!猫和老鼠诚不欺我",
- "cid": 800970167,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "season_id": 3702,
- "short_link_v2": "https://b23.tv/BV1wa411Z77n",
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220812a228chhkmeci9f0hizo6ivhzv_firsti.jpg",
- "pub_location": "上海",
- "bvid": "BV1wa411Z77n",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 168,
+ "game_name": "BanG Dream!",
+ "game_icon": "https://i0.hdslb.com/bfs/game/d196365d9f112a5adede7eedea1e4154e98c5e53.png",
+ "grade": 9.2,
+ "detail_url": "https://www.biligame.com/detail/?id=168",
+ "game_tags": [
+ "音乐节奏",
+ "BanG Dream"
+ ],
+ "notice": "「迎风展翅的我们」活动开启!",
+ "gift_title": "",
+ "game_status_v2": 0
},
{
- "aid": 765765040,
- "videos": 1,
- "tid": 26,
- "tname": "音MAD",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/f92297d237bc330e4c70bd7cb4b6a5988a4a35df.jpg",
- "title": "向 先 辈 奔 去",
- "pubdate": 1642843003,
- "ctime": 1642843003,
- "desc": "远野说大家听不出他的和声所以不愿意来了(迫真)\nBGM:夜に駆ける\nPV:BV1Ph411C7S5\n封面:@十人比白 \n其他作品:\n病 名 为 臭 BV1W3411Y7R3\nHomo KING BV1p3411Y7Qf\n先 辈 の 名 は BV1bF411p7W7\n野兽先辈的消失 BV1XL4y147KK",
- "state": 0,
- "duration": 119,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 26540403,
- "name": "小王子擎天",
- "face": "http://i0.hdslb.com/bfs/face/70723d05c4fcd3af47ac7e453bee06feea48b804.jpg"
- },
- "stat": {
- "aid": 765765040,
- "view": 125123,
- "danmaku": 168,
- "reply": 384,
- "favorite": 3518,
- "coin": 878,
- "share": 858,
- "now_rank": 0,
- "his_rank": 0,
- "like": 6224,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 490015078,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "season_id": 185827,
- "short_link_v2": "https://b23.tv/BV19r4y1Y7De",
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220122a26mtv7cs4x1ga3329ew4cqhb_firsti.jpg",
- "bvid": "BV19r4y1Y7De",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 101772,
+ "game_name": "明日方舟",
+ "game_icon": "https://i0.hdslb.com/bfs/game/faa556b00d29fffc88281c1ee038b1b7f23aa5c2.jpg",
+ "grade": 7.4,
+ "detail_url": "https://www.biligame.com/detail/?id=101772",
+ "game_tags": [
+ "策略",
+ "架空文明",
+ "末世"
+ ],
+ "notice": "2023感谢庆典正式开启",
+ "gift_title": "",
+ "game_status_v2": 0
},
{
- "aid": 599348400,
- "videos": 1,
- "tid": 218,
- "tname": "喵星人",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/6c0b56f7b2a378e32c40c2ec7cf4a34cf6e42ad2.jpg",
- "title": "打开前请先降低音量哦!!",
- "pubdate": 1660007700,
- "ctime": 1660007701,
- "desc": "日常投食小猫咪\n视频里的是两个窝次的15只崽崽\n5月30日和6月1日出生\nliliya和Tessa的宝宝",
- "state": 0,
- "duration": 203,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 1,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 43099315,
- "name": "颖姥姥的小猪喵",
- "face": "http://i1.hdslb.com/bfs/face/6261098e074624891f5f1cdf35b4df64401c4307.jpg"
- },
- "stat": {
- "aid": 599348400,
- "view": 5611104,
- "danmaku": 14300,
- "reply": 8180,
- "favorite": 122270,
- "coin": 45195,
- "share": 126333,
- "now_rank": 0,
- "his_rank": 5,
- "like": 536114,
- "dislike": 0
- },
- "dynamic": "日常投食小猫咪\n视频里的是两个窝次的15只崽崽\n5月30日和6月1日出生\nliliya和Tessa的宝宝",
- "cid": 797762429,
- "dimension": {
- "width": 1080,
- "height": 1920,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1cB4y167B8",
- "up_from_v2": 9,
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220809a2ku7vu7oisum1632zs07p7dg_firsti.jpg",
- "pub_location": "山东",
- "bvid": "BV1cB4y167B8",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 472194944,
- "videos": 1,
- "tid": 162,
- "tname": "绘画",
- "copyright": 1,
- "pic": "http://i2.hdslb.com/bfs/archive/aee4307632ecad127f60ae556cc5981f1a329c15.jpg",
- "title": "有些画,不需要太清晰",
- "pubdate": 1660817303,
- "ctime": 1660817303,
- "desc": "先画个狗头保命",
- "state": 0,
- "duration": 147,
- "mission_id": 761022,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 28330240,
- "name": "叶无趣",
- "face": "http://i1.hdslb.com/bfs/face/9416d6dd723d271bdd805ccf2e44dc47436c5a07.jpg"
- },
- "stat": {
- "aid": 472194944,
- "view": 2378719,
- "danmaku": 6517,
- "reply": 2815,
- "favorite": 33778,
- "coin": 24411,
- "share": 11461,
- "now_rank": 0,
- "his_rank": 0,
- "like": 209110,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 807922809,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1DT411c7AD",
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220819a213lvuk7uqfgh91m9lv1esx1_firsti.jpg",
- "pub_location": "湖南",
- "bvid": "BV1DT411c7AD",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 599779624,
- "videos": 1,
- "tid": 173,
- "tname": "桌游棋牌",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/70800347ccbd019b678b41318c203b8fecb9aaec.jpg",
- "title": "【雀魂汪汪录】第196期 谁能给我翻译翻译 什么叫做惊喜",
- "pubdate": 1661394900,
- "ctime": 1661252218,
- "desc": "BGM可以通过网易云搜索【雀魂汪汪录BGM】就可以找到啦!\n雀魂汪汪录 周四中午见\n微博 @雀魂麻将majsoul\n——————————————————————————\n想要投稿的玩家~务必请通过邮箱来进行投稿~【请不要在评论区或是私信投稿,谢谢】\n邮箱地址:tg@catfoodstudio.com\n投稿最少需要注明【局目、内容、牌谱链接】哦!",
- "state": 0,
- "duration": 575,
- "mission_id": 808212,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 353240497,
- "name": "雀魂麻将majsoul",
- "face": "http://i1.hdslb.com/bfs/face/053f02d2a7eb96884b1020ca20d6d02241df6099.jpg"
- },
- "stat": {
- "aid": 599779624,
- "view": 187150,
- "danmaku": 1958,
- "reply": 516,
- "favorite": 342,
- "coin": 787,
- "share": 646,
- "now_rank": 0,
- "his_rank": 0,
- "like": 7429,
- "dislike": 0
- },
- "dynamic": "#雀魂# #雀魂汪汪录# #立直麻将#",
- "cid": 812183140,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "season_id": 2739,
- "short_link_v2": "https://b23.tv/BV1aB4y1z74J",
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220823qn266np8ftodq2t2m2paam9xj_firsti.jpg",
- "pub_location": "上海",
- "bvid": "BV1aB4y1z74J",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 685619632,
- "videos": 1,
- "tid": 17,
- "tname": "单机游戏",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/750b5fabea1ff363d775ba58f95a23b5cb890be9.jpg",
- "title": "多人群峦传说联机3:用木炭炉做出铜溶液,浇筑出铜镐和探矿镐!",
- "pubdate": 1656756676,
- "ctime": 1656756677,
- "desc": "-",
- "state": 0,
- "duration": 268,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 1771879421,
- "name": "方块局安神",
- "face": "http://i2.hdslb.com/bfs/face/c3781165f41f2b4d99e7beb1356105f624cc424e.jpg"
- },
- "stat": {
- "aid": 685619632,
- "view": 215,
- "danmaku": 0,
- "reply": 2,
- "favorite": 1,
- "coin": 0,
- "share": 0,
- "now_rank": 0,
- "his_rank": 0,
- "like": 8,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 761921385,
- "dimension": {
- "width": 1920,
- "height": 864,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1MU4y1D7ND",
- "up_from_v2": 35,
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220702qndfrow9p4eq991lyl8em2v9w_firsti.jpg",
- "pub_location": "宁夏",
- "bvid": "BV1MU4y1D7ND",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 427974127,
- "videos": 1,
- "tid": 17,
- "tname": "单机游戏",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/1f81be8fd2eec800e3134f24928b66b75c25a078.jpg",
- "title": "多人群峦传说联机1:开局做出篝火和木炭窑!很快的进入陶器时代!",
- "pubdate": 1656660681,
- "ctime": 1656660682,
- "desc": "-",
- "state": 0,
- "duration": 313,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 1771879421,
- "name": "方块局安神",
- "face": "http://i2.hdslb.com/bfs/face/c3781165f41f2b4d99e7beb1356105f624cc424e.jpg"
- },
- "stat": {
- "aid": 427974127,
- "view": 186,
- "danmaku": 0,
- "reply": 7,
- "favorite": 1,
- "coin": 2,
- "share": 0,
- "now_rank": 0,
- "his_rank": 0,
- "like": 7,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 760818007,
- "dimension": {
- "width": 1920,
- "height": 864,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1MG411x7Jh",
- "up_from_v2": 35,
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220701qn3ejknxipb82r1a0hut5chj5_firsti.jpg",
- "pub_location": "宁夏",
- "bvid": "BV1MG411x7Jh",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 602112213,
- "videos": 1,
- "tid": 22,
- "tname": "鬼畜调教",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/5edabb39c8ac3a3202111e8e60f8e45b8b3c180d.jpg",
- "title": "你被百度骗了,呵呵",
- "pubdate": 1660561467,
- "ctime": 1660561467,
- "desc": "分区和参与活动真的合理吗()\n很草的点子\n烂活",
- "state": 0,
- "duration": 62,
- "mission_id": 738105,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 361685930,
- "name": "啰嗦_Losso",
- "face": "http://i2.hdslb.com/bfs/face/e26253ff660c19fdb953825aef990c30ad08c8dc.jpg"
- },
- "stat": {
- "aid": 602112213,
- "view": 58957,
- "danmaku": 112,
- "reply": 231,
- "favorite": 1401,
- "coin": 514,
- "share": 117,
- "now_rank": 0,
- "his_rank": 0,
- "like": 9353,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 804462941,
- "dimension": {
- "width": 828,
- "height": 1792,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1yB4y1L7iG",
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220815qn31gxoi0spl1yr35uq27n3u4_firsti.jpg",
- "pub_location": "美国",
- "bvid": "BV1yB4y1L7iG",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 856393020,
- "videos": 1,
- "tid": 238,
- "tname": "运动综合",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/d7edbba4eb63bb9ceed978ae46e676cb3fdbaf6a.jpg",
- "title": "极限难度!不碰其他球把45颗球打入洞中!海外知名桌球博主来B站啦!",
- "pubdate": 1659105213,
- "ctime": 1659105213,
- "desc": "",
- "state": 0,
- "duration": 756,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 1954176521,
- "name": "桌球小哥genipool官方",
- "face": "http://i2.hdslb.com/bfs/face/90ca22fa8c79d0d5042c7c24daf1ec574679a740.jpg"
- },
- "stat": {
- "aid": 856393020,
- "view": 342876,
- "danmaku": 365,
- "reply": 159,
- "favorite": 809,
- "coin": 800,
- "share": 283,
- "now_rank": 0,
- "his_rank": 0,
- "like": 4266,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 788065599,
- "dimension": {
- "width": 1280,
- "height": 720,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV18V4y1E7zo",
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220729qn15m1fxzexlmvq1j541qvx6r_firsti.jpg",
- "pub_location": "福建",
- "bvid": "BV18V4y1E7zo",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 728238452,
- "videos": 1,
- "tid": 232,
- "tname": "科工机械",
- "copyright": 1,
- "pic": "http://i2.hdslb.com/bfs/archive/6613ccabbf0828d0071efbb2351818c3cab62725.jpg",
- "title": "烧脑故障,家庭漏电维修图解",
- "pubdate": 1657075740,
- "ctime": 1657075740,
- "desc": "-",
- "state": 0,
- "duration": 433,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 1985127693,
- "name": "城阳电工电路",
- "face": "http://i0.hdslb.com/bfs/face/faae5daababbf652d97faedab1a25d78b654fc44.jpg"
- },
- "stat": {
- "aid": 728238452,
- "view": 138664,
- "danmaku": 277,
- "reply": 263,
- "favorite": 681,
- "coin": 601,
- "share": 85,
- "now_rank": 0,
- "his_rank": 0,
- "like": 9567,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 765013281,
- "dimension": {
- "width": 1080,
- "height": 1920,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV12S4y1E7rt",
- "up_from_v2": 8,
- "first_frame": "http://i2.hdslb.com/bfs/storyff/n220706qn257g5ymn00jrq1tbc2y0k4s_firsti.jpg",
- "pub_location": "山东",
- "bvid": "BV12S4y1E7rt",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 556671285,
- "videos": 1,
- "tid": 173,
- "tname": "桌游棋牌",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/02aa212793ebfdc5bd2b243109961d01ef74015f.jpg",
- "title": "【整活向】麻将新手不常见错误示范——偷换牌山",
- "pubdate": 1659761706,
- "ctime": 1659761706,
- "desc": "大家千万不要学习@肉目 的反面教材噢\n不然胡萝卜很快就被切光了",
- "state": 0,
- "duration": 61,
- "mission_id": 808212,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 1,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 5256791,
- "name": "凤鸣麻雀社",
- "face": "http://i2.hdslb.com/bfs/face/79c578d5a00dc25498913187f1e2e7b63463b027.jpg"
- },
- "stat": {
- "aid": 556671285,
- "view": 28016,
- "danmaku": 17,
- "reply": 62,
- "favorite": 25,
- "coin": 34,
- "share": 22,
- "now_rank": 0,
- "his_rank": 0,
- "like": 845,
- "dislike": 0
- },
- "dynamic": "健康麻将 保护胡萝卜 从@肉目 做起\n玩儿花的手法是越来越熟练了 危险危险",
- "cid": 795200966,
- "dimension": {
- "width": 1080,
- "height": 1440,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV12e4y1D7mp",
- "up_from_v2": 8,
- "first_frame": "http://i0.hdslb.com/bfs/storyff/n220806a21h7h5icb0b5fv1v71d6cwu7_firsti.jpg",
- "pub_location": "广东",
- "bvid": "BV12e4y1D7mp",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 471592118,
- "videos": 1,
- "tid": 59,
- "tname": "演奏",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/3f1fcd0461235f8881a86faaa1321744b251b26f.jpg",
- "title": "有仪式感的植物大战僵尸",
- "pubdate": 1659409876,
- "ctime": 1659409876,
- "desc": "-",
- "state": 0,
- "duration": 150,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 523219895,
- "name": "上官画画",
- "face": "http://i2.hdslb.com/bfs/face/a69355ca44c5343e202e1e1294245ba588e92e96.jpg"
- },
- "stat": {
- "aid": 471592118,
- "view": 314596,
- "danmaku": 302,
- "reply": 630,
- "favorite": 2532,
- "coin": 2648,
- "share": 1294,
- "now_rank": 0,
- "his_rank": 0,
- "like": 20552,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 791291889,
- "dimension": {
- "width": 960,
- "height": 540,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1WT41177PD",
- "up_from_v2": 36,
- "first_frame": "http://i2.hdslb.com/bfs/storyff/n220802qn3bbryqe32dploiilb7xtqft_firsti.jpg",
- "pub_location": "浙江",
- "bvid": "BV1WT41177PD",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 599162361,
- "videos": 1,
- "tid": 238,
- "tname": "运动综合",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/bc086df16873a9bc619d625bc176359220062d79.jpg",
- "title": "张镇辉台球正经教学【6个不太建议使用的技巧】15.0版本",
- "pubdate": 1659690000,
- "ctime": 1659690022,
- "desc": "靓仔,用一句话证明你是老粉!!\n \n \n \n长按点赞,有彩蛋哟~",
- "state": 0,
- "duration": 119,
- "mission_id": 846900,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 88895225,
- "name": "张镇辉台球教学",
- "face": "http://i2.hdslb.com/bfs/face/2af69641c86d3915440b28ef64214e112390c15c.jpg"
- },
- "stat": {
- "aid": 599162361,
- "view": 2275313,
- "danmaku": 23143,
- "reply": 2608,
- "favorite": 22825,
- "coin": 15344,
- "share": 3584,
- "now_rank": 0,
- "his_rank": 73,
- "like": 243787,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 794017093,
- "dimension": {
- "width": 2160,
- "height": 3840,
- "rotate": 0
- },
- "season_id": 39377,
- "short_link_v2": "https://b23.tv/BV1CB4y1r7d5",
- "first_frame": "http://i2.hdslb.com/bfs/storyff/n220805qn1xjr322hy7j1tc0t7ntj0r3_firsti.jpg",
- "pub_location": "广东",
- "bvid": "BV1CB4y1r7d5",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
- },
- {
- "aid": 729057411,
- "videos": 1,
- "tid": 59,
- "tname": "演奏",
- "copyright": 1,
- "pic": "http://i1.hdslb.com/bfs/archive/365e41383e10a774d54b908c018e66a0f90bcc65.jpg",
- "title": "今天练练脚下钢琴",
- "pubdate": 1659322244,
- "ctime": 1659322244,
- "desc": "-",
- "state": 0,
- "duration": 16,
- "mission_id": 741439,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0,
- "arc_pay": 0,
- "pay_free_watch": 0
- },
- "owner": {
- "mid": 397865300,
- "name": "Rhythm梦龙",
- "face": "http://i2.hdslb.com/bfs/face/297f26c89a43d60619e552d5606e575d2a8406aa.jpg"
- },
- "stat": {
- "aid": 729057411,
- "view": 17740,
- "danmaku": 8,
- "reply": 27,
- "favorite": 74,
- "coin": 37,
- "share": 20,
- "now_rank": 0,
- "his_rank": 0,
- "like": 1878,
- "dislike": 0
- },
- "dynamic": "",
- "cid": 790320365,
- "dimension": {
- "width": 1080,
- "height": 1920,
- "rotate": 0
- },
- "short_link_v2": "https://b23.tv/BV1zS4y1x7ZM",
- "up_from_v2": 9,
- "first_frame": "http://i1.hdslb.com/bfs/storyff/n220801qn337b2rig3v6l23kyehiinaa_firsti.jpg",
- "pub_location": "上海",
- "bvid": "BV1zS4y1x7ZM",
- "inter_video": false,
- "resource_type": "ugc",
- "subtitle": ""
+ "game_base_id": 97,
+ "game_name": "碧蓝航线",
+ "game_icon": "https://i0.hdslb.com/bfs/game/b141a7690c226a0eae66518c713d3af62613b21d.png",
+ "grade": 8.7,
+ "detail_url": "https://www.biligame.com/detail/?id=97",
+ "game_tags": [
+ "养成"
+ ],
+ "notice": "指挥官,欢迎回港",
+ "gift_title": "",
+ "game_status_v2": 0
}
]
}
@@ -2616,6 +1494,788 @@ curl -L -X GET 'https://api.bilibili.com/x/space/like/video?vmid=15858903'
+#### 查询用户最近投币视频(Web)
+
+> https://api.bilibili.com/x/space/coin/video
+
+*请求方式:GET*
+
+认证方式:Cookie(SESSDATA)
+
+如设置隐私查看自己的需要认证
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | --------- | ------ | ---- |
+| vmid | num | 目标用户mid | 必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------------------------------- | -------- | ---------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | 隐藏时:null
公开时:array | 信息本体 | |
+
+`data`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | ---- |
+| 0 | obj | 投币视频1 | |
+| n | obj | 投币视频(n+1) | |
+| …… | obj | …… | |
+
+`data`数组中的对象:
+
+基本与[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中`data`对象字段一致
+
+**示例:**
+
+查看用户`mid=15858903`的最近投币视频
+
+```shell
+curl -G 'http://space.bilibili.com/x/space/coin/video' \
+ --data-urlencode 'vmid=15858903' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": [
+ {
+ "aid": 669644066,
+ "videos": 1,
+ "tid": 75,
+ "tname": "动物圈",
+ "copyright": 2,
+ "pic": "http://i1.hdslb.com/bfs/archive/0f73a68b8f449cc72e9ef109685bd295dc0c0c9d.jpg",
+ "title": "在人类幼崽身上用尽了温柔",
+ "pubdate": 1600608261,
+ "ctime": 1600608261,
+ "desc": "https://weibo.com/tv/show/1034:4551253766897703?from=old_pc_videoshow",
+ "state": 0,
+ "attribute": 16384,
+ "duration": 29,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 0,
+ "no_reprint": 0,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0
+ },
+ "owner": {
+ "mid": 258457966,
+ "name": "卧龙寺",
+ "face": "http://i2.hdslb.com/bfs/face/f868d1f522733fdcf72a6267e0237157dd0e9948.jpg"
+ },
+ "stat": {
+ "aid": 669644066,
+ "view": 3412898,
+ "danmaku": 719,
+ "reply": 1481,
+ "favorite": 21909,
+ "coin": 2864,
+ "share": 13702,
+ "now_rank": 0,
+ "his_rank": 0,
+ "like": 86970,
+ "dislike": 0
+ },
+ "dynamic": "",
+ "cid": 237319289,
+ "dimension": {
+ "width": 576,
+ "height": 1024,
+ "rotate": 0
+ },
+ "bvid": "BV1sa4y1j7jk",
+ "coins": 1,
+ "time": 1601802763,
+ "ip": "",
+ "inter_video": false
+ },
+ {
+ "aid": 202267998,
+ "videos": 1,
+ "tid": 138,
+ "tname": "搞笑",
+ "copyright": 1,
+ "pic": "http://i0.hdslb.com/bfs/archive/ca7746f2207114513f1a421d7f744523275ee679.jpg",
+ "title": "充 电 器 の 痛",
+ "pubdate": 1601750952,
+ "ctime": 1601750952,
+ "desc": "这个简介吓到我了!",
+ "state": 0,
+ "attribute": 16512,
+ "duration": 50,
+ "mission_id": 14725,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 0,
+ "no_reprint": 1,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0
+ },
+ "owner": {
+ "mid": 129922746,
+ "name": "-白糖洒一地-",
+ "face": "http://i0.hdslb.com/bfs/face/1f581f3b20a380c2fd13ecb8bbe409f8b49c6418.jpg"
+ },
+ "stat": {
+ "aid": 202267998,
+ "view": 109,
+ "danmaku": 2,
+ "reply": 11,
+ "favorite": 5,
+ "coin": 9,
+ "share": 0,
+ "now_rank": 0,
+ "his_rank": 0,
+ "like": 20,
+ "dislike": 0
+ },
+ "dynamic": "",
+ "cid": 241861687,
+ "dimension": {
+ "width": 1920,
+ "height": 1080,
+ "rotate": 0
+ },
+ "bvid": "BV1oh411X7iA",
+ "coins": 2,
+ "time": 1601773750,
+ "ip": "",
+ "inter_video": false
+ },
+ {
+ "aid": 839722373,
+ "videos": 1,
+ "tid": 208,
+ "tname": "校园学习",
+ "copyright": 1,
+ "pic": "http://i2.hdslb.com/bfs/archive/11ed53241ceab314c919adba9f85582d24d9313c.jpg",
+ "title": "“白piáo”用日语到底怎么说?油管人气日语老师来教你!",
+ "pubdate": 1601026026,
+ "ctime": 1601026026,
+ "desc": "志方老师的B站用语日语课又来了~\n欢迎大家来看哦,\n如果喜欢我们的作品的话,欢迎大家用2~3连+转发来支持我们~\n如果拒绝的话,也可以用日语在评论和弹幕里刷上一波~即可以锻炼日语又可以拒绝我们,岂不美哉~~",
+ "state": 0,
+ "attribute": 16768,
+ "duration": 310,
+ "mission_id": 14655,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 1,
+ "no_reprint": 1,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0
+ },
+ "owner": {
+ "mid": 677926489,
+ "name": "日语志方老师",
+ "face": "http://i2.hdslb.com/bfs/face/d465e5cd42e3523a52b3bef38dce7b23627b7723.jpg"
+ },
+ "stat": {
+ "aid": 839722373,
+ "view": 130688,
+ "danmaku": 1320,
+ "reply": 799,
+ "favorite": 3722,
+ "coin": 5883,
+ "share": 339,
+ "now_rank": 0,
+ "his_rank": 0,
+ "like": 17585,
+ "dislike": 0
+ },
+ "dynamic": "志方老师的B站用语日语课又来了~\n欢迎大家来看哦,\n如果喜欢我们的作品的话,欢迎大家用2~3连+转发来支持我们~\n如果拒绝的话,也可以用日语在评论和弹幕里刷上一波~即可以锻炼日语又可以拒绝我们,岂不美哉~~",
+ "cid": 238876133,
+ "dimension": {
+ "width": 1920,
+ "height": 1080,
+ "rotate": 0
+ },
+ "bvid": "BV1n54y117kq",
+ "coins": 2,
+ "time": 1601036198,
+ "ip": "",
+ "inter_video": false
+ }
+ ]
+}
+```
+
+
+
+#### 查询用户最近投币视频(APP)
+
+> https://app.bilibili.com/x/v2/space/coinarc
+
+*请求方式:GET*
+
+认证方式:APP
+
+如设置隐私查看自己的需要认证
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ----------- | ------ | -------- |
+| access_key | str | APP登录Token | APP方式必要 | |
+| appkey | str | APP密钥 | APP方式必要 | |
+| vmid | num | 目标用户mid | 必要 | |
+| pn | num | 页码 | 非必要 | 默认为1 |
+| ps | num | 每页项数 | 非必要 | 默认为20 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------ |
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ----- | ---------- | ---- |
+| count | num | 投币的视频数 | |
+| item | array | 投币视频列表 | |
+
+`item`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------------ | ---- |
+| 0 | obj | 投币的视频信息1 | |
+| n | obj | 投币的视频信息(n+1) | |
+| …… | obj | …… | |
+
+`item`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------------- | ---- | ------------ | ---------------------- |
+| title | str | 稿件标题 | |
+| subtitle | str | 空 | |
+| tname | str | 空 | |
+| cover | str | 封面图片 url | |
+| cover_icon | str | 空 | |
+| uri | str | APP 跳转 uri | 如`bilibili://video/2` |
+| param | str | 稿件 avid | |
+| goto | str | av | |
+| length | num | 空 | |
+| duration | num | 稿件视频长度 | 单位为秒 |
+| is_popular | bool | (?) | |
+| is_steins | bool | (?) | |
+| is_ugcpay | bool | (?) | |
+| is_cooperation | str | (?) | |
+| is_pgc | str | (?) | |
+| is_live_playback | str | (?) | |
+| is_pugv | str | (?) | |
+| is_fold | num | (?) | |
+| play | num | 播放量 | |
+| danmaku | num | 弹幕量 | |
+| ctime | num | 发布时间 | 时间戳 |
+| ugc_pay | num | 0 | |
+| author | str | UP主昵称 | |
+| state | bool | true | |
+| videos | num | 0 | |
+| view_content | str | 稿件播放量文案 | |
+| icon_type | num | 0 | |
+| publish_time_text | str | 空 | |
+
+**示例:**
+
+用户`mid=2`的投币列表
+
+```shell
+curl -G 'https://app.bilibili.com/x/v2/space/coinarc' \
+ --data-urlencode 'appkey=1d8b6e7d45233436' \
+ --data-urlencode 'access_key=xxx' \
+ --data-urlencode 'vmid=2' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "count": 2,
+ "item": [
+ {
+ "title": "请打开麦克风交流",
+ "subtitle": "",
+ "tname": "",
+ "cover": "http://i1.hdslb.com/bfs/archive/cf9aea43b72354ee8c9486e4bf8e07cb38920a65.jpg",
+ "cover_icon": "",
+ "uri": "bilibili://video/496832459?player_width=1080\u0026player_height=1920\u0026player_rotate=0",
+ "param": "496832459",
+ "goto": "av",
+ "length": "",
+ "duration": 134,
+ "is_popular": false,
+ "is_steins": false,
+ "is_ugcpay": false,
+ "is_cooperation": false,
+ "is_pgc": false,
+ "is_live_playback": false,
+ "is_pugv": false,
+ "is_fold": false,
+ "play": 706480,
+ "danmaku": 167,
+ "ctime": 1706431476,
+ "ugc_pay": 0,
+ "author": "三个猪鼓励",
+ "state": true,
+ "videos": 0,
+ "view_content": "70.6万",
+ "icon_type": 0,
+ "publish_time_text": ""
+ },
+ {
+ "title": "【裏命】地球的内部【いよわ】【中文CC字幕】",
+ "subtitle": "",
+ "tname": "",
+ "cover": "http://i0.hdslb.com/bfs/archive/e087224ae4a5ff9ef3f2f6b7644d635276b8f5c6.jpg",
+ "cover_icon": "",
+ "uri": "bilibili://video/860645391?player_width=1920\u0026player_height=1080\u0026player_rotate=0",
+ "param": "860645391",
+ "goto": "av",
+ "length": "",
+ "duration": 264,
+ "is_popular": false,
+ "is_steins": false,
+ "is_ugcpay": false,
+ "is_cooperation": false,
+ "is_pgc": false,
+ "is_live_playback": false,
+ "is_pugv": false,
+ "is_fold": false,
+ "play": 194375,
+ "danmaku": 173,
+ "ctime": 1669713070,
+ "ugc_pay": 0,
+ "author": "精神安定剤",
+ "state": true,
+ "videos": 0,
+ "view_content": "19.4万",
+ "icon_type": 0,
+ "publish_time_text": ""
+ }
+ ]
+ }
+}
+```
+
+
+
+#### 查询用户最近点赞视频(Web)
+
+> https://api.bilibili.com/x/space/like/video
+
+*请求方式:GET*
+
+认证方式:Cookie(SESSDATA)
+
+如设置隐私查看自己的需要认证
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | --------- | ------ | ---- |
+| vmid | num | 目标用户mid | 必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------------------------------- | -------- | ---------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | 隐藏时:null
公开时:array | 信息本体 | |
+
+`data`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | ---- |
+| 0 | obj | 点赞视频1 | |
+| n | obj | 点赞视频(n+1) | |
+| …… | obj | …… | |
+
+`data`数组中的对象:
+
+基本与[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中`data`对象字段一致
+
+**示例:**
+
+查看用户`mid=15858903`的最近点赞视频
+
+```shell
+curl -G 'http://space.bilibili.com/x/space/like/video' \
+ --data-urlencode 'vmid=15858903' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "list": [
+ {
+ "aid": 1700085880,
+ "videos": 1,
+ "tid": 21,
+ "tname": "日常",
+ "copyright": 1,
+ "pic": "http://i0.hdslb.com/bfs/archive/7fad4ca408c66eb7ea72188f56bcf952306d5807.jpg",
+ "title": "你是从什么时候,意识到自己缺爱的呢?",
+ "pubdate": 1706706000,
+ "ctime": 1706602115,
+ "desc": "关于个人情感问题,私信发“2024”我来帮你~",
+ "state": 0,
+ "duration": 91,
+ "mission_id": 4009559,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 0,
+ "no_reprint": 1,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0,
+ "arc_pay": 0,
+ "pay_free_watch": 0
+ },
+ "owner": {
+ "mid": 2104592226,
+ "name": "鲸落艳红尘",
+ "face": "https://i0.hdslb.com/bfs/face/80160fbcf71958e6f5ad3a4fdfa39a55cc0699a5.jpg"
+ },
+ "stat": {
+ "aid": 1700085880,
+ "view": 930,
+ "danmaku": 1,
+ "reply": 5,
+ "favorite": 18,
+ "coin": 0,
+ "share": 4,
+ "now_rank": 0,
+ "his_rank": 0,
+ "like": 27,
+ "dislike": 0,
+ "vt": 0,
+ "vv": 930
+ },
+ "dynamic": "",
+ "cid": 1424231007,
+ "dimension": {
+ "width": 1920,
+ "height": 1080,
+ "rotate": 0
+ },
+ "short_link_v2": "https://b23.tv/BV1XK421y7ZL",
+ "first_frame": "http://i2.hdslb.com/bfs/storyff/n240130sa1k9birz4lwlsm21ya1w3p2c_firsti.jpg",
+ "pub_location": "湖北",
+ "bvid": "BV1XK421y7ZL",
+ "inter_video": false,
+ "resource_type": "ugc",
+ "subtitle": "",
+ "enable_vt": 0
+ },
+ {
+ "aid": 836926413,
+ "videos": 1,
+ "tid": 21,
+ "tname": "日常",
+ "copyright": 1,
+ "pic": "http://i2.hdslb.com/bfs/archive/dceaf79d1cc4f74ab8cd862f454a8ec4b4a44343.jpg",
+ "title": "内心的创伤,是建立深度亲密关系的桥梁!",
+ "pubdate": 1706594400,
+ "ctime": 1706515438,
+ "desc": "关于个人情感问题,私信发“2024”我来帮你~",
+ "state": 0,
+ "duration": 297,
+ "mission_id": 4009559,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 0,
+ "no_reprint": 1,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0,
+ "arc_pay": 0,
+ "pay_free_watch": 0
+ },
+ "owner": {
+ "mid": 2104592226,
+ "name": "鲸落艳红尘",
+ "face": "https://i0.hdslb.com/bfs/face/80160fbcf71958e6f5ad3a4fdfa39a55cc0699a5.jpg"
+ },
+ "stat": {
+ "aid": 836926413,
+ "view": 1903,
+ "danmaku": 0,
+ "reply": 7,
+ "favorite": 142,
+ "coin": 34,
+ "share": 30,
+ "now_rank": 0,
+ "his_rank": 0,
+ "like": 118,
+ "dislike": 0,
+ "vt": 0,
+ "vv": 1903
+ },
+ "dynamic": "",
+ "cid": 1423127570,
+ "dimension": {
+ "width": 1920,
+ "height": 1080,
+ "rotate": 0
+ },
+ "short_link_v2": "https://b23.tv/BV1xg4y1e7kY",
+ "first_frame": "http://i0.hdslb.com/bfs/storyff/n240129qn55at7dr1775k12hp34tw284_firsti.jpg",
+ "pub_location": "湖北",
+ "bvid": "BV1xg4y1e7kY",
+ "inter_video": false,
+ "resource_type": "ugc",
+ "subtitle": "",
+ "enable_vt": 0
+ },
+ ……
+ ]
+ }
+}
+```
+
+
+
+#### 查询用户最近点赞视频(APP)
+
+> https://app.bilibili.com/x/v2/space/likearc
+
+*请求方式:GET*
+
+认证方式:APP
+
+如设置隐私查看自己的需要认证
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | ----------- | ------ | -------- |
+| access_key | str | APP登录Token | APP方式必要 | |
+| appkey | str | APP密钥 | APP方式必要 | |
+| vmid | num | 目标用户mid | 必要 | |
+| pn | num | 页码 | 非必要 | 默认为1 |
+| ps | num | 每页项数 | 非必要 | 默认为20 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ---------- |
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ----- | ---------- | ---- |
+| count | num | 点赞的视频数 | |
+| item | array | 点赞视频列表 | |
+
+`item`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------------ | ---- |
+| 0 | obj | 点赞的视频信息1 | |
+| n | obj | 点赞的视频信息(n+1) | |
+| …… | obj | …… | |
+
+`item`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+| ----------------- | ---- | ------------ | ---------------------- |
+| title | str | 稿件标题 | |
+| subtitle | str | 空 | |
+| tname | str | 空 | |
+| cover | str | 封面图片 url | |
+| cover_icon | str | 空 | |
+| uri | str | APP 跳转 uri | 如`bilibili://video/2` |
+| param | str | 稿件 avid | |
+| goto | str | av | |
+| length | num | 空 | |
+| duration | num | 稿件视频长度 | 单位为秒 |
+| is_popular | bool | (?) | |
+| is_steins | bool | (?) | |
+| is_ugcpay | bool | (?) | |
+| is_cooperation | str | (?) | |
+| is_pgc | str | (?) | |
+| is_live_playback | str | (?) | |
+| is_pugv | str | (?) | |
+| is_fold | num | (?) | |
+| play | num | 播放量 | |
+| danmaku | num | 弹幕量 | |
+| ctime | num | 发布时间 | 时间戳 |
+| ugc_pay | num | 0 | |
+| author | str | UP主昵称 | |
+| state | bool | true | |
+| videos | num | 0 | |
+| view_content | str | 稿件播放量文案 | |
+| icon_type | num | 0 | |
+| publish_time_text | str | 空 | |
+
+**示例:**
+
+用户`mid=2`的点赞列表
+
+```shell
+curl -G 'https://app.bilibili.com/x/v2/space/likearc' \
+ --data-urlencode 'appkey=1d8b6e7d45233436' \
+ --data-urlencode 'access_key=xxx' \
+ --data-urlencode 'vmid=2' \
+ --data-urlencode 'ps=2' \
+ --data-urlencode 'pn=1' \
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "count": 2,
+ "item": [
+ {
+ "title": "兄弟难舍也难分",
+ "subtitle": "",
+ "tname": "",
+ "cover": "http://i1.hdslb.com/bfs/archive/58f031a52eab6d5faec5a39dfaab5728f65672d5.jpg",
+ "cover_icon": "",
+ "uri": "bilibili://video/624351941?player_width=1080\u0026player_height=1920\u0026player_rotate=0",
+ "param": "624351941",
+ "goto": "av",
+ "length": "",
+ "duration": 216,
+ "is_popular": false,
+ "is_steins": false,
+ "is_ugcpay": false,
+ "is_cooperation": false,
+ "is_pgc": false,
+ "is_live_playback": false,
+ "is_pugv": false,
+ "is_fold": false,
+ "play": 423652,
+ "danmaku": 362,
+ "ctime": 1706320200,
+ "ugc_pay": 0,
+ "author": "甜蜜老张",
+ "state": true,
+ "videos": 0,
+ "view_content": "42.4万",
+ "icon_type": 0,
+ "publish_time_text": ""
+ },
+ {
+ "title": "技能搭配不累,共赴热血团战!",
+ "subtitle": "",
+ "tname": "",
+ "cover": "http://i2.hdslb.com/bfs/archive/2094b8e0be819222d320e2841ee1c39f5f2e4357.jpg",
+ "cover_icon": "",
+ "uri": "bilibili://video/793597196?player_width=1280\u0026player_height=720\u0026player_rotate=0",
+ "param": "793597196",
+ "goto": "av",
+ "length": "",
+ "duration": 41,
+ "is_popular": false,
+ "is_steins": false,
+ "is_ugcpay": false,
+ "is_cooperation": false,
+ "is_pgc": false,
+ "is_live_playback": false,
+ "is_pugv": false,
+ "is_fold": false,
+ "play": 1237,
+ "danmaku": 2,
+ "ctime": 1704855559,
+ "ugc_pay": 0,
+ "author": "38047aa1-cb8a-4",
+ "state": true,
+ "videos": 0,
+ "view_content": "1237",
+ "icon_type": 0,
+ "publish_time_text": ""
+ }
+ ]
+ }
+}
+```
+
+
+
## 投稿
@@ -2624,123 +2284,116 @@ curl -L -X GET 'https://api.bilibili.com/x/space/like/video?vmid=15858903'
> https://api.bilibili.com/x/space/wbi/arc/search
-> https://api.bilibili.com/x/space/arc/search (旧)
-
-PS:旧 api 存在一些不同,比如某些情况下,例如 mid=2 时如果没有设置 Cookie 则出现非法访问(-401),但新 api 不会。
-
+> ~~https://api.bilibili.com/x/space/arc/search~~ (已废弃,保留是方便遇到问题的人搜索到此处)
*请求方式:GET*
-**header字段:**
-
-必须要有 `user-agent`,且不能为 `空字符串`,以及含有 `python`、`node`、`curl` 等的字符串。
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|---------|-----|---------|-----|-------------------------------------------------------------|
-| mid | num | 目标用户mid | 必要 | |
-| order | str | 排序方式 | 非必要 | 默认为pubdate
最新发布:pubdate
最多播放:click
最多收藏:stow |
-| tid | num | 筛选目标分区 | 非必要 | 默认为0
0:不进行分区筛选
分区tid为所筛选的分区 |
-| keyword | str | 关键词筛选 | 非必要 | 用于使用关键词搜索该UP主视频稿件 |
-| pn | num | 页码 | 非必要 | |
-| ps | num | 每页项数 | 非必要 | 最小1,最大50,默认30 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------- | ---- | ------------ | ------ | ----------------------------------------------------------------------------- |
+| mid | num | 目标用户mid | 必要 | |
+| order | str | 排序方式 | 非必要 | 默认为pubdate
最新发布:pubdate
最多播放:click
最多收藏:stow |
+| tid | num | 筛选目标分区 | 非必要 | 默认为0
0:不进行分区筛选
分区tid为所筛选的分区 |
+| keyword | str | 关键词筛选 | 非必要 | 用于使用关键词搜索该UP主视频稿件 |
+| pn | num | 页码 | 非必要 | 默认为 `1` |
+| ps | num | 每页项数 | 非必要 | 默认为 `30` |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|----------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
-412:请求被拦截
-1200:被降级过滤的请求(一种意义不明的偶发状况) |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
-412:请求被拦截 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-----------------|------|----------|-----|
-| list | obj | 列表信息 | |
-| page | obj | 页面信息 | |
-| episodic_button | obj | “播放全部“按钮 | |
-| is_risk | bool | | |
-| gaia_res_type | num | | |
-| gaia_data | | | |
+| 字段 | 类型 | 内容 | 备注 |
+| --------------- | ---- | -------------- | ---- |
+| list | obj | 列表信息 | |
+| page | obj | 页面信息 | |
+| episodic_button | obj | “播放全部“按钮 | |
+| is_risk | bool | | |
+| gaia_res_type | num | | |
+| gaia_data | obj | | |
`data`中的`list`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-------|----------|-----|
-| tlist | obj | 投稿视频分区索引 | |
-| vlist | array | 投稿视频列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ------ | ---------------- | ---- |
+| tlist | obj | 投稿视频分区索引 | |
+| vlist | array | 投稿视频列表 | |
`list`中的`tlist`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----|--------|--------------|
-| {tid} | obj | 该分区的详情 | 字段名为存在的分区tid |
-| …… | obj | …… | 向下扩展 |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | ------------ | --------------------- |
+| {tid} | obj | 该分区的详情 | 字段名为存在的分区tid |
+| …… | obj | …… | 向下扩展 |
`tlist`中的`{tid}`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----|------------|-----|
-| count | num | 投稿至该分区的视频数 | |
-| name | str | 该分区名称 | |
-| tid | num | 该分区tid | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | -------------------- | ---- |
+| count | num | 投稿至该分区的视频数 | |
+| name | str | 该分区名称 | |
+| tid | num | 该分区tid | |
`list`中的`vlist`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|-----|
-| 0 | obj | 投稿视频1 | |
-| n | obj | 投稿视频(n+1) | |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | ---- |
+| 0 | obj | 投稿视频1 | |
+| n | obj | 投稿视频(n+1) | |
+| …… | obj | …… | …… |
`list`中的`vlist`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------------------|------|----------|--------------------------------------------------------------------------------|
-| aid | num | 稿件avid | |
-| author | str | 视频UP主 | 不一定为目标用户(合作视频) |
-| bvid | str | 稿件bvid | |
-| comment | num | 视频评论数 | |
-| copyright | str | 空 | 作用尚不明确 |
-| created | num | 投稿时间 | 时间戳 |
-| description | str | 视频简介 | |
-| hide_click | bool | false | 作用尚不明确 |
-| is_pay | num | 0 | 作用尚不明确 |
-| is_union_video | num | 是否为合作视频 | 0:否
1:是 |
-| length | str | 视频长度 | MM:SS |
-| mid | num | 视频UP主mid | 不一定为目标用户(合作视频) |
-| pic | str | 视频封面 | |
-| play | num | 视频播放次数 | 如果视频基本信息API对应的状态为-403视频访问权限不足,数据类型将变为str,如("play": "--",),于mid79发表的av5132474可见 |
-| review | num | 0 | 作用尚不明确 |
-| subtitle | str | 空 | 作用尚不明确 |
-| title | str | 视频标题 | |
-| typeid | num | 视频分区tid | |
-| video_review | num | 视频弹幕数 | |
-| is_steins_gate | num | 0 | |
-| is_live_playback | num | 0 | |
-| meta | | | |
-| is_avoided | num | 0 | |
-| attribute | num | 0 | |
+| 字段 | 类型 | 内容 | 备注 |
+| -------------- | ---- | -------------- | ---------------------------- |
+| aid | num | 稿件avid | |
+| attribute | num | | |
+| author | str | 视频UP主 | 不一定为目标用户(合作视频) |
+| bvid | str | 稿件bvid | |
+| comment | num | 视频评论数 | |
+| copyright | str | 视频版权类型 | |
+| created | num | 投稿时间 | 时间戳 |
+| description | str | 视频简介 | |
+| enable_vt | num | | |
+| hide_click | bool | false | 作用尚不明确 |
+| is_pay | num | 0 | 作用尚不明确 |
+| is_union_video | num | 是否为合作视频 | 0:否
1:是 |
+| length | str | 视频长度 | MM:SS |
+| mid | num | 视频UP主mid | 不一定为目标用户(合作视频) |
+| meta | obj | | 无数据时为 null |
+| pic | str | 视频封面 | |
+| play | num | 视频播放次数 | |
+| review | num | 0 | 作用尚不明确 |
+| subtitle | str | 空 | 作用尚不明确 |
+| title | str | 视频标题 | |
+| typeid | num | 视频分区tid | |
+| video_review | num | 视频弹幕数 | |
`data`中的`page`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----|-------|-----|
-| count | num | 总计稿件数 | |
-| pn | num | 当前页码 | |
-| ps | num | 每页项数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | ---------- | ---- |
+| count | num | 总计稿件数 | |
+| pn | num | 当前页码 | |
+| ps | num | 每页项数 | |
`data`中的`episodic_button`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------|-----|----------|-----|
-| text | str | 按钮文字 | |
-| uri | str | 全部播放页url | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------- | ---- |
+| text | str | 按钮文字 | |
+| uri | str | 全部播放页url | |
**示例:**
@@ -2749,11 +2402,10 @@ PS:旧 api 存在一些不同,比如某些情况下,例如 mid=2 时如果
以每页2项查询用户`mid=53456`的第1页投稿视频明细
```shell
-curl -G 'https://api.bilibili.com/x/space/wbi/arc/search' \
+curl -G 'https://api.bilibili.com/x/space/arc/search' \
--data-urlencode 'mid=53456' \
--data-urlencode 'ps=2' \
---data-urlencode 'pn=1' \
---user-agent 'go'
+--data-urlencode 'pn=1'
```
@@ -2761,116 +2413,95 @@ curl -G 'https://api.bilibili.com/x/space/wbi/arc/search' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "list": {
- "tlist": {
- "1": {
- "tid": 1,
- "count": 41,
- "name": "动画"
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "list": {
+ "tlist": {
+ "1": {
+ "tid": 1,
+ "count": 26,
+ "name": "动画"
+ },
+ "160": {
+ "tid": 160,
+ "count": 42,
+ "name": "生活"
+ },
+ "211": {
+ "tid": 211,
+ "count": 3,
+ "name": "美食"
+ },
+ "3": {
+ "tid": 3,
+ "count": 33,
+ "name": "音乐"
+ },
+ "4": {
+ "tid": 4,
+ "count": 72,
+ "name": "游戏"
+ }
+ },
+ "vlist": [
+ {
+ "comment": 3558,
+ "typeid": 47,
+ "play": 1275661,
+ "pic": "//i2.hdslb.com/bfs/archive/90157806a34646ac2d4c6af3e8b6156cb3460d14.jpg",
+ "subtitle": "",
+ "description": "第一期:BV1ak4y1B7aG\n第二期:BV1eA411Y7FN\n脚本/绘画/配音/动画/片尾曲:warma\n第三期终于做完啦!这是一个以我平时发呆的时候想到的一些灵感组成的冷笑话合集,名字叫《沃玛的生活》,可以当作日常搞笑单元小动画来看。\n如果你喜欢这个系列的话请点赞投币收藏一键三连给我一些继续制作的动力吧,我真的非常非常需要更多的动力!\n祝看得开心~\n我的微博:@_warma_",
+ "copyright": "",
+ "title": "【warma】沃玛的新番更新!从现在开始放飞自我【沃玛的生活/第三期】",
+ "review": 0,
+ "author": "Warma",
+ "mid": 53456,
+ "created": 1605844817,
+ "length": "05:16",
+ "video_review": 7470,
+ "aid": 585275804,
+ "bvid": "BV1sz4y1y7KJ",
+ "hide_click": false,
+ "is_pay": 0,
+ "is_union_video": 0,
+ "is_steins_gate": 0
+ },
+ {
+ "comment": 2979,
+ "typeid": 21,
+ "play": 840676,
+ "pic": "//i2.hdslb.com/bfs/archive/b43f88c6ebae8fdc7dfb663f6f6f2931b924c763.jpg",
+ "subtitle": "",
+ "description": "前一阵子过生日,大家的礼物经过几番转寄终于收到了~于是录了这期礼物开箱视频。\n现在也在感慨,大家的礼物真的都太强了,居然这些全都是手工做的,真的好厉害!\n这些手工礼物背后得花多少时间和心力啊……这些对我来说都是无价的礼物,制作礼物的大家真的有心了,谢谢!!\n收到这些礼物真的很开心,视频的封面也是在这样激动的情况下画出来的,祝你看得开心~\n我的微博:@_warma_",
+ "copyright": "",
+ "title": "【warma】来开箱!大家寄来的生日礼物",
+ "review": 0,
+ "author": "Warma",
+ "mid": 53456,
+ "created": 1604635221,
+ "length": "24:28",
+ "video_review": 10476,
+ "aid": 287744380,
+ "bvid": "BV1xf4y1q7XN",
+ "hide_click": false,
+ "is_pay": 0,
+ "is_union_video": 0,
+ "is_steins_gate": 0
+ }
+ ]
},
- "3": {
- "tid": 3,
- "count": 36,
- "name": "音乐"
+ "page": {
+ "pn": 1,
+ "ps": 2,
+ "count": 176
},
- "4": {
- "tid": 4,
- "count": 82,
- "name": "游戏"
- },
- "36": {
- "tid": 36,
- "count": 1,
- "name": "知识"
- },
- "160": {
- "tid": 160,
- "count": 49,
- "name": "生活"
- },
- "211": {
- "tid": 211,
- "count": 3,
- "name": "美食"
- },
- "217": {
- "tid": 217,
- "count": 2,
- "name": "动物圈"
+ "episodic_button": {
+ "text": "播放全部",
+ "uri": "//www.bilibili.com/medialist/play/53456?from=space"
}
- },
- "vlist": [
- {
- "comment": 6729,
- "typeid": 172,
- "play": 2171260,
- "pic": "http://i2.hdslb.com/bfs/archive/9fe04c2acb6678c9a8d1547db211e458ea70982c.jpg",
- "subtitle": "",
- "description": "好开心能和几千人一起看音乐会!真的震撼到我了,它给我带来的冲击感远超出了我的想象……光遇这场音乐会会一直持续到元旦哦,大家感兴趣的话也可以来试试吧~\n祝看得开心啦!",
- "copyright": "1",
- "title": "【warma】我尝试学习交朋友",
- "review": 0,
- "author": "Warma",
- "mid": 53456,
- "created": 1671163200,
- "length": "23:58",
- "video_review": 7931,
- "aid": 433873134,
- "bvid": "BV1nG411P7hf",
- "hide_click": false,
- "is_pay": 0,
- "is_union_video": 0,
- "is_steins_gate": 0,
- "is_live_playback": 0,
- "meta": null,
- "is_avoided": 0,
- "attribute": 0
- },
- {
- "comment": 3380,
- "typeid": 31,
- "play": 811600,
- "pic": "http://i2.hdslb.com/bfs/archive/7e6c6ec32a0db8684abd660d599644e9d1c43ee4.jpg",
- "subtitle": "",
- "description": "原曲:BV1iR4y1X7V9\n这首歌是今年生日的时候收到的礼物,真的太好听了!我也想翻唱试试~\n在翻唱中录了一些不一样的小音效,比如卡祖笛和竖笛,还录了些小配音……大家来听听看!\n谢谢原曲staff老师们做出这么有趣的作品,谢谢在这次翻唱中staff老师们的帮助(PV老师甚至根据翻唱版本把曲子的PV做了些修改,加了好多小细节,真的超用心!)\n祝听得开心啦~\n \n【staff表】\n原曲staff:详见BV1iR4y1X7V9\n翻唱:warma\n混音:白萝卜音乐工作室\nPV修改:@颜一bot \n封面:是根",
- "copyright": "1",
- "title": "【warma】来唱大家送我的歌!《夏天幻游日记》",
- "review": 0,
- "author": "Warma",
- "mid": 53456,
- "created": 1670558400,
- "length": "02:59",
- "video_review": 2343,
- "aid": 733323002,
- "bvid": "BV18D4y1Y7o6",
- "hide_click": false,
- "is_pay": 0,
- "is_union_video": 0,
- "is_steins_gate": 0,
- "is_live_playback": 0,
- "meta": null,
- "is_avoided": 0,
- "attribute": 0
- }
- ]
- },
- "page": {
- "pn": 1,
- "ps": 2,
- "count": 214
- },
- "episodic_button": {
- "text": "播放全部",
- "uri": "//www.bilibili.com/medialist/play/53456?from=space"
- },
- "is_risk": false,
- "gaia_res_type": 0,
- "gaia_data": null
- }
+ }
}
```
@@ -2886,60 +2517,60 @@ curl -G 'https://api.bilibili.com/x/space/wbi/arc/search' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|----------------------------|
-| mid | num | 目标用户mid | 必要 | |
-| ps | num | 获取的相簿量 | 非必要 | 默认为8 定义域 1-大于1700 (注意滥用风险) |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------ | ------ | ------- |
+| mid | num | 目标用户mid | 必要 | |
+| ps | num | 获取的相簿量 | 非必要 | 默认为8 定义域 1-大于1700 (注意滥用风险) |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------|------|---------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | array | 相簿列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ------ | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | array | 相簿列表 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|-----|
-| 0 | obj | 相簿内容1 | |
-| n | obj | 相簿内容(n+1) | |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | ---- |
+| 0 | obj | 相簿内容1 | |
+| n | obj | 相簿内容(n+1) | |
+| …… | obj | …… | …… |
`data`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------------|-------|---------|--------|
-| count | num | 总计图片数 | |
-| ctime | num | 发布时间 | 时间戳 |
-| description | str | 简介 | |
-| doc_id | num | 相簿id | 非动态!!! |
-| like | num | 点赞数 | |
-| pictures | array | 图片内容 | |
-| poster_uid | num | 上传用户mid | |
-| title | str | 标题 | 动态内容无 |
-| view | num | 浏览数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ------ | ----------- | -------------- |
+| count | num | 总计图片数 | |
+| ctime | num | 发布时间 | 时间戳 |
+| description | str | 简介 | |
+| doc_id | num | 相簿id | 非动态!!! |
+| like | num | 点赞数 | |
+| pictures | array | 图片内容 | |
+| poster_uid | num | 上传用户mid | |
+| title | str | 标题 | 动态内容无 |
+| view | num | 浏览数 | |
`data`数组中的对象中的`pictures`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|----------------|
-| 0 | obj | 内容图片1 | |
-| n | obj | 内容图片(n+1) | 项数取决于`count`的值 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | --------------------- |
+| 0 | obj | 内容图片1 | |
+| n | obj | 内容图片(n+1) | 项数取决于`count`的值 |
+| …… | obj | …… | …… |
`pictures`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------------|-----|-------|----------|
-| img_height | num | 图片高度 | |
-| img_size | num | 图片大小 | 单位为KByte |
-| img_src | str | 图片url | |
-| img_width | num | 图片宽度 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ---- | -------- | ----------- |
+| img_height | num | 图片高度 | |
+| img_size | num | 图片大小 | 单位为KByte |
+| img_src | str | 图片url | |
+| img_width | num | 图片宽度 | |
**示例:**
@@ -2956,50 +2587,50 @@ curl -G 'https://api.bilibili.com/x/space/album/index' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": [{
- "doc_id": 60470424,
- "poster_uid": 53456,
- "title": "",
- "description": "你醒啦![tv_大佬]\n之前说到过的百万粉纪念的视频已经定时在了今天下午七点,欢迎来看呀!",
- "pictures": [{
- "img_src": "https://i0.hdslb.com/bfs/album/2840366e30bf7c0aba9da5adde1a771255a57bc7.jpg",
- "img_width": 625,
- "img_height": 134,
- "img_size": 14
- }],
- "count": 1,
- "ctime": 1583444859,
- "view": 1677521,
- "like": 29974
- }, {
- "doc_id": 58962388,
- "poster_uid": 53456,
- "title": "",
- "description": "上次的那些写实儿童画发出来啦!可以打印下来辟邪[tv_大佬]",
- "pictures": [{
- "img_src": "https://i0.hdslb.com/bfs/album/8acaf7c7897cb858cccab36c33a5e875adfef177.jpg",
- "img_width": 2172,
- "img_height": 3258,
- "img_size": 2831
- }, {
- "img_src": "https://i0.hdslb.com/bfs/album/1611b6b56d3d4328889a62b9f9bdc92e9d065532.jpg",
- "img_width": 3456,
- "img_height": 5184,
- "img_size": 3024
- }, {
- "img_src": "https://i0.hdslb.com/bfs/album/f3a30a2ef5b39711af8b945d54d85ffd1e932b8a.jpg",
- "img_width": 1200,
- "img_height": 757,
- "img_size": 313
- }],
- "count": 3,
- "ctime": 1582881332,
- "view": 1176646,
- "like": 25734
- }]
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": [{
+ "doc_id": 60470424,
+ "poster_uid": 53456,
+ "title": "",
+ "description": "你醒啦![tv_大佬]\n之前说到过的百万粉纪念的视频已经定时在了今天下午七点,欢迎来看呀!",
+ "pictures": [{
+ "img_src": "https://i0.hdslb.com/bfs/album/2840366e30bf7c0aba9da5adde1a771255a57bc7.jpg",
+ "img_width": 625,
+ "img_height": 134,
+ "img_size": 14
+ }],
+ "count": 1,
+ "ctime": 1583444859,
+ "view": 1677521,
+ "like": 29974
+ }, {
+ "doc_id": 58962388,
+ "poster_uid": 53456,
+ "title": "",
+ "description": "上次的那些写实儿童画发出来啦!可以打印下来辟邪[tv_大佬]",
+ "pictures": [{
+ "img_src": "https://i0.hdslb.com/bfs/album/8acaf7c7897cb858cccab36c33a5e875adfef177.jpg",
+ "img_width": 2172,
+ "img_height": 3258,
+ "img_size": 2831
+ }, {
+ "img_src": "https://i0.hdslb.com/bfs/album/1611b6b56d3d4328889a62b9f9bdc92e9d065532.jpg",
+ "img_width": 3456,
+ "img_height": 5184,
+ "img_size": 3024
+ }, {
+ "img_src": "https://i0.hdslb.com/bfs/album/f3a30a2ef5b39711af8b945d54d85ffd1e932b8a.jpg",
+ "img_width": 1200,
+ "img_height": 757,
+ "img_size": 313
+ }],
+ "count": 3,
+ "ctime": 1582881332,
+ "view": 1176646,
+ "like": 25734
+ }]
}
```
@@ -3008,73 +2639,74 @@ curl -G 'https://api.bilibili.com/x/space/album/index' \
### 查询用户投稿相簿明细
> https://api.vc.bilibili.com/link_draw/v1/doc/doc_list
+> https://api.bilibili.com/x/dynamic/feed/draw/doc_list
*请求方式:GET*
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----------|-----|---------|-----|-------------------------------------------------------------|
-| uid | num | 目标用户mid | 必要 | |
-| page_num | num | 页码 | 非必要 | 默认为0 |
-| page_size | num | 每页项数 | 必要 | 默认为30 |
-| biz | str | 查询类型 | 非必要 | 全部:all
绘画:draw
摄影:photo
日常:daily
默认为all |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| --------- | ---- | ----------- | ------ | ------------------------------------------------------------ |
+| uid | num | 目标用户mid | 必要 | |
+| page_num | num | 页码 | 必要 | 默认为0 |
+| page_size | num | 每页项数 | 必要 | 默认为30 |
+| biz | str | 查询类型 | 非必要 | 全部:all
绘画:draw
摄影:photo
日常:daily
默认为all |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------|
-| code | num | 返回值 | 0:成功 |
-| msg | str | 错误信息 | 默认为success |
-| message | str | 错误信息 | 默认为success |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------- |
+| code | num | 返回值 | 0:成功 |
+| msg | str | 错误信息 | 默认为success |
+| message | str | 错误信息 | 默认为success |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-------|------|-----|
-| items | array | 相簿列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ------ | -------- | ---- |
+| items | array | 相簿列表 | |
`items`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|-----|
-| 0 | obj | 相簿内容1 | |
-| n | obj | 相簿内容(n+1) | |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | ---- |
+| 0 | obj | 相簿内容1 | |
+| n | obj | 相簿内容(n+1) | |
+| …… | obj | …… | …… |
`items`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------------|-------|---------|--------|
-| count | num | 总计图片数 | |
-| ctime | num | 发布时间 | 时间戳 |
-| description | str | 简介 | |
-| doc_id | num | 相簿id | 非动态!!! |
-| like | num | 点赞数 | |
-| pictures | array | 图片内容 | |
-| poster_uid | num | 上传用户mid | |
-| title | str | 标题 | 动态内容无 |
-| view | num | 浏览数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ------ | ----------- | -------------- |
+| count | num | 总计图片数 | |
+| ctime | num | 发布时间 | 时间戳 |
+| description | str | 简介 | |
+| doc_id | num | 相簿id | 非动态!!! |
+| like | num | 点赞数 | |
+| pictures | array | 图片内容 | |
+| poster_uid | num | 上传用户mid | |
+| title | str | 标题 | 动态内容无 |
+| view | num | 浏览数 | |
`items`数组中的对象中的`pictures`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|-----------|----------------|
-| 0 | obj | 内容图片1 | |
-| n | obj | 内容图片(n+1) | 项数取决于`count`的值 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | --------------- | --------------------- |
+| 0 | obj | 内容图片1 | |
+| n | obj | 内容图片(n+1) | 项数取决于`count`的值 |
+| …… | obj | …… | …… |
`pictures`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------------|-----|-------|----------|
-| img_height | num | 图片高度 | |
-| img_size | num | 图片大小 | 单位为KByte |
-| img_src | str | 图片url | |
-| img_width | num | 图片宽度 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------- | ---- | -------- | ----------- |
+| img_height | num | 图片高度 | |
+| img_size | num | 图片大小 | 单位为KByte |
+| img_src | str | 图片url | |
+| img_width | num | 图片宽度 | |
**示例:**
@@ -3093,57 +2725,57 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/doc_list' \
```json
{
- "code": 0,
- "msg": "success",
- "message": "success",
- "data": {
- "items": [{
- "doc_id": 59015720,
- "poster_uid": 2,
- "title": "",
- "description": "6影是真的无脑,2个宝石都护不住(设计师:这真是太酷了)",
- "pictures": [{
- "img_src": "http://i0.hdslb.com/bfs/album/8456f050ec8639c6e0cef36aba27bfdedc550590.jpg",
- "img_width": 1824,
- "img_height": 840,
- "img_size": 1024
- }],
- "count": 1,
- "ctime": 1582894607,
- "view": 707073,
- "like": 7055
- }, {
- "doc_id": 46853140,
- "poster_uid": 2,
- "title": "",
- "description": "#年度报告# #新年Flag# https://www.bilibili.com/blackboard/timemachine2019.html\n决定了,这就是我的新年Flag!今年我一定要…",
- "pictures": [{
- "img_src": "http://i0.hdslb.com/bfs/album/5b3ae76f79d7cf2501afc3ca7c7da509dcf0e38a.jpg",
- "img_width": 1125,
- "img_height": 2184,
- "img_size": 465
- }, {
- "img_src": "http://i0.hdslb.com/bfs/album/87789fe9644337a1f7e6a0655a32584705af8bda.jpg",
- "img_width": 1125,
- "img_height": 2184,
- "img_size": 421
- }, {
- "img_src": "http://i0.hdslb.com/bfs/album/f752d7f3bb7952f6c0013b3f48ddcb07060b4721.jpg",
- "img_width": 1125,
- "img_height": 2184,
- "img_size": 524
- }, {
- "img_src": "http://i0.hdslb.com/bfs/active/7a52a411bccb716c8e67fe70e6c330d5209346de.jpg",
- "img_width": 1125,
- "img_height": 2184,
- "img_size": 534
- }],
- "count": 4,
- "ctime": 1577966163,
- "view": 833193,
- "like": 5667
- }]
- }
+ "code": 0,
+ "msg": "success",
+ "message": "success",
+ "data": {
+ "items": [{
+ "doc_id": 59015720,
+ "poster_uid": 2,
+ "title": "",
+ "description": "6影是真的无脑,2个宝石都护不住(设计师:这真是太酷了)",
+ "pictures": [{
+ "img_src": "http://i0.hdslb.com/bfs/album/8456f050ec8639c6e0cef36aba27bfdedc550590.jpg",
+ "img_width": 1824,
+ "img_height": 840,
+ "img_size": 1024
+ }],
+ "count": 1,
+ "ctime": 1582894607,
+ "view": 707073,
+ "like": 7055
+ }, {
+ "doc_id": 46853140,
+ "poster_uid": 2,
+ "title": "",
+ "description": "#年度报告# #新年Flag# https://www.bilibili.com/blackboard/timemachine2019.html\n决定了,这就是我的新年Flag!今年我一定要…",
+ "pictures": [{
+ "img_src": "http://i0.hdslb.com/bfs/album/5b3ae76f79d7cf2501afc3ca7c7da509dcf0e38a.jpg",
+ "img_width": 1125,
+ "img_height": 2184,
+ "img_size": 465
+ }, {
+ "img_src": "http://i0.hdslb.com/bfs/album/87789fe9644337a1f7e6a0655a32584705af8bda.jpg",
+ "img_width": 1125,
+ "img_height": 2184,
+ "img_size": 421
+ }, {
+ "img_src": "http://i0.hdslb.com/bfs/album/f752d7f3bb7952f6c0013b3f48ddcb07060b4721.jpg",
+ "img_width": 1125,
+ "img_height": 2184,
+ "img_size": 524
+ }, {
+ "img_src": "http://i0.hdslb.com/bfs/active/7a52a411bccb716c8e67fe70e6c330d5209346de.jpg",
+ "img_width": 1125,
+ "img_height": 2184,
+ "img_size": 534
+ }],
+ "count": 4,
+ "ctime": 1577966163,
+ "view": 833193,
+ "like": 5667
+ }]
+ }
}
```
@@ -3161,47 +2793,47 @@ curl -G 'https://api.vc.bilibili.com/link_draw/v1/doc/doc_list' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|----------------------------|
-| code | num | 返回值 | 0:成功 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | 无则为空 所有频道内均无视频则为空,此时code为0 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | -------- |
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | 无则为空 所有频道内均无视频则为空,此时code为0 |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-------|-------|-----|
-| count | num | 总计频道数 | |
-| list | array | 频道列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ------ | ---------- | ---- |
+| count | num | 总计频道数 | |
+| list | array | 频道列表 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|----------------|
-| 0 | obj | 频道1 | |
-| n | obj | 频道(n+1) | 项数取决于`count`的值 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | --------------------- |
+| 0 | obj | 频道1 | |
+| n | obj | 频道(n+1) | 项数取决于`count`的值 |
+| …… | obj | …… | …… |
`data`中的`list`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----|---------|------|
-| cid | num | 频道id | |
-| count | num | 频道内含视频数 | |
-| cover | str | 封面图片url | |
-| intro | str | 简介 | 无则为空 |
-| mid | num | 创建用户mid | |
-| mtime | num | 创建时间 | 时间戳 |
-| name | str | 标题 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | -------------- | -------- |
+| cid | num | 频道id | |
+| count | num | 频道内含视频数 | |
+| cover | str | 封面图片url | |
+| intro | str | 简介 | 无则为空 |
+| mid | num | 创建用户mid | |
+| mtime | num | 创建时间 | 时间戳 |
+| name | str | 标题 | |
**示例:**
@@ -3217,61 +2849,61 @@ curl -G 'https://api.bilibili.com/x/space/channel/list' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "count": 6,
- "list": [{
- "cid": 100249,
- "mid": 53456,
- "name": "【实况】动物之森",
- "intro": "",
- "mtime": 1579898830,
- "count": 2,
- "cover": "http://i1.hdslb.com/bfs/archive/6a7ed9483c34e839dfca981b9e2b94cd4c4efa0a.jpg"
- }, {
- "cid": 79323,
- "mid": 53456,
- "name": "忆雨",
- "intro": "忆雨出现过的视频",
- "mtime": 1562535222,
- "count": 7,
- "cover": "http://i2.hdslb.com/bfs/archive/1783e4f03042b282495799adda1cb56270cea647.jpg"
- }, {
- "cid": 79322,
- "mid": 53456,
- "name": "大画家",
- "intro": "",
- "mtime": 1562535122,
- "count": 6,
- "cover": "http://i0.hdslb.com/bfs/archive/9c85a14e805c6c23cb7a42e1dbef97821bb68960.jpg"
- }, {
- "cid": 77758,
- "mid": 53456,
- "name": "灭火器",
- "intro": "",
- "mtime": 1561270856,
- "count": 4,
- "cover": "http://i2.hdslb.com/bfs/archive/0073208d086b4ebe9cdc540e7664aa74b483aeb6.jpg"
- }, {
- "cid": 75696,
- "mid": 53456,
- "name": "沃玛小剧场",
- "intro": "",
- "mtime": 1559129460,
- "count": 5,
- "cover": "http://i2.hdslb.com/bfs/archive/db2b20ecdb6ed013fc3780b0e741ea88d46b5b40.jpg"
- }, {
- "cid": 170,
- "mid": 53456,
- "name": "爆炸电台",
- "intro": "闲聊的电台",
- "mtime": 1503298893,
- "count": 7,
- "cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg"
- }]
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "count": 6,
+ "list": [{
+ "cid": 100249,
+ "mid": 53456,
+ "name": "【实况】动物之森",
+ "intro": "",
+ "mtime": 1579898830,
+ "count": 2,
+ "cover": "http://i1.hdslb.com/bfs/archive/6a7ed9483c34e839dfca981b9e2b94cd4c4efa0a.jpg"
+ }, {
+ "cid": 79323,
+ "mid": 53456,
+ "name": "忆雨",
+ "intro": "忆雨出现过的视频",
+ "mtime": 1562535222,
+ "count": 7,
+ "cover": "http://i2.hdslb.com/bfs/archive/1783e4f03042b282495799adda1cb56270cea647.jpg"
+ }, {
+ "cid": 79322,
+ "mid": 53456,
+ "name": "大画家",
+ "intro": "",
+ "mtime": 1562535122,
+ "count": 6,
+ "cover": "http://i0.hdslb.com/bfs/archive/9c85a14e805c6c23cb7a42e1dbef97821bb68960.jpg"
+ }, {
+ "cid": 77758,
+ "mid": 53456,
+ "name": "灭火器",
+ "intro": "",
+ "mtime": 1561270856,
+ "count": 4,
+ "cover": "http://i2.hdslb.com/bfs/archive/0073208d086b4ebe9cdc540e7664aa74b483aeb6.jpg"
+ }, {
+ "cid": 75696,
+ "mid": 53456,
+ "name": "沃玛小剧场",
+ "intro": "",
+ "mtime": 1559129460,
+ "count": 5,
+ "cover": "http://i2.hdslb.com/bfs/archive/db2b20ecdb6ed013fc3780b0e741ea88d46b5b40.jpg"
+ }, {
+ "cid": 170,
+ "mid": 53456,
+ "name": "爆炸电台",
+ "intro": "闲聊的电台",
+ "mtime": 1503298893,
+ "count": 7,
+ "cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg"
+ }]
+ }
}
```
@@ -3287,51 +2919,51 @@ curl -G 'https://api.bilibili.com/x/space/channel/list' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|--------|
-| mid | num | 目标用户mid | 必要 | |
-| cid | num | 目标频道id | 必要 | |
-| pn | num | 页码 | 非必要 | 默认为1 |
-| ps | num | 每页项数 | 非必要 | 默认为100 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | --------- |
+| mid | num | 目标用户mid | 必要 | |
+| cid | num | 目标频道id | 必要 | |
+| pn | num | 页码 | 非必要 | 默认为1 |
+| ps | num | 每页项数 | 非必要 | 默认为100 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|----------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
-404:无用户对应的频道 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
-404:无用户对应的频道 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------|-----|------|-----|
-| list | obj | 频道信息 | |
-| page | obj | 页面信息 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------- | ---- |
+| list | obj | 频道信息 | |
+| page | obj | 页面信息 | |
`data`中的`list`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|----------|-------|---------|------|
-| archives | array | 包含的视频列表 | |
-| cid | num | 频道id | |
-| count | num | 频道内含视频数 | |
-| cover | str | 封面图片url | |
-| intro | str | 简介 | 无则为空 |
-| mid | num | 创建用户mid | |
-| mtime | num | 创建时间 | 时间戳 |
-| name | str | 标题 | |
+| 字段 | 类型 | 内容 | 备注 |
+| -------- | ------ | -------------- | -------- |
+| archives | array | 包含的视频列表 | |
+| cid | num | 频道id | |
+| count | num | 频道内含视频数 | |
+| cover | str | 封面图片url | |
+| intro | str | 简介 | 无则为空 |
+| mid | num | 创建用户mid | |
+| mtime | num | 创建时间 | 时间戳 |
+| name | str | 标题 | |
`list`中的`archives`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|----------------|
-| 0 | obj | 视频1 | |
-| n | obj | 视频(n+1) | 项数取决于`count`的值 |
-| …… | obj | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | --------------------- |
+| 0 | obj | 视频1 | |
+| n | obj | 视频(n+1) | 项数取决于`count`的值 |
+| …… | obj | …… | …… |
`list`中的`archives`数组中的对象:
@@ -3362,137 +2994,137 @@ curl -G 'https://api.bilibili.com/x/space/channel/video' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "list": {
- "cid": 170,
- "mid": 53456,
- "name": "爆炸电台",
- "intro": "闲聊的电台",
- "mtime": 1503298893,
- "count": 7,
- "cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg",
- "archives": [{
- "aid": 87673204,
- "videos": 1,
- "tid": 21,
- "tname": "日常",
- "copyright": 1,
- "pic": "http://i0.hdslb.com/bfs/archive/5387bdcbbe4d5551adbf0ee2e607e4b7d3d8f2f0.jpg",
- "title": "【warma爆炸电台】迟来的自我介绍【第八期】",
- "pubdate": 1581244539,
- "ctime": 1581244540,
- "desc": "时隔半年的新的一期爆炸电台来啦,这是我的一系列杂谈聊天电台,这次因为多了很多新关注的朋友们,所以来做个自我介绍吧!\n画师:Dr-H_喵_ 动画:K_Lacid\n结尾提到的壁纸稍后在动态发原图,动态壁纸在steam那个壁纸软件的创意工坊里搜warma能找到\n\n往期的电台:\n第一期:av6786024 \n第三期:av13619263\n第四期:av18862091\n第五期:av25092410\n第六期:av42492515\n第七期:av62910468",
- "state": 0,
- "attribute": 16512,
- "duration": 2388,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0
- },
- "owner": {
- "mid": 53456,
- "name": "Warma",
- "face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg"
- },
- "stat": {
- "aid": 87673204,
- "view": 1383542,
- "danmaku": 88908,
- "reply": 9237,
- "favorite": 32929,
- "coin": 68849,
- "share": 5140,
- "now_rank": 0,
- "his_rank": 52,
- "like": 116164,
- "dislike": 0
- },
- "dynamic": "来做个自我介绍吧! #warma##沃玛##爆炸电台#",
- "cid": 149793525,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "bvid": "BV1D7411t7Be",
- "inter_video": false
- }, {
- "aid": 62910468,
- "videos": 1,
- "tid": 21,
- "tname": "日常",
- "copyright": 1,
- "pic": "http://i2.hdslb.com/bfs/archive/4bd598f71a144d4505e259b143c0de0bf27968b2.jpg",
- "title": "【warma爆炸电台】居然收到了几千条问题!【第七期】",
- "pubdate": 1565345410,
- "ctime": 1565338559,
- "desc": "时隔半年的爆炸电台第七期终于来啦!在这一期里回答了很多问题,祝看得开心!此外,就在昨天,50万订阅了…真的谢谢大家!\n也欢迎来看往期的电台:\n第一期:av6786024 (2016年10月)\n第二期:av10373352(2017年5月)\n第三期:av13619263(2017年8月)\n第四期:av18862091(2018年1月)\n第五期:av25092410(2018年6月)\n第六期:av42492515(2019年2月)",
- "state": 0,
- "attribute": 16512,
- "duration": 1987,
- "mission_id": 11740,
- "rights": {
- "bp": 0,
- "elec": 0,
- "download": 0,
- "movie": 0,
- "pay": 0,
- "hd5": 0,
- "no_reprint": 1,
- "autoplay": 1,
- "ugc_pay": 0,
- "is_cooperation": 0,
- "ugc_pay_preview": 0,
- "no_background": 0
- },
- "owner": {
- "mid": 53456,
- "name": "Warma",
- "face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg"
- },
- "stat": {
- "aid": 62910468,
- "view": 455277,
- "danmaku": 19383,
- "reply": 2108,
- "favorite": 10507,
- "coin": 19422,
- "share": 1208,
- "now_rank": 0,
- "his_rank": 0,
- "like": 31515,
- "dislike": 0
- },
- "dynamic": "爆炸电台 第七期 来啦!",
- "cid": 109284065,
- "dimension": {
- "width": 1920,
- "height": 1080,
- "rotate": 0
- },
- "bvid": "BV1gt411K7Ga",
- "inter_video": false
- }]
- },
- "page": {
- "count": 7,
- "num": 1,
- "size": 2
- }
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "list": {
+ "cid": 170,
+ "mid": 53456,
+ "name": "爆炸电台",
+ "intro": "闲聊的电台",
+ "mtime": 1503298893,
+ "count": 7,
+ "cover": "http://i2.hdslb.com/bfs/archive/73d77bc6bb0d44b239fd4f5a2682fe3144e81692.jpg",
+ "archives": [{
+ "aid": 87673204,
+ "videos": 1,
+ "tid": 21,
+ "tname": "日常",
+ "copyright": 1,
+ "pic": "http://i0.hdslb.com/bfs/archive/5387bdcbbe4d5551adbf0ee2e607e4b7d3d8f2f0.jpg",
+ "title": "【warma爆炸电台】迟来的自我介绍【第八期】",
+ "pubdate": 1581244539,
+ "ctime": 1581244540,
+ "desc": "时隔半年的新的一期爆炸电台来啦,这是我的一系列杂谈聊天电台,这次因为多了很多新关注的朋友们,所以来做个自我介绍吧!\n画师:Dr-H_喵_ 动画:K_Lacid\n结尾提到的壁纸稍后在动态发原图,动态壁纸在steam那个壁纸软件的创意工坊里搜warma能找到\n\n往期的电台:\n第一期:av6786024 \n第三期:av13619263\n第四期:av18862091\n第五期:av25092410\n第六期:av42492515\n第七期:av62910468",
+ "state": 0,
+ "attribute": 16512,
+ "duration": 2388,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 0,
+ "no_reprint": 1,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0
+ },
+ "owner": {
+ "mid": 53456,
+ "name": "Warma",
+ "face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg"
+ },
+ "stat": {
+ "aid": 87673204,
+ "view": 1383542,
+ "danmaku": 88908,
+ "reply": 9237,
+ "favorite": 32929,
+ "coin": 68849,
+ "share": 5140,
+ "now_rank": 0,
+ "his_rank": 52,
+ "like": 116164,
+ "dislike": 0
+ },
+ "dynamic": "来做个自我介绍吧! #warma##沃玛##爆炸电台#",
+ "cid": 149793525,
+ "dimension": {
+ "width": 1920,
+ "height": 1080,
+ "rotate": 0
+ },
+ "bvid": "BV1D7411t7Be",
+ "inter_video": false
+ }, {
+ "aid": 62910468,
+ "videos": 1,
+ "tid": 21,
+ "tname": "日常",
+ "copyright": 1,
+ "pic": "http://i2.hdslb.com/bfs/archive/4bd598f71a144d4505e259b143c0de0bf27968b2.jpg",
+ "title": "【warma爆炸电台】居然收到了几千条问题!【第七期】",
+ "pubdate": 1565345410,
+ "ctime": 1565338559,
+ "desc": "时隔半年的爆炸电台第七期终于来啦!在这一期里回答了很多问题,祝看得开心!此外,就在昨天,50万订阅了…真的谢谢大家!\n也欢迎来看往期的电台:\n第一期:av6786024 (2016年10月)\n第二期:av10373352(2017年5月)\n第三期:av13619263(2017年8月)\n第四期:av18862091(2018年1月)\n第五期:av25092410(2018年6月)\n第六期:av42492515(2019年2月)",
+ "state": 0,
+ "attribute": 16512,
+ "duration": 1987,
+ "mission_id": 11740,
+ "rights": {
+ "bp": 0,
+ "elec": 0,
+ "download": 0,
+ "movie": 0,
+ "pay": 0,
+ "hd5": 0,
+ "no_reprint": 1,
+ "autoplay": 1,
+ "ugc_pay": 0,
+ "is_cooperation": 0,
+ "ugc_pay_preview": 0,
+ "no_background": 0
+ },
+ "owner": {
+ "mid": 53456,
+ "name": "Warma",
+ "face": "http://i1.hdslb.com/bfs/face/c1bbee6d255f1e7fc434e9930f0f288c8b24293a.jpg"
+ },
+ "stat": {
+ "aid": 62910468,
+ "view": 455277,
+ "danmaku": 19383,
+ "reply": 2108,
+ "favorite": 10507,
+ "coin": 19422,
+ "share": 1208,
+ "now_rank": 0,
+ "his_rank": 0,
+ "like": 31515,
+ "dislike": 0
+ },
+ "dynamic": "爆炸电台 第七期 来啦!",
+ "cid": 109284065,
+ "dimension": {
+ "width": 1920,
+ "height": 1080,
+ "rotate": 0
+ },
+ "bvid": "BV1gt411K7Ga",
+ "inter_video": false
+ }]
+ },
+ "page": {
+ "count": 7,
+ "num": 1,
+ "size": 2
+ }
+ }
}
```
@@ -3510,28 +3142,28 @@ curl -G 'https://api.bilibili.com/x/space/channel/video' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-------|-----|----------------------|-----|-----|
-| name | str | 频道名 | 必要 | |
-| intro | str | 频道简介 | 非必要 | |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ---- |
+| name | str | 频道名 | 必要 | |
+| intro | str | 频道简介 | 非必要 | |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53001:频道名字数超过限制
53002:频道简介字数超过限制
53004:创建的频道已经满额
53007:频道名称已经存在
53024:编辑内容命中敏感信息 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 数据本体 | 成功有此项 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53001:频道名字数超过限制
53002:频道简介字数超过限制
53004:创建的频道已经满额
53007:频道名称已经存在
53024:编辑内容命中敏感信息 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 数据本体 | 成功有此项 |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-----|-----|------|-----|
-| cid | num | 频道id | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------ | ---- |
+| cid | num | 频道id | |
**示例:**
@@ -3550,12 +3182,12 @@ curl 'https://api.bilibili.com/x/space/channel/add' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "cid": 138996
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "cid": 138996
+ }
}
```
@@ -3571,22 +3203,22 @@ curl 'https://api.bilibili.com/x/space/channel/add' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-------|-----|----------------------|-----|-----|
-| cid | num | 频道id | 必要 | |
-| name | str | 频道名 | 必要 | |
-| intro | str | 频道简介 | 非必要 | |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ---- |
+| cid | num | 频道id | 必要 | |
+| name | str | 频道名 | 必要 | |
+| intro | str | 频道简介 | 非必要 | |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|---------------------------------------------------------------------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53001:频道名字数超过限制
53002:频道简介字数超过限制
53007:频道名称已经存在
53024:编辑内容命中敏感信息 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
53001:频道名字数超过限制
53002:频道简介字数超过限制
53007:频道名称已经存在
53024:编辑内容命中敏感信息 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -3606,9 +3238,9 @@ curl 'https://api.bilibili.com/x/space/channel/edit' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1
+ "code": 0,
+ "message": "0",
+ "ttl": 1
}
```
@@ -3655,9 +3287,9 @@ curl 'https://api.bilibili.com/x/space/channel/del' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1
+ "code": 0,
+ "message": "0",
+ "ttl": 1
}
```
@@ -3679,30 +3311,30 @@ curl 'https://api.bilibili.com/x/space/channel/del' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|------|----------------------|-----|----------------|
-| cid | num | 频道id | 必要 | |
-| aids | nums | 要添加的目标稿件avid | 必要 | 多个使用","(%2C)分隔 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ---------------------- |
+| cid | num | 频道id | 必要 | |
+| aids | nums | 要添加的目标稿件avid | 必要 | 多个使用","(%2C)分隔 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-------|------------|----------------------------------------------------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项
53003:本频道里的视频已满
53006:提交视频已失效或频道里有(非该视频UP主) |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | array | 出错稿件avid列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ----- | ---------------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项
53003:本频道里的视频已满
53006:提交视频已失效或频道里有(非该视频UP主) |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | array | 出错稿件avid列表 | |
`data`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------------|-----|
-| 0 | num | 出错稿件avid1 | |
-| n | num | 出错稿件avid(n+1) | |
-| …… | num | …… | …… |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ------------------- | ---- |
+| 0 | num | 出错稿件avid1 | |
+| n | num | 出错稿件avid(n+1) | |
+| …… | num | …… | …… |
**示例:**
@@ -3721,10 +3353,10 @@ curl 'https://api.bilibili.com/x/space/channel/video/add' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": []
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": []
}
```
@@ -3742,20 +3374,21 @@ curl 'https://api.bilibili.com/x/space/channel/video/add' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|--------------|-----|-----|
-| cid | num | 频道id | 必要 | |
-| aid | num | 要删除的目标稿件avid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ---- |
+| cid | num | 频道id | 必要 | |
+| aid | num | 要删除的目标稿件avid | 必要 | |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|-------------------------------------------------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项
53008:频道内没有视频
53009:频道内没有该视频 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-404:无此项
53008:频道内没有视频
53009:频道内没有该视频 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -3774,9 +3407,9 @@ curl 'https://api.bilibili.com/x/space/channel/video/del' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1
+ "code": 0,
+ "message": "0",
+ "ttl": 1
}
```
@@ -3792,22 +3425,22 @@ curl 'https://api.bilibili.com/x/space/channel/video/del' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|----------------------|-----|-----------------------------------------|
-| cid | num | 频道id | 必要 | |
-| aid | num | 要移动的目标稿件avid | 必要 | |
-| to | num | 视频排序倒数位置 | 非必要 | 默认为1
1为列表底部,视频总数为首端
与显示顺序恰好相反 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
+| cid | num | 频道id | 必要 | |
+| aid | num | 要移动的目标稿件avid | 必要 | |
+| to | num | 视频排序倒数位置 | 非必要 | 默认为1
1为列表底部,视频总数为首端
与显示顺序恰好相反 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|--------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -3827,9 +3460,9 @@ curl 'https://api.bilibili.com/x/space/channel/video/sort' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1
+ "code": 0,
+ "message": "0",
+ "ttl": 1
}
```
@@ -3845,19 +3478,19 @@ curl 'https://api.bilibili.com/x/space/channel/video/sort' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|--------|-----|-----|
-| cid | num | 目标频道id | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ---------- | ------ | ---- |
+| cid | num | 目标频道id | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|-----------------------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
-404:无此项
53005:频道内有失效视频 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
-404:无此项
53005:频道内有失效视频 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -3874,9 +3507,9 @@ curl -G 'https://api.bilibili.com/x/space/channel/video/check
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1
+ "code": 0,
+ "message": "0",
+ "ttl": 1
}
```
@@ -3898,55 +3531,55 @@ curl -G 'https://api.bilibili.com/x/space/channel/video/check
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|--------|-----|---------|-----|-----|
-| up_mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| up_mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----------------------|------|---------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | 隐藏时:null
公开时:obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ----------------------------- | -------- | --------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | 隐藏时:null
公开时:obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----------------------------|---------|-----|
-| count | num | 创建的收藏夹数 | |
-| list | 无收藏夹时:null
有收藏夹时:array | 收藏夹列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | --------------------------------------- | -------------- | ---- |
+| count | num | 创建的收藏夹数 | |
+| list | 无收藏夹时:null
有收藏夹时:array | 收藏夹列表 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|----------|----------------|
-| 0 | obj | 收藏夹1 | |
-| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
-| …… | obj | …… | |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | --------------------- |
+| 0 | obj | 收藏夹1 | |
+| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
+| …… | obj | …… | |
`data`中的`list`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------------|-----|-----------|-----------|
-| id | num | 收藏夹mlid | |
-| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
-| mid | num | 创建用户mid | |
-| attr | num | 收藏夹属性位配置 | |
-| title | str | 收藏夹标题 | |
-| fav_state | num | 0 | 作用尚不明确 |
-| media_count | num | 收藏夹总计视频数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | ---------------- | --------------- |
+| id | num | 收藏夹mlid | |
+| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
+| mid | num | 创建用户mid | |
+| attr | num | 收藏夹属性位配置 | |
+| title | str | 收藏夹标题 | |
+| fav_state | num | 0 | 作用尚不明确 |
+| media_count | num | 收藏夹总计视频数 | |
`attr`属性位二进制值表:
-| 位 | 内容 | 备注 |
-|-----------|----------|----------------------|
-| 0 | 是否为默认收藏夹 | 0:默认收藏夹
1:其他收藏夹 |
-| 1 | 私有收藏夹 | 0:公开
1:私有 |
-| 其他有待补充... | | |
+| 位 | 内容 | 备注 |
+| --------------- | ---------------- | -------------------------------- |
+| 0 | 是否为默认收藏夹 | 0:默认收藏夹
1:其他收藏夹 |
+| 1 | 私有收藏夹 | 0:公开
1:私有 |
+| 其他有待补充... | | |
**示例:**
@@ -3963,53 +3596,53 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "count": 5,
- "list": [{
- "id": 44233921,
- "fid": 442339,
- "mid": 7792521,
- "attr": 0,
- "title": "默认收藏夹",
- "fav_state": 0,
- "media_count": 85
- }, {
- "id": 936347621,
- "fid": 9363476,
- "mid": 7792521,
- "attr": 22,
- "title": "放假君的鬼畜私房歌",
- "fav_state": 0,
- "media_count": 2
- }, {
- "id": 845218621,
- "fid": 8452186,
- "mid": 7792521,
- "attr": 22,
- "title": "♪一言不合就开唱♪",
- "fav_state": 0,
- "media_count": 4
- }, {
- "id": 844998121,
- "fid": 8449981,
- "mid": 7792521,
- "attr": 22,
- "title": "个人作品精选",
- "fav_state": 0,
- "media_count": 25
- }, {
- "id": 381779121,
- "fid": 3817791,
- "mid": 7792521,
- "attr": 22,
- "title": "鬼畜小课堂",
- "fav_state": 0,
- "media_count": 25
- }]
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "count": 5,
+ "list": [{
+ "id": 44233921,
+ "fid": 442339,
+ "mid": 7792521,
+ "attr": 0,
+ "title": "默认收藏夹",
+ "fav_state": 0,
+ "media_count": 85
+ }, {
+ "id": 936347621,
+ "fid": 9363476,
+ "mid": 7792521,
+ "attr": 22,
+ "title": "放假君的鬼畜私房歌",
+ "fav_state": 0,
+ "media_count": 2
+ }, {
+ "id": 845218621,
+ "fid": 8452186,
+ "mid": 7792521,
+ "attr": 22,
+ "title": "♪一言不合就开唱♪",
+ "fav_state": 0,
+ "media_count": 4
+ }, {
+ "id": 844998121,
+ "fid": 8449981,
+ "mid": 7792521,
+ "attr": 22,
+ "title": "个人作品精选",
+ "fav_state": 0,
+ "media_count": 25
+ }, {
+ "id": 381779121,
+ "fid": 3817791,
+ "mid": 7792521,
+ "attr": 22,
+ "title": "鬼畜小课堂",
+ "fav_state": 0,
+ "media_count": 25
+ }]
+ }
}
```
@@ -4023,70 +3656,71 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/created/list-all' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|--------|-----|---------|-----|--------------|
-| ps | num | 每页项数 | 必要 | 定义域 1 - 大于70 |
-| pn | num | 页码 | 必要 | |
-| up_mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| ps | num | 每页项数 | 必要 | 定义域 1 - 大于70 |
+| pn | num | 页码 | 必要 | |
+| up_mid | num | 目标用户mid | 必要 | |
+| platform | str | 平台类型 | 非必要 | 填写web 返回值才会包含用户收藏的视频合集 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----------------------|------|---------------------------------------------------------|
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
40022:签名过长 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | 隐藏时:null
公开时:obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ----------------------------- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
40022:签名过长 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | 隐藏时:null
公开时:obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-----------------------------|---------|-----|
-| count | num | 创建的收藏夹数 | |
-| list | 无收藏夹时:null
有收藏夹时:array | 收藏夹列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | --------------------------------------- | -------------- | ---- |
+| count | num | 创建的收藏夹数 | |
+| list | 无收藏夹时:null
有收藏夹时:array | 收藏夹列表 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|----------|----------------|
-| 0 | obj | 收藏夹1 | |
-| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
-| …… | obj | …… | |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | --------------------- |
+| 0 | obj | 收藏夹1 | |
+| n | obj | 收藏夹(n+1) | 项数取决于`count`的值 |
+| …… | obj | …… | |
`data`中的`list`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------------|-----|------------|----------------------------|
-| id | num | 收藏夹ml | |
-| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
-| mid | num | 创建用户mid | |
-| attr | num | 收藏夹属性 | 转换成8-bit二进制处理
详细说明见下表 |
-| title | str | 收藏夹标题 | |
-| cover | str | 收藏夹封面图片url | |
-| upper | obj | 收藏夹创建用户信息 | |
-| cover_type | num | 2 | 作用尚不明确 |
-| intro | str | 空 | 作用尚不明确 |
-| ctime | num | 创建时间 | 时间戳 |
-| mtime | num | 审核时间 | 时间戳 |
-| state | num | 0 | 作用尚不明确 |
-| fav_state | num | 0 | 作用尚不明确 |
-| media_count | num | 收藏夹总计视频数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------- | ---- | ------------------ | ----------------------------------------- |
+| id | num | 收藏夹ml | |
+| fid | num | 原始收藏夹mlid | 去除两位mid尾号 |
+| mid | num | 创建用户mid | |
+| attr | num | 收藏夹属性 | 转换成8-bit二进制处理
详细说明见下表 |
+| title | str | 收藏夹标题 | |
+| cover | str | 收藏夹封面图片url | |
+| upper | obj | 收藏夹创建用户信息 | |
+| cover_type | num | 2 | 作用尚不明确 |
+| intro | str | 空 | 作用尚不明确 |
+| ctime | num | 创建时间 | 时间戳 |
+| mtime | num | 审核时间 | 时间戳 |
+| state | num | 0 | 作用尚不明确 |
+| fav_state | num | 0 | 作用尚不明确 |
+| media_count | num | 收藏夹总计视频数 | |
`attr`属性二进制值表:
-| 其他有待补充... | 1:默认收藏夹 | 0:公开性 |
-|-----------|----------------------|----------------|
-| | 0:默认收藏夹
1:其他收藏夹 | 0:公开
1:私有 |
+| 其他有待补充... | 1:默认收藏夹 | 0:公开性 |
+| --------------- | -------------------------------- | -------------------- |
+| | 0:默认收藏夹
1:其他收藏夹 | 0:公开
1:私有 |
`data`中的`list`数组中的对象中的`upper`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------|-----|--------|--------|
-| mid | num | 创建人mid | |
-| name | str | 创建人昵称 | |
-| face | str | 空 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ---- | ---------- | ------------ |
+| mid | num | 创建人mid | |
+| name | str | 创建人昵称 | |
+| face | str | 空 | 作用尚不明确 |
**示例:**
@@ -4105,51 +3739,51 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/collected/list' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "count": 2,
- "list": [{
- "id": 496307088,
- "fid": 4963070,
- "mid": 412466388,
- "attr": 22,
- "title": "入站必刷",
- "cover": "http://i0.hdslb.com/bfs/archive/baae2b4050363c0ab45465b7cf696b8304fdaca8.jpg",
- "upper": {
- "mid": 412466388,
- "name": "热门菌",
- "face": ""
- },
- "cover_type": 2,
- "intro": "",
- "ctime": 1563394571,
- "mtime": 1563394571,
- "state": 0,
- "fav_state": 0,
- "media_count": 55
- }, {
- "id": 381779121,
- "fid": 3817791,
- "mid": 7792521,
- "attr": 22,
- "title": "鬼畜小课堂",
- "cover": "http://i2.hdslb.com/bfs/archive/09a668cfdb38fb3a85f905c10f48a2947e36a695.jpg",
- "upper": {
- "mid": 7792521,
- "name": "还有一天就放假了",
- "face": ""
- },
- "cover_type": 2,
- "intro": "",
- "ctime": 1553700224,
- "mtime": 1557291666,
- "state": 0,
- "fav_state": 0,
- "media_count": 25
- }]
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "count": 2,
+ "list": [{
+ "id": 496307088,
+ "fid": 4963070,
+ "mid": 412466388,
+ "attr": 22,
+ "title": "入站必刷",
+ "cover": "http://i0.hdslb.com/bfs/archive/baae2b4050363c0ab45465b7cf696b8304fdaca8.jpg",
+ "upper": {
+ "mid": 412466388,
+ "name": "热门菌",
+ "face": ""
+ },
+ "cover_type": 2,
+ "intro": "",
+ "ctime": 1563394571,
+ "mtime": 1563394571,
+ "state": 0,
+ "fav_state": 0,
+ "media_count": 55
+ }, {
+ "id": 381779121,
+ "fid": 3817791,
+ "mid": 7792521,
+ "attr": 22,
+ "title": "鬼畜小课堂",
+ "cover": "http://i2.hdslb.com/bfs/archive/09a668cfdb38fb3a85f905c10f48a2947e36a695.jpg",
+ "upper": {
+ "mid": 7792521,
+ "name": "还有一天就放假了",
+ "face": ""
+ },
+ "cover_type": 2,
+ "intro": "",
+ "ctime": 1553700224,
+ "mtime": 1557291666,
+ "state": 0,
+ "fav_state": 0,
+ "media_count": 25
+ }]
+ }
}
```
@@ -4167,60 +3801,60 @@ curl -G 'https://api.bilibili.com/x/v3/fav/folder/collected/list' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-------|
-| mid | num | 目标用户mid | 必要 | |
-| pn | num | 页码 | 非必要 | 默认为1 |
-| ps | num | 每页项数 | 非必要 | 默认为20 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | -------- |
+| mid | num | 目标用户mid | 必要 | |
+| pn | num | 页码 | 非必要 | 默认为1 |
+| ps | num | 每页项数 | 非必要 | 默认为20 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ---------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|------|-------|------|-----|
-| list | array | 课程列表 | |
-| page | obj | 页面信息 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---- | ----- | -------- | ---- |
+| list | array | 课程列表 | |
+| page | obj | 页面信息 | |
`data`中的`page`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|------|---------|----------------------------|
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ---- | -------------- | ------------------------------------- |
| next | bool | 是否存在下一页 | false:最后一页
true:存在下一页 |
-| num | num | 当前页码 | |
-| size | num | 每页项数 | |
-| total | num | 总计项数 | |
+| num | num | 当前页码 | |
+| size | num | 每页项数 | |
+| total | num | 总计项数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|---------------|
-| 0 | obj | 课程1 | |
-| n | obj | 课程(n+1) | 按照目标用户的发布顺序排列 |
-| …… | obj | …… | |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | -------------------------- |
+| 0 | obj | 课程1 | |
+| n | obj | 课程(n+1) | 按照目标用户的发布顺序排列 |
+| …… | obj | …… | |
`data`中的`list`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-----------|-----|---------|----------|
-| cover | str | 课程封面url | |
-| ep_count | num | 课程集数 | |
-| link | str | 课程页面url | 手机版页面url |
-| page | num | 1 | 作用尚不明确 |
-| play | num | 课程播放数 | |
-| season_id | num | 课程ssid | |
-| status | str | 更新状态说明 | |
-| subtitle | str | 课程副标题 | |
-| title | str | 课程标题 | |
+| 字段 | 类型 | 内容 | 备注 |
+| --------- | ---- | ------------ | ------------- |
+| cover | str | 课程封面url | |
+| ep_count | num | 课程集数 | |
+| link | str | 课程页面url | 手机版页面url |
+| page | num | 1 | 作用尚不明确 |
+| play | num | 课程播放数 | |
+| season_id | num | 课程ssid | |
+| status | str | 更新状态说明 | |
+| subtitle | str | 课程副标题 | |
+| title | str | 课程标题 | |
**示例:**
@@ -4238,73 +3872,73 @@ curl -G 'https://api.bilibili.com/pugv/app/web/season/page' \
```json
{
- "code": 0,
- "data": {
- "items": [
- {
- "cover": "http://i0.hdslb.com/bfs/archive/596575057885fff7f0ceff047437186cba459358.jpg",
- "ep_count": 10,
- "link": "https://m.bilibili.com/cheese/play/ss80",
- "page": 1,
- "play": 174467,
- "season_id": 80,
- "status": "共10期",
- "subtitle": "百科全书式军事科普短视频系列",
- "title": "《战忽知道》第一季"
- },
- {
- "cover": "http://i0.hdslb.com/bfs/archive/322aa94d27cece62d2a859caf71ac2426f29eee2.jpg",
- "ep_count": 1,
- "link": "https://m.bilibili.com/cheese/play/ss145",
- "page": 1,
- "play": 22155,
- "season_id": 145,
- "status": "更新至第1期",
- "subtitle": "此课程为《局座:第四次工业革命来了》部分集数,请谨慎购买",
- "title": "【体验课】局座讲5G:5G如何改变我们的生活?"
- },
- {
- "cover": "http://i0.hdslb.com/bfs/archive/b9794ac4507f8764e219df413b661b5faf499a19.jpg",
- "ep_count": 10,
- "link": "https://m.bilibili.com/cheese/play/ss113",
- "page": 1,
- "play": 49833,
- "season_id": 113,
- "status": "更新至第10期",
- "subtitle": "百科全书式军事科普短视频系列",
- "title": "《战忽知道》第二季"
- },
- {
- "cover": "http://i0.hdslb.com/bfs/archive/7351fcb33592a4bc7aac9f71d421b4b5ce0177d3.jpg",
- "ep_count": 10,
- "link": "https://m.bilibili.com/cheese/play/ss51",
- "page": 1,
- "play": 4981037,
- "season_id": 51,
- "status": "共10期",
- "subtitle": "洞悉国际局势,学习战略思维",
- "title": "局座的国际战略课"
- },
- {
- "cover": "http://i0.hdslb.com/bfs/archive/31e2a170b5a815e34f0537a2727b28f1b87dca18.jpg",
- "ep_count": 10,
- "link": "https://m.bilibili.com/cheese/play/ss121",
- "page": 1,
- "play": 30754,
- "season_id": 121,
- "status": "更新至第10期",
- "subtitle": "百科全书式军事科普短视频系列",
- "title": "《战忽知道》第三季"
- }
- ],
- "page": {
- "next": true,
- "num": 1,
- "size": 5,
- "total": 8
- }
- },
- "message": "success"
+ "code": 0,
+ "data": {
+ "items": [
+ {
+ "cover": "http://i0.hdslb.com/bfs/archive/596575057885fff7f0ceff047437186cba459358.jpg",
+ "ep_count": 10,
+ "link": "https://m.bilibili.com/cheese/play/ss80",
+ "page": 1,
+ "play": 174467,
+ "season_id": 80,
+ "status": "共10期",
+ "subtitle": "百科全书式军事科普短视频系列",
+ "title": "《战忽知道》第一季"
+ },
+ {
+ "cover": "http://i0.hdslb.com/bfs/archive/322aa94d27cece62d2a859caf71ac2426f29eee2.jpg",
+ "ep_count": 1,
+ "link": "https://m.bilibili.com/cheese/play/ss145",
+ "page": 1,
+ "play": 22155,
+ "season_id": 145,
+ "status": "更新至第1期",
+ "subtitle": "此课程为《局座:第四次工业革命来了》部分集数,请谨慎购买",
+ "title": "【体验课】局座讲5G:5G如何改变我们的生活?"
+ },
+ {
+ "cover": "http://i0.hdslb.com/bfs/archive/b9794ac4507f8764e219df413b661b5faf499a19.jpg",
+ "ep_count": 10,
+ "link": "https://m.bilibili.com/cheese/play/ss113",
+ "page": 1,
+ "play": 49833,
+ "season_id": 113,
+ "status": "更新至第10期",
+ "subtitle": "百科全书式军事科普短视频系列",
+ "title": "《战忽知道》第二季"
+ },
+ {
+ "cover": "http://i0.hdslb.com/bfs/archive/7351fcb33592a4bc7aac9f71d421b4b5ce0177d3.jpg",
+ "ep_count": 10,
+ "link": "https://m.bilibili.com/cheese/play/ss51",
+ "page": 1,
+ "play": 4981037,
+ "season_id": 51,
+ "status": "共10期",
+ "subtitle": "洞悉国际局势,学习战略思维",
+ "title": "局座的国际战略课"
+ },
+ {
+ "cover": "http://i0.hdslb.com/bfs/archive/31e2a170b5a815e34f0537a2727b28f1b87dca18.jpg",
+ "ep_count": 10,
+ "link": "https://m.bilibili.com/cheese/play/ss121",
+ "page": 1,
+ "play": 30754,
+ "season_id": 121,
+ "status": "更新至第10期",
+ "subtitle": "百科全书式军事科普短视频系列",
+ "title": "《战忽知道》第三季"
+ }
+ ],
+ "page": {
+ "next": true,
+ "num": 1,
+ "size": 5,
+ "total": 8
+ }
+ },
+ "message": "success"
}
```
@@ -4316,7 +3950,7 @@ curl -G 'https://api.bilibili.com/pugv/app/web/season/page' \
### 查询用户追番预览列表
-> https://space.bilibili.com/ajax/Bangumi/getList
+> http://space.bilibili.com/ajax/Bangumi/getList
*请求方式:GET*
@@ -4328,58 +3962,58 @@ curl -G 'https://api.bilibili.com/pugv/app/web/season/page' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|--------|--------------------|----------------------|-----------------------|
-| status | bool | 状态 | false:失败
true:成功 |
-| data | 失败:str
成功:obj | 失败:错误信息
成功:信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ------------------------ | ---------------------------------- | --------------------------- |
+| status | bool | 状态 | false:失败
true:成功 |
+| data | 失败:str
成功:obj | 失败:错误信息
成功:信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|--------|-------|--------|--------|
-| count | num | 总计追番数 | |
-| pages | num | 0 | 作用尚不明确 |
-| result | array | 追番预览列表 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ----- | ------------ | ------------ |
+| count | num | 总计追番数 | |
+| pages | num | 0 | 作用尚不明确 |
+| result | array | 追番预览列表 | |
`data`中的`result`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|---------------|
-| 0 | obj | 追番1 | |
-| n | obj | 追番(n+1) | 按照目标用户的关注顺序排列 |
-| …… | obj | …… | |
-| 14 | obj | 追番15 | 最后一项 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | -------------------------- |
+| 0 | obj | 追番1 | |
+| n | obj | 追番(n+1) | 按照目标用户的关注顺序排列 |
+| …… | obj | …… | |
+| 14 | obj | 追番15 | 最后一项 |
`data`中的`result`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-----------------|-----|-----------|-----------------------|
-| brief | str | 简介 | |
-| cover | str | 封面图片url | |
-| evaluate | str | 空 | |
-| favorites | num | 追番数 | |
-| is_finish | num | 是否已完结 | 0:未完结
1:已完结 |
-| last_ep_index | num | 0 | 作用尚不明确 |
-| newest_ep_index | num | 最新一话 | 可能为0 |
-| season_id | str | 番剧ssid | |
-| share_url | str | 播放页面链接url | |
-| title | str | 标题 | |
-| total_count | num | 总计集数 | 未完结:-1
已完结:非0正整数 |
+| 字段 | 类型 | 内容 | 备注 |
+| --------------- | ---- | --------------- | --------------------------------- |
+| brief | str | 简介 | |
+| cover | str | 封面图片url | |
+| evaluate | str | 空 | |
+| favorites | num | 追番数 | |
+| is_finish | num | 是否已完结 | 0:未完结
1:已完结 |
+| last_ep_index | num | 0 | 作用尚不明确 |
+| newest_ep_index | num | 最新一话 | 可能为0 |
+| season_id | str | 番剧ssid | |
+| share_url | str | 播放页面链接url | |
+| title | str | 标题 | |
+| total_count | num | 总计集数 | 未完结:-1
已完结:非0正整数 |
**示例:**
查看用户`mid=14082`的追番预览列表
```shell
-curl -G 'https://space.bilibili.com/ajax/Bangumi/getList' \
+curl -G 'http://space.bilibili.com/ajax/Bangumi/getList' \
--data-urlencode 'mid=14082' \
-b 'SESSDATA=xxx'
```
@@ -4389,38 +4023,38 @@ curl -G 'https://space.bilibili.com/ajax/Bangumi/getList' \
```json
{
- "status": true,
- "data": {
- "count": 25,
- "pages": 0,
- "result": [{
- "season_id": "29310",
- "share_url": "http:\/\/bangumi.bilibili.com\/anime\/29310\/",
- "title": "异度侵入 ID:INVADED",
- "is_finish": 1,
- "favorites": 3479220,
- "newest_ep_index": 13,
- "last_ep_index": 0,
- "total_count": 13,
- "cover": "http:\/\/i0.hdslb.com\/bfs\/bangumi\/image\/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png",
- "evaluate": "",
- "brief": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。"
- }, {
- "season_id": "25739",
- "share_url": "http:\/\/bangumi.bilibili.com\/anime\/25739\/",
- "title": "关于我转生变成史莱姆这档事",
- "is_finish": 1,
- "favorites": 5518829,
- "newest_ep_index": 0,
- "last_ep_index": 0,
- "total_count": 27,
- "cover": "https:\/\/i0.hdslb.com\/bfs\/bangumi\/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png",
- "evaluate": "",
- "brief": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不..."
- },
- …………
- ]
- }
+ "status": true,
+ "data": {
+ "count": 25,
+ "pages": 0,
+ "result": [{
+ "season_id": "29310",
+ "share_url": "http:\/\/bangumi.bilibili.com\/anime\/29310\/",
+ "title": "异度侵入 ID:INVADED",
+ "is_finish": 1,
+ "favorites": 3479220,
+ "newest_ep_index": 13,
+ "last_ep_index": 0,
+ "total_count": 13,
+ "cover": "http:\/\/i0.hdslb.com\/bfs\/bangumi\/image\/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png",
+ "evaluate": "",
+ "brief": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。"
+ }, {
+ "season_id": "25739",
+ "share_url": "http:\/\/bangumi.bilibili.com\/anime\/25739\/",
+ "title": "关于我转生变成史莱姆这档事",
+ "is_finish": 1,
+ "favorites": 5518829,
+ "newest_ep_index": 0,
+ "last_ep_index": 0,
+ "total_count": 27,
+ "cover": "http:\/\/i0.hdslb.com\/bfs\/bangumi\/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png",
+ "evaluate": "",
+ "brief": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不..."
+ },
+ …………
+ ]
+ }
}
```
@@ -4438,40 +4072,40 @@ curl -G 'https://space.bilibili.com/ajax/Bangumi/getList' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------|-----|---------|-----|----------------|
-| vmid | num | 目标用户mid | 必要 | |
-| pn | num | 页码 | 非必要 | 默认为1 |
-| ps | num | 每页项数 | 非必要 | 默认为15 定义域1-30 |
-| type | num | 查询类型 | 必要 | 1:追番
2:追剧 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | -------------------- |
+| vmid | num | 目标用户mid | 必要 | |
+| pn | num | 页码 | 非必要 | 默认为1 |
+| ps | num | 每页项数 | 非必要 | 默认为15 定义域1-30 |
+| type | num | 查询类型 | 必要 | 1:追番
2:追剧 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------|-----|------|------------------------------------------|
-| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ---------------------------------------------------------- |
+| code | num | 返回值 | 0:成功
-400:请求错误
53013:用户隐私设置未公开 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-------|-------|-----|
-| list | array | 追番列表 | |
-| pn | num | 当前页码 | |
-| ps | num | 每页项数 | |
-| total | num | 总计追番数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ----- | ---------- | ---- |
+| list | array | 追番列表 | |
+| pn | num | 当前页码 | |
+| ps | num | 每页项数 | |
+| total | num | 总计追番数 | |
`data`中的`list`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|---------|---------------|
-| 0 | obj | 追番1 | |
-| n | obj | 追番(n+1) | 按照目标用户的关注顺序排列 |
-| …… | obj | …… | |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | ----------- | -------------------------- |
+| 0 | obj | 追番1 | |
+| n | obj | 追番(n+1) | 按照目标用户的关注顺序排列 |
+| …… | obj | …… | |
`data`中的`list`数组中的对象:
@@ -4495,200 +4129,204 @@ curl -G 'https://api.bilibili.com/x/space/bangumi/follow/list' \
```json
{
- "code": 0,
- "message": "0",
- "ttl": 1,
- "data": {
- "list": [{
- "season_id": 29310,
- "media_id": 28224080,
- "season_type": 1,
- "season_type_name": "番剧",
- "title": "异度侵入 ID:INVADED",
- "cover": "http://i0.hdslb.com/bfs/bangumi/image/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png",
- "total_count": 13,
- "is_finish": 1,
- "is_started": 1,
- "is_play": 1,
- "badge": "会员专享",
- "badge_type": 0,
- "rights": {
- "allow_review": 1,
- "is_selection": 1,
- "selection_style": 1
- },
- "stat": {
- "follow": 3475768,
- "view": 87500861,
- "danmaku": 1334654,
- "reply": 316632,
- "coin": 835150,
- "series_follow": 3475242,
- "series_view": 87500861
- },
- "new_ep": {
- "id": 307774,
- "index_show": "全13话",
- "cover": "http://i0.hdslb.com/bfs/archive/3dce2b856a7b0ea667aa288b51b7c0478fa56c4d.jpg",
- "title": "13",
- "long_title": "CHANNELEDⅡ",
- "pub_time": "2020-03-23 00:30:00",
- "duration": 1481000
- },
- "rating": {
- "score": 9.8,
- "count": 262589
- },
- "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/664dbf039ec2da8dd982b697a108e28e87b9897e.jpg",
- "season_status": 13,
- "season_title": "TV",
- "badge_ep": "会员",
- "media_attr": 196608,
- "season_attr": 0,
- "evaluate": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。...",
- "areas": [{
- "id": 2,
- "name": "日本"
- }],
- "subtitle": "",
- "first_ep": 307446,
- "can_watch": 1,
- "series": {
- "series_id": 4760,
- "title": "ID:INVADED",
- "season_count": 1,
- "new_season_id": 29310
- },
- "publish": {
- "pub_time": "2020-01-06 00:30:00",
- "pub_time_show": "敬请期待",
- "release_date": "2020-01-06",
- "release_date_show": "2020年1月6日"
- },
- "mode": 2,
- "section": [{
- "section_id": 39327,
- "season_id": 29310,
- "limit_group": 328,
- "watch_platform": 15,
- "copyright": "dujia",
- "ban_area_show": 1
- }, {
- "section_id": 39633,
- "season_id": 29310,
- "limit_group": 328,
- "watch_platform": 15,
- "type": 1,
- "copyright": "dujia",
- "title": "其他",
- "ban_area_show": 1
- }, {
- "section_id": 44101,
- "season_id": 29310,
- "limit_group": 316,
- "watch_platform": 15,
- "type": 4,
- "copyright": "ugc",
- "ban_area_show": 1
- }],
- "url": "https://www.bilibili.com/bangumi/play/ss29310",
- "follow_status": 2,
- "is_new": 0,
- "progress": "",
- "both_follow": true
- }, {
- "season_id": 25739,
- "media_id": 139252,
- "season_type": 1,
- "season_type_name": "番剧",
- "title": "关于我转生变成史莱姆这档事",
- "cover": "http://i0.hdslb.com/bfs/bangumi/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png",
- "total_count": 27,
- "is_finish": 1,
- "is_started": 1,
- "is_play": 1,
- "badge": "会员专享",
- "badge_type": 0,
- "rights": {
- "allow_review": 1,
- "is_selection": 1,
- "selection_style": 1
- },
- "stat": {
- "follow": 5516519,
- "view": 246739631,
- "danmaku": 3802465,
- "reply": 460225,
- "coin": 1338958,
- "series_follow": 5516535,
- "series_view": 246739631
- },
- "new_ep": {
- "id": 316957,
- "index_show": "全27话",
- "cover": "http://i0.hdslb.com/bfs/archive/81d07d1a478ce3a6209b557e14df9b9c78c42abb.jpg",
- "title": "OAD03",
- "long_title": "外传:利姆鲁的华丽教师生活 其一",
- "pub_time": "2020-03-27 00:00:03",
- "duration": 1493000
- },
- "rating": {
- "score": 9.4,
- "count": 83354
- },
- "square_cover": "http://i0.hdslb.com/bfs/bangumi/8d9f5b4a566d0547bc2e3f6f733b732a09c0d3d4.jpg",
- "season_status": 13,
- "season_title": "TV",
- "badge_ep": "会员",
- "media_attr": 0,
- "season_attr": 0,
- "evaluate": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不过,自己居然是“史莱姆”!\n他在得到利姆鲁这个名字后开始了自己的史莱姆人生,随着与各个种族相处交流的...",
- "areas": [{
- "id": 2,
- "name": "日本"
- }],
- "subtitle": "",
- "first_ep": 250460,
- "can_watch": 1,
- "series": {
- "series_id": 4188,
- "title": "关于我转生变成史莱姆这档事",
- "season_count": 1,
- "new_season_id": 25739
- },
- "publish": {
- "pub_time": "2018-10-02 00:30:00",
- "pub_time_show": "2018年10月02日00:30",
- "release_date": "2018-10-02",
- "release_date_show": "2018年10月2日"
- },
- "mode": 2,
- "section": [{
- "section_id": 34988,
- "season_id": 25739,
- "limit_group": 328,
- "watch_platform": 15,
- "copyright": "bilibili",
- "ban_area_show": 1
- }],
- "url": "https://www.bilibili.com/bangumi/play/ss25739",
- "follow_status": 2,
- "is_new": 0,
- "progress": "",
- "both_follow": true
- }],
- "pn": 1,
- "ps": 2,
- "total": 25
- }
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "list": [{
+ "season_id": 29310,
+ "media_id": 28224080,
+ "season_type": 1,
+ "season_type_name": "番剧",
+ "title": "异度侵入 ID:INVADED",
+ "cover": "http://i0.hdslb.com/bfs/bangumi/image/9bf9e66968f85b33ec3769a16c86b36dc984abbc.png",
+ "total_count": 13,
+ "is_finish": 1,
+ "is_started": 1,
+ "is_play": 1,
+ "badge": "会员专享",
+ "badge_type": 0,
+ "rights": {
+ "allow_review": 1,
+ "is_selection": 1,
+ "selection_style": 1
+ },
+ "stat": {
+ "follow": 3475768,
+ "view": 87500861,
+ "danmaku": 1334654,
+ "reply": 316632,
+ "coin": 835150,
+ "series_follow": 3475242,
+ "series_view": 87500861
+ },
+ "new_ep": {
+ "id": 307774,
+ "index_show": "全13话",
+ "cover": "http://i0.hdslb.com/bfs/archive/3dce2b856a7b0ea667aa288b51b7c0478fa56c4d.jpg",
+ "title": "13",
+ "long_title": "CHANNELEDⅡ",
+ "pub_time": "2020-03-23 00:30:00",
+ "duration": 1481000
+ },
+ "rating": {
+ "score": 9.8,
+ "count": 262589
+ },
+ "square_cover": "http://i0.hdslb.com/bfs/bangumi/image/664dbf039ec2da8dd982b697a108e28e87b9897e.jpg",
+ "season_status": 13,
+ "season_title": "TV",
+ "badge_ep": "会员",
+ "media_attr": 196608,
+ "season_attr": 0,
+ "evaluate": "本片讲述利用能检测出人们杀意的装置以及利用思想粒子做出的“井”,来探知事件真相的科幻故事。...",
+ "areas": [{
+ "id": 2,
+ "name": "日本"
+ }],
+ "subtitle": "",
+ "first_ep": 307446,
+ "can_watch": 1,
+ "series": {
+ "series_id": 4760,
+ "title": "ID:INVADED",
+ "season_count": 1,
+ "new_season_id": 29310
+ },
+ "publish": {
+ "pub_time": "2020-01-06 00:30:00",
+ "pub_time_show": "敬请期待",
+ "release_date": "2020-01-06",
+ "release_date_show": "2020年1月6日"
+ },
+ "mode": 2,
+ "section": [{
+ "section_id": 39327,
+ "season_id": 29310,
+ "limit_group": 328,
+ "watch_platform": 15,
+ "copyright": "dujia",
+ "ban_area_show": 1
+ }, {
+ "section_id": 39633,
+ "season_id": 29310,
+ "limit_group": 328,
+ "watch_platform": 15,
+ "type": 1,
+ "copyright": "dujia",
+ "title": "其他",
+ "ban_area_show": 1
+ }, {
+ "section_id": 44101,
+ "season_id": 29310,
+ "limit_group": 316,
+ "watch_platform": 15,
+ "type": 4,
+ "copyright": "ugc",
+ "ban_area_show": 1
+ }],
+ "url": "https://www.bilibili.com/bangumi/play/ss29310",
+ "follow_status": 2,
+ "is_new": 0,
+ "progress": "",
+ "both_follow": true
+ }, {
+ "season_id": 25739,
+ "media_id": 139252,
+ "season_type": 1,
+ "season_type_name": "番剧",
+ "title": "关于我转生变成史莱姆这档事",
+ "cover": "http://i0.hdslb.com/bfs/bangumi/a4c0e0ccc44fe3949a734f546cf5bb07da925bad.png",
+ "total_count": 27,
+ "is_finish": 1,
+ "is_started": 1,
+ "is_play": 1,
+ "badge": "会员专享",
+ "badge_type": 0,
+ "rights": {
+ "allow_review": 1,
+ "is_selection": 1,
+ "selection_style": 1
+ },
+ "stat": {
+ "follow": 5516519,
+ "view": 246739631,
+ "danmaku": 3802465,
+ "reply": 460225,
+ "coin": 1338958,
+ "series_follow": 5516535,
+ "series_view": 246739631
+ },
+ "new_ep": {
+ "id": 316957,
+ "index_show": "全27话",
+ "cover": "http://i0.hdslb.com/bfs/archive/81d07d1a478ce3a6209b557e14df9b9c78c42abb.jpg",
+ "title": "OAD03",
+ "long_title": "外传:利姆鲁的华丽教师生活 其一",
+ "pub_time": "2020-03-27 00:00:03",
+ "duration": 1493000
+ },
+ "rating": {
+ "score": 9.4,
+ "count": 83354
+ },
+ "square_cover": "http://i0.hdslb.com/bfs/bangumi/8d9f5b4a566d0547bc2e3f6f733b732a09c0d3d4.jpg",
+ "season_status": 13,
+ "season_title": "TV",
+ "badge_ep": "会员",
+ "media_attr": 0,
+ "season_attr": 0,
+ "evaluate": "史莱姆生活,开始了。\n上班族的三上悟在道路上被歹徒给刺杀身亡后,回过神来发现自己转生到了异世界。\n不过,自己居然是“史莱姆”!\n他在得到利姆鲁这个名字后开始了自己的史莱姆人生,随着与各个种族相处交流的...",
+ "areas": [{
+ "id": 2,
+ "name": "日本"
+ }],
+ "subtitle": "",
+ "first_ep": 250460,
+ "can_watch": 1,
+ "series": {
+ "series_id": 4188,
+ "title": "关于我转生变成史莱姆这档事",
+ "season_count": 1,
+ "new_season_id": 25739
+ },
+ "publish": {
+ "pub_time": "2018-10-02 00:30:00",
+ "pub_time_show": "2018年10月02日00:30",
+ "release_date": "2018-10-02",
+ "release_date_show": "2018年10月2日"
+ },
+ "mode": 2,
+ "section": [{
+ "section_id": 34988,
+ "season_id": 25739,
+ "limit_group": 328,
+ "watch_platform": 15,
+ "copyright": "bilibili",
+ "ban_area_show": 1
+ }],
+ "url": "https://www.bilibili.com/bangumi/play/ss25739",
+ "follow_status": 2,
+ "is_new": 0,
+ "progress": "",
+ "both_follow": true
+ }],
+ "pn": 1,
+ "ps": 2,
+ "total": 25
+ }
}
```
+
+
+
+
### 查询用户关注的TAG(话题)
-> https://space.bilibili.com/ajax/tags/getSubList
+> http://space.bilibili.com/ajax/tags/getSubList
*请求方式:GET*
@@ -4702,52 +4340,52 @@ curl -G 'https://api.bilibili.com/x/space/bangumi/follow/list' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|-----|-----|---------|-----|-----|
-| mid | num | 目标用户mid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ----------- | ------ | ---- |
+| mid | num | 目标用户mid | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-|--------|----------------------|------------------------|-----------------------|
-| ststus | bool | 返回值 | false:错误
true:正确 |
-| data | 错误时:str
正确时:obj | 错误时:错误信息
正确时:数据本体 | 正确时不返回错误信息 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------ | ---------------------------- | -------------------------------------- | --------------------------- |
+| ststus | bool | 返回值 | false:错误
true:正确 |
+| data | 错误时:str
正确时:obj | 错误时:错误信息
正确时:数据本体 | 正确时不返回错误信息 |
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-|-------|-------|---------|-----|
-| tags | array | 关注TAG列表 | |
-| count | num | 关注TAG的数 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ----- | ----- | ----------- | ---- |
+| tags | array | 关注TAG列表 | |
+| count | num | 关注TAG的数 | |
`data`中的`tags`数组:
-| 项 | 类型 | 内容 | 备注 |
-|-----|-----|------------|------|
-| 0 | obj | 关注TAG1 | |
-| n | obj | 关注TAG(n+1) | |
-| …… | obj | …… | …… |
-| 99 | obj | 关注TAG100 | 最后一项 |
+| 项 | 类型 | 内容 | 备注 |
+| ---- | ---- | -------------- | -------- |
+| 0 | obj | 关注TAG1 | |
+| n | obj | 关注TAG(n+1) | |
+| …… | obj | …… | …… |
+| 99 | obj | 关注TAG100 | 最后一项 |
`data`中的`tags`数组中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-|---------------|-----|---------------------|--------|
-| archive_count | num | 0 | 作用尚不明确 |
-| cover | str | TAG图片url | 无则为空 |
-| name | str | TAG名 | |
-| notify | num | 1 | 作用尚不明确 |
-| tag_id | num | tag_id | |
-| updated_ts | str | 1970-01-01 08:00:00 | 作用尚不明确 |
+| 字段 | 类型 | 内容 | 备注 |
+| ------------- | ---- | ------------------- | ------------ |
+| archive_count | num | 0 | 作用尚不明确 |
+| cover | str | TAG图片url | 无则为空 |
+| name | str | TAG名 | |
+| notify | num | 1 | 作用尚不明确 |
+| tag_id | num | tag_id | |
+| updated_ts | str | 1970-01-01 08:00:00 | 作用尚不明确 |
**示例:**
查询用户`mid=2`的关注TAG
```shell
-curl -G 'https://space.bilibili.com/ajax/tags/getSubList' \
+curl -G 'http://space.bilibili.com/ajax/tags/getSubList' \
--data-urlencode 'mid=2' \
-b 'SESSDATA=xxx'
```
@@ -4757,27 +4395,27 @@ curl -G 'https://space.bilibili.com/ajax/tags/getSubList' \
```json
{
- "status": true,
- "data": {
- "tags": [{
- "name": "豪宅",
- "cover": "",
- "tag_id": 47637,
- "notify": 1,
- "archive_count": 0,
- "updated_ts": "1970-01-01 08:00:00"
- }, {
- "name": "死亡搁浅",
- "cover": "",
- "tag_id": 1737239,
- "notify": 1,
- "archive_count": 0,
- "updated_ts": "1970-01-01 08:00:00"
- },
- …………
- ],
- "count": 58
- }
+ "status": true,
+ "data": {
+ "tags": [{
+ "name": "豪宅",
+ "cover": "",
+ "tag_id": 47637,
+ "notify": 1,
+ "archive_count": 0,
+ "updated_ts": "1970-01-01 08:00:00"
+ }, {
+ "name": "死亡搁浅",
+ "cover": "",
+ "tag_id": 1737239,
+ "notify": 1,
+ "archive_count": 0,
+ "updated_ts": "1970-01-01 08:00:00"
+ },
+ …………
+ ],
+ "count": 58
+ }
}
```
diff --git a/docs/video/action.md b/docs/video/action.md
index 34e729b..b841b95 100644
--- a/docs/video/action.md
+++ b/docs/video/action.md
@@ -1,4 +1,4 @@
-# 视频点赞&投币&收藏&分享
+# 稿件观众操作
## 点赞
@@ -12,24 +12,26 @@
认证方式:仅可Cookie(SESSDATA)
+需验证 Cookie 中`buvid3`字段存在且正常, 否则将导致触发风控
+
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ------ | ---- | ------------------------ | ------------ | ---------------------- |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| like | num | 操作方式 | 必要 | 1:点赞
2:取消赞 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------- | ------------ | ---------------------- |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
+| like | num | 操作方式 | 必要 | 1:点赞
2:取消赞 |
+| csrf | str | CSRF Token(位于 Cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
65004:取消点赞失败
65006:重复点赞 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
-403: 账号异常
10003:不存在该稿件
65004:取消点赞失败
65006:重复点赞 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
**示例:**
@@ -78,22 +80,22 @@ curl 'https://api.bilibili.com/x/web-interface/archive/like' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| aid | num | 稿件avid | 必要 | |
-| like | num | 操作方式 | 必要 | 0:点赞
1:取消赞 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| aid | num | 稿件 avid | 必要 | |
+| like | num | 操作方式 | 必要 | 0:点赞
1:取消赞 |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | --------------------------------------------------------------------------- |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
10003:不存在该稿件 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 数据本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-400:请求错误
-403: 账号异常
10003:不存在该稿件 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 数据本体 | |
`data`对象:
@@ -138,11 +140,11 @@ curl 'https://app.bilibili.com/x/v2/view/like' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ------------ | ------------------ |
-| access_key | str | APP登录Token | APP方式必要 | |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | --------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
**json回复:**
@@ -170,7 +172,7 @@ curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \
bvid方式:
```shell
-curl -G 'api.bilibili.com/x/web-interface/archive/has/like' \
+curl -G 'https://api.bilibili.com/x/web-interface/archive/has/like' \
--data-urlencode 'bvid=BV1Bt411z799' \
-b 'SESSDATA=xxx'
```
@@ -201,11 +203,11 @@ curl -G 'api.bilibili.com/x/web-interface/archive/has/like' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-|------------|-----|-----------|-----|-----------------|
-| access_key | str | APP Token | 必要 | |
-| aid | num | 视频aid | 必要 | |
-| dislike | num | 操作类型 | 必要 | 0:点踩
1:取消点踩 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------ | ----------------------- |
+| access_key | str | APP 登录 Token | 必要 | |
+| aid | num | 视频 aid | 必要 | |
+| dislike | num | 操作类型 | 必要 | 0:点踩
1:取消点踩 |
**json回复:**
@@ -250,26 +252,28 @@ curl -L -X POST 'https://app.biliapi.net/x/v2/view/dislike' \
认证方式:仅可Cookie(SESSDATA)
+需验证 Cookie 中`buvid3`字段存在且正常, 否则将导致触发风控
+
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ----------- | ---- | ------------------------ | ------------ | --------------------------------------- |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| multiply | num | 投币数量 | 必要 | 上限为2 |
-| select_like | num | 是否附加点赞 | 非必要 | 0:不点赞
1:同时点赞
默认为0 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ----------- | ---- | ------------------------- | ------------ | --------------------------------------- |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
+| multiply | num | 投币数量 | 必要 | 上限为2 |
+| select_like | num | 是否附加点赞 | 非必要 | 0:不点赞
1:同时点赞
默认为0 |
+| csrf | str | CSRF Token(位于 Cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-104:硬币不足
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
34002:不能给自己投币
34003:非法的投币数量
34004:投币间隔太短
34005:超过投币上限 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- | ------------------------------------------------------------ |
+| code | num | 返回值 | 0:成功
-101:账号未登录
-102:账号被封停
-104:硬币不足
-111:csrf校验失败
-400:请求错误
-403: 账号异常
10003:不存在该稿件
34002:不能给自己投币
34003:非法的投币数量
34004:投币间隔太短
34005:超过投币上限 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
data 对象:
@@ -329,12 +333,12 @@ curl 'https://api.bilibili.com/x/web-interface/coin/add' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ----------- | ---- | ------------ | ----------- | --------------------------------------- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| aid | num | 稿件avid | 必要 | |
-| multiply | num | 投币数量 | 必要 | 上限为2 |
-| select_like | num | 附加点赞 | 非必要 | 0:不点赞
1:同时点赞
默认为0 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ----------- | ---- | -------------- | ------------ | --------------------------------------- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| aid | num | 稿件 avid | 必要 | |
+| multiply | num | 投币数量 | 必要 | 上限为2 |
+| select_like | num | 附加点赞 | 非必要 | 0:不点赞
1:同时点赞
默认为0 |
**json回复:**
@@ -389,11 +393,11 @@ curl 'https://app.bilibili.com/x/v2/view/coin/add' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ------------ | ------------------ |
-| access_key | str | APP登录Token | APP方式必要 | |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | --------------------- |
+| access_key | str | APP 登录 Token | APP方式必要 | |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
**json回复:**
@@ -419,7 +423,7 @@ curl 'https://app.bilibili.com/x/v2/view/coin/add' \
avid方式:
```shell
-curl -G 'api.bilibili.com/x/web-interface/archive/coins' \
+curl -G 'https://api.bilibili.com/x/web-interface/archive/coins' \
--data-urlencode 'aid=37896701' \
-b 'SESSDATA=xxx'
```
@@ -427,7 +431,7 @@ curl -G 'api.bilibili.com/x/web-interface/archive/coins' \
bvid方式:
```shell
-curl -G 'api.bilibili.com/x/web-interface/archive/coins' \
+curl -G 'https://api.bilibili.com/x/web-interface/archive/coins' \
--data-urlencode 'bvid=BV18t411q7zz' \
-b 'SESSDATA=xxx'
```
@@ -468,12 +472,12 @@ curl -G 'api.bilibili.com/x/web-interface/archive/coins' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------- | ---- | ------------------------ | -------------- | ------------------------------ |
-| access_key | str | APP登录Token | APP方式必要 | |
-| rid | num | 稿件avid | 必要 | |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| rid | num | 稿件 avid | 必要 | |
| type | num | 必须为2 | 必要 | |
-| add_media_ids | nums | 需要加入的收藏夹mlid | 非必要 | 同时添加多个,用`,`(%2C)分隔 |
-| del_media_ids | nums | 需要取消的收藏夹mlid | 非必要 | 同时取消多个,用`,`(%2C)分隔 |
-| csrf | str | CSRF Token(位于cookie) | Cookie方式必要 | |
+| add_media_ids | nums | 需要加入的收藏夹 mlid | 非必要 | 同时添加多个,用`,`(%2C)分隔 |
+| del_media_ids | nums | 需要取消的收藏夹 mlid | 非必要 | 同时取消多个,用`,`(%2C)分隔 |
+| csrf | str | CSRF Token(位于 Cookie) | Cookie 方式必要 | |
**json回复:**
@@ -544,10 +548,10 @@ curl 'https://api.bilibili.com/medialist/gateway/coll/resource/deal' \
**url参数:**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | -------- | ------------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| aid | num或str | 稿件avid或稿件bvid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---------- | --------------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| aid | num 或 str | 稿件 avid 或稿件 bvid | 必要 | |
**json回复:**
@@ -618,24 +622,26 @@ curl -G 'https://api.bilibili.com/x/v2/fav/video/favoured' \
同时点赞投币收藏视频,收藏于默认收藏夹中
+需验证 Cookie 中`buvid3`字段存在且正常, 否则将导致触发风控
+
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ------ | ---- | ------------------------ | ------------ | ------------------ |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------- | ------------ | --------------------- |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid 任选一个 |
+| csrf | str | CSRF Token(位于 Cookie) | 必要 | |
**json回复:**
根对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ------- | ---- | -------- | -------------------------------------------------------------------------------------------------- |
-| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件 |
-| message | str | 错误信息 | 默认为0 |
-| ttl | num | 1 | |
-| data | obj | 信息本体 | |
+| 字段 | 类型 | 内容 | 备注 |
+| ------- | ---- | -------- |------------------------------------------------------------------------------------------|
+| code | num | 返回值 | 0:成功
-101:账号未登录
-111:csrf校验失败
-400:请求错误
10003:不存在该稿件
-403: 账号异常 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 信息本体 | |
`data`对象:
@@ -699,10 +705,10 @@ curl 'https://api.bilibili.com/x/web-interface/archive/like/triple' \
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ---------- | ---- | ------------ | ----------- | ---- |
-| access_key | str | APP登录Token | APP方式必要 | |
-| aid | num | 稿件avid | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ---------- | ---- | -------------- | ------------ | ---- |
+| access_key | str | APP 登录 Token | APP 方式必要 | |
+| aid | num | 稿件 avid | 必要 | |
**json回复:**
@@ -761,15 +767,13 @@ curl 'https://app.bilibili.com/x/v2/view/like/triple' \
*请求方式:POST*
-认证方式 csrf token
-
**正文参数( application/x-www-form-urlencoded ):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ------ | ---- | ------------------------ | ------------ | ------------------ |
-| aid | num | 稿件avid | 必要(可选) | avid与bvid任选一个 |
-| bvid | str | 稿件bvid | 必要(可选) | avid与bvid任选一个 |
-| csrf | str | CSRF Token(位于cookie) | 必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+| ------ | ---- | ------------------------- | ------------ | --------------------- |
+| aid | num | 稿件 avid | 必要(可选) | avid 与 bvid 任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid 与 bvid任 选一个 |
+| csrf | str | CSRF Token(位于 Cookie) | 必要 | |
**json回复:**
diff --git a/docs/video/appeal.md b/docs/video/appeal.md
index 9dd7d8f..69d6a0f 100644
--- a/docs/video/appeal.md
+++ b/docs/video/appeal.md
@@ -17,7 +17,7 @@
| code | num | | 成功为0 |
| message | str | | 成功为0 |
| ttl | num | 1 | |
-| data | List\
+
+
+## 获取首页视频推荐列表(web端)
+
+> https://api.bilibili.com/x/web-interface/index/top/rcmd
+
+*请求方式:GET*
+
+认证方式:Cookie(SESSDATA)
+
+最多获取14条推荐视频
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|--------------|-----|---------------------------|-----|------------------------------|
+| fresh_type | num | 相关性 | 非必要 | 默认为3
值越大推荐内容越相关 |
+| version | num | web端新旧版本:0为旧版本1为新版本 | 非必要 | 默认为0
1,0分别为新旧web端 |
+| ps | num | pagesize 单页返回的记录条数默认为10或8 | 非必要 | 默认为10
当version为1时默认为8 |
+| fresh_idx | num | 翻页相关 | 非必要 | 默认为1
与翻页相关 |
+| fresh_idx_1h | num | 翻页相关 | 非必要 | 默认为1
与翻页相关 |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-------|------|----------------------|
+| code | num | 返回值 | 0:成功
-400:请求错误 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | array | 推荐列表 | |
+| userfeature | str | 用户功能 | |
+| abtest | obj | 用户分组 | |
+
+`data`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+|-----| ---- |-----------| ---- |
+| 0 | obj | 推荐视频1 | |
+| n | obj | 推荐视频(n+1) | |
+| …… | obj | …… | …… |
+| 13 | obj | 推荐视频13 | |
+
+`data`数组中的对象:
+
+基本同「[获取视频详细信息(web端)](info.md#获取视频详细信息(web端))」中的data对象
+
+`abtest`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------|-----|------|-----|
+| group | str | 用户分组 | |
+
+**示例:**
+
+获取新版web端首页推荐视频列表
+
+```shell
+curl -G 'https://api.bilibili.com/x/web-interface/index/top/rcmd' \
+--data-urlencode 'fresh_type=3' \
+--data-urlencode 'version=1' \
+--data-urlencode 'ps=10' \
+--data-urlencode 'fresh_idx=1' \
+--data-urlencode 'fresh_idx_1h=1'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "item": [
+ {
+ "id": 511495739,
+ "bvid": "BV1Cu411z7mG",
+ "cid": 717978243,
+ "goto": "av",
+ "uri": "http://www.bilibili.com/video/BV1Cu411z7mG",
+ "pic": "http://i2.hdslb.com/bfs/archive/e05f487bc9f26baa568f10fe69a0e1ea5e0fbc23.jpg",
+ "title": "请大家助力我的梦想!为凑够10万赞,在街头唱《Be Crazy For Me》!",
+ "duration": 199,
+ "pubdate": 1652605500,
+ "owner": {
+ "mid": 1723817,
+ "name": "樱萍Apple",
+ "face": "http://i2.hdslb.com/bfs/face/6e0fa1bdbbf7e0dd929d968df3b57ca99d187e25.jpg"
+ },
+ "stat": {
+ "view": 263169,
+ "like": 39871,
+ "danmaku": 543
+ },
+ "avfeature": "{\"ctr\":0.192554,\"wdur\":2.323159,\"duration\":213.318313,\"wdlks\":0.685926,\"multi_score_0\":0.452564,\"multi_score_1\":0.112414,\"multi_score_2\":0.03976,\"rankscore\":13.906487,\"av_play\":258890,\"av_like\":39224,\"av_coin\":7165,\"reason_type\":3,\"av_feature\":\"|real_matchtype -1 |s_e online_av2av_v2 |source_len 1 |m_k_w 0 \"}",
+ "isfollowed": 0,
+ "rcmdreason": {
+ "content": "3万点赞",
+ "reasontype": 3
+ },
+ "showinfo": 1,
+ "trackid": "web_pegasus_0.shylf-ai-recsys-1355.165525355529.398"
+ }
+ ......
+ ],
+ "userfeature": "{\"enter_rank\":1500,\"is_fallback\":0,\"s_fresh_idx\":41,\"s_fresh_idx_session\":31,\"s_session_idx\":1,\"fresh_idx\":1,\"fresh_idx_1h\":1}",
+ "abtest": {
+ "group": "b"
+ }
+ }
+}
+```
+
+
+
+
+## 获取短视频模式视频列表
+
+> https://app.bilibili.com/x/v2/feed/index
+
+*请求方式:GET*
+
+认证方式:Cookie(SESSDATA)
+
+**url参数:**
+
+有大量不明意义的参数 备注仅供参考
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|--------------|-----|---------------------------|-----|------------------------------|
+| fnval | num | 视频流格式标识 | 非必要 | 默认为272 |
+| fnver | num | 视频流版本标识 | 非必要 | 恒为1 |
+| force_host | num | 源url类型 | 非必要 | 0:无限制 1:使用http 2:使用https |
+| fourk | num | 是否允许 4K 视频 | 非必要 | 画质最高 1080P:0(默认)
画质最高 4K:1 |
+| guidance | num | 0 | 非必要 | |
+| https_url_req | num | 0 | 非必要 | |
+| inline_danmu | num | 2 | 非必要 | |
+| inline_sound | num | 1 | 非必要 | |
+| interest_id | num | 0 | 非必要 | |
+| login_event | num | 登录状态 | 非必要 | 0为登录 1为未登录 |
+| mobi_app | num | android | 非必要 | 设备类型 |
+| network | num | wifi | 非必要 | 网络类型 |
+| open_event | num | | 非必要 | |
+| platform | num | android | 非必要 | 设备类型 |
+| pull | boll | false | 非必要 | |
+| qn | num | 32 | 非必要 | 似乎是画质 |
+| recsys_mode | num | 0 | 非必要 | |
+| s_locale | str | zh_CN | 非必要 | 语言 |
+| video_mode | num | 1 | 非必要 | |
+| voice_balance | num | 音量均衡? | 非必要 | 默认为1 |
+
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-------|------|----------------------|
+| code | num | 返回值 | 0:成功 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | | |
+
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-------|------|----------------------|
+| config | obj | 一些界面相关的内容 | 此处省略 |
+| items | array | 视频列表 | |
+
+`data`中的`items`数组的对象:
+
+以下为视频类型
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-------|------|----------------------|
+| can_play | num | 1 | 字面意思 |
+| card_goto | str | av | |
+| card_type | str | 卡片类型 | 视频为small_cover_v2 |
+| cover | str | 封面url | |
+| cover_left_1_content_description | str | 播放量 | 8.9万观看 |
+| cover_left_2_content_description | str | 弹幕数 | 250弹幕 |
+| cover_left_text_1 | str | 播放量 | 8.9万 |
+| cover_left_text_2 | str | 弹幕数 | 250 |
+| cover_right_content_description | str | 视频长度 | 1分钟20秒 |
+| cover_right_text | str | 视频长度 | 1:20 |
+| desc_button | obj | up主信息 | |
+| param | str | 视频aid | |
+| player_args | obj | 视频信息 | |
+| talk_back | str | | |
+| title | str | 标题 | |
+| uri | str | 跳转链接 | |
+
+`desc_button`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-------|------|----------------------|
+| event | str | | |
+| text | str | up名称 | |
+| type | num | 1 | |
+| uri | str | 跳转链接 | |
+
+
+`player_args`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-------|------|----------------------|
+| aid | num | 视频aid | |
+| cid | num | 视频cid | |
+| duration | num | 视频长度 | 秒数 |
+| type | str | | |
+
+
+**示例:**
+
+获取短视频模式视频列表
+
+```shell
+curl -G 'https://app.bilibili.com/x/v2/feed/index'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "items": [
+ {
+ "card_type": "small_cover_v2",
+ "card_goto": "av",
+ "goto": "av",
+ "param": "411978753",
+ "cover": "http://i2.hdslb.com/bfs/archive/a1bda1e57e6812ca8822a8839fc4a1d3539255a8.jpg",
+ "title": "帕 鲁 现 状",
+ "uri": "bilibili://video/411978753?cid=1423365216\u0026player_height=1920\u0026player_preload=%7B%22cid%22%3A1423365216%2C%22expire_time%22%3A1706633200%2C%22file_info%22%3A%7B%2216%22%3A%5B%7B%22timelength%22%3A79970%2C%22filesize%22%3A3782665%7D%5D%2C%2264%22%3A%5B%7B%22timelength%22%3A79900%2C%22filesize%22%3A9552030%7D%5D%7D%2C%22support_quality%22%3Anull%2C%22support_formats%22%3Anull%2C%22support_description%22%3Anull%2C%22quality%22%3A16%2C%22url%22%3A%22http%3A%2F%2Fcn-gdst-cm-01-12.bilivideo.com%2Fupgcxcode%2F16%2F52%2F1423365216%2F1423365216-1-16.mp4%3Fe%3Dig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_%5Cu0026uipk%3D5%5Cu0026nbs%3D1%5Cu0026deadline%3D1706636800%5Cu0026gen%3Dplayurlv2%5Cu0026os%3Dbcache%5Cu0026oi%3D0%5Cu0026trid%3D00000ccc07d4b7a34140a25493d51003bd95U%5Cu0026mid%3D0%5Cu0026platform%3D%5Cu0026upsig%3D2bf8e99202a181300981ab6ba9d2305d%5Cu0026uparams%3De%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%5Cu0026cdnid%3D6876%5Cu0026bvc%3Dvod%5Cu0026nettype%3D0%5Cu0026orderid%3D0%2C3%5Cu0026buvid%3D%5Cu0026build%3D0%5Cu0026f%3DU_0_0%5Cu0026bw%3D47881%5Cu0026logo%3D80000000%22%2C%22video_codecid%22%3A7%2C%22video_project%22%3Atrue%2C%22fnver%22%3A0%2C%22fnval%22%3A0%7D\u0026player_rotate=0\u0026player_width=1080\u0026report_flow_data=%7B%22flow_card_type%22%3A%22av%22%7D",
+ "three_point": {
+ "dislike_reasons": [
+ {
+ "id": 4,
+ "name": "UP主:锤子game",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 2,
+ "name": "分区:网络游戏",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 3,
+ "name": "频道:搞笑",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 12,
+ "name": "此类内容过多",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 13,
+ "name": "推荐过",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 1,
+ "name": "不感兴趣",
+ "toast": "将减少相似内容推荐"
+ }
+ ],
+ "feedbacks": [
+ {
+ "id": 1,
+ "name": "恐怖血腥",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 2,
+ "name": "色情低俗",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 3,
+ "name": "封面恶心",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 4,
+ "name": "标题党/封面党",
+ "toast": "将优化首页此类内容"
+ }
+ ],
+ "watch_later": 1
+ },
+ "args": {
+ "up_id": 495695169,
+ "up_name": "锤子game",
+ "rid": 65,
+ "rname": "网络游戏",
+ "tid": 1833,
+ "tname": "搞笑",
+ "aid": 411978753
+ },
+ "player_args": {
+ "aid": 411978753,
+ "cid": 1423365216,
+ "type": "av",
+ "duration": 80
+ },
+ "idx": 1706629610,
+ "three_point_v2": [
+ {
+ "title": "添加至稍后再看",
+ "type": "watch_later",
+ "icon": "https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/NyPAqcn0QF.png"
+ },
+ {
+ "title": "反馈",
+ "subtitle": "(选择后将优化首页此类内容)",
+ "reasons": [
+ {
+ "id": 1,
+ "name": "恐怖血腥",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 2,
+ "name": "色情低俗",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 3,
+ "name": "封面恶心",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 4,
+ "name": "标题党/封面党",
+ "toast": "将优化首页此类内容"
+ }
+ ],
+ "type": "feedback"
+ },
+ {
+ "title": "不感兴趣",
+ "subtitle": "(选择后将减少相似内容推荐)",
+ "reasons": [
+ {
+ "id": 4,
+ "name": "UP主:锤子game",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 2,
+ "name": "分区:网络游戏",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 3,
+ "name": "频道:搞笑",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 12,
+ "name": "此类内容过多",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 13,
+ "name": "推荐过",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 1,
+ "name": "不感兴趣",
+ "toast": "将减少相似内容推荐"
+ }
+ ],
+ "type": "dislike"
+ }
+ ],
+ "talk_back": "视频,帕 鲁 现 状,32.5万观看,257弹幕,时长1分钟20秒,UP主锤子game,",
+ "report_flow_data": "{\"flow_card_type\":\"av\"}",
+ "cover_left_text_1": "32.5万",
+ "cover_left_icon_1": 1,
+ "cover_left_1_content_description": "32.5万观看",
+ "cover_left_text_2": "257",
+ "cover_left_icon_2": 3,
+ "cover_left_2_content_description": "257弹幕",
+ "cover_right_text": "1:20",
+ "cover_right_content_description": "1分钟20秒",
+ "desc_button": {
+ "text": "锤子game",
+ "uri": "bilibili://space/495695169",
+ "event": "nickname",
+ "type": 1
+ },
+ "official_icon": 16,
+ "can_play": 1,
+ "goto_icon": {
+ "icon_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/077GOeHOfO.png",
+ "icon_night_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/ldbCXtkoK2.png",
+ "icon_width": 16,
+ "icon_height": 16
+ }
+ },
+ {
+ "card_type": "small_cover_v2",
+ "card_goto": "av",
+ "goto": "av",
+ "param": "836990443",
+ "cover": "http://i1.hdslb.com/bfs/archive/d16a125d6ec1c68cc9e0815bc28dcb62a1df9932.jpg",
+ "title": "【Phigros自制/崩坏:星穹铁道】欢迎来到匹诺康尼! 不眠之夜 IN Lv.13",
+ "uri": "bilibili://video/836990443?cid=1422516399\u0026player_height=1080\u0026player_preload=%7B%22cid%22%3A1422516399%2C%22expire_time%22%3A1706633200%2C%22file_info%22%3A%7B%2216%22%3A%5B%7B%22timelength%22%3A102818%2C%22filesize%22%3A4441802%7D%5D%2C%2264%22%3A%5B%7B%22timelength%22%3A102748%2C%22filesize%22%3A12468618%7D%5D%7D%2C%22support_quality%22%3Anull%2C%22support_formats%22%3Anull%2C%22support_description%22%3Anull%2C%22quality%22%3A16%2C%22url%22%3A%22http%3A%2F%2Fupos-sz-mirrorali.bilivideo.com%2Fupgcxcode%2F99%2F63%2F1422516399%2F1422516399-1-16.mp4%3Fe%3Dig8euxZM2rNcNbRVhwdVhwdlhWdVhwdVhoNvNC8BqJIzNbfqXBvEuENvNC8aNEVEtEvE9IMvXBvE2ENvNCImNEVEIj0Y2J_aug859r1qXg8gNEVE5XREto8z5JZC2X2gkX5L5F1eTX1jkXlsTXHeux_f2o859IB_%5Cu0026uipk%3D5%5Cu0026nbs%3D1%5Cu0026deadline%3D1706636800%5Cu0026gen%3Dplayurlv2%5Cu0026os%3Dalibv%5Cu0026oi%3D0%5Cu0026trid%3D0ccc07d4b7a34140a25493d51003bd95U%5Cu0026mid%3D0%5Cu0026platform%3D%5Cu0026upsig%3D06ea793aa573018646c0096adf0dcb9e%5Cu0026uparams%3De%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%5Cu0026bvc%3Dvod%5Cu0026nettype%3D0%5Cu0026orderid%3D0%2C3%5Cu0026buvid%3D%5Cu0026build%3D0%5Cu0026f%3DU_0_0%5Cu0026bw%3D43547%5Cu0026logo%3D80000000%22%2C%22video_codecid%22%3A7%2C%22video_project%22%3Atrue%2C%22fnver%22%3A0%2C%22fnval%22%3A0%7D\u0026player_rotate=0\u0026player_width=1920\u0026report_flow_data=%7B%22flow_card_type%22%3A%22av%22%7D",
+ "three_point": {
+ "dislike_reasons": [
+ {
+ "id": 4,
+ "name": "UP主:早期陈总",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 2,
+ "name": "分区:音游",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 3,
+ "name": "频道:音乐游戏",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 12,
+ "name": "此类内容过多",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 13,
+ "name": "推荐过",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 1,
+ "name": "不感兴趣",
+ "toast": "将减少相似内容推荐"
+ }
+ ],
+ "feedbacks": [
+ {
+ "id": 1,
+ "name": "恐怖血腥",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 2,
+ "name": "色情低俗",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 3,
+ "name": "封面恶心",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 4,
+ "name": "标题党/封面党",
+ "toast": "将优化首页此类内容"
+ }
+ ],
+ "watch_later": 1
+ },
+ "args": {
+ "up_id": 1515475415,
+ "up_name": "早期陈总",
+ "rid": 136,
+ "rname": "音游",
+ "tid": 10174,
+ "tname": "音乐游戏",
+ "aid": 836990443
+ },
+ "player_args": {
+ "aid": 836990443,
+ "cid": 1422516399,
+ "type": "av",
+ "duration": 103
+ },
+ "idx": 1706629609,
+ "three_point_v2": [
+ {
+ "title": "添加至稍后再看",
+ "type": "watch_later",
+ "icon": "https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/NyPAqcn0QF.png"
+ },
+ {
+ "title": "反馈",
+ "subtitle": "(选择后将优化首页此类内容)",
+ "reasons": [
+ {
+ "id": 1,
+ "name": "恐怖血腥",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 2,
+ "name": "色情低俗",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 3,
+ "name": "封面恶心",
+ "toast": "将优化首页此类内容"
+ },
+ {
+ "id": 4,
+ "name": "标题党/封面党",
+ "toast": "将优化首页此类内容"
+ }
+ ],
+ "type": "feedback"
+ },
+ {
+ "title": "不感兴趣",
+ "subtitle": "(选择后将减少相似内容推荐)",
+ "reasons": [
+ {
+ "id": 4,
+ "name": "UP主:早期陈总",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 2,
+ "name": "分区:音游",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 3,
+ "name": "频道:音乐游戏",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 12,
+ "name": "此类内容过多",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 13,
+ "name": "推荐过",
+ "toast": "将减少相似内容推荐"
+ },
+ {
+ "id": 1,
+ "name": "不感兴趣",
+ "toast": "将减少相似内容推荐"
+ }
+ ],
+ "type": "dislike"
+ }
+ ],
+ "talk_back": "视频,【Phigros自制/崩坏:星穹铁道】欢迎来到匹诺康尼! 不眠之夜 IN Lv.13,22.8万观看,797弹幕,时长1分钟43秒,UP主早期陈总,",
+ "report_flow_data": "{\"flow_card_type\":\"av\"}",
+ "cover_left_text_1": "22.8万",
+ "cover_left_icon_1": 1,
+ "cover_left_1_content_description": "22.8万观看",
+ "cover_left_text_2": "797",
+ "cover_left_icon_2": 3,
+ "cover_left_2_content_description": "797弹幕",
+ "cover_right_text": "1:43",
+ "cover_right_content_description": "1分钟43秒",
+ "desc_button": {
+ "text": "早期陈总",
+ "uri": "bilibili://space/1515475415",
+ "event": "nickname",
+ "type": 1
+ },
+ "can_play": 1,
+ "goto_icon": {
+ "icon_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/077GOeHOfO.png",
+ "icon_night_url": "https://i0.hdslb.com/bfs/activity-plat/static/20230227/0977767b2e79d8ad0a36a731068a83d7/ldbCXtkoK2.png",
+ "icon_width": 16,
+ "icon_height": 16
+ }
+ }
+ ],
+ "config": {
+ "column": 2,
+ "autoplay_card": 2,
+ "feed_clean_abtest": 0,
+ "home_transfer_test": 0,
+ "auto_refresh_time": 1200,
+ "show_inline_danmaku": 1,
+ "toast": {},
+ "is_back_to_homepage": true,
+ "enable_rcmd_guide": true,
+ "inline_sound": 2,
+ "auto_refresh_time_by_appear": 1200,
+ "auto_refresh_time_by_active": 1200,
+ "visible_area": 80,
+ "card_density_exp": 1,
+ "story_mode_v2_guide_exp": 6
+ },
+ "interest_choose": null
+ }
+}
+```
+
+
diff --git a/docs/video/report.md b/docs/video/report.md
index 1853c55..395a007 100644
--- a/docs/video/report.md
+++ b/docs/video/report.md
@@ -116,7 +116,7 @@ curl 'https://api.bilibili.com/x/v2/history/report' \
上报一次视频`av2`/`BV1xx411c7mD`的心跳数据
```shell
-curl 'api.bilibili.com/x/click-interface/web/heartbeat' \
+curl 'https://api.bilibili.com/x/click-interface/web/heartbeat' \
--data-urlencode 'aid=2' \
--data-urlencode 'bvid=BV1xx411c7mD' \
--data-urlencode 'cid=62131' \
diff --git a/docs/video/summary.md b/docs/video/summary.md
new file mode 100644
index 0000000..b75e6e3
--- /dev/null
+++ b/docs/video/summary.md
@@ -0,0 +1,225 @@
+# 视频AI总结
+
+
+
+## 获取AI总结内容
+
+> https://api.bilibili.com/x/web-interface/view/conclusion/get
+
+*请求方式: GET*
+
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|--------|-----|--------|-----|----------------------------------|
+| aid | num | 稿件 avid | 必要(可选) | avid与bvid任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid与bvid任选一个 |
+| cid | num | 视频 cid | 必要 | |
+| up_mid | num | UP主 mid | 必要 | |
+| w_rid | str | Wbi 签名 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
+| wts | num | 当前时间戳 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|---------|-----|------|--------------------------|
+| code | num | 返回值 | 0: 成功
-400:请求错误
-403: 访问权限不足 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+| data | obj | 数据本体 | |
+
+`data`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|--------------|-----|------|----------------------|
+| code | num | 返回值 | -1: 不支持AI摘要(敏感内容等)或其他因素导致请求异常
0: 有摘要
1:无摘要(未识别到语音) |
+| model_result | obj | 摘要内容 | |
+| stid | str | 摘要 id | 如`code=1`且该字段为`0`时,则未进行 AI 总结,即添加总结队列
如`code=1`且该字段为空时未识别到语音 |
+| status | num | (?) | |
+| like_num | num | 点赞数 | 默认为`0` |
+| dislike_num | num | 点踩数 | 默认为`0` |
+
+`data`中的`model_result`对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-------------|-----|----------|------------------------------------------|
+| result_type | num | 数据类型 | 0: 没有摘要
1:仅存着摘要总结
2:存着摘要以及提纲 |
+| summary | str | 视频摘要 | 通常为一段概括整个视频内容的文本 |
+| outline | 有数据时:array
无数据时:null | 分段提纲 | 通常为视频中叙述的各部分及其要点 |
+
+`model_result`对象中的`outline`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+|-----|-----|---------|-----|
+| 0 | obj | 总结分段1 | |
+| n | obj | 总结分段(n+1) | |
+| …… | obj | …… | …… |
+
+`outline`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|--------------|-----|------|----|
+| title | str | 分段标题 | 段落内容的概括 |
+| part_outline | array | 分段要点 | 当前分段中多个提到的细节 |
+| timestamp | num | 分段起始时间 | 单位为秒 |
+
+`outline`数组中的对象中的`part_outline`数组:
+
+| 项 | 类型 | 内容 | 备注 |
+|-----|-----|---------|-----|
+| 0 | obj | 分段要点1 | |
+| n | obj | 分段要点(n+1) | |
+| …… | obj | …… | …… |
+
+`part_outline`数组中的对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|-----------|-----|-------|----|
+| timestamp | num | 要点起始时间 | 单位为秒 |
+| content | str | 小结内容 | 其中一个分段的要点 |
+
+**示例:**
+
+得到视频`BV1L94y1H7CV`(`cid=1335073288`)的摘要
+
+```bash
+curl -G 'https://api.bilibili.com/x/web-interface/view/conclusion/get' \
+ --data-urlencode 'bvid=BV1L94y1H7CV' \
+ --data-urlencode 'cid=1335073288' \
+ --data-urlencode 'up_mid=297242063' \
+ --data-urlencode 'wts=1701546363' \
+ --data-urlencode 'w_rid=1073871926b3ccd99bd790f0162af634'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1,
+ "data": {
+ "code": 0,
+ "model_result": {
+ "result_type": 2,
+ "summary": "在网上阅读时遇到错别字和语言梗的烦恼,以及正确使用语言的重要性。作者认为,我们每个人都应该有包容心,不掉渣,不纠正别人的错误,同时也需要明辨是非,规范使用语言。视频还提到了一些常见的语言梗和错误用法,呼吁大家不要过分使用网络词汇,而应该注重语言的艺术性和深度。最后,作者欢迎大家关注他的微信公众号。",
+ "outline": [
+ {
+ "title": "现代人使用中文时面临的困境,包括错别字、用法不正确等问题,并呼吁大家规范使用中文。",
+ "part_outline": [
+ {
+ "timestamp": 1,
+ "content": "网友评论有错别字,勉强能看懂,但难受。"
+ },
+ {
+ "timestamp": 39,
+ "content": "重来一次,明辨是非。"
+ },
+ {
+ "timestamp": 167,
+ "content": "粉墨登场是贬义词,形容坏人打扮好老登场。"
+ }
+ ],
+ "timestamp": 1
+ },
+ {
+ "title": "网络词汇的过度使用导致语言生硬,以及对流行语言梗的短暂使用感到厌倦。",
+ "part_outline": [
+ {
+ "timestamp": 241,
+ "content": "网络词汇过分使用会误导别人,使规范词汇生硬"
+ },
+ {
+ "timestamp": 270,
+ "content": "以前的语言梗有深度,现在的流行梗很短命"
+ },
+ {
+ "timestamp": 338,
+ "content": "巨星之间需要化学反应的过程,前几场发挥欠佳"
+ }
+ ],
+ "timestamp": 241
+ }
+ ]
+ },
+ "stid": "5117037934391059183",
+ "status": 0,
+ "like_num": 6,
+ "dislike_num": 2
+ }
+}
+```
+
+
+
+## 点赞&点踩摘要
+
+> https://api.bilibili.com/x/web-interface/view/conclusion/set
+
+*请求方式:POST*
+
+认证方式:Cookie(SESSDATA)
+
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
+**url参数:**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|-------|-----|--------|-----|----------------------------------|
+| w_rid | str | Wbi 签名 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
+| wts | num | 当前时间戳 | 必要 | 详见 [Wbi 签名](../misc/sign/wbi.md) |
+
+**正文参数( application/x-www-form-urlencoded ):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|------------|-----|----------------------|-----|-----------------------------|
+| aid | num | 稿件 avid | 必要(可选) | avid与bvid任选一个 |
+| bvid | str | 稿件 bvid | 必要(可选) | avid与bvid任选一个 |
+| cid | num | 稿件 cid | 必要 | |
+| up_mid | num | UP主 mid | 非必要 | |
+| stid | num | 摘要 id | 必要 | |
+| like_state | num | 执行操作 | 必要 | 1: 点赞
2: 取消点赞
3: 点踩
4: 取消点踩 |
+| csrf | str | CSRF Token(位于cookie) | 必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|---------|-----|------|------------------------------------------|
+| code | num | 返回值 | 0: 成功
-400: 请求错误
65002:origin id 错误
65004:取消赞失败 未点赞过
65005:取消踩失败 未点踩过
65006: 已赞过
65007:已踩过 |
+| message | str | 错误信息 | 默认为0 |
+| ttl | num | 1 | |
+
+**示例:**
+
+为视频`BV1L94y1H7CV`(`cid=1335073288`)的摘要点赞
+
+```shell
+curl 'https://api.bilibili.com/x/web-interface/view/conclusion/set?w_rid=edb471fc926646ef3889a80488166b66&wts=1700358953' \
+ --data-urlencode 'bvid=BV1L94y1H7CV' \
+ --data-urlencode 'cid=1335073288' \
+ --data-urlencode 'up_mid=297242063' \
+ --data-urlencode 'stid=5117037934391059183' \
+ --data-urlencode '&like_state=1' \
+ --data-urlencode 'csrf=xxx' \
+ -b 'SESSDATA=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 0,
+ "message": "0",
+ "ttl": 1
+}
+```
+
+
diff --git a/docs/video/video_zone.md b/docs/video/video_zone.md
index 4e31ad6..27a1348 100644
--- a/docs/video/video_zone.md
+++ b/docs/video/video_zone.md
@@ -175,6 +175,7 @@
| 手工 | handmake | 161 | 手工制品的制作过程或成品展示、教程、测评类视频 | [/v/life/handmake](https://www.bilibili.com/v/life/handmake) |
| 绘画 | painting | 162 | 绘画过程或绘画教程,以及绘画相关的所有视频 | [/v/life/painting](https://www.bilibili.com/v/life/painting) |
| 日常 | daily | 21 | 记录日常生活,分享生活故事 | [/v/life/daily](https://www.bilibili.com/v/life/daily) |
+| 亲子 |parenting | 254 | 分享亲子、萌娃、母婴、育儿相关的视频 | [/v/life/parenting](https://www.bilibili.com/v/life/parenting)|
| ~~美食圈~~(重定向) | ~~food~~ | ~~76~~ | ~~美食鉴赏&料理制作教程~~ | ~~/v/life/food~~ |
| ~~动物圈~~(重定向) | ~~animal~~ | ~~75~~ | ~~萌萌的动物都在这里哦~~ | ~~/v/life/animal~~ |
| ~~运动~~(重定向) | ~~sports~~ | ~~163~~ | ~~运动相关的记录、教程、装备评测和精彩瞬间剪辑视频~~ | ~~/v/life/sports~~ |
diff --git a/docs/video/videostream_url.md b/docs/video/videostream_url.md
index 7dd7a95..0719ed0 100644
--- a/docs/video/videostream_url.md
+++ b/docs/video/videostream_url.md
@@ -69,12 +69,16 @@
## 获取视频流地址_web端
-> https://api.bilibili.com/x/player/playurl
+> https://api.bilibili.com/x/player/wbi/playurl
+
+> ~~https://api.bilibili.com/x/player/playurl~~ (旧链接)
*请求方式:GET*
认证方式:Cookie(SESSDATA)
+鉴权方式:[Wbi 签名](../misc/sign/wbi.md)
+
---
关于视频流会员鉴权:
@@ -109,7 +113,8 @@
| session | str | | 非必要 | 从视频播放页的 HTML 中获取 |
| otype | str | | 非必要 | 固定为`json` |
| type | str | | 非必要 | 目前为空 |
-| platform | str | | 非必要 | pc:web播放(默认值,视频流存在 referer鉴权)
html5:移动端 HTML5 播放(仅支持 MP4 格式,清晰度最高 360P,无 referer 鉴权可以直接使用`video`标签播放) |
+| platform | str | | 非必要 | pc:web播放(默认值,视频流存在 referer鉴权)
html5:移动端 HTML5 播放(仅支持 MP4 格式,无 referer 鉴权可以直接使用`video`标签播放) |
+| high_quality | num | 是否高画质 | 非必要 | platform=html5时,此值为1可使画质为1080p |
**json回复:**
@@ -452,9 +457,9 @@ curl -G 'https://api.bilibili.com/x/player/playurl' \
| minBufferTime | num | 1.5? | |
| min_buffer_time | num | 1.5? | |
| video | array | 视频流信息 | |
-| audio | array | 伴音流信息 | |
+| audio | array | 伴音流信息 | 当视频没有音轨时,此项为 null |
| dolby | obj | 杜比全景声伴音信息 | |
-| flac | obj | 无损音轨伴音信息 | |
+| flac | obj | 无损音轨伴音信息 | 当视频没有无损音轨时,此项为 null |
`dash`中的`video`数组:
@@ -494,7 +499,7 @@ curl -G 'https://api.bilibili.com/x/player/playurl' \
| start_with_sap | num | **同上** | |
| SegmentBase | obj | 见下表 | url 对应 m4s 文件中,头部的位置
音频流该值恒为空 |
| segment_base | obj | **同上** | |
-| codecid | num | 码流编码标识代码 | 含义见 [上表](视频编码代码)
音频流该值恒为`0` |
+| codecid | num | 码流编码标识代码 | 含义见 [上表](#视频编码代码)
音频流该值恒为`0` |
`video`数组中的对象中的`backup_url`数组:
diff --git a/docs/video_ranking/dynamic.md b/docs/video_ranking/dynamic.md
index 941a0b1..b06cea2 100644
--- a/docs/video_ranking/dynamic.md
+++ b/docs/video_ranking/dynamic.md
@@ -46,7 +46,7 @@
`data`中的`archives`数组中的对象:
-基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象
+基本同[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的data对象
`data`中的`page`对象:
diff --git a/docs/video_ranking/popular.md b/docs/video_ranking/popular.md
index f849eb4..2706878 100644
--- a/docs/video_ranking/popular.md
+++ b/docs/video_ranking/popular.md
@@ -45,7 +45,7 @@ _请求方式:GET_
`data`中的`list`数组中的对象:
-基本同[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象
+基本同[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的data对象
**示例:**
diff --git a/docs/video_ranking/precious_videos.md b/docs/video_ranking/precious_videos.md
index fe71e07..7eb8183 100644
--- a/docs/video_ranking/precious_videos.md
+++ b/docs/video_ranking/precious_videos.md
@@ -6,7 +6,7 @@
**url参数:**
-| 字段 | 类型 | 内容 | 必要性 | 备注 |
+| 字段 | 类型 | 内容 | 必要性 | 备注 |
| --------- | ---- | -------- | ----- | ----- |
| page | num | 页码 | 非必要 | 默认为`1` |
| page_size | num | 每页数量 | 非必要 | 默认为`85` |
diff --git a/docs/video_ranking/ranking.md b/docs/video_ranking/ranking.md
index 7381362..e3288b8 100644
--- a/docs/video_ranking/ranking.md
+++ b/docs/video_ranking/ranking.md
@@ -2,8 +2,7 @@
-- [视频排行榜](#视频排行榜)
- - [获取分区视频排行榜列表](#获取分区视频排行榜列表)
+- [获取分区视频排行榜列表](#获取分区视频排行榜列表)
---
@@ -19,7 +18,7 @@
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------- | ------ | ------------------------------------- |
-| rid | num | 目标分区tid | 非必要 | |
+| rid | num | 目标分区tid | 非必要 | 可参考[视频分区一览](../video/video_zone.md#视频分区一览),只支持主分区 |
| type | str | 未知 | 非必要 | 默认为:all,且为目前唯一已知值。怀疑为稿件类型,但没有找到其他值佐证。 |
**json回复:**
@@ -51,7 +50,7 @@
`data`列表中的对象:
-可参考[获取视频详细信息(web端)](/video/info.md#获取视频详细信息(web端))中的data对象。本API对象中所有字段,均可在链接对象中找到。
+可参考[获取视频详细信息(web端)](../video/info.md#获取视频详细信息(web端))中的data对象。本API对象中所有字段,均可在链接对象中找到。
**示例:**
diff --git a/docs/vip/action.md b/docs/vip/action.md
index 0f9bdec..1f533b9 100644
--- a/docs/vip/action.md
+++ b/docs/vip/action.md
@@ -10,10 +10,10 @@
**正文参数 (application/x-www-form-urlencoded):**
-| 参数名 | 类型 | 内容 | 必要性 | 备注 |
-| ------ | ---- | ----------------------- | --------------- | ------------------------------------------------------------ |
-| type | num | 兑换类型 | 必要 | 1:B币券
2:会员购优惠券
3:漫画福利券
4:会员购包邮券
5:漫画商城优惠券 |
-| csrf | str | CSRF Token (位于cookie) | Cookie 方式必要 | |
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|------|-----|-----------------------|-------------|--------------------------------------------------------------------------------------|
+| type | num | 兑换类型 | 必要 | 1:B币券
2:会员购优惠券
3:漫画福利券
4:会员购包邮券
5:漫画商城优惠券
6:装扮体验卡
7:课堂优惠券 |
+| csrf | str | CSRF Token (位于cookie) | Cookie 方式必要 | |
**json回复:**
@@ -46,3 +46,60 @@ curl 'https://api.bilibili.com/x/vip/privilege/receive' \
```
+
+## 大会员每日经验
+
+> https://api.bilibili.com/x/vip/experience/add
+
+*请求方式:POST*
+
+认证方式:Cookie (SESSDATA)
+
+**正文参数 (application/x-www-form-urlencoded):**
+
+| 参数名 | 类型 | 内容 | 必要性 | 备注 |
+|------|-----|-----------------------|-------------|--------------------------------------------------------------------------------------|
+| csrf | str | CSRF Token (位于cookie) | Cookie 方式必要 | |
+
+**json回复:**
+
+根对象:
+
+| 字段 | 类型 | 内容 | 备注 |
+|---------|-----|------|---------------------------------------------------------------------------------------------------|
+| code | num | 返回值 | -101:账号未登录
-111:csrf 校验失败
69198:用户经验已经领取
6034007:请求频繁,请稍后再试
0:成功 |
+| message | str | 错误信息 | ` |
+| ttl | num | 1 | |
+| data | obj | | 信息本体 |
+
+**`data`对象:**
+
+| 字段名 | 类型 | 内容 | 备注 |
+| ------------------ | ------------------------------- | -------------------- | ---------------------------------------------- |
+| type | num | 0 | |
+| is_grant | bool | | 暂时发现 code 为 0 时为 `true` |
+
+**示例:**
+
+```shell
+curl 'https://api.bilibili.com/x/vip/experience/add' \
+ -b 'SESSDATA=xxx' \
+ --data-urlencode 'csrf=xxx'
+```
+
+
+查看响应示例:
+
+```json
+{
+ "code": 69198,
+ "message": "用户经验已经领取",
+ "ttl": 1,
+ "data": {
+ "type": 0,
+ "is_grant": false
+ }
+}
+```
+
+
diff --git a/docs/vip/info.md b/docs/vip/info.md
index 550e5aa..c6d6204 100644
--- a/docs/vip/info.md
+++ b/docs/vip/info.md
@@ -21,32 +21,47 @@
`data`对象:
-| 字段 | 类型 | 内容 | 备注 |
-| --------------- | ----- | ------------ | ---- |
-| list | array | 卡券信息列表 | |
-| is_short_vip | bool | (?) | |
-| is_freight_open | bool | (?) | |
+| 字段 | 类型 | 内容 | 备注 |
+| ---------------- | ----- | -------------- | ----------- |
+| list | array | 卡券信息列表 | |
+| is_short_vip | bool | (?) | |
+| is_freight_open | bool | (?) | |
+| level | num | 当前等级 | |
+| cur_exp | num | 当前拥有经验值 | |
+| next_exp | num | 升级所需经验值 | 满级时为 -1 |
+| is_vip | bool | 是否为大会员 | |
+| is_senior_member | num | (?) | |
+| format060102 | num | (?) | |
+
`list`数组:
-| 字段 | 类型 | 内容 | 备注 |
-| ---- | ---- | ---------------------- | ---- |
-| 0 | obj | B币兑换状态 | |
-| 1 | obj | 会员购优惠券兑换状态 | |
-| 2 | obj | 漫画福利券兑换状态 | |
-| 3 | obj | 会员购包邮券兑换状态 | |
-| 4 | obj | 漫画商城优惠券兑换状态 | |
+| 索引 | 类型 | 内容 | type | 备注 |
+| ---- | ---- | -------------------------------- | ---- | ------------------------------- |
+| 0 | obj | B币兑换状态 | 1 | |
+| 1 | obj | 会员购优惠券兑换状态 | 2 | |
+| 2 | obj | 漫画福利券兑换状态 | 3 | |
+| 3 | obj | 会员购包邮券兑换状态 | 4 | |
+| 4 | obj | 漫画商城优惠券兑换状态 | 5 | |
+| 5 | obj | 装扮体验卡兑换状态 | 6 | |
+| 6 | obj | 课堂优惠券兑换状态 | 7 | |
+| 7 | obj | (~~王者荣耀~~)游戏礼盒兑换状态 | 8 | 每日可领取,目前 state 固定为 1 |
+| 8 | obj | 每日 10 经验领取状态 | 9 | 每日可领取,未完成时 state 为 2 |
`list`中的对象:
-| 字段 | 类型 | 内容 | 备注 |
-| ----------------- | ---- | -------------------- | ------------------------------------------------------------ |
-| type | num | 卡券类型 | 1:B币券
2:会员购优惠券
3:漫画福利券
4:会员购包邮券
5:漫画商城优惠券 |
-| state | num | 兑换状态 | 0:当月未兑换
1:已兑换 |
-| expire_time | num | 本轮卡券过期时间戳 | 当月月底 |
-| vip_type | num | | 2:年度大会员可兑换 |
-| next_receive_days | num | 距下一轮兑换剩余天数 | |
-| period_end_unix | num | 下一轮兑换开始时间戳 | 秒级时间戳 |
+| 字段 | 类型 | 内容 | 备注 |
+| ----------------- | ---- | -------------------- | ----------------------------------------------------- |
+| type | num | 卡券类型 | 详见 `list` 数组表格中的 `type` 项 |
+| state | num | 兑换状态 | 0:未兑换
1:已兑换
2:未完成(若需要完成) |
+| expire_time | num | 本轮卡券过期时间戳 | 当月月底/当日24点 |
+| vip_type | num | 当前用户的大会员状态 | 2:年度大会员 |
+| next_receive_days | num | 距下一轮兑换剩余天数 | 无权限时,每月任务固定为 0,每日固定为 1 |
+| period_end_unix | num | 下一轮兑换开始时间戳 | 秒级时间戳 |
+
+**注意:**
+卡券除每日可领取(`type` 为 `8` 和 `9`)的,其他可通过 [https://api.bilibili.com/x/vip/privilege/receive](./action.md#兑换卡券) 领取
+每日 10 经验领取(`type` 为 `9`)需要完成视频观看,未完成的 `state` 为 2。
**示例:**
@@ -113,4 +128,4 @@ curl 'https://api.bilibili.com/x/vip/privilege/my' \
}
```
-
\ No newline at end of file
+
diff --git a/docs/web_widget/404_manga.md b/docs/web_widget/404_manga.md
index d6426ae..3cab064 100644
--- a/docs/web_widget/404_manga.md
+++ b/docs/web_widget/404_manga.md
@@ -30,6 +30,8 @@
## dynamic类型
+以下内容爬取自接口`https://api.bilibili.com/x/activity/operation/list?source_id=630edcfddbd0b39ca7371ad2&pn=1&ps=5`且进行去重
+
[https://i0.hdslb.com/bfs/activity-plat/cover/20171215/o6y3r7or6z.png](https://i0.hdslb.com/bfs/activity-plat/cover/20171215/o6y3r7or6z.png)
[https://i0.hdslb.com/bfs/activity-plat/cover/20171215/2978n4wwpj.png](https://i0.hdslb.com/bfs/activity-plat/cover/20171215/2978n4wwpj.png)
@@ -187,3 +189,133 @@
[https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3z3lp3.png](https://i0.hdslb.com/bfs/activity-plat/cover/20170511/122k3z3lp3.png)
[https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw6r98w.png](https://i0.hdslb.com/bfs/activity-plat/cover/20170511/w44xw6r98w.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/moCBusxHG2.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/moCBusxHG2.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/LJjOhuzi2l.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/LJjOhuzi2l.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/fzjTcKtbOA.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/fzjTcKtbOA.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PEXod21DmE.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PEXod21DmE.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/5NYt7b0jWy.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/5NYt7b0jWy.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I6DotAbsU0.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I6DotAbsU0.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VZkCQV3H8N.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VZkCQV3H8N.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/pMst3j1Wh2.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/pMst3j1Wh2.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/FFBsId9kkU.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/FFBsId9kkU.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/j8PQollWgb.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/j8PQollWgb.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/CvPAnLwfLB.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/CvPAnLwfLB.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/86Og1GMuE6.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/86Og1GMuE6.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/4gKxYMNEd7.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/4gKxYMNEd7.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VUahg7oVIp.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VUahg7oVIp.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0Wp3GSTqa2.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0Wp3GSTqa2.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/GI167h1ubu.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/GI167h1ubu.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/abiv2iRJiN.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/abiv2iRJiN.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/vocgKB4Bjl.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/vocgKB4Bjl.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/6cLRxO9RkR.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/6cLRxO9RkR.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aoqhUIvZ3x.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aoqhUIvZ3x.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/zRespfCkmo.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/zRespfCkmo.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/3wdVaSoWjI.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/3wdVaSoWjI.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XywNN8KlpA.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XywNN8KlpA.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Yg8QV17GKZ.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Yg8QV17GKZ.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/h4ytfrWZID.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/h4ytfrWZID.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/J8BB0k7uKM.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/J8BB0k7uKM.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/i8sLpoa4Wn.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/i8sLpoa4Wn.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XHhqvtddUA.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/XHhqvtddUA.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hr97jf0KpZ.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hr97jf0KpZ.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/DUmMBOlW5E.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/DUmMBOlW5E.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dKua3o3HRw.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dKua3o3HRw.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/f1BYK2oCwp.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/f1BYK2oCwp.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/els4Nwd0F6.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/els4Nwd0F6.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PSI3OAv9Hs.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/PSI3OAv9Hs.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JGrXDA8RKH.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JGrXDA8RKH.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wT6pn2O18p.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wT6pn2O18p.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Okx4iJ1PLv.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Okx4iJ1PLv.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/8Ri6Xlk826.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/8Ri6Xlk826.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/nNEBpbZlI0.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/nNEBpbZlI0.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HtPXYfpuXU.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HtPXYfpuXU.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Wwzw0XTwUl.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Wwzw0XTwUl.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/E738vcDvd3.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/E738vcDvd3.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dFQfkypPWA.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dFQfkypPWA.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hinEAw6Abq.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hinEAw6Abq.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/KNH7Hz104m.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/KNH7Hz104m.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/2ETVB2F8Pq.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/2ETVB2F8Pq.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Bk5vekQZoa.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/Bk5vekQZoa.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/IcRizWqXCq.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/IcRizWqXCq.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/jvNq7sSxAT.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/jvNq7sSxAT.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/laYMWQCnnY.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/laYMWQCnnY.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I2ep6rPv8i.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/I2ep6rPv8i.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HKynZO2AxL.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/HKynZO2AxL.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dtYHFq8LIq.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/dtYHFq8LIq.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/egQQvfxwvY.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/egQQvfxwvY.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/duwQurWqyy.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/duwQurWqyy.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wqP0BMH8vp.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/wqP0BMH8vp.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/00FlTw9i50.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/00FlTw9i50.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/V8wFvnEm3T.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/V8wFvnEm3T.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VrYZXfmehY.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/VrYZXfmehY.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/QBchCuhVFr.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/QBchCuhVFr.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hJo8sPKDkj.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/hJo8sPKDkj.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JnqnvZTKxf.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/JnqnvZTKxf.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0gu9qonH7t.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/0gu9qonH7t.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aA5e4coXVQ.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/aA5e4coXVQ.png)
+
+[https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/UM9bnucVhq.png](https://i0.hdslb.com/bfs/activity-plat/static/2cf2b9af5d3c5781d611d6e36f405144/UM9bnucVhq.png)
\ No newline at end of file
diff --git a/grpc_api/bilibili/account/fission/v1/fission.proto b/grpc_api/bilibili/account/fission/v1/fission.proto
index 18eca65..051d6b7 100644
--- a/grpc_api/bilibili/account/fission/v1/fission.proto
+++ b/grpc_api/bilibili/account/fission/v1/fission.proto
@@ -1,62 +1,64 @@
-syntax = "proto3";
-
-package bilibili.account.fission.v1;
-
-// Fission裂变
-service Fission {
- // 活动入口
- rpc Entrance (EntranceReq) returns (EntranceReply);
- // 首页弹窗
- rpc Window (WindowReq) returns (WindowReply);
- //
- rpc Privacy(PrivacyReq) returns (PrivacyReply);
-}
-
-// 动画效果
-message AnimateIcon {
- // icon文件
- string icon = 1;
- // 动效json文件
- string json = 2;
-}
-
-// 活动入口-响应
-message EntranceReply {
- // 展示图标
- string icon = 1;
- // 活动名称
- string name = 2;
- // 活动跳转链接
- string url = 3;
- // 动画效果
- AnimateIcon animate_icon = 4;
-}
-
-// 活动入口-请求
-message EntranceReq {}
-
-//
-message PrivacyReply {
- //
- string message = 1;
-}
-
-//
-message PrivacyReq {
- //
- string activity_uid = 1;
-}
-
-//首页弹窗-响应
-message WindowReply {
- // 弹窗类型
- // 0:弹窗 1:普通页面
- int32 type = 1;
- // 跳转链接
- string url = 2;
- // 上报数据字段
- string report_data = 3;
-}
-
-// 首页弹窗-请求
-message WindowReq {}
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.account.fission.v1;
+
+// Fission裂变
+service Fission {
+ // 活动入口
+ rpc Entrance (EntranceReq) returns (EntranceReply);
+ // 首页弹窗
+ rpc Window (WindowReq) returns (WindowReply);
+ //
+ rpc Privacy (PrivacyReq) returns (PrivacyReply);
+}
+
+// 动画效果
+message AnimateIcon {
+ // icon文件
+ string icon = 1;
+ // 动效json文件
+ string json = 2;
+}
+
+// 活动入口-响应
+message EntranceReply {
+ // 展示图标
+ string icon = 1;
+ // 活动名称
+ string name = 2;
+ // 活动跳转链接
+ string url = 3;
+ // 动画效果
+ AnimateIcon animate_icon = 4;
+}
+
+// 活动入口-请求
+message EntranceReq {}
+
+//
+message PrivacyReply {
+ //
+ string message = 1;
+}
+
+//
+message PrivacyReq {
+ //
+ string activity_uid = 1;
+}
+
+//首页弹窗-响应
+message WindowReply {
+ // 弹窗类型
+ // 0:弹窗 1:普通页面
+ int32 type = 1;
+ // 跳转链接
+ string url = 2;
+ // 上报数据字段
+ string report_data = 3;
+}
+
+// 首页弹窗-请求
+message WindowReq {
+
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/api/probe/v1/probe.proto b/grpc_api/bilibili/api/probe/v1/probe.proto
index eb3c2ec..e67ca94 100644
--- a/grpc_api/bilibili/api/probe/v1/probe.proto
+++ b/grpc_api/bilibili/api/probe/v1/probe.proto
@@ -1,138 +1,192 @@
-syntax = "proto3";
-
-package bilibili.api.probe.v1;
-
-//
-service Probe {
- //
- rpc TestCode (CodeReq) returns (CodeReply);
- //
- rpc TestReq (ProbeReq) returns (ProbeReply);
- //
- rpc TestStream (ProbeStreamReq) returns (ProbeStreamReply);
- //
- rpc TestSub (ProbeSubReq) returns (ProbeSubReply);
-}
-
-//
-enum Category {
- CATEGORY_UNSPECIFIED = 0; //
- CATEGORY_ONE = 1; //
- CATEGORY_TWO = 2; //
- CATEGORY_THREE = 3; //
-}
-
-//
-message CodeReply {}
-
-//
-message CodeReq {
- //
- int64 code = 1;
-}
-
-//
-message DynamicMessageUpdate {
- //
- SimpleMessage body = 1;
-}
-
-//
-message Embedded {
- //
- bool bool_val = 1;
- //
- int32 int32_val = 2;
- //
- int64 int64_val = 3;
- //
- float float_val = 4;
- //
- double double_val = 5;
- //
- string string_val = 6;
- //
- repeated int32 repeated_int32_val = 8;
- //
- repeated string repeated_string_val = 12;
- //
- map map_string_val = 13;
- //
- map map_error_val = 14;
-}
-
-//
-message ErrorMessage {
- //
- int64 code = 1;
- //
- string reason = 2;
- //
- string message = 3;
-}
-
-//
-enum ErrorReason {
- PROBE_UNSPECIFIED = 0; //
- PROBE_CATEGORY_NOTFOUND = 1; //
-}
-
-//
-message ProbeReply {
- //
- string content = 1;
- //
- int64 timestamp = 2;
-}
-
-//
-message ProbeReq {
- //
- int64 mid = 1;
- //
- string buvid = 2;
-}
-
-//
-message ProbeStreamReply {
- //
- int64 sequence = 1;
- //
- int64 timestamp = 2;
- //
- string content = 3;
-}
-
-//
-message ProbeStreamReq {
- //
- int64 mid = 1;
- //
- int64 sequence = 2;
-}
-
-//
-message ProbeSubReply {
- //
- int64 message_id = 1;
-}
-
-//
-message ProbeSubReq {
- //
- int64 buvid = 1;
-}
-
-//
-message SimpleMessage {
- //
- int32 id = 1;
- //
- int64 num = 2;
- //
- string lang = 3;
- //
- int32 cate = 4;
- //
- Embedded embedded = 5;
-}
+syntax = "proto3";
+
+package bilibili.api.probe.v1;
+
+// 服务可用性探针
+service Probe {
+ //
+ rpc TestCode (CodeReq) returns (CodeReply);
+ //
+ rpc TestReq (ProbeReq) returns (ProbeReply);
+ //
+ rpc TestStream (ProbeStreamReq) returns (ProbeStreamReply);
+ //
+ rpc TestSub (ProbeSubReq) returns (ProbeSubReply);
+}
+
+// 服务可用性探针
+service ProbeService {
+ //
+ rpc Echo(SimpleMessage) returns (SimpleMessage);
+ //
+ rpc EchoBody(SimpleMessage) returns (SimpleMessage);
+ //
+ rpc EchoDelete(SimpleMessage) returns (SimpleMessage);
+ //
+ rpc EchoError(ErrorMessage) returns (ErrorMessage);
+ //
+ rpc EchoPatch(DynamicMessageUpdate) returns (DynamicMessageUpdate);
+}
+
+//
+enum Category {
+ CATEGORY_UNSPECIFIED = 0; //
+ CATEGORY_ONE = 1; //
+ CATEGORY_TWO = 2; //
+ CATEGORY_THREE = 3; //
+ CATEGORY_FOUR = 4; //
+}
+
+//
+message CodeReply {
+ //
+ string id = 1;
+ //
+ string id1 = 2;
+ //
+ int64 code = 3;
+ //
+ string message_s = 4;
+}
+
+//
+message CodeReq {
+ //
+ int64 code = 1;
+}
+
+//
+message CreateTopic {
+ //
+ int64 id = 1;
+}
+
+//
+message CreatTask {
+ //
+ string name = 1;
+}
+
+//
+message DynamicMessageUpdate {
+ //
+ SimpleMessage body = 1;
+}
+
+//
+message Embedded {
+ //
+ bool bool_val = 1;
+ //
+ int32 int32_val = 2;
+ //
+ int64 int64_val = 3;
+ //
+ float float_val = 4;
+ //
+ double double_val = 5;
+ //
+ string string_val = 6;
+ //
+ repeated bool repeated_bool_val = 7;
+ //
+ repeated int32 repeated_int32_val = 8;
+ //
+ repeated int64 repeated_int64_val = 9;
+ //
+ repeated float repeated_float_val = 10;
+ //
+ repeated double repeated_double_val = 11;
+ //
+ repeated string repeated_string_val = 12;
+ //
+ map map_string_val = 13;
+ //
+ map map_error_val = 14;
+}
+
+//
+message ErrorMessage {
+ //
+ int64 code = 1;
+ //
+ string reason = 2;
+ //
+ string message = 3;
+}
+
+// Deprecated
+enum ErrorReason {
+ PROBE_UNSPECIFIED = 0; //
+ PROBE_CATEGORY_NOTFOUND = 1; //
+}
+
+//
+message ProbeReply {
+ //
+ string content = 1;
+ //
+ int64 timestamp = 2;
+}
+
+//
+message ProbeReq {
+ //
+ int64 mid = 1;
+ //
+ string buvid = 2;
+}
+
+//
+message ProbeStreamReply {
+ //
+ int64 sequence = 1;
+ //
+ int64 timestamp = 2;
+ //
+ string content = 3;
+}
+
+//
+message ProbeStreamReq {
+ //
+ int64 mid = 1;
+ //
+ int64 sequence = 2;
+}
+
+//
+message ProbeSubReply {
+ //
+ int64 message_id = 1;
+}
+
+//
+message ProbeSubReq {
+ //
+ string buvid = 1;
+}
+
+//
+message SimpleMessage {
+ //
+ int32 id = 1;
+ //
+ int64 num = 2;
+ //
+ string lang = 3;
+ //
+ int32 cate = 4;
+ //
+ Embedded embedded = 5;
+}
+
+//
+message Task {
+ //
+ string name = 1;
+ //
+ string author = 2;
+ //
+ bool cache = 3;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/api/ticket/v1/ticket.proto b/grpc_api/bilibili/api/ticket/v1/ticket.proto
new file mode 100644
index 0000000..4e05f2d
--- /dev/null
+++ b/grpc_api/bilibili/api/ticket/v1/ticket.proto
@@ -0,0 +1,79 @@
+syntax = "proto3";
+
+package bilibili.api.ticket.v1;
+
+service Ticket {
+ // 获取鉴权用 Ticket
+ rpc GetTicket (GetTicketRequest) returns (GetTicketResponse);
+ // 获取 Webview 页面使用的 Ticket
+ rpc GenWebTicket (GenWebTicketRequest) returns (GenWebTicketResponse);
+}
+
+//
+message GenWebTicketRequest {
+ //
+ map context = 1;
+ //
+ string key_id = 2;
+ //
+ string hexsign = 3;
+ //
+ string token = 4;
+}
+
+//
+message GenWebTicketResponse {
+ //
+ message Context {
+ //
+ string v_voucher = 1;
+ }
+ //
+ message Nav {
+ //
+ string img = 1;
+ //
+ string sub = 2;
+ }
+ //
+ string ticket = 1;
+ //
+ int64 created_at = 2;
+ //
+ int64 ttl = 3;
+ //
+ Context context = 4;
+ //
+ Nav nav = 5;
+}
+
+//
+message GetTicketRequest {
+ // 包含:
+ // + x-fingerprint(包含手机各类信息, 使用 datacenter.hakase.protobuf.AndroidDeviceInfo 生成)
+ // + x-exbadbasket(?)
+ map context = 1;
+ // 暂时固定为 ec01
+ string key_id = 2;
+ //
+ bytes sign = 3;
+ // 暂时留空
+ string token = 4;
+}
+
+//
+message GetTicketResponse {
+ //
+ message Context {
+ //
+ string v_voucher = 1;
+ }
+ // x-bili-ticket
+ string ticket = 1;
+ // 有效期起
+ int64 created_at = 2;
+ // 有效期
+ int64 ttl = 3;
+ //
+ Context context = 4;
+}
diff --git a/grpc_api/bilibili/app/click/v1/heartbeat.proto b/grpc_api/bilibili/app/click/v1/heartbeat.proto
new file mode 100644
index 0000000..51bc55f
--- /dev/null
+++ b/grpc_api/bilibili/app/click/v1/heartbeat.proto
@@ -0,0 +1,122 @@
+syntax = "proto3";
+
+package bilibili.app.click.v1;
+
+service Click {
+ // 客户端心跳上传
+ rpc HeartBeat (HeartBeatReq) returns (HeartBeatReply);
+}
+
+// 账户信息
+message AccountInfo {
+ //
+ uint64 mid = 1;
+}
+
+//
+message AppInfo {
+ //
+ string top_page_class = 1;
+ // 客户端首次启动时的毫秒时间戳
+ int64 ftime = 2;
+ //
+ string did = 3;
+}
+
+// 心跳补充信息
+message Extra {
+ //
+ string session = 1;
+ //
+ string refer = 2;
+}
+
+message HeartBeatReply {}
+
+//
+message HeartBeatReq {
+ //
+ string session_v2 = 1;
+ //
+ Stage stage = 2;
+ // 流加载失败timeout
+ uint64 stream_timeout = 3;
+ //
+ uint64 batch_frequency = 4;
+ //
+ float frequency = 5;
+ //
+ VideoMeta video_meta = 6;
+ //
+ AppInfo app_info = 7;
+ //
+ AccountInfo account_info = 8;
+ //
+ PreProcessResult pre_process_result = 9;
+ //
+ repeated PlayerStatus player_status = 10;
+ //
+ VideoInfo video_info = 11;
+}
+
+//
+message PlayerStatus {
+ //
+ float playback_rate = 1;
+ //
+ uint64 progress = 2;
+ //
+ PlayState play_state = 3;
+ //
+ bool is_buffering = 4;
+}
+
+//
+enum PlayState {
+ //
+ STATE_UNKNOWN = 0;
+ //
+ PREPARING = 1;
+ //
+ PREPARED = 2;
+ //
+ PLAYING = 3;
+ //
+ PAUSED = 4;
+ //
+ STOPPED = 5;
+ //
+ FAILED = 6;
+}
+
+//
+message PreProcessResult {
+ //
+ int64 vt = 1;
+}
+
+//
+enum Stage {
+ //
+ STAGE_UNKNOWN = 0;
+ //
+ START = 1;
+ //
+ END = 2;
+ //
+ SAMPLE = 3;
+}
+
+//
+message VideoInfo {
+ //
+ uint64 cid_duration = 1;
+}
+
+//
+message VideoMeta {
+ //
+ uint64 aid = 1;
+ //
+ uint64 cid = 2;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/download.proto b/grpc_api/bilibili/app/distribution/setting/download.proto
new file mode 100644
index 0000000..e738e99
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/download.proto
@@ -0,0 +1,11 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.download;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message DownloadSettingsConfig {
+ //
+ bilibili.app.distribution.v1.BoolValue enable_download_auto_start = 1;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/dynamic.proto b/grpc_api/bilibili/app/distribution/setting/dynamic.proto
new file mode 100644
index 0000000..96abf58
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/dynamic.proto
@@ -0,0 +1,17 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.dynamic;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message DynamicAutoPlay {
+ //
+ bilibili.app.distribution.v1.Int64Value value = 1;
+}
+
+//
+message DynamicDeviceConfig {
+ //
+ DynamicAutoPlay auto_play = 1;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/experimental.proto b/grpc_api/bilibili/app/distribution/setting/experimental.proto
new file mode 100644
index 0000000..eaf9a67
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/experimental.proto
@@ -0,0 +1,65 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.experimental;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message DynamicSelect {
+ //
+ bilibili.app.distribution.v1.BoolValue fold = 1;
+}
+
+//
+message Exp {
+ //
+ bilibili.app.distribution.v1.Int64Value id = 1;
+ //
+ bilibili.app.distribution.v1.Int32Value bucket = 2;
+}
+
+//
+message ExperimentalConfig {
+ //
+ bilibili.app.distribution.v1.StringValue flag = 1;
+ //
+ repeated Exp exps = 2;
+}
+
+//
+message MultipleTusConfig {
+ //
+ TopLeft top_left = 1;
+ //
+ DynamicSelect dynamic_select = 2;
+}
+
+// APP首页头像跳转信息
+message TopLeft {
+ //
+ bilibili.app.distribution.v1.StringValue url = 1;
+ //
+ bilibili.app.distribution.v1.StringValue story_foreground_image = 2;
+ //
+ bilibili.app.distribution.v1.StringValue story_background_image = 3;
+ //
+ bilibili.app.distribution.v1.StringValue listen_foreground_image = 4;
+ //
+ bilibili.app.distribution.v1.StringValue listen_background_image = 5;
+ //
+ bilibili.app.distribution.v1.StringValue ios_story_foreground_image = 6;
+ //
+ bilibili.app.distribution.v1.StringValue ios_story_background_image = 7;
+ //
+ bilibili.app.distribution.v1.StringValue ios_listen_foreground_image = 8;
+ //
+ bilibili.app.distribution.v1.StringValue ios_listen_background_image = 9;
+ //
+ bilibili.app.distribution.v1.StringValue goto = 10;
+ //
+ bilibili.app.distribution.v1.StringValue url_v2 = 11;
+ //
+ bilibili.app.distribution.v1.Int64Value goto_v2 = 12;
+ //
+ bilibili.app.distribution.v1.StringValue badge = 13;
+}
diff --git a/grpc_api/bilibili/app/distribution/setting/internaldevice.proto b/grpc_api/bilibili/app/distribution/setting/internaldevice.proto
new file mode 100644
index 0000000..76c95b9
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/internaldevice.proto
@@ -0,0 +1,11 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.internaldevice;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message InternalDeviceConfig {
+ // 首次启动时间
+ bilibili.app.distribution.v1.Int64Value fts = 1;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/night.proto b/grpc_api/bilibili/app/distribution/setting/night.proto
new file mode 100644
index 0000000..6d811aa
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/night.proto
@@ -0,0 +1,11 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.night;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message NightSettingsConfig {
+ //
+ bilibili.app.distribution.v1.BoolValue is_night_follow_system = 1;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/other.proto b/grpc_api/bilibili/app/distribution/setting/other.proto
new file mode 100644
index 0000000..4da3a59
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/other.proto
@@ -0,0 +1,25 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.other;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message OtherSettingsConfig {
+ //
+ bilibili.app.distribution.v1.Int64Value watermark_type = 1;
+ //
+ bilibili.app.distribution.v1.Int64Value web_image_quality_type = 2;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_read_pasteboard = 3;
+ //
+ bilibili.app.distribution.v1.BoolValue paste_auto_jump = 4;
+ //
+ bilibili.app.distribution.v1.BoolValue mini_screen_play_when_back = 5;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_resume_playing = 6;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_wifi_auto_update = 7;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_guide_screenshot_share = 8;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/pegasus.proto b/grpc_api/bilibili/app/distribution/setting/pegasus.proto
new file mode 100644
index 0000000..a15f455
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/pegasus.proto
@@ -0,0 +1,41 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.pegasus;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message FeedModeValue {
+ //
+ bilibili.app.distribution.v1.Int64Value value = 1;
+}
+
+//
+message PegasusAutoPlay {
+ //
+ bilibili.app.distribution.v1.Int64Value single = 1;
+ //
+ bilibili.app.distribution.v1.Int64Value double = 2;
+ //
+ bilibili.app.distribution.v1.BoolValue single_affected_by_server_side = 3;
+ //
+ bilibili.app.distribution.v1.BoolValue double_affected_by_server_side = 4;
+}
+
+//
+message PegasusColumnValue {
+ //
+ bilibili.app.distribution.v1.Int64Value value = 1;
+ //
+ bilibili.app.distribution.v1.BoolValue affected_by_server_side = 2;
+}
+
+//
+message PegasusDeviceConfig {
+ //
+ PegasusColumnValue column = 1;
+ //
+ FeedModeValue mode = 2;
+ //
+ PegasusAutoPlay auto_play = 3;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/play.proto b/grpc_api/bilibili/app/distribution/setting/play.proto
new file mode 100644
index 0000000..a972fc8
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/play.proto
@@ -0,0 +1,58 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.play;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+// 云端保存的播放器配置
+message CloudPlayConfig {
+ // 启用杜比全景声
+ bilibili.app.distribution.v1.BoolValue enable_panorama = 1;
+ // 启用杜比音效
+ bilibili.app.distribution.v1.BoolValue enable_dolby = 2;
+ // 启用震动
+ bilibili.app.distribution.v1.BoolValue enable_shake = 3;
+ // 启用后台播放
+ bilibili.app.distribution.v1.BoolValue enable_background = 4;
+ // 启用HIRES
+ bilibili.app.distribution.v1.BoolValue enable_loss_less = 5;
+}
+
+// 播放器策略配置
+message PlayConfig {
+ //
+ bilibili.app.distribution.v1.BoolValue should_auto_play = 1;
+ //
+ bilibili.app.distribution.v1.BoolValue should_auto_fullscreen = 2;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_playurl_https = 3;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_danmaku_interaction = 4;
+ //
+ bilibili.app.distribution.v1.Int64Value small_screen_status = 5;
+ //
+ bilibili.app.distribution.v1.Int64Value player_codec_mode_key = 6;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_gravity_rotate_screen = 7;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_danmaku_monospaced = 8;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_edit_subtitle = 9;
+ //
+ bilibili.app.distribution.v1.BoolValue enable_subtitle = 10;
+ //
+ bilibili.app.distribution.v1.Int64Value color_filter = 11;
+ //
+ bilibili.app.distribution.v1.BoolValue should_auto_story = 12;
+ //
+ bilibili.app.distribution.v1.BoolValue landscape_auto_story = 13;
+ //
+ bilibili.app.distribution.v1.BoolValue volume_balance = 14;
+}
+
+// 灰度测试特殊功能?
+message SpecificPlayConfig {
+ //
+ bilibili.app.distribution.v1.BoolValue enable_segmented_section = 1;
+}
+
diff --git a/grpc_api/bilibili/app/distribution/setting/privacy.proto b/grpc_api/bilibili/app/distribution/setting/privacy.proto
new file mode 100644
index 0000000..7e34cf8
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/privacy.proto
@@ -0,0 +1,20 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.privacy;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message MidPrivacySettingsConfig {
+ //
+ bilibili.app.distribution.v1.BoolValue recommend_to_known = 1;
+}
+
+//
+message PrivacySettingsConfig {
+ //
+ bilibili.app.distribution.v1.BoolValue ad_recommand_store = 1;
+ // 传感器权限
+ bilibili.app.distribution.v1.BoolValue sensor_access = 2;
+
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/setting/search.proto b/grpc_api/bilibili/app/distribution/setting/search.proto
new file mode 100644
index 0000000..fc02d63
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/setting/search.proto
@@ -0,0 +1,19 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.setting.search;
+
+import "bilibili/app/distribution/v1/distribution.proto";
+
+//
+message SearchAutoPlay {
+ //
+ bilibili.app.distribution.v1.Int64Value value = 1;
+ //
+ bilibili.app.distribution.v1.BoolValue affected_by_server_side = 2;
+}
+
+//
+message SearchDeviceConfig {
+ //
+ SearchAutoPlay auto_play = 1;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/distribution/v1/distribution.proto b/grpc_api/bilibili/app/distribution/v1/distribution.proto
new file mode 100644
index 0000000..71c9947
--- /dev/null
+++ b/grpc_api/bilibili/app/distribution/v1/distribution.proto
@@ -0,0 +1,158 @@
+syntax = "proto3";
+
+package bilibili.app.distribution.v1;
+
+import "google/protobuf/any.proto";
+
+// APP配置
+service Distribution {
+ // 获取云端储存的用户偏好
+ rpc GetUserPreference (GetUserPreferenceReq) returns (GetUserPreferenceReply);
+ // 设定用户偏好
+ rpc SetUserPreference (SetUserPreferenceReq) returns (SetUserPreferenceReply);
+ // 获取云控配置
+ rpc UserPreference (UserPreferenceReq) returns (UserPreferenceReply);
+}
+
+//
+message GetUserPreferenceReq {
+ //
+ repeated string type_url = 1;
+ //
+ map extra_context = 2;
+}
+
+//
+message GetUserPreferenceReply {
+ // 对应 GetUserPreferenceReq 的请求的类型
+ repeated google.protobuf.Any value = 1;
+}
+
+//
+message SetUserPreferenceReq {
+ //
+ repeated google.protobuf.Any preference = 1;
+ //
+ map extra_context = 2;
+}
+
+//
+message SetUserPreferenceReply {}
+
+//
+message UserPreferenceReq {}
+
+// 云控配置下发
+message UserPreferenceReply {
+ // 具体解码需要根据实际请求 type_url 来判断
+ repeated google.protobuf.Any preference = 1;
+}
+
+//
+message BoolValue {
+ //
+ bool value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ bool default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message BytesValue {
+ //
+ bytes value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ bytes default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message DoubleValue {
+ //
+ double value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ double default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message FloatValue {
+ //
+ float value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ float default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message Int32Value {
+ //
+ int32 value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ int32 default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message Int64Value {
+ //
+ int64 value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ int64 default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message StringValue {
+ //
+ string value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ string default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message UInt32Value {
+ //
+ uint32 value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ uint32 default_value = 3;
+ //
+ string exp = 4;
+}
+
+//
+message UInt64Value {
+ //
+ uint64 value = 1;
+ //
+ int64 last_modified = 2;
+ //
+ uint64 default_value = 3;
+ //
+ string exp = 4;
+}
+
diff --git a/grpc_api/bilibili/app/dynamic/common/dynamic.proto b/grpc_api/bilibili/app/dynamic/common/dynamic.proto
new file mode 100644
index 0000000..be54d7e
--- /dev/null
+++ b/grpc_api/bilibili/app/dynamic/common/dynamic.proto
@@ -0,0 +1,22 @@
+syntax = "proto3";
+
+package bilibili.app.dynamic.common;
+
+
+//
+message ItemWHRatio {
+ //
+ int32 ratio = 1;
+ //
+ int32 width = 2;
+ //
+ int32 height = 3;
+}
+
+//
+enum WHRatio {
+ W_H_RATIO_1_1 = 0;
+ W_H_RATIO_16_9 = 1;
+ W_H_RATIO_3_4 = 2;
+ W_H_RATIO_CUSTOM = 3;
+}
diff --git a/grpc_api/bilibili/app/dynamic/v2/campus.proto b/grpc_api/bilibili/app/dynamic/v2/campus.proto
new file mode 100644
index 0000000..1f94706
--- /dev/null
+++ b/grpc_api/bilibili/app/dynamic/v2/campus.proto
@@ -0,0 +1,66 @@
+
+syntax = "proto3";
+
+package bilibili.app.dynamic.v2;
+
+import "bilibili/app/archive/middleware/v1/preload.proto";
+import "bilibili/pagination/pagination.proto";
+import "bilibili/app/dynamic/common/dynamic.proto";
+import "bilibili/app/dynamic/v2/dynamic.proto";
+
+service Campus {
+ //
+ rpc WaterFlowRcmd (WaterFlowRcmdReq) returns (WaterFlowRcmdResp);
+}
+
+//
+message CampusWaterFlowItem {
+ //
+ int32 item_type = 1;
+ //
+ bilibili.app.dynamic.common.ItemWHRatio wh_ratio = 2;
+ //
+ oneof item {
+ WFItemDefault item_default = 3;
+ }
+}
+
+//
+message WaterFlowRcmdReq {
+ //
+ int64 campus_id = 1;
+ //
+ int32 page = 2;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
+ //
+ CampusRcmdReqFrom from = 4;
+}
+
+//
+message WaterFlowRcmdResp {
+ //
+ repeated CampusWaterFlowItem items = 1;
+ //
+ bilibili.pagination.FeedPaginationReply offset = 2;
+}
+
+//
+message WFItemDefault {
+ //
+ string title = 1;
+ //
+ string cover = 2;
+ //
+ CoverIconWithText bottom_left_1 = 3;
+ //
+ CoverIconWithText bottom_left_2 = 4;
+ //
+ CoverIconWithText bottom_right_1 = 5;
+ //
+ string uri = 6;
+ //
+ RcmdReason rcmd_reason = 7;
+ //
+ map annotations = 8;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/dynamic/v2/dynamic.proto b/grpc_api/bilibili/app/dynamic/v2/dynamic.proto
index 2cb1474..07e749e 100644
--- a/grpc_api/bilibili/app/dynamic/v2/dynamic.proto
+++ b/grpc_api/bilibili/app/dynamic/v2/dynamic.proto
@@ -4,101 +4,122 @@ package bilibili.app.dynamic.v2;
import "google/protobuf/any.proto";
import "bilibili/app/archive/middleware/v1/preload.proto";
+import "bilibili/dagw/component/avatar/v1/avatar.proto";
-// v2动态
+// v2动态, rpc 按字母顺序排列
service Dynamic {
- // 动态视频页
- rpc DynVideo(DynVideoReq) returns (DynVideoReply);
+ //
+ rpc AlumniDynamics (AlumniDynamicsReq) returns (AlumniDynamicsReply);
+ //
+ rpc CampusBillBoard (CampusBillBoardReq) returns (CampusBillBoardReply);
+ //
+ rpc CampusEntryTab(CampusEntryTabReq) returns (CampusEntryTabResp);
+ //
+ rpc CampusFeedback(CampusFeedbackReq) returns (CampusFeedbackReply);
+ //
+ rpc CampusHomePages(CampusHomePagesReq) returns (CampusHomePagesReply);
+ //
+ rpc CampusMateLikeList(CampusMateLikeListReq) returns (CampusMateLikeListReply);
+ //
+ rpc CampusMngDetail(CampusMngDetailReq) returns (CampusMngDetailReply);
+ //
+ rpc CampusMngQuizOperate(CampusMngQuizOperateReq) returns (CampusMngQuizOperateReply);
+ //
+ rpc CampusMngSubmit(CampusMngSubmitReq) returns (CampusMngSubmitReply);
+ //
+ rpc CampusRcmd(CampusRcmdReq) returns (CampusRcmdReply);
+ //
+ rpc CampusRcmdFeed(CampusRcmdFeedReq) returns (CampusRcmdFeedReply);
+ //
+ rpc CampusRecommend(CampusRecommendReq) returns (CampusRecommendReply);
+ //
+ rpc CampusRedDot(CampusRedDotReq) returns (CampusRedDotReply);
+ //
+ rpc CampusSquare(CampusSquareReq) returns (CampusSquareReply);
+ //
+ rpc CampusTopicRcmdFeed(CampusTopicRcmdFeedReq) returns (CampusTopicRcmdFeedReply);
+ // 动态通用附加卡-follow/取消follow
+ rpc DynAdditionCommonFollow(DynAdditionCommonFollowReq) returns (DynAdditionCommonFollowReply);
// 动态综合页
rpc DynAll(DynAllReq) returns (DynAllReply);
- // 批量动态id获取动态详情
- rpc DynDetails(DynDetailsReq) returns (DynDetailsReply);
- // 视频页最近访问 - 个人feed流
- rpc DynVideoPersonal(DynVideoPersonalReq) returns (DynVideoPersonalReply);
- // 视频页最近访问 - 标记已读
- rpc DynVideoUpdOffset(DynVideoUpdOffsetReq) returns (NoReply);
- // 动态通用附加卡-follow/取消follow
- rpc DynAdditionCommonFollow(DynAdditionCommonFollowReq) returns(DynAdditionCommonFollowReply);
- // 动态点赞
- rpc DynThumb(DynThumbReq) returns(NoReply);
- // 动态发布生成临时卡
- rpc DynFakeCard(DynFakeCardReq) returns(DynFakeCardReply);
- // 关注推荐up主换一换
- rpc DynRcmdUpExchange(DynRcmdUpExchangeReq) returns(DynRcmdUpExchangeReply);
// 综合页最近访问 - 个人feed流
rpc DynAllPersonal(DynAllPersonalReq) returns (DynAllPersonalReply);
// 综合页最近访问 - 标记已读
rpc DynAllUpdOffset(DynAllUpdOffsetReq) returns (NoReply);
- // 投票操作接口
- rpc DynVote(DynVoteReq) returns (DynVoteReply);
- // 网关调用 - 查看更多-列表
- rpc DynMixUpListViewMore(DynMixUpListViewMoreReq) returns (DynMixUpListViewMoreReply);
- // 轻浏览
- rpc DynLight(DynLightReq) returns (DynLightReply);
// 动态详情页
rpc DynDetail(DynDetailReq) returns (DynDetailReply);
- // 点赞列表
- rpc LikeList(LikeListReq) returns (LikeListReply);
- // 转发列表
- rpc RepostList(RepostListReq) returns (RepostListRsp);
- // 新版动态转发点赞列表 需要登录
- rpc ReactionList(ReactionListReq) returns (ReactionListReply);
+ // 批量动态id获取动态详情
+ rpc DynDetails(DynDetailsReq) returns (DynDetailsReply);
+ // 动态发布生成临时卡
+ rpc DynFakeCard(DynFakeCardReq) returns (DynFakeCardReply);
+ //
+ rpc DynFriend(DynFriendReq) returns (DynFriendReply);
+ // 轻浏览
+ rpc DynLight(DynLightReq) returns (DynLightReply);
+ // 网关调用 - 查看更多-列表
+ rpc DynMixUpListViewMore(DynMixUpListViewMoreReq) returns (DynMixUpListViewMoreReply);
+ // 关注推荐up主换一换
+ rpc DynRcmdUpExchange(DynRcmdUpExchangeReq) returns (DynRcmdUpExchangeReply);
+ //
+ rpc DynSearch(DynSearchReq) returns (DynSearchReply);
+ //
+ rpc DynServerDetails(DynServerDetailsReq) returns (DynServerDetailsReply);
// 空间页动态
rpc DynSpace(DynSpaceReq) returns (DynSpaceRsp);
+ //
+ rpc DynSpaceSearchDetails(DynSpaceSearchDetailsReq) returns (DynSpaceSearchDetailsReply);
+ //
+ rpc DynTab(DynTabReq) returns (DynTabReply);
+ // 动态点赞
+ rpc DynThumb(DynThumbReq) returns (NoReply);
// 未登录页分区UP主推荐
rpc DynUnLoginRcmd(DynRcmdReq) returns (DynRcmdReply);
- //
- rpc DynServerDetails (DynServerDetailsReq) returns (DynServerDetailsReply);
- //
- rpc DynSearch(DynSearchReq) returns (DynSearchReply);
- //
- rpc SetDecision(SetDecisionReq) returns (NoReply);
- //
- rpc AlumniDynamics(AlumniDynamicsReq) returns (AlumniDynamicsReply);
- //
- rpc CampusRcmd(CampusRcmdReq) returns (CampusRcmdReply);
- //
- rpc SubscribeCampus(SubscribeCampusReq) returns (NoReply);
- //
- rpc SetRecentCampus(SetRecentCampusReq) returns (NoReply);
- //
- rpc DynTab(DynTabReq) returns (DynTabReply);
- //
- rpc SchoolSearch(SchoolSearchReq) returns (SchoolSearchReply);
- //
- rpc SchoolRecommend(SchoolRecommendReq) returns (SchoolRecommendReply);
- //
- rpc DynSpaceSearchDetails(DynSpaceSearchDetailsReq) returns (DynSpaceSearchDetailsReply);
- //
+ // 动态视频页
+ rpc DynVideo(DynVideoReq) returns (DynVideoReply);
+ // 视频页最近访问 - 个人feed流
+ rpc DynVideoPersonal(DynVideoPersonalReq) returns (DynVideoPersonalReply);
+ // 视频页最近访问 - 标记已读
+ rpc DynVideoUpdOffset(DynVideoUpdOffsetReq) returns (NoReply);
+ //
+ rpc DynVote(DynVoteReq) returns (DynVoteReply);
+ //
+ rpc FeedFilter(FeedFilterReq) returns (FeedFilterReply);
+ //
+ rpc FetchTabSetting(NoReq) returns (FetchTabSettingReply);
+ //
+ rpc HomeSubscribe(HomeSubscribeReq) returns (HomeSubscribeReply);
+ //
+ rpc LbsPoi(LbsPoiReq) returns (LbsPoiReply);
+ //
+ rpc LegacyTopicFeed(LegacyTopicFeedReq) returns (LegacyTopicFeedReply);
+ // 点赞列表
+ rpc LikeList(LikeListReq) returns (LikeListReply);
+ //
rpc OfficialAccounts(OfficialAccountsReq) returns (OfficialAccountsReply);
- //
+ //
rpc OfficialDynamics(OfficialDynamicsReq) returns (OfficialDynamicsReply);
- //
- rpc CampusRedDot(CampusRedDotReq) returns (CampusRedDotReply);
- //
- rpc CampusRcmdFeed(CampusRcmdFeedReq) returns (CampusRcmdFeedReply);
- //
- rpc TopicSquare(TopicSquareReq) returns (TopicSquareReply);
- //
+ // 新版动态转发点赞列表 需要登录
+ rpc ReactionList(ReactionListReq) returns (ReactionListReply);
+ // 转发列表
+ rpc RepostList(RepostListReq) returns (RepostListRsp);
+ //
+ rpc SchoolRecommend(SchoolRecommendReq) returns (SchoolRecommendReply);
+ //
+ rpc SchoolSearch(SchoolSearchReq) returns (SchoolSearchReply);
+ //
+ rpc SetDecision(SetDecisionReq) returns (NoReply);
+ //
+ rpc SetRecentCampus(SetRecentCampusReq) returns (NoReply);
+ //
+ rpc SubscribeCampus(SubscribeCampusReq) returns (NoReply);
+ //
rpc TopicList(TopicListReq) returns (TopicListReply);
- //
- rpc CampusMateLikeList(CampusMateLikeListReq) returns (CampusMateLikeListReply);
- //
- rpc CampusFeedback(CampusFeedbackReq) returns (CampusFeedbackReply);
- //
- rpc CampusBillboard(CampusBillBoardReq) returns (CampusBillBoardReply);
- //
- rpc CampusBillboardInternal(CampusBillboardInternalReq) returns (CampusBillBoardReply);
- //
- rpc CampusTopicRcmdFeed(CampusTopicRcmdFeedReq) returns (CampusTopicRcmdFeedReply);
-}
-
-// 综合页请求广告所需字段,由客户端-网关透传
-message AdParam {
- // 综合页请求广告所需字段,由客户端-网关透传
- string ad_extra = 1;
- // request_id
- string request_id = 2;
+ //
+ rpc TopicSquare(TopicSquareReq) returns (TopicSquareReply);
+ //
+ rpc UnfollowMatch(UnfollowMatchReq) returns (NoReply);
+ //
+ rpc UpdateTabSetting(UpdateTabSettingReq) returns (NoReply);
}
//
@@ -115,309 +136,6 @@ enum AddButtonType {
bt_button = 2; // 按钮
}
-// 动态-附加卡-通用卡
-message AdditionCommon {
- // 头部说明文案
- string head_text = 1;
- // 标题
- string title = 2;
- // 展示图
- string image_url = 3;
- // 描述文字1
- string desc_text_1 = 4;
- // 描述文字2
- string desc_text_2 = 5;
- // 点击跳转链接
- string url = 6;
- // 按钮
- AdditionalButton button = 7;
- // 头部icon
- string head_icon = 8;
- // style
- ImageStyle style = 9;
- // 动态本身的类型 type
- string type = 10;
- // 附加卡类型
- string card_type = 11; // ogv manga
-}
-
-// 动态-附加卡-电竞卡
-message AdditionEsport {
- // 电竞类型
- EspaceStyle style = 1;
- oneof item {
- // moba类
- AdditionEsportMoba addition_esport_moba = 2;
- }
- // 动态本身的类型 type
- string type = 3;
- // 附加卡类型
- string card_type = 4; // ogv manga
-}
-
-// 动态-附加卡-电竞卡-moba类
-message AdditionEsportMoba {
- // 头部说明文案
- string head_text = 1;
- // 标题
- string title = 2;
- // 战队列表
- repeated MatchTeam match_team = 3;
- // 比赛信息
- AdditionEsportMobaStatus addition_esport_moba_status = 4;
- // 卡片跳转
- string uri = 5;
- // 按钮
- AdditionalButton button = 6;
- // 副标题
- string sub_title = 7;
- // 动态本身的类型 type
- string type = 10;
- // 附加卡类型
- string card_type = 11;
- // 附加卡图标
- string head_icon = 12;
-}
-
-// 动态-附加卡-电竞卡-moba类-比赛信息
-message AdditionEsportMobaStatus {
- // 文案类
- repeated AdditionEsportMobaStatusDesc addition_esport_moba_status_desc = 1;
- // 比赛状态文案
- string title = 2;
- // 比赛状态状态
- int32 status = 3;
- // 日间色值
- string color = 4;
- // 夜间色值
- string night_color = 5;
-}
-
-// 动态-附加卡-电竞卡-moba类-比赛信息-文案类
-message AdditionEsportMobaStatusDesc {
- // 文案
- string title = 1;
- // 日间色值
- string color = 2;
- // 夜间色值
- string night_color = 3;
-}
-
-// 动态-附加卡-商品卡
-message AdditionGoods {
- // 推荐文案
- string rcmd_desc = 1;
- // 商品信息
- repeated GoodsItem goods_items = 2;
- // 附加卡类型
- string card_type = 3;
- // 头部icon
- string icon = 4;
- // 商品附加卡整卡跳转
- string uri = 5;
- // 商品类型
- // 1:淘宝 2:会员购,注:实际是获取的goods_items里面的第一个source_type
- int32 source_type = 6;
-}
-
-// up主预约发布卡
-message AdditionUP {
- // 标题
- string title = 1;
- // 高亮文本,描述文字1
- HighlightText desc_text_1 = 2;
- // 描述文字2
- string desc_text_2 = 3;
- // 点击跳转链接
- string url = 4;
- // 按钮
- AdditionalButton button = 5;
- // 附加卡类型
- string card_type = 6;
- // 预约人数(用于预约人数变化)
- int64 reserve_total = 7;
- // 活动皮肤
- AdditionalActSkin act_skin = 8;
- // 预约id
- int64 rid = 9;
- //
- int32 lottery_type = 10;
- //
- HighlightText desc_text3 = 11;
- //
- int64 up_mid = 12;
- //
- AdditionUserInfo user_info = 13;
- //
- string dynamic_id = 14;
- //
- bool show_text2 = 15;
- //
- int64 dyn_type = 16;
- //
- string business_id = 17;
-}
-
-// 动态-附加卡-UGC视频附加卡
-message AdditionUgc {
- // 说明文案
- string head_text = 1;
- // 稿件标题
- string title = 2;
- // 封面
- string cover = 3;
- // 描述文字1
- string desc_text_1 = 4;
- // 描述文字2
- string desc_text_2 = 5;
- // 接秒开
- string uri = 6;
- // 时长
- string duration = 7;
- // 标题支持换行-标题支持单行和双行,本期不支持填充up昵称,支持双行展示,字段默认为true
- bool line_feed = 8;
- // 附加卡类型
- string card_type = 9;
-}
-
-//
-message AdditionUserInfo {
- //
- string name = 1;
- //
- string face = 2;
-}
-
-// 动态-附加卡-投票
-message AdditionVote {
- // 封面图
- string image_url = 1;
- // 标题
- string title = 2;
- // 展示项1
- string text_1 = 3;
- // button文案
- string button_text = 4;
- // 点击跳转链接
- string url = 5;
-}
-
-// 动态模块-投票
-message AdditionVote2 {
- // 投票类型
- AdditionVoteType addition_vote_type = 1;
- // 投票ID
- int64 vote_id = 2;
- // 标题
- string title = 3;
- // 已过期: xxx人参与· 投票已过期。button 展示去查看
- // 未过期: xxx人参与· 剩xx天xx时xx分。button展示去投票
- string label = 4;
- // 剩余时间
- int64 deadline = 5;
- // 生效文案
- string open_text = 6;
- // 过期文案
- string close_text = 7;
- // 已投票
- string voted_text = 8;
- // 投票状态
- AdditionVoteState state = 9;
- // 投票信息
- oneof item {
- //
- AdditionVoteWord addition_vote_word = 10;
- //
- AdditionVotePic addition_vote_pic = 11;
- //
- AdditionVoteDefaule addition_vote_defaule = 12;
- }
- // 业务类型
- // 0:动态投票 1:话题h5组件
- int32 biz_type = 13;
- // 投票总人数
- int64 total = 14;
- // 附加卡类型
- string card_type = 15;
- // 异常提示
- string tips = 16;
- // 跳转地址
- string uri = 17;
- // 是否投票
- bool is_voted = 18;
- // 投票最多多选个数,单选为1
- int32 choice_cnt = 19;
- // 是否默认选中分享到动态
- bool defaule_select_share = 20;
-}
-
-// 外露投票
-message AdditionVoteDefaule {
- // 图片 多张
- repeated string cover = 1;
-}
-
-// 外露图片类型
-message AdditionVotePic {
- // 图片投票详情
- repeated AdditionVotePicItem item = 1;
-}
-
-// 图片投票详情
-message AdditionVotePicItem {
- // 选项索引,从1开始
- int32 opt_idx = 1;
- // 图片
- string cover = 2;
- // 选中状态
- bool is_vote = 3;
- // 人数
- int32 total = 4;
- // 占比
- double persent = 5;
- // 标题文案
- string title = 6;
- // 是否投票人数最多的选项
- bool is_max_option = 7;
-}
-
-// 投票状态
-enum AdditionVoteState {
- addition_vote_state_none = 0; //
- addition_vote_state_open = 1; //
- addition_vote_state_close = 2; //
-}
-
-// 投票类型
-enum AdditionVoteType {
- addition_vote_type_none = 0; //
- addition_vote_type_word = 1; //
- addition_vote_type_pic = 2; //
- addition_vote_type_default = 3; //
-}
-
-// 外露文字类型
-message AdditionVoteWord {
- // 外露文字投票详情
- repeated AdditionVoteWordItem item = 1;
-}
-
-// 外露文字投票详情
-message AdditionVoteWordItem {
- // 选项索引,从1开始
- int32 opt_idx = 1;
- // 文案
- string title = 2;
- // 选中状态
- bool is_vote = 3;
- // 人数
- int32 total = 4;
- // 占比
- double persent = 5;
- // 是否投票人数最多的选项
- bool is_max_option = 6;
-}
-
// 活动皮肤
message AdditionalActSkin {
// 动画SVGA资源
@@ -543,6 +261,362 @@ enum AdditionalType {
additional_type_up_reservation = 8; // UP主预约卡
}
+// 动态-附加卡-专栏
+message AdditionArticle {
+ //
+ string title = 1;
+ //
+ MdlDynDrawItem cover = 2;
+ //
+ string desc_text_left = 3;
+ //
+ string desc_text_right = 4;
+ //
+ string uri = 5;
+ //
+ string card_type = 6;
+}
+
+// 动态-附加卡-通用卡
+message AdditionCommon {
+ // 头部说明文案
+ string head_text = 1;
+ // 标题
+ string title = 2;
+ // 展示图
+ string image_url = 3;
+ // 描述文字1
+ string desc_text_1 = 4;
+ // 描述文字2
+ string desc_text_2 = 5;
+ // 点击跳转链接
+ string url = 6;
+ // 按钮
+ AdditionalButton button = 7;
+ // 头部icon
+ string head_icon = 8;
+ // style
+ ImageStyle style = 9;
+ // 动态本身的类型 type
+ string type = 10;
+ // 附加卡类型
+ string card_type = 11; // ogv manga
+}
+
+// 动态-附加卡-电竞卡
+message AdditionEsport {
+ // 电竞类型
+ EspaceStyle style = 1;
+ oneof item {
+ // moba类
+ AdditionEsportMoba addition_esport_moba = 2;
+ }
+ // 动态本身的类型 type
+ string type = 3;
+ // 附加卡类型
+ string card_type = 4; // ogv manga
+}
+
+// 动态-附加卡-电竞卡-moba类
+message AdditionEsportMoba {
+ // 头部说明文案
+ string head_text = 1;
+ // 标题
+ string title = 2;
+ // 战队列表
+ repeated MatchTeam match_team = 3;
+ // 比赛信息
+ AdditionEsportMobaStatus addition_esport_moba_status = 4;
+ // 卡片跳转
+ string uri = 5;
+ // 按钮
+ AdditionalButton button = 6;
+ // 副标题
+ string sub_title = 7;
+ // 动态本身的类型 type
+ string type = 10;
+ // 附加卡类型
+ string card_type = 11;
+ // 附加卡图标
+ string head_icon = 12;
+}
+
+// 动态-附加卡-电竞卡-moba类-比赛信息
+message AdditionEsportMobaStatus {
+ // 文案类
+ repeated AdditionEsportMobaStatusDesc addition_esport_moba_status_desc = 1;
+ // 比赛状态文案
+ string title = 2;
+ // 比赛状态状态
+ int32 status = 3;
+ // 日间色值
+ string color = 4;
+ // 夜间色值
+ string night_color = 5;
+}
+
+// 动态-附加卡-电竞卡-moba类-比赛信息-文案类
+message AdditionEsportMobaStatusDesc {
+ // 文案
+ string title = 1;
+ // 日间色值
+ string color = 2;
+ // 夜间色值
+ string night_color = 3;
+}
+
+// 动态-附加卡-商品卡
+message AdditionGoods {
+ // 推荐文案
+ string rcmd_desc = 1;
+ // 商品信息
+ repeated GoodsItem goods_items = 2;
+ // 附加卡类型
+ string card_type = 3;
+ // 头部icon
+ string icon = 4;
+ // 商品附加卡整卡跳转
+ string uri = 5;
+ // 商品类型
+ // 1:淘宝 2:会员购,注:实际是获取的goods_items里面的第一个source_type
+ int32 source_type = 6;
+ //
+ int32 jump_type = 7;
+ //
+ string app_name = 8;
+ //
+ string ad_mark_icon = 9;
+}
+
+// 动态-附加卡-直播附加卡
+message AdditionLiveRoom {
+ //
+ string title = 1;
+ //
+ string cover = 2;
+ //
+ VideoBadge badge = 3;
+ //
+ CoverIconWithText desc_text_upper = 4;
+ //
+ string desc_text_lower = 5;
+ //
+ string uri = 6;
+ //
+ string card_type = 7;
+}
+
+// 动态-附加卡-UGC视频附加卡
+message AdditionUgc {
+ // 说明文案
+ string head_text = 1;
+ // 稿件标题
+ string title = 2;
+ // 封面
+ string cover = 3;
+ // 描述文字1
+ string desc_text_1 = 4;
+ // 描述文字2
+ string desc_text_2 = 5;
+ // 接秒开
+ string uri = 6;
+ // 时长
+ string duration = 7;
+ // 标题支持换行-标题支持单行和双行,本期不支持填充up昵称,支持双行展示,字段默认为true
+ bool line_feed = 8;
+ // 附加卡类型
+ string card_type = 9;
+}
+
+// up主预约发布卡
+message AdditionUP {
+ // 标题
+ string title = 1;
+ // 高亮文本,描述文字1
+ HighlightText desc_text_1 = 2;
+ // 描述文字2
+ string desc_text_2 = 3;
+ // 点击跳转链接
+ string url = 4;
+ // 按钮
+ AdditionalButton button = 5;
+ // 附加卡类型
+ string card_type = 6;
+ // 预约人数(用于预约人数变化)
+ int64 reserve_total = 7;
+ // 活动皮肤
+ AdditionalActSkin act_skin = 8;
+ // 预约id
+ int64 rid = 9;
+ //
+ int32 lottery_type = 10;
+ //
+ HighlightText desc_text3 = 11;
+ //
+ int64 up_mid = 12;
+ //
+ AdditionUserInfo user_info = 13;
+ //
+ string dynamic_id = 14;
+ //
+ bool show_text2 = 15;
+ //
+ int64 dyn_type = 16;
+ //
+ string business_id = 17;
+ //
+ string badge_text = 18;
+ //
+ bool is_premiere = 19;
+}
+
+//
+message AdditionUserInfo {
+ //
+ string name = 1;
+ //
+ string face = 2;
+}
+
+// 动态-附加卡-投票
+message AdditionVote {
+ // 封面图
+ string image_url = 1;
+ // 标题
+ string title = 2;
+ // 展示项1
+ string text_1 = 3;
+ // button文案
+ string button_text = 4;
+ // 点击跳转链接
+ string url = 5;
+}
+
+// 动态模块-投票
+message AdditionVote2 {
+ // 投票类型
+ AdditionVoteType addition_vote_type = 1;
+ // 投票ID
+ int64 vote_id = 2;
+ // 标题
+ string title = 3;
+ // 已过期: xxx人参与· 投票已过期。button 展示去查看
+ // 未过期: xxx人参与· 剩xx天xx时xx分。button展示去投票
+ string label = 4;
+ // 剩余时间
+ int64 deadline = 5;
+ // 生效文案
+ string open_text = 6;
+ // 过期文案
+ string close_text = 7;
+ // 已投票
+ string voted_text = 8;
+ // 投票状态
+ AdditionVoteState state = 9;
+ // 投票信息
+ oneof item {
+ //
+ AdditionVoteWord addition_vote_word = 10;
+ //
+ AdditionVotePic addition_vote_pic = 11;
+ //
+ AdditionVoteDefaule addition_vote_defaule = 12;
+ }
+ // 业务类型
+ // 0:动态投票 1:话题h5组件
+ int32 biz_type = 13;
+ // 投票总人数
+ int64 total = 14;
+ // 附加卡类型
+ string card_type = 15;
+ // 异常提示
+ string tips = 16;
+ // 跳转地址
+ string uri = 17;
+ // 是否投票
+ bool is_voted = 18;
+ // 投票最多多选个数,单选为1
+ int32 choice_cnt = 19;
+ // 是否默认选中分享到动态
+ bool defaule_select_share = 20;
+}
+
+// 外露投票
+message AdditionVoteDefaule {
+ // 图片 多张
+ repeated string cover = 1;
+}
+
+// 外露图片类型
+message AdditionVotePic {
+ // 图片投票详情
+ repeated AdditionVotePicItem item = 1;
+}
+
+// 图片投票详情
+message AdditionVotePicItem {
+ // 选项索引,从1开始
+ int32 opt_idx = 1;
+ // 图片
+ string cover = 2;
+ // 选中状态
+ bool is_vote = 3;
+ // 人数
+ int32 total = 4;
+ // 占比
+ double persent = 5;
+ // 标题文案
+ string title = 6;
+ // 是否投票人数最多的选项
+ bool is_max_option = 7;
+}
+
+// 投票状态
+enum AdditionVoteState {
+ addition_vote_state_none = 0; //
+ addition_vote_state_open = 1; //
+ addition_vote_state_close = 2; //
+}
+
+// 投票类型
+enum AdditionVoteType {
+ addition_vote_type_none = 0; //
+ addition_vote_type_word = 1; //
+ addition_vote_type_pic = 2; //
+ addition_vote_type_default = 3; //
+}
+
+
+// 外露文字类型
+message AdditionVoteWord {
+ // 外露文字投票详情
+ repeated AdditionVoteWordItem item = 1;
+}
+
+// 外露文字投票详情
+message AdditionVoteWordItem {
+ // 选项索引,从1开始
+ int32 opt_idx = 1;
+ // 文案
+ string title = 2;
+ // 选中状态
+ bool is_vote = 3;
+ // 人数
+ int32 total = 4;
+ // 占比
+ double persent = 5;
+ // 是否投票人数最多的选项
+ bool is_max_option = 6;
+}
+
+// 综合页请求广告所需字段,由客户端-网关透传
+message AdParam {
+ // 综合页请求广告所需字段,由客户端-网关透传
+ string ad_extra = 1;
+ // request_id
+ string request_id = 2;
+}
+
//
message AlumniDynamicsReply {
//
@@ -563,6 +637,8 @@ message AlumniDynamicsReq {
int32 local_time = 4;
//
int32 page = 5;
+ //
+ int32 from_type = 6;
}
//
@@ -573,6 +649,16 @@ message CampusBannerInfo {
string jump_url = 2;
}
+//
+message CampusBillboardInternalReq {
+ //
+ int64 mid = 1;
+ //
+ int64 campus_id = 2;
+ //
+ string version_code = 3;
+}
+
//
message CampusBillBoardReply {
//
@@ -595,6 +681,8 @@ message CampusBillBoardReply {
string update_toast = 9;
//
int64 campus_id = 10;
+ //
+ CampusFeatureProgress open_progress = 11;
}
//
@@ -605,16 +693,44 @@ message CampusBillBoardReq {
string version_code = 2;
//
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
+ //
+ CampusReqFromType from_type = 4;
}
-//
-message CampusBillboardInternalReq {
- //
- int64 mid = 1;
- //
- int64 campus_id = 2;
- //
- string version_code = 3;
+//
+message CampusEntryTabReq {
+ //
+ int64 campus_id = 1;
+}
+
+//
+message CampusEntryTabResp {
+ //
+ CampusEntryType entry_type = 1;
+}
+
+//
+enum CampusEntryType {
+ //
+ NONE = 0;
+ //
+ ENTRY_DYNAMIC = 1;
+ //
+ ENTRY_HOME = 2;
+}
+
+//
+message CampusFeatureProgress {
+ //
+ int64 progress_full = 1;
+ //
+ int64 progress_achieved = 2;
+ //
+ string desc_title = 3;
+ //
+ string desc_1 = 4;
+ //
+ CampusLabel btn = 5;
}
//
@@ -643,6 +759,60 @@ message CampusFeedbackReq {
int32 from = 2;
}
+//
+message CampusHomePagesReply {
+ //
+ CampusRcmdTop top = 1;
+ //
+ CampusTop campus_top = 2;
+ //
+ int32 page_type = 3;
+}
+
+//
+message CampusHomePagesReq {
+ //
+ int64 campus_id = 1;
+ //
+ string campus_name = 2;
+ //
+ double lat = 3;
+ //
+ double lng = 4;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 5;
+ //
+ int32 page_type = 6;
+}
+
+//
+enum CampusRcmdReqFrom {
+ CAMPUS_RCMD_FROM_UNKNOWN = 0;
+ CAMPUS_RCMD_FROM_HOME_UN_OPEN = 1;
+ CAMPUS_RCMD_FROM_VISIT_OTHER = 2;
+ CAMPUS_RCMD_FROM_HOME_MOMENT = 3;
+ CAMPUS_RCMD_FROM_DYN_MOMENT = 4;
+ CAMPUS_RCMD_FROM_PAGE_SUBORDINATE_MOMENT = 5;
+}
+
+//
+enum CampusHomePageType {
+ //
+ PAGE_MAJOR = 0;
+ //
+ PAGE_SUBORDINATE = 1;
+ //
+ PAGE_MAJOR_DETAIL = 2;
+}
+
+//
+message CampusHomeRcmdTopic {
+ //
+ ModuleTitle title = 1;
+ //
+ repeated TopicItem topic = 2;
+}
+
//
message CampusInfo {
//
@@ -653,6 +823,8 @@ message CampusInfo {
string desc = 3;
//
int64 online = 4;
+ //
+ string url = 5;
}
//
@@ -675,6 +847,181 @@ message CampusMateLikeListReply {
message CampusMateLikeListReq {
//
int64 dynamic_id = 1;
+ //
+ CampusReqFromType from_type = 2;
+}
+
+//
+enum CampusMngAuditStatus {
+ //
+ campus_mng_audit_none = 0;
+ //
+ campus_mng_audit_in_process = 1;
+ //
+ campus_mng_audit_failed = 2;
+}
+
+//
+message CampusMngBadge {
+ //
+ string title = 1;
+ //
+ string badge_url = 2;
+ //
+ string upload_hint_msg = 3;
+}
+
+//
+message CampusMngBasicInfo {
+ //
+ int64 campus_id = 1;
+ //
+ string campus_name = 2;
+ //
+ string hint_msg = 3;
+}
+
+//
+message CampusMngDetailReply {
+ //
+ repeated CampusMngItem items = 1;
+ //
+ string top_hint_bar_msg = 2;
+ //
+ string bottom_submit_hint_msg = 3;
+ //
+ int64 campus_id = 4;
+ //
+ string campus_name = 5;
+}
+
+//
+message CampusMngDetailReq {
+ //
+ int64 campus_id = 1;
+}
+
+//
+message CampusMngItem {
+ //
+ int32 audit_status = 1;
+ //
+ string audit_message = 2;
+ //
+ int32 item_type = 3;
+ //
+ string mng_item_id = 4;
+ //
+ bool is_del = 5;
+ // Oneof field:
+ oneof item {
+ //
+ CampusMngBasicInfo basic_info = 6;
+ //
+ CampusMngBadge badge = 7;
+ //
+ string slogan = 8;
+ //
+ CampusMngQuiz quiz = 9;
+ }
+}
+
+//
+enum CampusMngItemType {
+ //
+ campus_mng_none = 0;
+ //
+ campus_mng_basic_info = 1;
+ //
+ campus_mng_badge = 2;
+ //
+ campus_mng_slogan = 3;
+ //
+ campus_mng_quiz = 4;
+}
+
+//
+message CampusMngQuiz {
+ //
+ string title = 1;
+ //
+ CampusLabel more_label = 2;
+ //
+ string add_label = 3;
+ //
+ string submit_label = 4;
+ //
+ int64 quiz_count = 5;
+}
+
+//
+enum CampusMngQuizAction {
+ //
+ campus_mng_quiz_act_list = 0;
+ //
+ campus_mng_quiz_act_add = 1;
+ //
+ campus_mng_quiz_act_del = 2;
+}
+
+//
+message CampusMngQuizDetail {
+ //
+ int64 quiz_id = 1;
+ //
+ string question = 2;
+ //
+ string correct_answer = 3;
+ //
+ repeated string wrong_answer_list = 4;
+ //
+ int32 audit_status = 5;
+ //
+ string audit_message = 6;
+}
+
+//
+message CampusMngQuizOperateReply {
+ //
+ string toast = 1;
+ //
+ repeated CampusMngQuizDetail quiz = 2;
+ //
+ int64 quiz_total = 3;
+}
+
+//
+message CampusMngQuizOperateReq {
+ //
+ int32 action = 1;
+ //
+ int64 campus_id = 2;
+ //
+ repeated CampusMngQuizDetail quiz = 3;
+}
+
+//
+message CampusMngSlogan {
+ //
+ string title = 1;
+ //
+ string slogan = 2;
+ //
+ string input_hint_msg = 3;
+}
+
+//
+message CampusMngSubmitReply {
+ //
+ string toast = 1;
+}
+
+//
+message CampusMngSubmitReq {
+ //
+ int64 campus_id = 1;
+ //
+ repeated CampusMngItem modified_items = 2;
}
//
@@ -687,6 +1034,14 @@ message CampusNoticeInfo {
CampusLabel button = 3;
}
+//
+enum CampusOnlineStatus {
+ //
+ campus_online_offline = 0;
+ //
+ campus_online_online = 1;
+}
+
//
message CampusRcmdFeedReply {
//
@@ -717,6 +1072,8 @@ message CampusRcmdFeedReq {
int32 scroll = 6;
//
string view_dyn_id = 7;
+ //
+ CampusReqFromType from_type = 8;
}
//
@@ -749,6 +1106,8 @@ message CampusRcmdReply {
CampusTop campus_top = 3;
//
int32 page_type = 4;
+ //
+ int32 jump_home_pop = 5;
}
//
@@ -763,6 +1122,10 @@ message CampusRcmdReq {
double lng = 4;
//
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 5;
+ //
+ CampusReqFromType from_type = 6;
+ //
+ CampusHomePageType page_type = 7;
}
//
@@ -793,6 +1156,38 @@ message CampusRcmdTop {
CampusLabel reserve_label = 12;
//
int64 reserve_number = 13;
+ //
+ int64 max_reserve = 14;
+ //
+ CampusLabel school_label = 15;
+ //
+ CampusLabel mng_label = 16;
+ //
+ CampusHomeRcmdTopic rcmd_topic = 17;
+ //
+ bool audit_before_open = 18;
+ //
+ string audit_message = 19;
+}
+
+//
+message CampusRecommendReply {
+ //
+ repeated RcmdItem items = 1;
+ //
+ bool has_more = 2;
+}
+
+//
+message CampusRecommendReq {
+ //
+ int64 campus_id = 1;
+ //
+ int64 page_no = 2;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
+ //
+ CampusRcmdReqFrom from = 4;
}
//
@@ -805,6 +1200,16 @@ message CampusRedDotReply {
message CampusRedDotReq {
//
int64 campus_id = 1;
+ //
+ CampusReqFromType from_type = 2;
+}
+
+//
+enum CampusReqFromType {
+ //
+ DYNAMIC = 0;
+ //
+ HOME = 1;
}
//
@@ -817,6 +1222,28 @@ message CampusShowTabInfo {
int32 type = 3;
//
int32 red_dot = 4;
+ //
+ string icon_url = 5;
+}
+
+//
+message CampusSquareReply {
+ //
+ string title = 1;
+ //
+ repeated RcmdCampusBrief list = 2;
+ //
+ CampusLabel button = 3;
+}
+
+//
+message CampusSquareReq {
+ //
+ int64 campus_id = 1;
+ //
+ double lat = 2;
+ //
+ double lng = 3;
}
//
@@ -827,6 +1254,7 @@ enum CampusTabType {
campus_account = 3; //
campus_billboard = 4; //
campus_topic = 5; //
+ campues_other = 6; //
}
//
@@ -853,6 +1281,16 @@ message CampusTop {
string campus_badge = 10;
//
string campus_background = 11;
+ //
+ string campus_motto = 12;
+ //
+ CampusLabel mng_entry = 13;
+ //
+ string campus_intro = 14;
+ //
+ string campus_name_link = 15;
+ //
+ string bottom_left_text = 16;
}
//
@@ -865,6 +1303,8 @@ message CampusTopicRcmdFeedReply {
bool has_more = 3;
//
string offset = 4;
+ //
+ IconButton join_discuss = 5;
}
//
@@ -877,6 +1317,18 @@ message CampusTopicRcmdFeedReq {
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
//
int32 local_time = 4;
+ //
+ CampusReqFromType from_type = 5;
+}
+
+//
+message CardParagraph {
+ //
+ ModuleAdditional additional_card = 1;
+ //
+ string biz_id = 3;
+ //
+ LinkNodeType biz_type = 2;
}
// 动态卡片列表
@@ -921,6 +1373,8 @@ message CardVideoUpList {
bool show_in_personal = 8;
// 是否展示右侧查看更多按钮
bool show_more_button = 9;
+ //
+ repeated UpListItem list_second = 10;
}
//
@@ -955,6 +1409,14 @@ message CmtShowItem {
string comment = 4;
}
+//
+message Colors {
+ //
+ string color_day = 1;
+ //
+ string color_night = 2;
+}
+
// 精选评论区
message CommentDetail {
// 该功能能不能用
@@ -964,10 +1426,29 @@ message CommentDetail {
int64 status = 2;
}
+//
+message Config {
+ //
+ bool story_vertical_exp = 1;
+ //
+ int64 detail_view_bits = 2;
+}
+
//
enum CoverIcon {
- cover_icon_none = 0; // 占位 啥都不展示
- cover_icon_play = 1; // 播放icon
+ cover_icon_none = 0; // 占位 啥都不展示
+ cover_icon_play = 1; // 播放icon
+ cover_icon_danmaku = 2; //
+ cover_icon_up = 3; //
+ cover_icon_vt = 4; // ? 竖屏模式 icon
+}
+
+//
+message CoverIconWithText {
+ //
+ int32 icon = 1;
+ //
+ string text = 2;
}
// 装扮卡片-粉丝勋章信息
@@ -994,29 +1475,6 @@ message DecorateCard {
DecoCardFan fan = 4;
}
-// 文本类型
-enum DescType {
- desc_type_none = 0; // 占位
- desc_type_text = 1; // 文本
- desc_type_aite = 2; // @
- desc_type_lottery = 3; // 抽奖
- desc_type_vote = 4; // 投票
- desc_type_topic = 5; // 话题
- desc_type_goods = 6; // 商品
- desc_type_bv = 7; // bv
- desc_type_av = 8; // av
- desc_type_emoji = 9; // 表情
- desc_type_user = 10; // 外露用户
- desc_type_cv = 11; // 专栏
- desc_type_vc = 12; // 小视频
- desc_type_web = 13; // 网址
- desc_type_taobao = 14; // 淘宝
- desc_type_mail = 15; // 邮箱
- desc_type_ogv_season = 16; // 番剧season
- desc_type_ogv_ep = 17; // 番剧ep
- desc_type_search_word = 18; //
-}
-
// 文本描述
message Description {
// 文本内容
@@ -1041,8 +1499,34 @@ message Description {
string orig_text = 10;
//
int32 emoji_size = 11;
+ //
+ EmojiSizeSpec emoji_size_spec = 12;
}
+// 文本类型
+enum DescType {
+ desc_type_none = 0; // 占位
+ desc_type_text = 1; // 文本
+ desc_type_aite = 2; // @
+ desc_type_lottery = 3; // 抽奖
+ desc_type_vote = 4; // 投票
+ desc_type_topic = 5; // 话题
+ desc_type_goods = 6; // 商品
+ desc_type_bv = 7; // bv
+ desc_type_av = 8; // av
+ desc_type_emoji = 9; // 表情
+ desc_type_user = 10; // 外露用户
+ desc_type_cv = 11; // 专栏
+ desc_type_vc = 12; // 小视频
+ desc_type_web = 13; // 网址
+ desc_type_taobao = 14; // 淘宝
+ desc_type_mail = 15; // 邮箱
+ desc_type_ogv_season = 16; // 番剧season
+ desc_type_ogv_ep = 17; // 番剧ep
+ desc_type_search_word = 18; //
+}
+
+
// 尺寸信息
message Dimension {
//
@@ -1089,6 +1573,10 @@ message DynAllPersonalReply {
Relation relation = 5;
// 顶部预约卡
TopAdditionUP addition_up = 6;
+ //
+ string title = 7;
+ //
+ string title_sub = 8;
}
// 最近访问-个人feed流列表-请求
@@ -1111,6 +1599,8 @@ message DynAllPersonalReq {
string from = 8;
// 秒开用
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
+ //
+ string personal_extra = 10;
}
// 动态综合页-响应
@@ -1125,6 +1615,8 @@ message DynAllReply {
Unfollow unfollow = 4;
// 分区UP推荐
DynRegionRcmd region_rcmd = 5;
+ //
+ Config config = 6;
}
// 动态综合页-请求
@@ -1167,6 +1659,71 @@ message DynAllUpdOffsetReq {
string read_offset = 2;
// 服务端生成的透传上报字段
string footprint = 3;
+ //
+ string personal_extra = 4;
+}
+
+
+// 动态卡片
+message DynamicItem {
+ // 动态卡片类型
+ DynamicType card_type = 1;
+ // 转发类型下,源卡片类型
+ DynamicType item_type = 2;
+ // 模块内容
+ repeated Module modules = 3;
+ // 操作相关字段
+ Extend extend = 4;
+ // 该卡片下面是否含有折叠卡
+ int32 has_fold = 5;
+ // 透传到客户端的埋点字段。
+ string server_info = 6;
+}
+
+//动态卡片列表
+message DynamicList {
+ // 动态列表
+ repeated DynamicItem list = 1;
+ // 更新的动态数
+ int64 update_num = 2;
+ // 历史偏移
+ string history_offset = 3;
+ // 更新基础信息
+ string update_baseline = 4;
+ // 是否还有更多数据
+ bool has_more = 5;
+}
+
+// 枚举-动态类型
+enum DynamicType {
+ dyn_none = 0; // 占位
+ forward = 1; // 转发
+ av = 2; // 稿件: ugc、小视频、短视频、UGC转PGC
+ pgc = 3; // pgc:番剧、PGC番剧、PGC电影、PGC电视剧、PGC国创、PGC纪录片
+ courses = 4; // 付费更新批次
+ fold = 5; // 折叠
+ word = 6; // 纯文字
+ draw = 7; // 图文
+ article = 8; // 专栏 原仅phone端
+ music = 9; // 音频 原仅phone端
+ common_square = 10; // 通用卡 方形
+ common_vertical = 11; // 通用卡 竖形
+ live = 12; // 直播卡 只有转发态
+ medialist = 13; // 播单 原仅phone端 只有转发态
+ courses_season = 14; // 付费更新批次 只有转发态
+ ad = 15; // 广告卡
+ applet = 16; // 小程序卡
+ subscription = 17; // 订阅卡
+ live_rcmd = 18; // 直播推荐卡
+ banner = 19; // 通栏
+ ugc_season = 20; // 合集卡
+ subscription_new = 21; // 新订阅卡
+ story = 22; //
+ topic_rcmd = 23; //
+ cour_up = 24; //
+ topic_set = 25; //
+ notice = 26; //
+ text_notice = 27; //
}
// 动态详情页-响应
@@ -1200,6 +1757,8 @@ message DynDetailReq {
int32 local_time = 10;
// pattern
string pattern = 11;
+ //
+ Config config = 12;
}
// 批量动态id获取动态详情-响应
@@ -1218,6 +1777,8 @@ message DynDetailsReq {
int32 local_time = 3;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
+ //
+ Config config = 5;
}
// 动态小卡类型
@@ -1245,6 +1806,32 @@ message DynFakeCardReq {
string content = 1;
}
+//
+message DynFeatureGate {
+ //
+ bool enhanced_interaction = 1;
+}
+
+//
+message DynFriendReply {
+ //
+ repeated DynamicItem dyn_list = 1;
+ //
+ bool has_more = 2;
+ //
+ string offset = 3;
+}
+
+//
+message DynFriendReq {
+ //
+ string offset = 1;
+ //
+ int32 local_time = 2;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
+}
+
// 轻浏览-响应
message DynLightReply {
// 卡片列表
@@ -1320,6 +1907,14 @@ enum DynModuleType {
module_top_tag = 25; //
module_topic_brief = 26; //
module_title = 27; //
+ module_button = 28;
+ module_notice = 29;
+ module_opus_summary = 30;
+ module_copyright = 31;
+ module_paragraph = 32;
+ module_blocked = 33;
+ module_text_notice = 34;
+ module_opus_collection = 35;
}
// 推荐页-响应
@@ -1376,6 +1971,22 @@ message DynRegionRcmdItem {
repeated ModuleRcmd items = 3;
}
+//
+message DynScreenTab {
+ //
+ string title = 1;
+ //
+ string name = 2;
+ //
+ bool default_tab = 3;
+ //
+ bool strategy_show_on_entrance = 4;
+ //
+ bool strategy_show_on_refresh = 5;
+ //
+ bool strategy_show_on_pull_up = 6;
+}
+
//
message DynSearchReply {
//
@@ -1424,6 +2035,8 @@ message DynServerDetailsReq {
string platform = 9;
//
bool is_master = 10;
+ //
+ repeated int64 top_dynamic_ids = 11;
}
// 空间页动态-请求
@@ -1520,12 +2133,16 @@ message DynTab {
message DynTabReply {
//
repeated DynTab dyn_tab = 1;
+ //
+ repeated DynScreenTab screen_tab = 2;
}
//
message DynTabReq {
//
int32 teenagers_mode = 1;
+ //
+ CampusReqFromType from_type = 2;
}
// 动态点赞-请求
@@ -1542,13 +2159,6 @@ message DynThumbReq {
ThumbType type = 5;
}
-//
-enum DynUriType {
- dyn_uri_type_none = 0; //
- dyn_uri_type_direct = 1; // 直接跳转对应uri
- dyn_uri_type_suffix = 2; // 作为后缀拼接
-}
-
// 最近访问-个人feed流列表-响应
message DynVideoPersonalReply {
// 动态列表
@@ -1563,6 +2173,10 @@ message DynVideoPersonalReply {
Relation relation = 5;
// 顶部预约卡
TopAdditionUP addition_up = 6;
+ //
+ string title = 7;
+ //
+ string title_sub = 8;
}
// 最近访问-个人feed流列表-请求
@@ -1585,6 +2199,10 @@ message DynVideoPersonalReq {
string from = 8;
// 秒开参数
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 9;
+ //
+ int64 pegasus_avid = 10;
+ //
+ string personal_extra = 11;
}
// 动态视频页-响应
@@ -1628,6 +2246,8 @@ message DynVideoUpdOffsetReq {
string read_offset = 2;
// 服务端生成的透传上报字段
string footprint = 3;
+ //
+ string personal_extra = 4;
}
// 投票操作-响应
@@ -1652,62 +2272,10 @@ message DynVoteReq {
bool share = 5;
}
-// 动态卡片
-message DynamicItem {
- // 动态卡片类型
- DynamicType card_type = 1;
- // 转发类型下,源卡片类型
- DynamicType item_type = 2;
- // 模块内容
- repeated Module modules = 3;
- // 操作相关字段
- Extend extend = 4;
- // 该卡片下面是否含有折叠卡
- int32 has_fold = 5;
- // 透传到客户端的埋点字段。
- string server_info = 6;
-}
-
-//动态卡片列表
-message DynamicList {
- // 动态列表
- repeated DynamicItem list = 1;
- // 更新的动态数
- int64 update_num = 2;
- // 历史偏移
- string history_offset = 3;
- // 更新基础信息
- string update_baseline = 4;
- // 是否还有更多数据
- bool has_more = 5;
-}
-
-// 枚举-动态类型
-enum DynamicType {
- dyn_none = 0; // 占位
- forward = 1; // 转发
- av = 2; // 稿件: ugc、小视频、短视频、UGC转PGC
- pgc = 3; // pgc:番剧、PGC番剧、PGC电影、PGC电视剧、PGC国创、PGC纪录片
- courses = 4; // 付费更新批次
- fold = 5; // 折叠
- word = 6; // 纯文字
- draw = 7; // 图文
- article = 8; // 专栏 原仅phone端
- music = 9; // 音频 原仅phone端
- common_square = 10; // 通用卡 方形
- common_vertical = 11; // 通用卡 竖形
- live = 12; // 直播卡 只有转发态
- medialist = 13; // 播单 原仅phone端 只有转发态
- courses_season = 14; // 付费更新批次 只有转发态
- ad = 15; // 广告卡
- applet = 16; // 小程序卡
- subscription = 17; // 订阅卡
- live_rcmd = 18; // 直播推荐卡
- banner = 19; // 通栏
- ugc_season = 20; // 合集卡
- subscription_new = 21; // 新订阅卡
- story = 22; //
- topic_rcmd = 23; //
+//
+message EmojiSizeSpec {
+ //
+ int64 width = 1;
}
// 表情包类型
@@ -1718,11 +2286,101 @@ enum EmojiType {
vip = 3; // 大会员表情
}
+//
+message EmoteNode {
+ //
+ string emote_url = 2;
+ //
+ EmoteSize emote_width = 3;
+ //
+ ImgInlineCfg inline_img_cfg = 5;
+ //
+ bool is_inline_img = 4;
+ //
+ WordNode raw_text = 1;
+}
+
+//
+message EmoteSize {
+ //
+ double width = 1;
+ //
+ int32 emoji_size = 2;
+}
+
// 附加大卡-电竞卡样式
enum EspaceStyle {
moba = 0; // moba类
}
+// 扩展字段,用于动态部分操作使用
+message Extend {
+ // 动态id
+ string dyn_id_str = 1;
+ // 业务方id
+ string business_id = 2;
+ // 源动态id
+ string orig_dyn_id_str = 3;
+ // 转发卡:用户名
+ string orig_name = 4;
+ // 转发卡:图片url
+ string orig_img_url = 5;
+ // 转发卡:文字内容
+ repeated Description orig_desc = 6;
+ // 填充文字内容
+ repeated Description desc = 7;
+ // 被转发的源动态类型
+ DynamicType orig_dyn_type = 8;
+ // 分享到站外展示类型
+ string share_type = 9;
+ // 分享的场景
+ string share_scene = 10;
+ // 是否快速转发
+ bool is_fast_share = 11;
+ // r_type 分享和转发
+ int32 r_type = 12;
+ // 数据源的动态类型
+ int64 dyn_type = 13;
+ // 用户id
+ int64 uid = 14;
+ // 卡片跳转
+ string card_url = 15;
+ // 透传字段
+ google.protobuf.Any source_content = 16;
+ // 转发卡:用户头像
+ string orig_face = 17;
+ // 评论跳转
+ ExtendReply reply = 18;
+ //
+ string track_id = 19;
+ //
+ ModuleOpusSummary opus_summary = 20;
+ //
+ OnlyFansProperty only_fans_property = 21;
+ //
+ DynFeatureGate feature_gate = 22;
+ //
+ bool is_in_audit = 23;
+ //
+ map history_report = 24;
+}
+
+// 评论扩展
+message ExtendReply {
+ // 基础跳转地址
+ string uri = 1;
+ // 参数部分
+ repeated ExtendReplyParam params = 2;
+}
+
+// 评论扩展参数部分
+message ExtendReplyParam {
+ // 参数名
+ string key = 1;
+ // 参数值
+ string value = 2;
+}
+
// 动态-拓展小卡模块-通用小卡
message ExtInfoCommon {
// 标题
@@ -1795,60 +2453,38 @@ message ExtInfoTopic {
string icon = 3;
}
-// 扩展字段,用于动态部分操作使用
-message Extend {
- // 动态id
- string dyn_id_str = 1;
- // 业务方id
- string business_id = 2;
- // 源动态id
- string orig_dyn_id_str = 3;
- // 转发卡:用户名
- string orig_name = 4;
- // 转发卡:图片url
- string orig_img_url = 5;
- // 转发卡:文字内容
- repeated Description orig_desc = 6;
- // 填充文字内容
- repeated Description desc = 7;
- // 被转发的源动态类型
- DynamicType orig_dyn_type = 8;
- // 分享到站外展示类型
- string share_type = 9;
- // 分享的场景
- string share_scene = 10;
- // 是否快速转发
- bool is_fast_share = 11;
- // r_type 分享和转发
- int32 r_type = 12;
- // 数据源的动态类型
- int64 dyn_type = 13;
- // 用户id
- int64 uid = 14;
- // 卡片跳转
- string card_url = 15;
- // 透传字段
- google.protobuf.Any source_content = 16;
- // 转发卡:用户头像
- string orig_face = 17;
- // 评论跳转
- ExtendReply reply = 18;
+//
+message FeedFilterReply {
+ //
+ string offset = 1;
+ //
+ bool has_more = 2;
+ //
+ repeated DynamicItem list = 3;
}
-// 评论扩展
-message ExtendReply {
- // 基础跳转地址
- string uri = 1;
- // 参数部分
- repeated ExtendReplyParam params = 2;
+//
+message FeedFilterReq {
+ //
+ string offset = 1;
+ //
+ string tab = 2;
+ //
+ int32 local_time = 3;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 4;
+ //
+ AdParam ad_param = 5;
+ //
+ int32 cold_start = 6;
+ //
+ int64 page = 7;
}
-// 评论扩展参数部分
-message ExtendReplyParam {
- // 参数名
- string key = 1;
- // 参数值
- string value = 2;
+//
+message FetchTabSettingReply {
+ //
+ int32 status = 1;
}
// 折叠类型
@@ -1858,6 +2494,7 @@ enum FoldType {
FoldTypeFrequent = 2; // 转发超频折叠
FoldTypeUnite = 3; // 联合投稿折叠
FoldTypeLimit = 4; // 动态受限折叠
+ FoldTypeTopicMerged = 5;
}
// 视频页-我的追番-番剧信息
@@ -1913,6 +2550,17 @@ message GoodsItem {
bool user_web_v2 = 12;
// ad mark
string ad_mark = 13;
+ //
+ string app_name = 14;
+ //
+ GoodsJumpType jump_type = 15;
+}
+
+//
+enum GoodsJumpType {
+ goods_none = 0;
+ goods_schema = 1;
+ goods_url = 2;
}
//
@@ -1949,6 +2597,27 @@ enum HighlightTextStyle {
style_highlight = 1; // 高亮
}
+//
+enum HomePageTabSttingStatus {
+ SETTING_INVALID = 0;
+ SETTING_OPEN = 1;
+ SETTING_CLOSE = 2;
+}
+
+//
+message HomeSubscribeReply {
+ //
+ int32 online = 1;
+}
+
+//
+message HomeSubscribeReq {
+ //
+ int64 campus_id = 1;
+ //
+ string campus_name = 2;
+}
+
//
message IconBadge {
//
@@ -1969,12 +2638,36 @@ message IconButton {
string jump_uri = 4;
}
+//
+enum IconResLocal {
+ ICON_RES_LOCAL_NONE = 0;
+ ICON_RES_LOCAL_LIVE = 1;
+}
+
+//
+message ImageSet {
+ //
+ string img_day = 1;
+ //
+ string img_dark = 2;
+}
+
// 枚举-附加卡样式
enum ImageStyle {
add_style_vertical = 0; //
add_style_square = 1; //
}
+//
+message ImgInlineCfg {
+ //
+ double width = 1;
+ //
+ double height = 2;
+ //
+ Colors color = 3;
+}
+
// 动态-拓展小卡模块-ogv小卡-(one of 片单、榜单、分区)
message InfoOGV {
// 标题
@@ -2021,6 +2714,78 @@ message InteractionStat {
int64 like = 1;
}
+//
+message LbsPoiDetail {
+ //
+ string poi = 1;
+ //
+ int64 type = 2;
+ //
+ repeated string base_pic = 3;
+ //
+ repeated string cover = 4;
+ //
+ string address = 5;
+ //
+ string title = 6;
+}
+
+//
+message LbsPoiReply {
+ //
+ bool has_more = 1;
+ //
+ string offset = 2;
+ //
+ LbsPoiDetail detail = 3;
+ //
+ repeated DynamicItem list = 4;
+}
+
+//
+message LbsPoiReq {
+ //
+ string poi = 1;
+ //
+ int64 type = 2;
+ //
+ string offset = 3;
+ //
+ int32 refresh_type = 4;
+ //
+ int32 local_time = 5;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 6;
+}
+
+//
+message LegacyTopicFeedReply {
+ //
+ repeated DynamicItem list = 1;
+ //
+ bool has_more = 2;
+ //
+ string offset = 3;
+ //
+ repeated SortType supported_sort_types = 4;
+ //
+ repeated SortType feed_card_filters = 5;
+}
+
+//
+message LegacyTopicFeedReq {
+ //
+ int64 topic_id = 1;
+ //
+ string topic_name = 2;
+ //
+ string offset = 3;
+ //
+ SortType sort_type = 4;
+ //
+ SortType card_filter = 5;
+}
+
//
enum LightFromType {
from_login = 0; //
@@ -2081,6 +2846,69 @@ message LikeUser {
string uri = 3;
}
+//
+message LineParagraph {
+ //
+ MdlDynDrawItem pic = 1;
+}
+
+//
+message LinkNode {
+ //
+ string show_text = 1;
+ //
+ string link = 2;
+ //
+ string icon = 3;
+ //
+ string icon_suffix = 4;
+ //
+ string link_type = 5;
+ //
+ LinkNodeType link_type_enum = 6;
+ //
+ string biz_id = 7;
+ //
+ int64 timestamp = 8;
+ //
+ GoodsItem goods_item = 9;
+ //
+ NoteVideoTS note_video_ts = 10;
+}
+
+//
+enum LinkNodeType {
+ INVALID = 0;
+ VIDEO = 1;
+ RESERVE = 2;
+ VOTE = 3;
+ LIVE = 4;
+ LOTTERY = 5;
+ MATCH = 6;
+ GOODS = 7;
+ OGV_SS = 8;
+ OGV_EP = 9;
+ MANGA = 10;
+ CHEESE = 11;
+ VIDEO_TS = 12;
+ AT = 13;
+ HASH_TAG = 14;
+ ARTICLE = 15;
+ URL = 16;
+ MAIL = 17;
+ LBS = 18;
+ ACTIVITY = 19;
+ ATTACH_CARD_OFFICIAL_ACTIVITY = 20;
+ GAME = 21;
+ DECORATION = 22;
+ UP_TOPIC = 23;
+ UP_ACTIVITY = 24;
+ UP_MAOER = 25;
+ MEMBER_GOODS = 26;
+ OPENMALL_UP_ITEMS = 27;
+ SEARCH = 28;
+}
+
// 直播信息
message LiveInfo {
// 是否在直播
@@ -2113,6 +2941,9 @@ enum LiveState {
enum LocalIconType {
local_icon_comment = 0; //
local_icon_like = 1; //
+ local_icon_avatar = 2;
+ local_icon_cover = 3;
+ local_icon_like_and_forward = 4;
}
// 动态-附加卡-电竞卡-战队
@@ -2129,6 +2960,14 @@ message MatchTeam {
string night_color = 5;
}
+//
+enum MdlBlockedStyle {
+ BLOCKED_STYLE_DEFAULT = 0;
+ BLOCKED_STYLE_IN_AUDIT = 1;
+ BLOCKED_STYLE_ONLY_FANS_LIST = 2;
+ BLOCKED_STYLE_ONLY_FANS_VIDEO = 3;
+}
+
// 动态列表渲染部分-详情模块-小程序/小游戏
message MdlDynApplet {
// 小程序id
@@ -2205,6 +3044,16 @@ message MdlDynArchive {
string bvid = 26;
// 播放数
int32 view = 27;
+ //
+ bool show_premiere_badge = 28;
+ //
+ bool premiere_card = 29;
+ //
+ bool show_progress = 30;
+ //
+ int64 part_duration = 31;
+ //
+ int64 part_progress = 32;
}
// 动态列表渲染部分-详情模块-专栏模块
@@ -2274,6 +3123,26 @@ message MdlDynCourBatch {
VideoBadge badge = 6;
// 播放按钮
string play_icon = 7;
+ //
+ bool can_play = 8;
+ //
+ bool is_preview = 9;
+ //
+ string cover_left_text_1 = 10;
+ //
+ string cover_left_text_2 = 11;
+ //
+ string cover_left_text_3 = 12;
+ //
+ int64 avid = 13;
+ //
+ int64 cid = 14;
+ //
+ int64 epid = 15;
+ //
+ int64 duration = 16;
+ //
+ int64 season_id = 17;
}
// 动态-详情模块-付费课程系列
@@ -2292,6 +3161,52 @@ message MdlDynCourSeason {
VideoBadge badge = 6;
// 播放按钮
string play_icon = 7;
+ //
+ bool can_play = 8;
+ //
+ bool is_preview = 9;
+ //
+ int64 avid = 10;
+ //
+ int64 cid = 11;
+ //
+ int64 epid = 12;
+ //
+ int64 duration = 13;
+ //
+ int64 season_id = 14;
+}
+
+//
+message MdlDynCourUp {
+ //
+ string title = 1;
+ //
+ string desc = 2;
+ //
+ string cover = 3;
+ //
+ string uri = 4;
+ //
+ string text_1 = 5;
+ //
+ VideoBadge badge = 6;
+ //
+ string play_icon = 7;
+ //
+ bool can_play = 8;
+ //
+ bool is_preview = 9;
+ //
+ int64 avid = 10;
+ //
+ int64 cid = 11;
+ //
+ int64 epid = 12;
+ //
+ int64 duration = 13;
+ //
+ int64 season_id = 14;
}
// 动态列表渲染部分-详情模块-图文模块
@@ -2302,6 +3217,12 @@ message MdlDynDraw {
string uri = 2;
// 图文ID
int64 id = 3;
+ //
+ bool is_draw_first = 4;
+ //
+ bool is_big_cover = 5;
+ //
+ bool is_article_cover = 6;
}
// 动态列表渲染部分-详情模块-图文
@@ -2528,6 +3449,18 @@ enum MdlDynSubscriptionNewStyle {
mdl_dyn_subscription_new_style_draw = 2; // 图文
}
+//
+message MdlDynTopicSet {
+ //
+ repeated TopicItem topics = 1;
+ //
+ IconButton more_btn = 2;
+ //
+ int64 topic_set_id = 3;
+ //
+ int64 push_id = 4;
+}
+
// 动态列表渲染部分-UGC合集
message MdlDynUGCSeason {
// 标题
@@ -2666,6 +3599,22 @@ message Module {
ModuleTopicBrief module_topic_brief = 26;
//
ModuleTitle module_title = 27;
+ //
+ ModuleButton module_button = 28;
+ //
+ ModuleNotice module_notice = 29;
+ //
+ ModuleOpusSummary module_opus_summary = 30;
+ //
+ ModuleCopyright module_copyright = 31;
+ //
+ ModuleParagraph module_paragraph = 32;
+ //
+ ModuleBlocked module_blocked = 33;
+ //
+ ModuleTextNotice module_text_notice = 34;
+ //
+ ModuleOpusCollection module_opus_collection = 35;
}
}
@@ -2706,6 +3655,10 @@ message ModuleAdditional {
AdditionUgc ugc = 9;
// up主预约发布卡
AdditionUP up = 10;
+ //
+ AdditionArticle article = 12;
+ //
+ AdditionLiveRoom live = 13;
}
// 附加卡物料ID
int64 rid = 7;
@@ -2746,6 +3699,8 @@ message ModuleAuthor {
string ptime_location_text = 14;
//
bool show_level = 15;
+ //
+ OnlyFans only_fans = 16;
}
// 动态列表渲染部分-用户模块-按钮
@@ -2844,12 +3799,59 @@ message ModuleBannerUserItem {
AdditionalButton button = 8;
// 跳转地址
string uri = 9;
+ //
+ Relation relation = 10;
+}
+
+//
+message ModuleBlocked {
+ //
+ ImageSet icon = 1;
+ //
+ ImageSet bg_img = 2;
+ //
+ string hint_message = 3;
+ //
+ IconButton act_btn = 4;
+ //
+ MdlBlockedStyle block_style = 5;
+ //
+ string sub_hint_message = 6;
+ //
+ OneLineText video_bottom_text_upper = 7;
+ //
+ OneLineText video_bottom_text_lower = 8;
+ //
+ string archive_title = 9;
+ //
+ OneLineText hint_message_one_line = 10;
}
// 底部模块
message ModuleButtom {
+ enum InteractionIcon {
+ ICON_INVALID = 0;
+ ICON_FORWARD = 1;
+ ICON_COMMENT = 2;
+ ICON_FAVORITE = 3;
+ ICON_LIKE = 4;
+ }
// 计数模块
ModuleStat module_stat = 1;
+ //
+ bool comment_box = 2;
+ //
+ string comment_box_msg = 3;
+ //
+ repeated InteractionIcon interaction_icons = 4;
+ //
+ repeated InteractionFace faces = 5;
+}
+
+//
+message ModuleButton {
+ //
+ IconButton btn = 1;
}
// 评论外露模块
@@ -2858,6 +3860,14 @@ message ModuleComment {
repeated CmtShowItem cmtShowItem = 1;
}
+//
+message ModuleCopyright {
+ //
+ string left_text = 1;
+ //
+ string right_text = 2;
+}
+
// 动态-描述文字模块
message ModuleDesc {
// 描述信息(已按高亮拆分)
@@ -2887,6 +3897,10 @@ message ModuleDescGoods {
string ad_mark = 7;
// schemaPackageName(Android用)
string schema_package_name = 8;
+ //
+ int32 jump_type = 9;
+ //
+ string app_name = 10;
}
// 动态-争议小黄条模块
@@ -2936,6 +3950,10 @@ message ModuleDynamic {
MdlDynUGCSeason dyn_ugc_season = 16;
//订阅卡
MdlDynSubscriptionNew dyn_subscription_new = 17;
+ //课程
+ MdlDynCourUp dyn_cour_batch_up = 18;
+ //话题集合
+ MdlDynTopicSet dyn_topic_set = 19;
}
}
@@ -2957,6 +3975,8 @@ enum ModuleDynamicType {
mdl_dyn_live_rcmd = 13; // 直播推荐卡
mdl_dyn_ugc_season = 14; // UGC合集
mdl_dyn_subscription_new = 15; // 订阅卡
+ mdl_dyn_cour_batch_up = 16; // 课程
+ mdl_dyn_topic_set = 17; // 话题集合
}
// 动态-小卡模块
@@ -2984,7 +4004,7 @@ message ModuleExtendItem {
//
ExtInfoCommon ext_info_common = 6;
//
- ExtInfoOGV ext_info_ogv = 7;
+ ExtInfoOGV ext_info_ogv = 7;
}
}
@@ -2998,6 +4018,8 @@ message ModuleFold {
string fold_ids = 3;
// 被折叠的用户信息
repeated UserInfo fold_users = 4;
+ //
+ TopicMergedResource topic_merged_resource = 5;
}
// 外露交互模块
@@ -3022,6 +4044,56 @@ message ModuleLikeUser {
string display_text = 2;
}
+//
+message ModuleNotice {
+ //
+ string identity = 1;
+ //
+ string icon = 2;
+ //
+ string title = 3;
+ //
+ string url = 4;
+ //
+ int32 notice_type = 5;
+}
+
+//
+message ModuleOpusCollection {
+ //
+ OpusCollection collection_info = 1;
+ //
+ string title_upper = 2;
+ //
+ string title = 3;
+ //
+ string title_prefix_icon = 4;
+ //
+ string total_text = 5;
+}
+
+//
+message ModuleOpusSummary {
+ //
+ Paragraph title = 1;
+ //
+ Paragraph summary = 2;
+ //
+ string summary_jump_btn_text = 3;
+ //
+ repeated MdlDynDrawItem covers = 4;
+}
+
+//
+message ModuleParagraph {
+ //
+ Paragraph paragraph = 1;
+ //
+ bool is_article_title = 2;
+ //
+ ParaSpacing para_spacing = 3;
+}
+
// 推荐模块
message ModuleRcmd {
// 用户头像
@@ -3102,24 +4174,32 @@ message ModuleStory {
string publish_text = 7;
}
+//
+message ModuleTextNotice {
+ //
+ OneLineText notice = 1;
+}
+
//
message ModuleTitle {
//
string title = 1;
//
IconButton right_btn = 2;
+ //
+ int32 title_style = 3;
}
// 顶部模块
message ModuleTop {
// 三点模块
repeated ThreePointItem tp_list = 1;
-}
-
-//
-message ModuleTopTag {
- //
- string tag_name = 1;
+ //
+ MdlDynArchive archive = 2;
+ //
+ ModuleAuthor author = 3;
+ //
+ bool hidden_nav_bar = 4;
}
//
@@ -3144,6 +4224,12 @@ message ModuleTopicDetailsExt {
string comment_guide = 1;
}
+//
+message ModuleTopTag {
+ //
+ string tag_name = 1;
+}
+
// 认证名牌
message Nameplate {
// nid
@@ -3179,6 +4265,30 @@ message NewEP {
string cover = 3;
}
+//
+message NFTInfo {
+ //
+ NFTRegionType region_type = 1;
+ //
+ string region_icon = 2;
+ //
+ NFTShowStatus region_show_status = 3;
+}
+
+//
+enum NFTRegionType {
+ nft_region_default = 0;
+ nft_region_mainlang = 1;
+ nft_region_gat = 2;
+}
+
+//
+enum NFTShowStatus {
+ nft_show_default = 0;
+ nft_show_zoominmainlang = 1;
+ nft_show_raw = 2;
+}
+
// 空响应
message NoReply {
@@ -3189,6 +4299,30 @@ message NoReq {
}
+//
+message NoteVideoTS {
+ //
+ int64 cid = 1;
+ //
+ int64 oid_type = 2;
+ //
+ int64 status = 3;
+ //
+ int64 index = 4;
+ //
+ int64 seconds = 5;
+ //
+ int64 cid_count = 6;
+ //
+ string key = 7;
+ //
+ int64 epid = 9;
+ //
+ string title = 8;
+ //
+ string desc = 10;
+}
+
//
message OfficialAccountInfo {
//
@@ -3329,6 +4463,113 @@ message OfficialVerify {
int32 is_atten = 3;
}
+//
+message OneLineText {
+ //
+ repeated TextWithPriority texts = 1;
+}
+
+//
+message OnlyFans {
+ //
+ bool is_only_fans = 1;
+ //
+ IconBadge badge = 2;
+}
+
+//
+message OnlyFansProperty {
+ //
+ bool has_privilege = 1;
+ //
+ bool is_only_fans = 2;
+}
+
+//
+message OpusCollection {
+ //
+ int64 collection_id = 1;
+ //
+ OneLineText title = 2;
+ //
+ string detail_uri = 3;
+ //
+ string intro = 4;
+ //
+ repeated OpusCollectionItem all_items = 5;
+}
+
+//
+message OpusCollectionItem {
+ //
+ int64 opus_id = 1;
+ //
+ string title = 2;
+ //
+ string pub_time = 3;
+ //
+ string uri = 4;
+ //
+ bool is_selected_highlight = 5;
+}
+
+//
+message Paragraph {
+ //
+ message ListFormat {
+ //
+ int32 level = 1;
+ //
+ int32 order = 2;
+ //
+ string theme = 3;
+ }
+ enum ParagraphAlign {
+ LEFT = 0;
+ MIDDLE = 1;
+ RIGHT = 2;
+ }
+ //
+ message ParagraphFormat {
+ //
+ ParagraphAlign align = 1;
+ //
+ ListFormat list_format = 2;
+ }
+ //
+ enum ParagraphType {
+ INVALID = 0;
+ TEXT = 1;
+ PICTURES = 2;
+ LINE = 3;
+ REFERENCE = 4;
+ SORTED_LIST = 5;
+ UNSORTED_LIST = 6;
+ LINK_CARD = 7;
+ }
+ //
+ ParagraphType para_type = 1;
+ //
+ ParagraphFormat para_format = 2;
+ //
+ oneof content {
+ TextParagraph text = 3;
+ PicParagraph pic = 4;
+ LineParagraph line = 5;
+ CardParagraph link_card = 6;
+ }
+}
+
+//
+message ParaSpacing {
+ //
+ double spacing_before_para = 1;
+ //
+ double spacing_after_para = 2;
+ //
+ double line_spacing = 3;
+}
+
// PGC单季信息
message PGCSeason {
// 是否完结
@@ -3339,6 +4580,20 @@ message PGCSeason {
int32 type = 3;
}
+//
+message PicParagraph {
+ //
+ enum PicParagraphStyle {
+ INVALID = 0;
+ NINE_CELL = 1;
+ BIG_SCROLL = 2;
+ }
+ //
+ MdlDynDraw pics = 1;
+ //
+ PicParagraphStyle style = 2;
+}
+
// 秒开通用参数
message PlayurlParam {
// 清晰度
@@ -3401,6 +4656,18 @@ message RcmdAuthor {
Relation relation = 3;
}
+//
+message RcmdCampusBrief {
+ //
+ int64 campus_id = 1;
+ //
+ string campus_name = 2;
+ //
+ string campus_badge = 4;
+ //
+ string url = 5;
+}
+
// 推荐卡片列表
message RcmdItem {
// 卡片类型
@@ -3418,6 +4685,26 @@ message RcmdOption{
bool show_title = 1;
}
+//
+message RcmdReason {
+ //
+ string campus_name = 1;
+ //
+ RcmdReasonStyle style = 2;
+ //
+ string rcmd_reason = 3;
+ //
+ string up_name = 4;
+}
+
+//
+enum RcmdReasonStyle {
+ rcmd_reason_style_none = 0;
+ rcmd_reason_style_campus_nearby = 1;
+ rcmd_reason_style_campus_up = 2;
+ rcmd_reason_style_campus_near_up_mix = 3;
+}
+
//
message RcmdTopButton {
//
@@ -3437,6 +4724,42 @@ message RcmdUPsParam {
int64 dislike_ts = 1;
}
+message ReactionListItem {
+ // 用户信息
+ UserInfo user = 1;
+ // 关注关系
+ Relation relation = 2;
+ // 显示文字
+ string act_text = 3;
+ //
+ string rcmd_reason = 4;
+}
+
+
+// 新版动态转发点赞列表-响应
+message ReactionListReply {
+ // 标题
+ string title = 1;
+ // 列表
+ repeated ReactionListItem list = 2;
+ // 偏移
+ string offset = 3;
+ // 是否还有更多
+ bool has_more = 4;
+}
+
+// 新版动态转发点赞列表-请求
+message ReactionListReq {
+ // 动态ID
+ int64 dynamic_id = 1;
+ // 动态类型
+ int64 dyn_type = 2;
+ // 业务方资源id
+ int64 rid = 3;
+ // 偏移,使用上一页回包中的offset字段;第一页不传。
+ string offset = 4;
+}
+
// 刷新方式
enum Refresh {
refresh_new = 0; // 刷新列表
@@ -3496,42 +4819,6 @@ message RepostListRsp {
RepostType repost_type = 5;
}
-// 新版动态转发点赞列表-请求
-message ReactionListReq {
- // 动态ID
- int64 dynamic_id = 1;
- // 动态类型
- int64 dyn_type = 2;
- // 业务方资源id
- int64 rid = 3;
- // 偏移,使用上一页回包中的offset字段;第一页不传。
- string offset = 4;
-}
-
-// 新版动态转发点赞列表-响应
-message ReactionListReply {
- // 标题
- string title = 1;
- // 列表
- repeated ReactionListItem list = 2;
- // 偏移
- string offset = 3;
- // 是否还有更多
- bool has_more = 4;
-}
-
-message ReactionListItem {
- // 用户信息
- UserInfo user = 1;
- // 关注关系
- Relation relation = 2;
- // 显示文字
- string act_text = 3;
- //
- string rcmd_reason = 4;
- // bool has_relation = 5;
- // bool has_user = 6;
-}
// 评论类型
enum RepostType {
repost_hot = 0; // 热门评论
@@ -3550,6 +4837,11 @@ enum ReserveType {
reserve_recall = 1; // 预约召回
}
+enum RouterAction {
+ OPEN = 0;
+ EMBED = 1;
+}
+
//
message SchoolRecommendReply {
//
@@ -3562,6 +4854,8 @@ message SchoolRecommendReq {
float lat = 1;
//
float lng = 2;
+ //
+ CampusReqFromType from_type = 3;
}
//
@@ -3576,6 +4870,8 @@ message SchoolSearchReply {
message SchoolSearchReq {
//
string keyword = 1;
+ //
+ CampusReqFromType from_type = 2;
}
//
@@ -3648,6 +4944,8 @@ message SearchTopicItem {
message SetDecisionReq {
//
int32 result = 1;
+ //
+ CampusReqFromType from_type = 2;
}
//
@@ -3656,6 +4954,8 @@ message SetRecentCampusReq {
int64 campus_id = 1;
//
string campus_name = 2;
+ //
+ CampusReqFromType from_type = 3;
}
// 分享渠道组件
@@ -3742,16 +5042,53 @@ message SubscribeCampusReq {
int64 campus_id = 1;
//
string campus_name = 2;
+ //
+ CampusReqFromType from_type = 3;
}
-//
+//
+message TextNode {
+ enum TextNodeType {
+ INVALID = 0;
+ WORDS = 1;
+ EMOTE = 2;
+ AT = 3;
+ BIZ_LINK = 4;
+ }
+ //
+ TextNodeType node_type = 1;
+ string raw_text = 2;
+ //
+ oneof text {
+ WordNode word = 3;
+ EmoteNode emote = 4;
+ LinkNode link = 5;
+ }
+}
+
+//
+message TextParagraph {
+ //
+ repeated TextNode nodes = 1;
+}
+
+//
+message TextWithPriority {
+ //
+ string text = 1;
+ //
+ int64 priority = 2;
+}
+
+// 免流类型
enum TFType {
- U_CARD = 0; //
- U_PKG = 1; //
- C_CARD = 2; //
- C_PKG = 3; //
- T_CARD = 4; //
- T_PKG = 5; //
+ TF_UNKNOWN = 0; // 未知
+ U_CARD = 1; // 联通卡
+ U_PKG = 2; // 联通免流包
+ C_CARD = 3; // 移动卡
+ C_PKG = 4; // 移动免流包
+ T_CARD = 5; // 电信卡
+ T_PKG = 6; // 电信免流包
}
// 三点-关注
@@ -4009,12 +5346,6 @@ message TopAdditionUP {
int32 has_fold = 2;
}
-// 状态
-enum TopType {
- top_none = 0; // 默认 置顶
- top_cancel = 1; // 取消置顶
-}
-
// 话题广场操作按钮
message TopicButton {
// 按钮图标
@@ -4101,6 +5432,14 @@ message TopicListReq {
string offset = 2;
}
+//
+message TopicMergedResource {
+ //
+ int32 merge_type = 1;
+ //
+ int32 merged_res_cnt = 2;
+}
+
//
message TopicRcmdCard {
//
@@ -4141,6 +5480,12 @@ message TopicSquareReq {
int64 campus_id = 1;
}
+// 状态
+enum TopType {
+ top_none = 0; // 默认 置顶
+ top_cancel = 1; // 取消置顶
+}
+
// 综合页-无关注列表
message Unfollow {
// 标题展示文案
@@ -4151,6 +5496,12 @@ message Unfollow {
string TrackId = 3;
}
+//
+message UnfollowMatchReq {
+ //
+ int64 cid = 1;
+}
+
// 综合页-无关注列表
message UnfollowUserItem {
// 是否有更新
@@ -4179,6 +5530,12 @@ message UnfollowUserItem {
string uri = 12;
}
+//
+message UpdateTabSettingReq {
+ //
+ HomePageTabSttingStatus status = 1;
+}
+
// 动态顶部up列表-up主信息
message UpListItem {
// 是否有更新
@@ -4207,6 +5564,14 @@ message UpListItem {
string uri = 12;
// UP主预约上报使用
bool is_recall = 13;
+ //
+ IconBadge update_icon = 14;
+ //
+ string live_rcmd_reason = 15;
+ //
+ string live_cover = 16;
+ //
+ string personal_extra = 17;
}
// 最常访问-查看更多
@@ -4245,6 +5610,12 @@ message UserInfo {
int32 face_nft = 12;
//
int32 face_nft_new = 13;
+ //
+ NFTInfo nft_info = 14;
+ //
+ int32 is_senior_member = 15;
+ //
+ bilibili.dagw.component.avatar.v1.AvatarItem avatar = 16;
}
// 直播头像样式
@@ -4268,6 +5639,11 @@ enum UserItemType {
user_item_type_live_custom = 2; //
user_item_type_normal = 3; //
user_item_type_extend = 4; //
+ user_item_type_premiere_reserve = 5;
+ user_item_type_premiere = 6;
+ user_item_type_live_card = 7;
+ user_item_type_ogv_season = 8;
+ user_item_type_ugc_season = 9;
}
// 头像挂件信息
@@ -4402,3 +5778,33 @@ enum WeightType {
weight_dislike = 1; // 不感兴趣
weight_jump = 2; // 跳链
}
+
+//
+enum WFItemType {
+ WATER_FLOW_TYPE_NONE = 0;
+ WATER_FLOW_TYPE_ARCHIVE = 1;
+ WATER_FLOW_TYPE_DYNAMIC = 2;
+}
+
+//
+message WordNode {
+ //
+ message WordNodeStyle {
+ //
+ bool bold = 1;
+ //
+ bool italic = 2;
+ //
+ bool strikethrough = 3;
+ //
+ bool underline = 4;
+ }
+ //
+ string words = 1;
+ //
+ double font_size = 2;
+ //
+ Colors color = 3;
+ //
+ WordNodeStyle style = 4;
+}
diff --git a/grpc_api/bilibili/app/dynamic/v2/opus.proto b/grpc_api/bilibili/app/dynamic/v2/opus.proto
new file mode 100644
index 0000000..a1cbf94
--- /dev/null
+++ b/grpc_api/bilibili/app/dynamic/v2/opus.proto
@@ -0,0 +1,94 @@
+
+syntax = "proto3";
+
+package bilibili.app.dynamic.v2;
+
+import "bilibili/app/archive/middleware/v1/preload.proto";
+import "bilibili/app/dynamic/v2/dynamic.proto";
+import "bilibili/pagination/pagination.proto";
+
+service Opus {
+ //
+ rpc ListFav (ListFavReq) returns (ListFavResp);
+ //
+ rpc OpusDetail (OpusDetailReq) returns (OpusDetailResp);
+}
+
+//
+message ListFavReq {
+ //
+ int32 local_time = 1;
+ //
+ bilibili.pagination.Pagination pagination = 2;
+}
+
+//
+message ListFavResp {
+ //
+ repeated OpusFavItem item_list = 1;
+ //
+ bilibili.pagination.PaginationReply next_page = 2;
+}
+
+//
+message OpusFavItem {
+ //
+ int64 opus_id = 1;
+ //
+ string card_uri = 2;
+ //
+ bilibili.app.dynamic.v2.MdlDynDrawItem cover_pic = 3;
+ //
+ bilibili.app.dynamic.v2.Paragraph text_paragraph = 4;
+ //
+ bilibili.app.dynamic.v2.CoverIconWithText bottom_text = 5;
+ //
+ string click_toast = 6;
+}
+
+//
+message OpusDetailReq {
+ //
+ OpusType opus_type = 1;
+ //
+ int64 oid = 2;
+ //
+ int64 dyn_type = 3;
+ //
+ string share_id = 4;
+ //
+ int32 share_mode = 9;
+ //
+ int32 local_time = 10;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 11;
+ //
+ Config config = 12;
+}
+
+//
+message OpusDetailResp {
+ //
+ OpusItem opus_item = 1;
+}
+
+//
+message OpusItem {
+ //
+ int64 opus_id = 1;
+ //
+ OpusType opus_type = 2;
+ //
+ int64 oid = 3;
+ //
+ repeated Module modules = 4;
+ //
+ Extend extend = 5;
+}
+
+enum OpusType {
+ OPUS_TYPE_DYN = 0;
+ OPUS_TYPE_ARTICLE = 1;
+ OPUS_TYPE_NOTE = 2;
+ OPUS_TYPE_WORD = 3;
+}
diff --git a/grpc_api/bilibili/app/interfaces/v1/history.proto b/grpc_api/bilibili/app/interfaces/v1/history.proto
index 3723963..eb807e6 100644
--- a/grpc_api/bilibili/app/interfaces/v1/history.proto
+++ b/grpc_api/bilibili/app/interfaces/v1/history.proto
@@ -6,8 +6,10 @@ import "bilibili/app/archive/middleware/v1/preload.proto";
// 历史记录
service History {
- // 获取历史记录tab
+ // 获取历史记录tab(旧版)
rpc HistoryTab (HistoryTabReq) returns (HistoryTabReply);
+ // 获取历史记录tab
+ rpc HistoryTabV2 (HistoryTabReq) returns (HistoryTabReply);
// 获取历史记录列表(旧版)
rpc Cursor (CursorReq) returns (CursorReply);
// 获取历史记录列表
diff --git a/grpc_api/bilibili/app/interfaces/v1/media.proto b/grpc_api/bilibili/app/interfaces/v1/media.proto
index 440430a..1d2a2fb 100644
--- a/grpc_api/bilibili/app/interfaces/v1/media.proto
+++ b/grpc_api/bilibili/app/interfaces/v1/media.proto
@@ -4,16 +4,18 @@ package bilibili.app.interface.v1;
//
service Media {
- //
- rpc MediaTab(MediaTabReq) returns (MediaTabReply);
+ //
+ rpc MediaComment(MediaCommentReq) returns (MediaCommentReply);
//
rpc MediaDetail(MediaDetailReq) returns (MediaDetailReply);
//
- rpc MediaVideo(MediaVideoReq) returns (MediaVideoReply);
+ rpc MediaFollow(MediaFollowReq) returns (MediaFollowReply);
//
rpc MediaRelation(MediaRelationReq) returns (MediaRelationReply);
//
- rpc MediaFollow(MediaFollowReq) returns (MediaFollowReply);
+ rpc MediaTab(MediaTabReq) returns (MediaTabReply);
+ //
+ rpc MediaVideo(MediaVideoReq) returns (MediaVideoReply);
}
//
@@ -137,6 +139,18 @@ message MediaCard {
Button but_first = 5;
}
+//
+message MediaCommentReply {
+ //
+ string err_msg = 1;
+}
+
+//
+message MediaCommentReq {
+ //
+ string id = 1;
+}
+
//
message MediaDetailReply {
//
diff --git a/grpc_api/bilibili/app/listener/v1/listener.proto b/grpc_api/bilibili/app/listener/v1/listener.proto
index 6c431fa..e11714c 100644
--- a/grpc_api/bilibili/app/listener/v1/listener.proto
+++ b/grpc_api/bilibili/app/listener/v1/listener.proto
@@ -9,13 +9,47 @@ import "bilibili/app/playurl/v1/playurl.proto";
// 听视频
service Listener {
+ //
+ rpc BkarcDetails (BKArcDetailsReq) returns (BKArcDetailsResp);
+ // 投币
+ rpc CoinAdd (CoinAddReq) returns (CoinAddResp);
+ //
+ rpc Event(EventReq) returns (EventResp);
+ // 创建收藏夹
+ rpc FavFolderCreate (FavFolderCreateReq) returns (FavFolderCreateResp);
+ //
+ rpc FavFolderDelete (FavFolderDeleteReq) returns (FavFolderDeleteResp);
+ // 收藏夹详细信息
+ rpc FavFolderDetail (FavFolderDetailReq) returns (FavFolderDetailResp);
+ // 用户收藏夹列表
+ rpc FavFolderList (FavFolderListReq) returns (FavFolderListResp);
+ //
+ rpc FavItemAdd (FavItemAddReq) returns (FavItemAddResp);
+ // 批量处理收藏
+ rpc FavItemBatch (FavItemBatchReq) returns (FavItemBatchResp);
+ //
+ rpc FavItemDel (FavItemDelReq) returns (FavItemDelResp);
+ //
+ rpc FavoredInAnyFolders (FavoredInAnyFoldersReq) returns (FavoredInAnyFoldersResp);
+ //
+ rpc Medialist(MedialistReq) returns (MedialistResp);
+ // 每日播单详情
+ rpc PickCardDetail (PickCardDetailReq) returns (PickCardDetailResp);
+ // 每日播单列表
+ rpc PickFeed (PickFeedReq) returns (PickFeedResp);
//
rpc Ping (google.protobuf.Empty) returns (google.protobuf.Empty);
+ // 播放上报
+ rpc PlayActionReport (PlayActionReportReq) returns (google.protobuf.Empty);
+ //
+ rpc PlayHistory (PlayHistoryReq) returns (PlayHistoryResp);
+ // 添加历史记录
+ rpc PlayHistoryAdd (PlayHistoryAddReq) returns (google.protobuf.Empty);
+ //
+ rpc PlayHistoryDel (PlayHistoryDelReq) returns (google.protobuf.Empty);
// 获取音频URL
rpc PlayUrl (PlayURLReq) returns (PlayURLResp);
//
- rpc BkarcDetails (BKArcDetailsReq) returns (BKArcDetailsResp);
- //
rpc Playlist (PlaylistReq) returns (PlaylistResp);
//
rpc PlaylistAdd (PlaylistAddReq) returns (google.protobuf.Empty);
@@ -23,62 +57,28 @@ service Listener {
rpc PlaylistDel (PlaylistDelReq) returns (google.protobuf.Empty);
// 推荐列表
rpc RcmdPlaylist (RcmdPlaylistReq) returns (RcmdPlaylistResp);
- //
- rpc PlayHistory (PlayHistoryReq) returns (PlayHistoryResp);
- // 添加历史记录
- rpc PlayHistoryAdd (PlayHistoryAddReq) returns (google.protobuf.Empty);
- //
- rpc PlayHistoryDel (PlayHistoryDelReq) returns (google.protobuf.Empty);
- // 播放上报
- rpc PlayActionReport (PlayActionReportReq) returns (google.protobuf.Empty);
- // 三联
- rpc TripleLike (TripleLikeReq) returns (TripleLikeResp);
// 点赞
rpc ThumbUp (ThumbUpReq) returns (ThumbUpResp);
- // 投币
- rpc CoinAdd (CoinAddReq) returns (CoinAddResp);
- //
- rpc FavItemAdd (FavItemAddReq) returns (FavItemAddResp);
- //
- rpc FavItemDel (FavItemDelReq) returns (FavItemDelResp);
- // 批量处理收藏
- rpc FavItemBatch (FavItemBatchReq) returns (FavItemBatchResp);
- //
- rpc FavoredInAnyFolders (FavoredInAnyFoldersReq) returns (FavoredInAnyFoldersResp);
- // 用户收藏夹列表
- rpc FavFolderList (FavFolderListReq) returns (FavFolderListResp);
- // 收藏夹详细信息
- rpc FavFolderDetail (FavFolderDetailReq) returns (FavFolderDetailResp);
- // 创建收藏夹
- rpc FavFolderCreate (FavFolderCreateReq) returns (FavFolderCreateResp);
- //
- rpc FavFolderDelete (FavFolderDeleteReq) returns (FavFolderDeleteResp);
- // 每日播单列表
- rpc PickFeed (PickFeedReq) returns (PickFeedResp);
- // 每日播单详情
- rpc PickCardDetail (PickCardDetailReq) returns (PickCardDetailResp);
- //
- rpc Medialist(MedialistReq) returns (MedialistResp);
- //
- rpc Event(EventReq) returns (EventResp);
+ // 三联
+ rpc TripleLike (TripleLikeReq) returns (TripleLikeResp);
}
//
service Music {
//
- rpc FavTabShow(FavTabShowReq) returns (FavTabShowResp);
+ rpc Click(ClickReq) returns (ClickResp);
//
- rpc MainFavMusicSubTabList(MainFavMusicSubTabListReq) returns (MainFavMusicSubTabListResp);
+ rpc FavTabShow(FavTabShowReq) returns (FavTabShowResp);
//
rpc MainFavMusicMenuList(MainFavMusicMenuListReq) returns (MainFavMusicMenuListResp);
//
- rpc MenuEdit(MenuEditReq) returns (MenuEditResp);
+ rpc MainFavMusicSubTabList(MainFavMusicSubTabListReq) returns (MainFavMusicSubTabListResp);
//
rpc MenuDelete(MenuDeleteReq) returns (MenuDeleteResp);
//
- rpc MenuSubscribe(MenuSubscribeReq) returns (MenuSubscribeResp);
+ rpc MenuEdit(MenuEditReq) returns (MenuEditResp);
//
- rpc Click(ClickReq) returns (ClickResp);
+ rpc MenuSubscribe(MenuSubscribeReq) returns (MenuSubscribeResp);
}
//
@@ -287,7 +287,7 @@ message DetailItem {
//
string history_tag = 13;
//
- bilibili.app.interfaces.v1.DeviceType device_type = 14;
+ bilibili.app.interface.v1.DeviceType device_type = 14;
//
FavFolder ugc_season_info = 15;
}
diff --git a/grpc_api/bilibili/app/mine/v1/mine.proto b/grpc_api/bilibili/app/mine/v1/mine.proto
new file mode 100644
index 0000000..71e32f2
--- /dev/null
+++ b/grpc_api/bilibili/app/mine/v1/mine.proto
@@ -0,0 +1,245 @@
+syntax = "proto3";
+
+package bilibili.app.mine.v1;
+
+import "bilibili/app/dynamic/v2/dynamic.proto";
+
+//
+service Mine {
+ //
+ rpc PubModule (PubModuleReq) returns (PubModuleResp);
+}
+
+//
+message Arc {
+ //
+ string date = 1;
+ //
+ Stat stat = 2;
+ //
+ string cover = 3;
+ //
+ int64 duration = 4;
+ //
+ int64 aid = 5;
+ //
+ int64 cid = 6;
+ //
+ int32 state = 7;
+}
+
+//
+enum ArcState {
+ //
+ STATE_UNKNOWN = 0;
+ //
+ OPEN = 1;
+ //
+ ORANGE = 2;
+ //
+ WAIT = 3;
+ //
+ RECICLE = 4;
+ //
+ LOCK = 5;
+ //
+ FIXED = 6;
+ //
+ USER_DELAY = 7;
+ //
+ FAST_PUB = 8;
+ //
+ XCODE_FAIL = 9;
+}
+
+//
+message Button {
+ //
+ string light_icon = 1;
+ //
+ string dark_icon = 2;
+ //
+ string url = 3;
+ //
+ string text = 4;
+}
+
+//
+message CardMore {
+ //
+ Button button = 1;
+}
+
+//
+message CardOpus {
+ //
+ bilibili.app.dynamic.v2.Paragraph word_paragraph = 1;
+ //
+ string cover = 2;
+ //
+ string url = 3;
+ //
+ SubTitleWithStat stat_title = 4;
+ //
+ Stat stat = 5;
+ //
+ string date = 6;
+ //
+ int64 dyn_id = 7;
+ //
+ bool has_share = 8;
+ //
+ int32 state = 9;
+}
+
+//
+message CardPubGuide {
+ //
+ Title title = 1;
+ //
+ Button button = 2;
+ //
+ repeated PubGuideMaterial material = 3;
+ //
+ Button more_button = 4;
+}
+
+//
+enum CardType {
+ //
+ CARD_UNKNOWN = 0;
+ //
+ PUBGUIDE = 1;
+ //
+ UGC = 2;
+ //
+ OPUS = 3;
+ //
+ MORE = 4;
+}
+
+//
+message CardUGC {
+ //
+ string title = 1;
+ //
+ Color title_color = 2;
+ //
+ oneof subtitle {
+ //
+ string button_title = 3;
+ //
+ string stat_title = 4;
+ }
+ //
+ Arc arc = 5;
+ //
+ string url = 6;
+ //
+ bool has_share = 7;
+}
+
+//
+message Color {
+ //
+ string light_color = 1;
+ //
+ string dark_color = 2;
+}
+
+//
+enum OpusState {
+ //
+ OPUS_UNKNOWN = 0;
+ //
+ OPUS_OPEN = 1;
+ //
+ OPUS_NO_FORWARD = 2;
+}
+
+//
+message PubCard {
+ //
+ oneof card {
+ //
+ CardPubGuide pub_guide = 1;
+ //
+ CardUGC ugc = 2;
+ //
+ CardOpus opus = 3;
+ //
+ CardMore more = 4;
+ }
+ //
+ CardType card_type = 5;
+}
+
+//
+message PubGuideMaterial {
+ //
+ int64 id = 1;
+ //
+ Title title = 2;
+ //
+ string cover = 3;
+ //
+ string url = 4;
+}
+
+//
+message PubModuleReq {
+ //
+ int64 user_original_state = 1;
+ //
+ repeated int64 dyn_ids = 2;
+ //
+ int64 card_num = 3;
+}
+
+//
+message PubModuleResp {
+ //
+ repeated PubCard pub_card = 1;
+}
+
+//
+message Stat {
+ //
+ string play_icon = 1;
+ //
+ string play = 2;
+ //
+ string like_icon = 3;
+ //
+ string like = 4;
+}
+
+//
+message SubTitleWithButton {
+ //
+ string icon = 1;
+ //
+ string url = 2;
+ //
+ Color background_color = 3;
+ //
+ string text = 4;
+ //
+ Color text_color = 5;
+}
+
+//
+message SubTitleWithStat {
+ //
+ repeated string icon = 1;
+ //
+ string text = 2;
+}
+
+//
+message Title {
+ //
+ string main = 1;
+ //
+ string sub = 2;
+}
diff --git a/grpc_api/bilibili/app/nativeact/v1/nativeact.proto b/grpc_api/bilibili/app/nativeact/v1/nativeact.proto
index b8ec802..4cc2513 100644
--- a/grpc_api/bilibili/app/nativeact/v1/nativeact.proto
+++ b/grpc_api/bilibili/app/nativeact/v1/nativeact.proto
@@ -1,5 +1,6 @@
syntax = "proto3";
+// Deprecated
package bilibili.app.nativeact.v1;
import "google/protobuf/any.proto";
diff --git a/grpc_api/bilibili/app/playerunite/pgcanymodel/pgcanymodel.proto b/grpc_api/bilibili/app/playerunite/pgcanymodel/pgcanymodel.proto
new file mode 100644
index 0000000..cb1db04
--- /dev/null
+++ b/grpc_api/bilibili/app/playerunite/pgcanymodel/pgcanymodel.proto
@@ -0,0 +1,14 @@
+syntax = "proto3";
+
+package bilibili.app.playerunite.pgcanymodel;
+
+import "bilibili/pgc/gateway/player/v2/playurl.proto";
+
+message PGCAnyModel {
+ bilibili.pgc.gateway.player.v2.PlayViewBusinessInfo business = 3;
+ bilibili.pgc.gateway.player.v2.Event event = 4;
+ bilibili.pgc.gateway.player.v2.ViewInfo view_info = 5;
+ bilibili.pgc.gateway.player.v2.PlayAbilityExtConf play_ext_conf = 6;
+ bilibili.pgc.gateway.player.v2.PlayExtInfo play_ext_info = 7;
+}
+
diff --git a/grpc_api/bilibili/app/playerunite/pugvanymodel.proto/pugvanymodel.proto b/grpc_api/bilibili/app/playerunite/pugvanymodel.proto/pugvanymodel.proto
new file mode 100644
index 0000000..b534627
--- /dev/null
+++ b/grpc_api/bilibili/app/playerunite/pugvanymodel.proto/pugvanymodel.proto
@@ -0,0 +1,51 @@
+syntax = "proto3";
+
+package bilibili.app.playerunite.pugvanymodel;
+
+//
+enum EpisodeStatus {
+ EPISODE_STATUS_UNSPECIFIED = 0;
+ EPISODE_STATUS_TRY_WATCH_WHOLE = 1;
+ EPISODE_STATUS_NOT_TRY_WATCH = 2;
+ EPISODE_STATUS_TRY_WATCH_5_MINUTES = 3;
+}
+
+//
+message PlayerMask {
+ //
+ string title = 1;
+ //
+ string prefix = 2;
+ //
+ string suffix = 3;
+}
+
+//
+message PUGVAnyModel {
+ //
+ int64 season_id = 1;
+ //
+ int64 episode_id = 2;
+ //
+ EpisodeStatus status = 3;
+ //
+ RiskControl risk_control = 4;
+ //
+ PlayerMask player_mask = 5;
+}
+
+//
+message RiskControl {
+ //
+ bool need_send_sms = 1;
+ //
+ string title = 2;
+ //
+ string risk_message = 3;
+ //
+ string action_desc = 4;
+ //
+ string send_sms_url = 5;
+ //
+ string buvid = 6;
+}
diff --git a/grpc_api/bilibili/app/playerunite/ugcanymodel/ugcanymodel.proto b/grpc_api/bilibili/app/playerunite/ugcanymodel/ugcanymodel.proto
new file mode 100644
index 0000000..7d48403
--- /dev/null
+++ b/grpc_api/bilibili/app/playerunite/ugcanymodel/ugcanymodel.proto
@@ -0,0 +1,39 @@
+syntax = "proto3";
+
+package bilibili.app.playerunite.ugcanymodel;
+
+//
+message ButtonStyle {
+ string text = 1;
+ string text_color = 2;
+ string bg_color = 3;
+ string jump_link = 4;
+}
+
+// 播放限制
+enum PlayLimitCode {
+ //
+ PLC_UNKNOWN = 0;
+ // 未付费
+ PLC_NOTPAYED = 1;
+ //
+ PLC_ChargingPlusNotPass = 2;
+ //
+ PLC_ChargingPlusUpgrade = 3;
+ //
+ PLC_ChargingPlusReject = 4;
+}
+
+//
+message PlayLimit {
+ PlayLimitCode code = 1;
+ string message = 2;
+ string sub_message = 3;
+ ButtonStyle button = 4;
+}
+
+//
+message UGCAnyModel {
+ PlayLimit play_limit = 1;
+}
+
diff --git a/grpc_api/bilibili/app/playerunite/v1/playerunite.proto b/grpc_api/bilibili/app/playerunite/v1/playerunite.proto
new file mode 100644
index 0000000..5e9a6ef
--- /dev/null
+++ b/grpc_api/bilibili/app/playerunite/v1/playerunite.proto
@@ -0,0 +1,57 @@
+syntax = "proto3";
+
+package bilibili.app.playerunite.v1;
+
+import "bilibili/playershared/playershared.proto";
+
+import "google/protobuf/any.proto";
+
+// 统一视频url
+service Player {
+ // 视频地址
+ rpc PlayViewUnite (PlayViewUniteReq) returns (PlayViewUniteReply);
+}
+
+//
+message PlayViewUniteReply {
+ // 音视频流信息
+ bilibili.playershared.VodInfo vod_info = 1;
+ //
+ bilibili.playershared.PlayArcConf play_arc_conf = 2;
+ //
+ bilibili.playershared.PlayDeviceConf play_device_conf = 3;
+ //
+ bilibili.playershared.Event event = 4;
+ // 使用 pgcanymodel / ugcanymodel 进行proto any转换成对应业务码结构体
+ google.protobuf.Any supplement = 5;
+ //
+ bilibili.playershared.PlayArc play_arc = 6;
+ //
+ bilibili.playershared.QnTrialInfo qn_trial_info = 7;
+ //
+ bilibili.playershared.History history = 8;
+ //
+ bilibili.playershared.ViewInfo view_info = 9;
+ //
+ bilibili.playershared.FragmentVideo fragment_video = 10;
+}
+
+//
+message PlayViewUniteReq {
+ // 请求资源VOD信息
+ bilibili.playershared.VideoVod vod = 1;
+ //
+ string spmid = 2;
+ //
+ string from_spmid = 3;
+ // 补充信息, 如ep_id等
+ map extra_content = 4;
+ //
+ string bvid = 5;
+ //
+ string ad_extra = 6;
+ //
+ bilibili.playershared.Fragment fragment = 7;
+ //
+ string from_scene = 8;
+}
diff --git a/grpc_api/bilibili/app/playurl/v1/playurl.proto b/grpc_api/bilibili/app/playurl/v1/playurl.proto
index 19eb851..3578d6d 100644
--- a/grpc_api/bilibili/app/playurl/v1/playurl.proto
+++ b/grpc_api/bilibili/app/playurl/v1/playurl.proto
@@ -32,6 +32,8 @@ message ArcConf {
bool disabled = 2;
//
ExtraContent extra_content = 3;
+ //
+ repeated int64 unsupport_scene = 4;
}
// 业务类型
@@ -112,6 +114,7 @@ enum ConfType {
PANORAMA = 27; // 全景
DOLBY = 28; // 杜比
COLORFILTER = 29; // 颜色滤镜
+ LOSSLESS = 30; // HIRES
}
//
@@ -243,6 +246,16 @@ enum Group {
C = 3; //
}
+//
+message LossLessItem {
+ //
+ bool is_lossless_audio = 1;
+ //
+ DashItem audio = 2;
+ //
+ bool need_vip = 3;
+}
+
// 禁用功能配置
message PlayAbilityConf {
CloudConf background_play_conf = 1; // 后台播放
@@ -274,6 +287,7 @@ message PlayAbilityConf {
CloudConf inner_dm_conf = 27; // 一起看入口
CloudConf dolby_conf = 28; // 杜比音效
CloudConf color_filter_conf = 29; // 颜色滤镜
+ CloudConf loss_less_conf = 30; // HIRES
}
// 播放控件稿件配置
@@ -308,6 +322,7 @@ message PlayArcConf {
ArcConf dolby_conf = 28; // 杜比音效
ArcConf screen_recording_conf = 29; // 屏幕录制
ArcConf color_filter_conf = 30; // 颜色滤镜
+ ArcConf loss_less_conf = 31; // HIRES
}
// 编辑播放界面配置-响应
@@ -366,6 +381,8 @@ message PlayLimit {
enum PlayLimitCode {
PLCUnkown = 0; //
PLCUgcNotPayed = 1; //
+ PLCChargingPlusNotPass = 2; //
+ PLCChargingPlusUpgrade = 3; //
}
// 视频地址-回复
@@ -642,14 +659,16 @@ message VideoInfo {
DolbyItem dolby = 7;
//
VolumeInfo volume = 8;
+ //
+ LossLessItem loss_less_item = 9;
}
// 视频类型
enum VideoType {
- Unknown_VALUE = 0; //
- FLV_VALUE = 1; // flv格式
- DASH_VALUE = 2; // dash格式
- MP4_VALUE = 3; // mp4格式
+ Unknown = 0; //
+ FLV = 1; // flv格式
+ DASH = 2; // dash格式
+ MP4 = 3; // mp4格式
}
//
@@ -668,4 +687,4 @@ message VolumeInfo {
double target_i = 6;
//
double target_tp = 7;
-}
\ No newline at end of file
+}
diff --git a/grpc_api/bilibili/app/search/v2/search.proto b/grpc_api/bilibili/app/search/v2/search.proto
new file mode 100644
index 0000000..7789b01
--- /dev/null
+++ b/grpc_api/bilibili/app/search/v2/search.proto
@@ -0,0 +1,195 @@
+syntax = "proto3";
+
+package bilibili.app.search.v2;
+
+import "bilibili/broadcast/message/main/search.proto";
+
+service Search {
+ //
+ rpc CancelChatTask (CancelChatTaskReq) returns (CancelChatTaskReply);
+ //
+ rpc GetChatAuth (GetChatAuthReq) returns (GetChatAuthReply);
+ //
+ rpc GetChatResult (GetChatResultReq) returns (bilibili.broadcast.message.main.ChatResult);
+ //
+ rpc QueryRecAfterClick (QueryRecAfterClickReq) returns (QueryRecAfterClickReply);
+ //
+ rpc SearchEgg (SearchEggReq) returns (SearchEggReply);
+ //
+ rpc SubmitChatTask (SubmitChatTaskReq) returns (SubmitChatTaskReply);
+}
+
+//
+message CancelChatTaskReq {
+ //
+ string session_id = 1;
+ //
+ string from_source = 2;
+}
+
+//
+message CancelChatTaskReply {
+ //
+ int32 code = 1;
+}
+
+//
+message GetChatAuthReq {}
+
+//
+message GetChatAuthReply {
+ //
+ bool display = 1;
+ //
+ string icon = 2;
+ //
+ string icon_night = 3;
+ //
+ string jump_link = 4;
+ //
+ string text_guide = 5;
+ //
+ int32 jump_link_type = 6;
+}
+
+//
+message GetChatResultReq {
+ //
+ string query = 1;
+ //
+ string session_id = 2;
+ //
+ string from_source = 3;
+ //
+ string track_id = 4;
+}
+
+//
+message QueryRecAfterClickItem {
+ //
+ string show_name = 1;
+ //
+ string recommend_reason = 2;
+ //
+ int32 icon_type = 3;
+ //
+ string url = 4;
+ //
+ string icon = 5;
+ //
+ string icon_night = 6;
+}
+
+//
+message QueryRecAfterClickReply {
+ //
+ int32 code = 1;
+ //
+ QueryRecAfterClickResult query_rec_result = 2;
+}
+
+//
+message QueryRecAfterClickReq {
+ //
+ string param = 1;
+ //
+ int32 pos = 2;
+ //
+ string track_id = 3;
+ //
+ string qv_id = 4;
+ //
+ string keyword = 5;
+ //
+ string click_url = 6;
+ //
+ string from_source = 7;
+}
+
+//
+message QueryRecAfterClickResult {
+ //
+ repeated QueryRecAfterClickItem query_rec_list = 1;
+ //
+ string related_title = 2;
+ //
+ string param = 3;
+ //
+ string goto = 4;
+ //
+ string linktype = 5;
+ //
+ int32 position = 6;
+ //
+ string trackid = 7;
+}
+
+//
+message SearchEggInfo {
+ //
+ int32 egg_type = 1;
+ //
+ int64 id = 2;
+ //
+ int32 is_commercial = 3;
+ //
+ string mask_color = 4;
+ //
+ int64 mask_transparency = 5;
+ //
+ string md5 = 6;
+ //
+ int32 re_type = 7;
+ //
+ string re_url = 8;
+ //
+ string re_value = 9;
+ //
+ int32 show_count = 10;
+ //
+ int64 size = 11;
+ //
+ int64 source = 12;
+ //
+ string url = 13;
+}
+
+//
+message SearchEggInfos {
+ //
+ repeated SearchEggInfo egg_info = 1;
+}
+
+//
+message SearchEggReply {
+ //
+ int32 code = 1;
+ //
+ string seid = 2;
+ //
+ SearchEggInfos result = 3;
+}
+
+//
+message SearchEggReq {
+
+}
+
+//
+message SubmitChatTaskReply {
+ //
+ int32 code = 1;
+ //
+ string session_id = 2;
+}
+
+//
+message SubmitChatTaskReq {
+ //
+ string query = 1;
+ //
+ string track_id = 2;
+ //
+ string from_source = 3;
+}
+
diff --git a/grpc_api/bilibili/app/show/mixture/v1/mixture.proto b/grpc_api/bilibili/app/show/mixture/v1/mixture.proto
new file mode 100644
index 0000000..1e13127
--- /dev/null
+++ b/grpc_api/bilibili/app/show/mixture/v1/mixture.proto
@@ -0,0 +1,53 @@
+syntax = "proto3";
+
+package bilibili.app.show.mixture.v1;
+
+//
+service Mixture {
+ //
+ rpc Widget(WidgetReq) returns (WidgetReply);
+}
+
+//
+message RcmdReason {
+ //
+ string content = 1;
+ //
+ uint32 corner_mark = 2;
+}
+
+//
+message WidgetItem {
+ //
+ string cover = 1;
+ //
+ string view = 2;
+ //
+ RcmdReason rcmd_reason = 3;
+ //
+ string title = 4;
+ //
+ string name = 5;
+ //
+ string uri = 6;
+ //
+ string goto = 7;
+ //
+ int64 id = 8;
+ //
+ int32 view_icon = 9;
+}
+
+//
+message WidgetReply {
+ //
+ repeated WidgetItem item = 1;
+}
+
+//
+message WidgetReq {
+ //
+ string from_spmid = 1;
+ //
+ uint32 page_no = 2;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/app/view/v1/view.proto b/grpc_api/bilibili/app/view/v1/view.proto
index 0c529d0..f874897 100644
--- a/grpc_api/bilibili/app/view/v1/view.proto
+++ b/grpc_api/bilibili/app/view/v1/view.proto
@@ -48,6 +48,8 @@ service View {
rpc SeasonWidgetExpose(SeasonWidgetExposeReq) returns (SeasonWidgetExposeReply);
//
rpc GetArcsPlayer(GetArcsPlayerReq) returns (GetArcsPlayerReply);
+ //
+ rpc GetUser(GetUserReq) returns (GetUserReply);
}
// 活动页资源包
@@ -881,6 +883,26 @@ message GetArcsPlayerReq {
bilibili.app.archive.middleware.v1.PlayerArgs player_args = 2;
}
+//
+message GetUserReq {
+ //
+ repeated int64 mids = 1;
+ //
+ int64 aid = 2;
+ //
+ int64 up_mid = 3;
+ //
+ bool only_fans = 4;
+}
+
+//
+message GetUserReply {
+ //
+ repeated User like_list = 1;
+ //
+ string title = 2;
+}
+
//
message GoodsInfo {
//
@@ -2121,6 +2143,27 @@ message TIcon {
string icon = 1;
}
+//
+message User {
+ //
+ int64 mid = 1;
+ //
+ string name = 2;
+ //
+ string face = 3;
+ //
+ bool isFollow = 4;
+ //
+ int64 isAttention = 5;
+ //
+ int64 isInterrelation = 6;
+ //
+ int64 follower = 7;
+ //
+ string interactDesc = 8;
+ //
+}
+
// UGC视频合集信息
message UgcSeason {
// 合集id
diff --git a/grpc_api/bilibili/app/viewunite/common.proto b/grpc_api/bilibili/app/viewunite/common.proto
new file mode 100644
index 0000000..c1f2a7a
--- /dev/null
+++ b/grpc_api/bilibili/app/viewunite/common.proto
@@ -0,0 +1,2009 @@
+syntax = "proto3";
+
+package bilibili.app.viewunite.common;
+
+import "bilibili/dagw/component/avatar/v1/avatar.proto";
+import "bilibili/pagination/pagination.proto";
+import "google/protobuf/any.proto";
+
+//
+message Activity {
+ //
+ int32 id = 1;
+ //
+ string title = 2;
+ //
+ string link = 3;
+ //
+ string cover = 4;
+ //
+ int32 type = 5;
+ //
+ string ab = 6;
+ //
+ string show_name = 7;
+ //
+ string picurl = 8;
+ //
+ string picurl_selected = 9;
+ //
+ string h5_link = 10;
+ //
+ string jump_mode = 11;
+ //
+ repeated Item items = 12;
+}
+
+//
+message ActivityEntrance {
+ //
+ string activity_cover = 1;
+ //
+ string activity_title = 2;
+ //
+ string word_tag = 3;
+ //
+ string activity_subtitle = 4;
+ //
+ string activity_link = 5;
+ //
+ int32 activity_type = 6;
+ //
+ int32 reserve_id = 7;
+ //
+ int32 status = 8;
+ //
+ repeated User upper_list = 9;
+ //
+ map report = 10;
+}
+
+//
+message ActivityEntranceModule {
+ //
+ repeated ActivityEntrance activity_entrance = 1;
+}
+
+//
+message ActivityReserve {
+ //
+ string title = 1;
+ //
+ StatInfo vt = 2;
+ //
+ StatInfo danmaku = 3;
+ //
+ ReserveButton button = 4;
+}
+
+//
+message ActivityResource {
+ //
+ string mod_pool_name = 1;
+ //
+ string mod_resource_name = 2;
+}
+
+//
+message ActivityTab {
+ //
+ int32 id = 1;
+ //
+ string title = 2;
+ //
+ int32 type = 3;
+ //
+ string show_name = 4;
+ //
+ string picurl = 5;
+ //
+ string picurl_selected = 6;
+ //
+ string h5_link = 7;
+ //
+ string link = 8;
+ //
+ int32 link_type = 9;
+ //
+ int64 biz_key = 10;
+ //
+ string desc = 11;
+ //
+ string act_ext = 12;
+ //
+ map report = 13;
+}
+
+//
+message AggEpCard {
+ //
+ string title = 1;
+ //
+ string cover = 2;
+ //
+ string icon = 3;
+ //
+ int32 num = 4;
+ //
+ string jump_url = 5;
+}
+
+//
+message AggEps {
+ //
+ repeated AggEpCard agg_ep_cards = 1;
+ //
+ int32 place_index = 2;
+}
+
+//
+message AttentionRecommend {}
+
+//
+enum AttentionRelationStatus {
+ //
+ ARS_NONE = 0;
+ //
+ ARS_N0RELATION = 1;
+ //
+ ARS_FOLLOWHIM = 2;
+ //
+ ARS_FOLLOWME = 3;
+ //
+ ARS_BUDDY = 4;
+ //
+ ARS_SPECIAL = 5;
+ //
+ ARS_CANCELBLOCK = 6;
+}
+
+//
+message Audio {
+ //
+ map audio_info = 1;
+}
+
+//
+message AudioInfo {
+ //
+ string title = 1;
+ //
+ string cover_url = 2;
+ //
+ int64 song_id = 3;
+ //
+ int64 play_count = 4;
+ //
+ int64 reply_count = 5;
+ //
+ int64 upper_id = 6;
+ //
+ string entrance = 7;
+ //
+ int64 song_attr = 8;
+}
+
+//
+message BadgeInfo {
+ //
+ string text = 1;
+ //
+ string text_color = 2;
+ //
+ string text_color_night = 3;
+ //
+ string bg_color = 4;
+ //
+ string bg_color_night = 5;
+ //
+ string border_color = 6;
+ //
+ string border_color_night = 7;
+ //
+ int32 bg_style = 8;
+ //
+ string img = 9;
+ //
+ int32 type = 10;
+}
+
+//
+message Banner {
+ //
+ string title = 1;
+ //
+ repeated RelateItem relate_item = 2;
+}
+
+//
+message BizFavParam {
+ //
+ int64 season_id = 1;
+}
+
+//
+message BizReserveActivityParam {
+ //
+ int64 activity_id = 1;
+ //
+ string from = 2;
+ //
+ string type = 3;
+ //
+ int64 oid = 4;
+ //
+ int64 reserve_id = 5;
+}
+
+//
+message Button {
+ //
+ string title = 1;
+ //
+ string left_strikethrough_text = 2;
+ //
+ string type = 3;
+ //
+ string link = 4;
+ //
+ BadgeInfo badge_info = 5;
+ //
+ string sub_title = 6;
+}
+
+//
+message CardBasicInfo {
+ //
+ string title = 1;
+ //
+ string desc = 2;
+ //
+ string cover = 3;
+ //
+ string uri = 4;
+ //
+ string track_id = 5;
+ //
+ string unique_id = 6;
+ //
+ int64 from_source_type = 7;
+ //
+ string from_source_id = 8;
+ //
+ int64 material_id = 9;
+ //
+ string cover_gif = 10;
+ //
+ Owner author = 11;
+ //
+ int64 id = 12;
+ //
+ string from = 13;
+ //
+ string from_spmid_suffix = 14;
+ //
+ string report_flow_data = 15;
+}
+
+//
+message CardStyle {
+ //
+ int32 id = 1;
+ //
+ string name = 2;
+}
+
+//
+message Celebrity {
+ //
+ int32 id = 1;
+ //
+ string name = 2;
+ //
+ string role = 3;
+ //
+ string avatar = 4;
+ //
+ string short_desc = 5;
+ //
+ string desc = 6;
+ //
+ string character_avatar = 7;
+ //
+ string link = 8;
+ //
+ int64 mid = 9;
+ //
+ int32 is_follow = 10;
+ //
+ string occupation_name = 11;
+ //
+ int32 occupation_type = 12;
+ //
+ int32 relate_attr = 13;
+ //
+ string small_avatar = 14;
+ //
+ map report = 15;
+}
+
+//
+message CharacterGroup {
+ //
+ string title = 1;
+ //
+ repeated Celebrity characters = 2;
+}
+
+//
+message Characters {
+ //
+ repeated CharacterGroup groups = 1;
+}
+
+//
+message CoinExtend {
+ //
+ string coin_app_zip_icon = 1;
+ //
+ string coin_app_icon_1 = 2;
+ //
+ string coin_app_icon_2 = 3;
+ //
+ string coin_app_icon_3 = 4;
+ //
+ string coin_app_icon_4 = 5;
+}
+
+//
+message CombinationEp {
+ //
+ int32 id = 1;
+ //
+ int32 section_id = 2;
+ //
+ string title = 3;
+ //
+ int32 can_ord_desc = 4;
+ //
+ string more = 5;
+ //
+ repeated int32 episode_ids = 6;
+ //
+ repeated ViewEpisode episodes = 7;
+ //
+ string split_text = 8;
+ //
+ Style module_style = 9;
+ //
+ repeated SerialSeason serial_season = 10;
+ //
+ SectionData section_data = 11;
+}
+
+//
+message Covenanter {}
+
+//
+message DeliveryData {
+ //
+ string title = 1;
+ //
+ Style module_style = 2;
+ //
+ string more = 3;
+ //
+ oneof data {
+ //
+ Activity activity = 4;
+ //
+ Characters characters = 5;
+ //
+ TheatreHotTopic theatre_hot_topic = 6;
+ //
+ AggEps agg_eps = 7;
+ }
+ //
+ int32 id = 8;
+ //
+ map report = 9;
+}
+
+//
+message Desc {
+ //
+ string info = 1;
+ //
+ string title = 2;
+}
+
+enum DescType {
+ //
+ DescTypeUnknown = 0;
+ //
+ DescTypeText = 1;
+ //
+ DescTypeAt = 2;
+}
+
+//
+message DescV2 {
+ //
+ string text = 1;
+ //
+ int32 type = 2;
+ //
+ string uri = 3;
+ //
+ int64 rid = 4;
+}
+
+//
+message Dimension {
+ //
+ int64 width = 1;
+ //
+ int64 height = 2;
+ //
+ int64 rotate = 3;
+}
+
+//
+message DislikeReasons {
+ //
+ int64 id = 1;
+ //
+ int64 mid = 2;
+ //
+ int32 rid = 3;
+ //
+ int64 tag_id = 4;
+ //
+ string name = 5;
+}
+
+//
+message FollowLayer {
+ //
+ Staff staff = 1;
+ //
+ Desc desc = 2;
+ //
+ map report = 3;
+}
+
+//
+message Headline {
+ //
+ Label label = 1;
+ //
+ string content = 2;
+}
+
+//
+message HistoryNode {
+ //
+ int64 node_id = 1;
+ //
+ string title = 2;
+ //
+ int64 cid = 3;
+}
+
+// 荣誉 Banner
+message Honor {
+ //
+ string icon = 1;
+ //
+ string icon_night = 2;
+ //
+ string text = 3;
+ //
+ string text_extra = 4;
+ //
+ string text_color = 5;
+ //
+ string text_color_night = 6;
+ //
+ string bg_color = 7;
+ //
+ string bg_color_night = 8;
+ //
+ string url = 9;
+ //
+ string url_text = 10;
+ //
+ HonorType type = 11;
+ //
+ HonorJumpType honor_jump_type = 12;
+ //
+ map report = 13;
+}
+
+// 荣誉 Banner 跳转类型
+enum HonorJumpType {
+ //
+ HONOR_JUMP_TYPE_UNKNOWN = 0;
+ //
+ HONOR_OPEN_URL = 1;
+ //
+ HONOR_HALF_SCREEN = 2;
+}
+
+// 荣誉类型
+enum HonorType {
+ //
+ HONOR_NONE = 0;
+ //
+ PLAYLET = 1;
+ // 视频存在争议
+ ARGUE = 2;
+ //
+ NOTICE = 3;
+ //
+ GUIDANCE = 4;
+ // 哔哩哔哩榜
+ HONOR_BILI_RANK = 5;
+ // 周榜
+ HONOR_WEEKLY_RANK = 6;
+ // 日榜
+ HONOR_DAILY_RANK = 7;
+ //
+ HONOR_CHANNEL = 8;
+ // 音乐榜?
+ HONOR_MUSIC = 9;
+ //
+ HONOR_REPLY = 10;
+}
+
+//
+message IconFont {
+ //
+ string name = 1;
+ //
+ string text = 2;
+}
+
+//
+message Interaction {
+ //
+ int64 ep_id = 1;
+ //
+ HistoryNode history_node = 2;
+ //
+ int64 graph_version = 3;
+ //
+ string msg = 4;
+ //
+ bool is_interaction = 5;
+}
+
+//
+message Item {
+ //
+ string link = 1;
+ //
+ string cover = 2;
+}
+
+//
+message KingPos {
+ //
+ bool disable = 1;
+ //
+ string icon = 2;
+ //
+ KingPositionType type = 3;
+ //
+ string disable_toast = 4;
+ //
+ string checked_post = 5;
+ //
+ oneof extend {
+ //
+ LikeExtend like = 6;
+ //
+ CoinExtend coin = 7;
+ }
+}
+
+//
+message KingPosition {
+ //
+ repeated KingPos king_pos = 1;
+ //
+ repeated KingPos extenf = 2;
+}
+
+//
+enum KingPositionType {
+ //
+ KING_POS_UNSPECIFIED = 0;
+ //
+ LIKE = 1;
+ //
+ DISLIKE = 2;
+ //
+ COIN = 3;
+ //
+ FAV = 4;
+ //
+ SHARE = 5;
+ //
+ CACHE = 6;
+ //
+ DANMAKU = 7;
+}
+
+//
+message Label {
+ //
+ int32 type = 1;
+ //
+ string uri = 2;
+ //
+ string icon = 3;
+ //
+ string icon_night = 4;
+ //
+ int64 icon_width = 5;
+ //
+ int64 icon_height = 6;
+ //
+ string lottie = 7;
+ //
+ string lottie_night = 8;
+}
+
+//
+message LikeComment {
+ //
+ string reply = 1;
+ //
+ string title = 2;
+}
+
+//
+message LikeExtend {
+ //
+ UpLikeImg triple_like = 1;
+ //
+ string like_animation = 2;
+ //
+ PlayerAnimation player_animation = 3;
+ //
+ ActivityResource resource = 4;
+}
+
+//
+message Live {
+ //
+ int64 mid = 1;
+ //
+ int64 room_id = 2;
+ //
+ string uri = 3;
+ //
+ string endpage_uri = 4;
+}
+
+// 直播预约信息
+message LiveOrder {
+ //
+ int64 sid = 1;
+ //
+ string text = 2;
+ //
+ int64 live_plan_start_time = 3;
+ //
+ bool is_follow = 4;
+ //
+ int64 follow_count = 5;
+}
+
+//
+message Mine {
+ //
+ double amount = 1;
+ //
+ int32 rank = 2;
+ //
+ string msg = 3;
+}
+
+//
+message Module {
+ //
+ ModuleType type = 1;
+ //
+ oneof data {
+ //
+ OgvIntroduction ogv_introduction = 2;
+ //
+ UgcIntroduction ugc_introduction = 3;
+ //
+ KingPosition king_position = 4;
+ //
+ Headline head_line = 5;
+ //
+ OgvTitle ogv_title = 6;
+ //
+ Honor honor = 7;
+ //
+ UserList list = 8;
+ //
+ Staffs staffs = 9;
+ //
+ ActivityReserve activity_reserve = 10;
+ //
+ LiveOrder live_order = 11;
+ //
+ SectionData section_data = 12;
+ //
+ DeliveryData delivery_data = 13;
+ //
+ FollowLayer follow_layer = 14;
+ //
+ OgvSeasons ogv_seasons = 15;
+ //
+ UgcSeasons ugc_season = 16;
+ //
+ OgvLiveReserve ogv_live_reserve = 17;
+ //
+ CombinationEp combination_ep = 18;
+ //
+ Sponsor sponsor = 19;
+ //
+ ActivityEntranceModule activity_entrance_module = 20;
+ //
+ SerialSeason serial_season = 21;
+ //
+ Relates relates = 22;
+ //
+ Banner banner = 23;
+ //
+ Audio audio = 24;
+ //
+ LikeComment like_comment = 25;
+ //
+ AttentionRecommend attention_recommend = 26;
+ //
+ Covenanter covenanter = 27;
+ }
+}
+
+enum ModuleType {
+ //
+ UNKNOWN = 0;
+ //
+ OGV_INTRODUCTION = 1;
+ //
+ OGV_TITLE = 2;
+ //
+ UGC_HEADLINE = 3;
+ //
+ UGC_INTRODUCTION = 4;
+ //
+ KING_POSITION = 5;
+ //
+ MASTER_USER_LIST = 6;
+ //
+ STAFFS = 7;
+ //
+ HONOR = 8;
+ //
+ OWNER = 9;
+ //
+ PAGE = 10;
+ //
+ ACTIVITY_RESERVE = 11;
+ //
+ LIVE_ORDER = 12;
+ //
+ POSITIVE = 13;
+ //
+ SECTION = 14;
+ //
+ RELATE = 15;
+ //
+ PUGV = 16;
+ //
+ COLLECTION_CARD = 17;
+ //
+ ACTIVITY = 18;
+ //
+ CHARACTER = 19;
+ //
+ FOLLOW_LAYER = 20;
+ //
+ OGV_SEASONS = 21;
+ //
+ UGC_SEASON = 22;
+ //
+ OGV_LIVE_RESERVE = 23;
+ //
+ COMBINATION_EPISODE = 24;
+ //
+ SPONSOR = 25;
+ //
+ ACTIVITY_ENTRANCE = 26;
+ //
+ THEATRE_HOT_TOPIC = 27;
+ //
+ RELATED_RECOMMEND = 28;
+ //
+ PAY_BAR = 29;
+ //
+ BANNER = 30;
+ //
+ AUDIO = 31;
+ //
+ AGG_CARD = 32;
+ //
+ SINGLE_EP = 33;
+ //
+ LIKE_COMMENT = 34;
+ //
+ ATTENTION_RECOMMEND = 35;
+ //
+ COVENANTER = 36;
+}
+
+//
+message MultiViewEp {
+ //
+ int64 ep_id =1;
+}
+
+//
+message NewEp {
+ //
+ int32 id = 1;
+ //
+ string title = 2;
+ //
+ string desc = 3;
+ //
+ int32 is_new = 4;
+ //
+ string more = 5;
+ //
+ string cover = 6;
+ //
+ string index_show = 7;
+}
+
+//
+enum OccupationType {
+ //
+ STAFF = 0;
+ //
+ CAST = 1;
+}
+
+//
+message OfficialVerify {
+ //
+ int32 type = 1;
+ //
+ string desc = 2;
+}
+
+//
+message OgvIntroduction {
+ //
+ string followers = 1;
+ //
+ string score = 2;
+ //
+ StatInfo play_data = 3;
+}
+
+//
+message OgvLiveReserve {
+ //
+ int64 reserve_id = 1;
+ //
+ string title = 2;
+ //
+ string icon = 3;
+ //
+ string night_icon = 4;
+ //
+ string click_button = 5;
+ //
+ string link = 6;
+ //
+ int32 follow_video_is_reserve_live = 7;
+ //
+ string bg_color = 8;
+ //
+ string night_bg_color = 9;
+ //
+ string text_color = 10;
+ //
+ string night_text_color = 11;
+ //
+ string bt_bg_color = 12;
+ //
+ string bt_frame_color = 13;
+ //
+ string night_bt_bg_color = 14;
+ //
+ string night_bt_frame_color = 15;
+ //
+ int32 active_type = 16;
+ //
+ int32 reserve_status = 17;
+ //
+ string bt_text_color = 18;
+ //
+ string night_bt_text_color = 19;
+ //
+ map report = 20;
+}
+
+//
+message OgvSeasons {
+ //
+ string title = 1;
+ //
+ repeated SerialSeason serial_season = 2;
+ //
+ SerialSeasonCoverStyle style = 3;
+}
+
+//
+message OgvTitle {
+ //
+ string title = 1;
+ //
+ BadgeInfo badge_info = 2;
+ //
+ int32 is_show_btn_animation = 3;
+ //
+ int32 follow_video_is_reserve_live = 4;
+ //
+ int64 reserve_id = 5;
+ //
+ TitleDeliveryButton title_delivery_button = 6;
+}
+
+//
+message Owner {
+ bilibili.dagw.component.avatar.v1.AvatarItem avatar = 1;
+ //
+ string url = 2;
+ //
+ string title = 3;
+ //
+ string fans = 4;
+ //
+ string arc_count = 5;
+ //
+ int32 attention = 6;
+ //
+ int32 attention_relation = 7;
+ //
+ string pub_location = 8;
+ //
+ Vip vip = 9;
+ //
+ string title_url = 10;
+ //
+ string face = 11;
+ //
+ int64 mid = 12;
+ //
+ OfficialVerify official_verify = 13;
+ //
+ Live live = 14;
+ //
+ int64 fans_num = 15;
+ //
+ repeated int64 assists = 16;
+}
+
+//
+message Page {
+ //
+ int64 cid = 1;
+ //
+ string part = 2;
+ //
+ int64 duration = 3;
+ //
+ string desc = 4;
+ //
+ Dimension dimension = 5;
+ //
+ string dl_title = 6;
+ //
+ string dl_subtitle = 7;
+}
+
+//
+message Pendant {
+ //
+ int32 pid = 1;
+ //
+ string name = 2;
+ //
+ string image = 3;
+}
+
+//
+message PlayerAnimation {
+ //
+ string player_icon = 1;
+ //
+ string player_triple_icon = 2;
+}
+
+//
+message PointActivity {
+ //
+ string tip = 1;
+ //
+ string content = 2;
+ //
+ string link = 3;
+}
+
+//
+message PowerIconStyle {
+ //
+ string icon_url = 1;
+ //
+ string icon_night_url = 2;
+ //
+ int64 icon_width = 3;
+ //
+ int64 icon_height = 4;
+}
+
+//
+message Rank {
+ //
+ string icon = 1;
+ //
+ string icon_night = 2;
+ //
+ string text = 3;
+}
+
+//
+message RankInfo {
+ //
+ string icon_url_night = 1;
+ //
+ string icon_url_day = 2;
+ //
+ string bkg_night_color = 3;
+ //
+ string bkg_day_color = 4;
+ //
+ string font_night_color = 5;
+ //
+ string font_day_color = 6;
+ //
+ string rank_content = 7;
+ //
+ string rank_link = 8;
+}
+
+//
+message Rating {
+ //
+ string score = 1;
+ //
+ int32 count = 2;
+}
+
+// 视频详情下方推荐卡子类型: 普通视频
+message RelateAVCard {
+ //
+ int64 duration = 1;
+ //
+ int64 cid = 2;
+ //
+ Dimension dimension = 3;
+ //
+ Stat stat = 4;
+ //
+ string jump_url = 5;
+ //
+ bool show_up_name = 6;
+ //
+ BadgeInfo rcmd_reason = 7;
+}
+
+// 视频详情下方推荐卡子类型: 番剧(小卡?)
+message RelateBangumiAvCard {
+ //
+ BadgeInfo badge = 1;
+ //
+ Stat stat = 2;
+ //
+ Rating rating = 3;
+}
+
+// 视频详情下方推荐卡子类型: 番剧(大卡?)
+message RelateBangumiCard {
+ //
+ int32 season_id = 1;
+ //
+ int32 season_type = 2;
+ //
+ NewEp new_ep = 3;
+ //
+ Stat stat = 4;
+ //
+ Rating rating = 5;
+ //
+ string rcmd_reason = 6;
+ //
+ BadgeInfo badge_info = 7;
+ //
+ string goto_type = 8;
+ //
+ map report = 9;
+}
+
+// 视频详情下方推荐卡子类型: 番剧集?
+message RelateBangumiResourceCard {
+ //
+ int32 type = 1;
+ //
+ string scover = 2;
+ //
+ int32 re_type = 3;
+ //
+ string re_value = 4;
+ //
+ string corner = 5;
+ //
+ int32 card = 6;
+ //
+ string siz = 7;
+ //
+ int32 position = 8;
+ //
+ string rcmd_reason = 9;
+ //
+ string label = 10;
+ //
+ map report = 11;
+ //
+ string goto_type = 12;
+}
+
+// 视频详情下方推荐卡子类型: UGC 番剧?
+message RelateBangumiUgcCard {
+ //
+ BadgeInfo badge = 1;
+ //
+ Stat stat = 2;
+ //
+ Rating rating = 3;
+}
+
+// 视频详情下方推荐卡
+message RelateCard {
+ //
+ RelateCardType relate_card_type = 1;
+ //
+ oneof card {
+ //
+ RelateAVCard av = 2;
+ //
+ RelateBangumiCard bangumi = 3;
+ //
+ RelateBangumiResourceCard resource = 4;
+ //
+ RelateGameCard game = 5;
+ //
+ RelateCMCard cm = 6;
+ //
+ RelateLiveCard live = 7;
+ //
+ RelateBangumiAvCard bangumi_av = 8;
+ //
+ RelatedAICard ai_card = 9;
+ //
+ RelateBangumiUgcCard bangumi_ugc = 13;
+ //
+ RelateSpecial special = 14;
+ }
+ //
+ RelateThreePoint three_point = 10;
+ //
+ google.protobuf.Any cm_stock = 11;
+ //
+ CardBasicInfo basic_info = 12;
+}
+
+// 视频详情下方推荐卡子类型
+enum RelateCardType {
+ //
+ CARD_TYPE_UNKNOWN = 0;
+ //
+ AV = 1;
+ //
+ BANGUMI = 2;
+ //
+ RESOURCE = 3;
+ //
+ GAME = 4;
+ //
+ CM = 5;
+ //
+ LIVE = 6;
+ //
+ AI_RECOMMEND = 7;
+ //
+ BANGUMI_AV = 8;
+ //
+ BANGUMI_UGC = 9;
+ //
+ SPECIAL = 10;
+}
+
+// 视频详情下方推荐卡子类型: 广告推广
+message RelateCMCard {
+ //
+ int64 aid = 1;
+ //
+ google.protobuf.Any source_content = 2;
+ //
+ int64 duration = 3;
+ //
+ Stat stat = 4;
+}
+
+// 视频详情下方推荐配置
+message RelateConfig {
+ //
+ int64 valid_show_m = 1;
+ //
+ int64 valid_show_n = 2;
+ //
+ bilibili.pagination.Pagination pagination = 3;
+ //
+ bool can_load_more = 4;
+}
+
+// 视频详情下方推荐卡子类型: AI 推荐?
+message RelatedAICard {
+ //
+ int64 aid = 1;
+ //
+ int64 duration = 2;
+ //
+ Staff up_info = 3;
+ //
+ Stat stat = 4;
+ //
+ map report = 5;
+ //
+ string goto_type = 6;
+}
+
+// 视频详情下方推荐卡子类型: 点击不喜欢后占位卡片
+message RelateDislike {
+ //
+ string title = 1;
+ //
+ string sub_title = 2;
+ //
+ string closed_sub_title = 3;
+ //
+ string paste_text = 4;
+ //
+ string closed_paste_text = 5;
+ //
+ repeated DislikeReasons dislike_reason = 6;
+ //
+ string toast = 7;
+ //
+ string closed_toast = 8;
+}
+
+// 视频详情下方推荐卡子类型: 游戏推广
+message RelateGameCard {
+ //
+ int64 reserve_status = 1;
+ //
+ string reserve_status_text = 2;
+ //
+ string reserve = 3;
+ //
+ float rating = 4;
+ //
+ string tag_name = 5;
+ //
+ RankInfo rank_info = 6;
+ //
+ Button pack_info = 7;
+ //
+ Button notice = 8;
+ //
+ PowerIconStyle power_icon_style = 9;
+ //
+ string game_rcmd_reason = 10;
+ //
+ WikiInfo wiki_info = 11;
+ //
+ BadgeInfo badge = 12;
+}
+
+//
+message RelateItem {
+ //
+ string url = 1;
+ //
+ string cover = 2;
+ //
+ bool use_default_browser = 3;
+}
+
+// 视频详情下方推荐卡子类型: 直播
+message RelateLiveCard {
+ //
+ int64 icon_type = 1;
+ //
+ string area_name = 2;
+ //
+ int64 watched_show = 3;
+ //
+ int64 live_status = 4;
+}
+
+// 视频下方推荐区
+message Relates {
+ //
+ repeated RelateCard cards = 1;
+ //
+ RelateConfig config = 2;
+}
+
+// 视频详情下方推荐卡子类型: 其他特殊
+message RelateSpecial {
+ //
+ BadgeInfo badge = 1;
+ //
+ BadgeInfo rcmd_reason = 2;
+}
+
+// 视频详情下方推荐卡右上角三点的内容
+message RelateThreePoint {
+ //
+ RelateDislike dislike = 1;
+ //
+ RelateDislike feedback = 2;
+ //
+ bool watch_later = 3;
+ //
+ string dislike_report_data = 4;
+}
+
+//
+enum ReserveBizType {
+ //
+ BizTypeNone = 0;
+ //
+ BizTypeReserveActivity = 1;
+ //
+ BizTypeFavSeason = 2;
+}
+
+//
+message ReserveButton {
+ //
+ bool status = 1;
+ //
+ string text = 3;
+ //
+ string selected_text = 4;
+ //
+ ReserveBizType order_type = 7;
+ //
+ oneof order_param {
+ //
+ BizReserveActivityParam reserve = 8;
+ //
+ BizFavParam fav = 9;
+ }
+}
+
+//
+message Rights {
+ //
+ int32 allow_download = 1;
+ //
+ int32 allow_review = 2;
+ //
+ int32 can_watch = 3;
+ //
+ string resource = 4;
+ //
+ int32 allow_dm = 5;
+ //
+ int32 allow_demand = 6;
+ // 区域限制
+ int32 area_limit = 7;
+}
+
+//
+message SeasonHead {
+ //
+ string title = 1;
+ //
+ string intro = 2;
+ //
+ StatInfo vt = 3;
+ //
+ StatInfo danmaku = 4;
+}
+
+//
+message SeasonShow {
+ //
+ string button_text = 1;
+ //
+ string join_text = 2;
+ //
+ string rule_text = 3;
+ //
+ string checkin_text = 4;
+ //
+ string checkin_prompt = 5;
+}
+
+enum SeasonType {
+ //
+ Unknown = 0;
+ //
+ Base = 1;
+ //
+ Good = 2;
+}
+
+//
+message SectionData {
+ //
+ int32 id = 1;
+ //
+ int32 section_id = 2;
+ //
+ string title = 3;
+ //
+ int32 can_ord_desc = 4;
+ //
+ string more = 5;
+ //
+ repeated int32 episode_ids = 6;
+ //
+ repeated ViewEpisode episodes = 7;
+ //
+ string split_text = 8;
+ //
+ Style module_style = 9;
+ //
+ string more_bottom_desc = 10;
+ //
+ repeated SerialSeason seasons = 11;
+ //
+ Button more_left = 12;
+ //
+ int32 type = 13;
+ //
+ map report = 14;
+}
+
+//
+message SerialSeason {
+ //
+ int32 season_id = 1;
+ //
+ string title = 2;
+ //
+ string season_title = 3;
+ //
+ int32 is_new = 4;
+ //
+ string cover = 5;
+ //
+ string badge = 6;
+ //
+ int32 badge_type = 7;
+ //
+ BadgeInfo badge_info = 8;
+ //
+ string link = 9;
+ //
+ string resource = 10;
+ //
+ NewEp new_ep = 11;
+}
+
+enum SerialSeasonCoverStyle {
+ //
+ TITLE = 0;
+ //
+ PICTURE = 1;
+}
+
+//
+message SkipRange {
+ //
+ int32 start = 1;
+ //
+ int32 end = 2;
+}
+
+//
+message Sponsor {
+ //
+ int64 total = 1;
+ //
+ int64 week = 2;
+ //
+ repeated SponsorRank rank_list = 3;
+ //
+ Mine mine = 4;
+ //
+ PointActivity point_activity = 5;
+ //
+ repeated Pendant pendants = 6;
+ //
+ repeated Threshold threshold = 7;
+}
+
+//
+message SponsorRank {
+ //
+ int64 uid = 1;
+ //
+ string msg = 2;
+ //
+ string uname = 3;
+ //
+ string face = 4;
+ //
+ Vip vip = 5;
+}
+
+//
+message Staff {
+ //
+ int64 mid = 1;
+ //
+ int32 attention = 2;
+ //
+ string title = 3;
+ //
+ string name = 4;
+ //
+ string face = 5;
+ //
+ OfficialVerify official = 6;
+ //
+ Vip vip = 7;
+ //
+ int32 label_style = 8;
+ //
+ string fans = 9;
+}
+
+//
+message Staffs {
+ //
+ repeated Staff staff = 1;
+ //
+ string title = 2;
+}
+
+//
+message Stat {
+ // 视频观看时长
+ StatInfo vt = 1;
+ // 弹幕
+ StatInfo danmaku = 2;
+ // 回复数
+ int64 reply = 3;
+ // 收藏数
+ int64 fav = 4;
+ // 硬币数
+ int64 coin = 5;
+ // 分享数
+ int64 share = 6;
+ // 点赞数
+ int64 like = 7;
+ // 关注数
+ int64 follow = 8;
+}
+
+//
+message StatInfo {
+ //
+ int64 value = 1;
+ //
+ string text = 2;
+ //
+ string pure_text = 3;
+ //
+ string icon = 4;
+}
+
+//
+message Style {
+ //
+ int32 line = 1;
+ //
+ int32 hidden = 2;
+ //
+ repeated string show_pages = 3;
+}
+
+//
+message Tag {
+ //
+ int64 tag_id = 1;
+ //
+ string name = 2;
+ //
+ string uri = 3;
+ //
+ string tag_type = 4;
+}
+
+//
+message TheatreHotTopic {
+ //
+ int64 theatre_id = 1;
+ //
+ int64 theatre_set_id = 2;
+ //
+ string theatre_title = 3;
+ //
+ string background_image_url = 4;
+ //
+ string theatre_url = 5;
+ //
+ int64 hot_topic_id = 6;
+ // Original one is hottopicsetid, here renamed
+ int64 hot_topic_set_id = 7;
+ // Original one is hottopictitle, here renamed
+ string hot_topic_title = 8;
+ //
+ string hot_topic_url = 9;
+ //
+ int32 is_subscribe = 10;
+ //
+ map report = 11;
+}
+
+//
+message Threshold {
+ //
+ int32 bp = 1;
+ //
+ int32 days = 2;
+ //
+ string days_text = 3;
+}
+
+//
+message TitleDeliveryButton {
+ //
+ string icon = 1;
+ //
+ string title = 2;
+ //
+ string link = 3;
+ //
+ map report = 4;
+}
+
+//
+message UgcEpisode {
+ //
+ int64 id = 1;
+ //
+ int64 aid = 2;
+ //
+ int64 cid = 3;
+ //
+ string title = 4;
+ //
+ string cover = 5;
+ //
+ string cover_right_text = 6;
+ //
+ Page page = 7;
+ //
+ StatInfo vt = 8;
+ //
+ StatInfo danmaku = 9;
+}
+
+//
+message UgcIntroduction {
+ //
+ repeated Tag tags = 1;
+ //
+ Rating rating = 2;
+ //
+ Rank rank = 3;
+ //
+ repeated ViewMaterial bgm = 4;
+ //
+ repeated ViewMaterial sticker = 5;
+ //
+ repeated ViewMaterial video_source = 6;
+ //
+ int64 pubdate = 7;
+ //
+ repeated DescV2 desc = 8;
+}
+
+//
+message UgcSeasonActivity {
+ //
+ int32 type = 1;
+ //
+ int64 oid = 2;
+ //
+ int64 activity_id = 3;
+ //
+ string title = 4;
+ //
+ string intro = 5;
+ //
+ int32 day_count = 6;
+ //
+ int32 user_count = 7;
+ //
+ int64 join_deadline = 8;
+ //
+ int64 activity_deadline = 9;
+ //
+ int32 checkin_view_time = 10;
+ //
+ bool new_activity = 11;
+ //
+ UserActivity user_activity = 12;
+ //
+ SeasonShow season_show = 13;
+}
+
+//
+message UgcSeasons {
+ //
+ int64 id = 1;
+ //
+ string title = 2;
+ //
+ string cover = 3;
+ //
+ string supernatant_title = 4;
+ //
+ repeated UgcSection section = 5;
+ //
+ string union_title = 6;
+ //
+ SeasonHead head = 7;
+ //
+ int64 ep_count = 8;
+ //
+ int32 season_type = 9;
+ //
+ UgcSeasonActivity activity = 10;
+ //
+ repeated string season_ability = 11;
+ //
+ string season_title = 12;
+}
+
+//
+message UgcSection {
+ //
+ int64 id = 1;
+ //
+ string title = 2;
+ //
+ int64 type = 3;
+ //
+ repeated UgcEpisode episodes = 4;
+}
+
+//
+message UpLikeImg {
+ //
+ string pre_img = 1;
+ //
+ string suc_img = 2;
+ //
+ string content = 3;
+ //
+ int64 type = 4;
+}
+
+//
+message User {
+ //
+ int64 mid = 1;
+ //
+ string name = 2;
+ //
+ string face = 3;
+ //
+ int64 follower = 4;
+}
+
+//
+message UserActivity {
+ //
+ int32 user_state = 1;
+ //
+ int64 last_checkin_date = 2;
+ //
+ int32 checkin_today = 3;
+ //
+ int32 user_day_count = 4;
+ //
+ int32 user_view_time = 5;
+ //
+ string portrait = 6;
+}
+
+//
+message UserList {
+ //
+ repeated User list = 1;
+ //
+ string title = 2;
+}
+
+//
+message UserStatus {
+ //
+ int32 show = 1;
+ //
+ int32 follow = 2;
+}
+
+//
+message ViewEpisode {
+ //
+ int64 ep_id = 1;
+ //
+ string badge = 2;
+ //
+ int32 badge_type = 3;
+ //
+ BadgeInfo badge_info = 4;
+ //
+ int32 duration = 5;
+ //
+ int32 status = 6;
+ //
+ string cover = 7;
+ //
+ int64 aid = 8;
+ //
+ string title = 9;
+ //
+ string movie_title = 10;
+ //
+ string subtitle = 11;
+ //
+ string long_title = 12;
+ //
+ string toast_title = 13;
+ //
+ int64 cid = 14;
+ //
+ string from = 15;
+ //
+ string share_url = 16;
+ //
+ string share_copy = 17;
+ //
+ string short_link = 18;
+ //
+ string vid = 19;
+ //
+ string release_date = 20;
+ //
+ Dimension dimension = 21;
+ //
+ Rights rights = 22;
+ //
+ Interaction interaction = 23;
+ //
+ string bvid = 24;
+ //
+ int32 archive_attr = 25;
+ //
+ string link = 26;
+ //
+ string link_type = 27;
+ //
+ string bmid = 28;
+ //
+ int64 pub_time = 29;
+ //
+ int32 pv = 30;
+ //
+ int32 ep_index = 31;
+ //
+ int32 section_index = 32;
+ //
+ repeated Staff up_infos = 33;
+ //
+ Staff up_info = 34;
+ //
+ string dialog_type = 35;
+ //
+ string toast_type = 36;
+ //
+ repeated MultiViewEp multi_view_eps = 37;
+ //
+ bool is_sub_view = 38;
+ //
+ bool is_view_hide = 39;
+ //
+ string jump_link = 40;
+ //
+ Stat stat_for_unity = 41;
+ //
+ map report = 42;
+}
+
+//
+message ViewMaterial {
+ //
+ int64 oid = 1;
+ //
+ int64 mid = 2;
+ //
+ string title = 3;
+ //
+ string author = 4;
+ //
+ string jump_url = 5;
+}
+
+//
+message Vip {
+ //
+ int32 type = 1;
+ //
+ int32 vip_status = 2;
+ //
+ int32 theme_type = 3;
+ //
+ VipLabel label = 4;
+ //
+ int32 is_vip = 5;
+}
+
+//
+message VipLabel {
+ //
+ string path = 1;
+ //
+ string text = 2;
+ //
+ string label_theme = 3;
+}
+
+//
+message WikiInfo {
+ //
+ string wiki_label = 1;
+ //
+ string wiki_url = 2;
+}
diff --git a/grpc_api/bilibili/app/viewunite/pgcanymodel.proto b/grpc_api/bilibili/app/viewunite/pgcanymodel.proto
new file mode 100644
index 0000000..b2245c9
--- /dev/null
+++ b/grpc_api/bilibili/app/viewunite/pgcanymodel.proto
@@ -0,0 +1,245 @@
+syntax = "proto3";
+
+package bilibili.app.viewunite.pgcanymodel;
+
+import "bilibili/app/viewunite/common.proto";
+
+//
+message Earphone {
+ //
+ string product_model = 1;
+ //
+ string like_toast_text = 2;
+ //
+ string switch_toast_text = 3;
+ //
+ string like_toast_voice = 4;
+}
+
+//
+message EarphoneConf {
+ //
+ repeated Earphone sp_phones = 1;
+}
+
+//
+message MultiViewInfo {
+ //
+ bool is_multi_view_season = 1;
+ //
+ string changing_dance = 2;
+}
+
+//
+message OgvData {
+ //
+ int32 media_id = 1;
+ //
+ int64 season_id = 2;
+ //
+ int32 season_type = 3;
+ //
+ int32 show_season_type = 4;
+ //
+ Rights rights = 5;
+ //
+ UserStatus user_status = 6;
+ //
+ int64 aid = 7;
+ //
+ Stat stat = 8;
+ //
+ int32 mode = 9;
+ //
+ Publish publish = 10;
+ //
+ PlayStrategy play_strategy = 11;
+ //
+ MultiViewInfo multi_view_info = 12;
+ //
+ OgvSwitch ogv_switch = 13;
+ //
+ int32 total_ep = 14;
+ //
+ bilibili.app.viewunite.common.NewEp new_ep = 15;
+ //
+ Reserve reserve = 16;
+ //
+ int32 status = 17;
+ //
+ repeated PlayFloatLayerActivity activity_float_layer = 18;
+ //
+ EarphoneConf earphone_conf = 19;
+ //
+ string cover = 20;
+ //
+ string square_cover = 21;
+ //
+ string share_url = 22;
+ //
+ string short_link = 23;
+ //
+ string title = 24;
+ //
+ string horizontal_cover169 = 25;
+ //
+ string horizontal_cover1610 = 26;
+ //
+ int32 has_can_play_ep = 27;
+}
+
+//
+message OgvSwitch {
+ //
+ int32 reduce_short_title_spacing = 1;
+ //
+ int32 merge_position_section_for_cinema = 2;
+ //
+ int32 merge_preview_section = 3;
+ //
+ int32 enable_show_vt_info = 4;
+}
+
+// 播放器浮层广告(?)
+message PlayFloatLayerActivity {
+ //
+ int32 id = 1;
+ //
+ string title = 2;
+ //
+ int32 type = 3;
+ //
+ int32 ad_badge_type = 4;
+ //
+ string link = 5;
+ //
+ string pic_url = 6;
+ //
+ string pic_anima_url = 7;
+ //
+ bilibili.app.viewunite.common.BadgeInfo badge = 8;
+ //
+ int64 show_rate_time = 9;
+}
+
+//
+message PlayStrategy {
+ //
+ repeated string strategies = 1;
+ //
+ int32 recommend_show_strategy = 2;
+ //
+ string auto_play_toast = 3;
+}
+
+//
+message Publish {
+ //
+ string pub_time = 1;
+ //
+ string pub_time_show = 2;
+ //
+ int32 is_started = 3;
+ //
+ int32 is_finish = 4;
+ //
+ int32 weekday = 5;
+ //
+ string release_date_show = 6;
+ //
+ string time_length_show = 7;
+ //
+ int32 unknow_pub_date = 8;
+ //
+ string update_info_desc = 9;
+}
+
+//
+message Reserve {
+ //
+ repeated bilibili.app.viewunite.common.ViewEpisode episodes = 1;
+ //
+ string tip = 2;
+}
+
+// 权限相关信息
+message Rights {
+ //
+ int32 allow_download = 1;
+ //
+ int32 allow_review = 2;
+ //
+ int32 can_watch = 3;
+ //
+ int32 is_cover_show = 4;
+ //
+ string copyright = 5;
+ //
+ string copyright_name = 6;
+ //
+ int32 allow_bp = 7;
+ //
+ int32 area_limit = 8;
+ //
+ int32 is_preview = 9;
+ //
+ int32 ban_area_show = 10;
+ //
+ int32 watch_platform = 11;
+ //
+ int32 allow_bp_rank = 12;
+ //
+ string resource = 13;
+ //
+ int32 forbid_pre = 14;
+ //
+ int32 only_vip_download = 15;
+ //
+ int32 new_allow_download = 16;
+}
+
+//
+message Stat {
+ //
+ string followers = 1;
+ //
+ bilibili.app.viewunite.common.StatInfo play_data = 2;
+}
+
+//
+message UserStatus {
+ //
+ int32 show = 1;
+ //
+ int32 follow = 2;
+ //
+ int32 follow_status = 3;
+ //
+ int32 pay = 4;
+ //
+ int32 sponsor = 5;
+ //
+ int32 vip = 6;
+ // vip 是否被冻结
+ int32 vip_frozen = 7;
+ //
+ WatchProgress watch_progress = 8;
+}
+
+//
+message ViewPgcAny {
+ //
+ OgvData ogv_data = 1;
+ //
+ map all_up_info = 2;
+}
+
+//
+message WatchProgress {
+ //
+ int64 last_ep_id = 1;
+ //
+ string last_ep_index = 2;
+ //
+ int64 last_time = 3;
+}
diff --git a/grpc_api/bilibili/app/viewunite/pugvanymodel.proto b/grpc_api/bilibili/app/viewunite/pugvanymodel.proto
new file mode 100644
index 0000000..2734bb2
--- /dev/null
+++ b/grpc_api/bilibili/app/viewunite/pugvanymodel.proto
@@ -0,0 +1,430 @@
+syntax = "proto3";
+
+package bilibili.app.viewunite.pugvanymodel;
+
+//
+message AbTest {
+}
+
+//
+message CatalogueInfo {
+ //
+ repeated SeasonCatalogue catalogues = 1;
+ //
+ CatalogueLiveInfo catalogue_live_info = 2;
+ //
+ string catalogue_update_text = 3;
+}
+
+//
+message CatalogueLiveInfo {
+ //
+ int64 episode_id = 1;
+ //
+ string title = 2;
+ //
+ string subtitle = 3;
+ //
+ string button_text = 4;
+ //
+ LiveStatus status = 5;
+}
+
+//
+message CourseCoach {
+ //
+ string detail_url = 1;
+ //
+ string directory_url = 2;
+}
+
+//
+message Courseware {
+ //
+ int64 file_id = 1;
+ //
+ string file_name = 2;
+ //
+ string file_type = 3;
+ //
+ int64 file_size = 4;
+ //
+ string desc = 5;
+ //
+ string file_url = 6;
+}
+
+//
+message CoursewareInfo {
+ //
+ repeated Courseware coursewares = 1;
+}
+
+//
+message DanmakuControl {
+ //
+ bool disabled = 1;
+ //
+ ExtraContent extra_content = 2;
+}
+
+message Episode {
+ //
+ EpisodeType type = 1;
+ //
+ oneof data {
+ //
+ VideoEpisode video_episode = 2;
+ //
+ LiveEpisode live_episode = 3;
+ }
+}
+
+//
+message EpisodeHistory {
+ //
+ bool last_play = 1;
+ //
+ string last_play_text = 2;
+ //
+ int64 max_progress = 3;
+ //
+ string full_watched_text = 4;
+}
+
+//
+message EpisodeLabel {
+ //
+ string type_label = 1;
+}
+
+//
+message EpisodeSelectionLabel {
+ //
+ string type_label = 1;
+}
+
+//
+enum EpisodeStatus {
+ EPISODE_STATUS_UNSPECIFIED = 0;
+ EPISODE_STATUS_TRY_WATCH_WHOLE = 1;
+ EPISODE_STATUS_NOT_TRY_WATCH = 2;
+ EPISODE_STATUS_TRY_WATCH_5_MINUTES = 3;
+}
+
+//
+enum EpisodeType {
+ EPISODE_TYPE_UNSPECIFIED = 0;
+ EPISODE_TYPE_VIDEO = 1;
+ EPISODE_TYPE_LIVE = 2;
+}
+
+//
+message ExtraContent {
+ //
+ string disabled_reason = 1;
+}
+
+//
+message LiveEpisode {
+ //
+ int64 episode_id = 1;
+ //
+ LiveStatus status = 2;
+ //
+ bool jump = 3;
+ //
+ int64 live_teacher_mid = 4;
+ //
+ bool show_subscription_prebook_button = 5;
+ //
+ bool be_subscription_prebook = 6;
+ //
+ int64 index = 7;
+ //
+ string title = 8;
+ //
+ string play_way_subtitle = 9;
+ //
+ string subtitle = 10;
+ //
+ bool show_lock_icon = 11;
+ //
+ EpisodeLabel episode_label = 12;
+ //
+ EpisodeSelectionLabel selection_label = 13;
+}
+
+//
+message LiveInfo {
+ //
+ int64 episode_id = 1;
+ //
+ LiveStatus status = 2;
+ //
+ bool jump = 3;
+ //
+ int64 live_teacher_mid = 4;
+ //
+ bool show_subscription_prebook_button = 5;
+ //
+ bool be_subscription_prebook = 6;
+}
+
+//
+enum LiveStatus {
+ LIVE_STATUS_UNSPECIFIED = 0;
+ LIVE_STATUS_PREPARE = 1;
+ LIVE_STATUS_LIVE = 2;
+ LIVE_STATUS_PLAYBACK_GENERATING = 3;
+}
+
+//
+message OperationArea {
+ //
+ repeated OperationAreaButton buttons = 1;
+}
+
+//
+message OperationAreaButton {
+ //
+ OperationAreaButtonType type = 1;
+ //
+ string text = 2;
+ //
+ bool disabled = 3;
+ //
+ string link = 4;
+}
+
+//
+enum OperationAreaButtonType {
+ OPERATION_AREA_BUTTON_TYPE_UNSPECIFIED = 0;
+ OPERATION_AREA_BUTTON_TYPE_FAVORITE = 1;
+ OPERATION_AREA_BUTTON_TYPE_CONSULT = 2;
+ OPERATION_AREA_BUTTON_TYPE_SHARE = 3;
+ OPERATION_AREA_BUTTON_TYPE_PURCHASE = 4;
+}
+
+//
+message SeasonCatalogue {
+ //
+ string title = 1;
+ //
+ int64 index = 2;
+ //
+ int64 start_ep_index = 3;
+ //
+ int64 end_ep_index = 4;
+}
+
+//
+message SeasonCoupon {
+ //
+ string token = 1;
+ //
+ string title = 2;
+ //
+ string start_time = 3;
+ //
+ string expire_time = 4;
+ //
+ double amount = 5;
+ //
+ string show_amount = 6;
+ //
+ SeasonCouponStatus status = 7;
+ //
+ SeasonCouponType coupon_type = 8;
+ //
+ string short_title = 9;
+ //
+ string expire_minute = 10;
+ //
+ string use_scope = 11;
+ //
+ string discount_amount = 12;
+ //
+ int64 receive_expire_time = 13;
+ //
+ int64 use_expire_time = 14;
+ //
+ string scene_mark = 15;
+ //
+ string scene_background_img = 16;
+ //
+ string scene_benefit_img = 17;
+ //
+ bool scene_countdown = 18;
+}
+
+//
+enum SeasonCouponStatus {
+ SEASON_COUPON_STATUS_UNSPECIFIED = 0;
+ SEASON_COUPON_STATUS_RECEIVED = 1;
+ SEASON_COUPON_STATUS_NOT_RECEIVED = 2;
+ SEASON_COUPON_STATUS_INVALID = 3;
+}
+
+//
+enum SeasonCouponType {
+ SEASON_COUPON_TYPE_UNSPECIFIED = 0;
+ SEASON_COUPON_TYPE_DISCOUNT = 1;
+ SEASON_COUPON_TYPE_DECREASE = 2;
+}
+
+//
+message SeasonCustom {
+ //
+ WaterMark water_mark = 1;
+ //
+ DanmakuControl danmaku_control = 2;
+}
+
+//
+message SeasonOverview {
+ //
+ int64 season_id = 1;
+ //
+ bool support_cash = 2;
+ //
+ SeasonStatus status = 3;
+ //
+ SeasonType type = 4;
+ //
+ string cover = 5;
+ //
+ string title = 6;
+}
+
+//
+message SeasonPayment {
+ //
+ string price_unit = 1;
+ //
+ string discount_price = 2;
+ //
+ string discount_price_desc = 3;
+ //
+ string original_price = 4;
+ //
+ string original_price_desc = 5;
+}
+
+//
+message SeasonSection {
+ //
+ int64 section_id = 1;
+ //
+ string title = 2;
+ //
+ SeasonSectionType type = 3;
+ //
+ repeated Courseware coursewares = 4;
+ //
+ repeated Episode episodes = 5;
+}
+
+//
+enum SeasonSectionType {
+ SEASON_SECTION_TYPE_UNSPECIFIED = 0;
+ SEASON_SECTION_TYPE_DEFAULT = 1;
+ SEASON_SECTION_TYPE_CUSTOM = 2;
+}
+
+//
+enum SeasonStatus {
+ SEASON_STATUS_UNSPECIFIED = 0;
+ SEASON_STATUS_OFFLINE = 1;
+}
+
+//
+enum SeasonType {
+ SEASON_TYPE_UNSPECIFIED = 0;
+ SEASON_TYPE_INSTALLMENT = 1;
+ SEASON_TYPE_FREE = 2;
+ SEASON_TYPE_SUBSCRIPTION = 3;
+}
+
+//
+message SectionInfo {
+ //
+ repeated SeasonSection sections = 1;
+}
+
+//
+message VideoEpisode {
+ //
+ repeated Courseware coursewares = 1;
+ //
+ int64 index = 2;
+ //
+ EpisodeStatus status = 3;
+ //
+ int64 aid = 4;
+ //
+ int64 cid = 5;
+ //
+ string title = 6;
+ //
+ string play_way_subtitle = 7;
+ //
+ string subtitle = 8;
+ //
+ int64 duration = 9;
+ //
+ bool can_switch = 10;
+ //
+ bool can_play = 11;
+ //
+ bool show_lock_icon = 12;
+ //
+ EpisodeLabel episode_label = 13;
+ //
+ EpisodeSelectionLabel selection_label = 14;
+ //
+ EpisodeHistory history = 15;
+ //
+ VideoPlayWay play_way = 16;
+ //
+ int64 episode_id = 17;
+}
+
+//
+enum VideoPlayWay {
+ VIDEO_PLAY_WAY_UNSPECIFIED = 0;
+ VIDEO_PLAY_WAY_VOD = 1;
+ VIDEO_PLAY_WAY_LIVE_PLAYBACK = 2;
+}
+
+//
+message ViewPugvAny {
+ //
+ SeasonOverview season_overview = 1;
+ //
+ SeasonPayment season_payment = 2;
+ //
+ SeasonCoupon season_coupon = 3;
+ //
+ CatalogueInfo catalogue_info = 4;
+ //
+ SeasonCustom season_custom = 5;
+ //
+ CoursewareInfo courseware_info = 6;
+ //
+ CourseCoach course_coach = 7;
+ //
+ SectionInfo section_info = 8;
+ //
+ AbTest ab_test = 9;
+ //
+ OperationArea operation_area = 10;
+}
+
+//
+message WaterMark {
+ //
+ bool show_watermark = 1;
+ //
+ int64 watermark_interval = 2;
+}
diff --git a/grpc_api/bilibili/app/viewunite/ugcanymodel.proto b/grpc_api/bilibili/app/viewunite/ugcanymodel.proto
new file mode 100644
index 0000000..1cf1a44
--- /dev/null
+++ b/grpc_api/bilibili/app/viewunite/ugcanymodel.proto
@@ -0,0 +1,134 @@
+syntax = "proto3";
+
+package bilibili.app.viewunite.ugcanymodel;
+
+import "bilibili/app/viewunite/common.proto";
+
+//
+message Dislike {
+ //
+ string title = 1;
+ //
+ string subtitle = 2;
+ //
+ repeated DislikeReason reasons = 3;
+}
+
+//
+message DislikeReason {
+ //
+ int64 id = 1;
+ //
+ int64 mid = 2;
+ //
+ int32 rid = 3;
+ //
+ int64 tag_id = 4;
+ //
+ string name = 5;
+}
+
+//
+message ElecRank {
+ //
+ repeated ElecRankItem list = 1;
+ //
+ int64 count = 2;
+ //
+ string text = 3;
+}
+
+//
+message ElecRankItem {
+ //
+ string avatar = 1;
+ //
+ string nickname = 2;
+ //
+ string message = 3;
+ //
+ int64 mid = 4;
+}
+
+//
+message Premiere {
+ //
+ PremiereState premiere_state = 1;
+ //
+ int64 start_time = 2;
+ //
+ int64 service_time = 3;
+ //
+ int64 room_id = 4;
+}
+
+//
+message PremiereReserve {
+ //
+ int64 reserve_id = 1;
+ //
+ int64 count = 2;
+ //
+ bool is_follow = 3;
+}
+
+//
+message PremiereResource {
+ //
+ Premiere premiere = 1;
+ //
+ PremiereReserve reserve = 2;
+ //
+ PremiereText text = 3;
+}
+
+enum PremiereState {
+ //
+ premiere_none = 0;
+ //
+ premiere_before = 1;
+ //
+ premiere_in = 2;
+ //
+ premiere_after = 3;
+}
+
+//
+message PremiereText {
+ //
+ string title = 1;
+ //
+ string subtitle = 2;
+ //
+ string online_text = 3;
+ //
+ string online_icon = 4;
+ //
+ string online_icon_dark = 5;
+ //
+ string intro_title = 6;
+ //
+ string intro_icon = 7;
+ //
+ string guidance_pulldown = 8;
+ //
+ string guidance_entry = 9;
+ //
+ string intro_icon_night = 10;
+}
+
+//
+message ViewUgcAny {
+ //
+ PremiereResource premiere = 1;
+ //
+ Dislike dislike = 2;
+ //
+ string short_link = 3;
+ //
+ string share_subtitle = 4;
+ //
+ repeated bilibili.app.viewunite.common.Page pages = 5;
+ //
+ ElecRank elec_rank = 6;
+}
diff --git a/grpc_api/bilibili/app/viewunite/v1/viewunite.proto b/grpc_api/bilibili/app/viewunite/v1/viewunite.proto
new file mode 100644
index 0000000..0a01820
--- /dev/null
+++ b/grpc_api/bilibili/app/viewunite/v1/viewunite.proto
@@ -0,0 +1,897 @@
+syntax = "proto3";
+
+package bilibili.app.viewunite.v1;
+
+import "bilibili/app/archive/middleware/v1/preload.proto";
+import "bilibili/app/viewunite/common.proto";
+import "bilibili/pagination/pagination.proto";
+import "google/protobuf/any.proto";
+
+// 统一视频信息接口 (7.41.0+)
+service View {
+ //
+ rpc ArcRefresh(ArcRefreshReq) returns (ArcRefreshReply);
+ // 视频详情页下方推荐
+ rpc RelatesFeed(RelatesFeedReq) returns (RelatesFeedReply);
+ //
+ rpc View(ViewReq) returns (ViewReply);
+ //
+ rpc ViewProgress(ViewProgressReq) returns (ViewProgressReply);
+}
+
+//
+message ActivityResource {
+ //
+ string dark_text_color = 1;
+ //
+ string divider_color = 2;
+ //
+ string bg_color = 3;
+ //
+ string selected_bg_color = 4;
+ //
+ string text_color = 5;
+ //
+ string light_text_color = 6;
+}
+
+// 业务信息
+message Arc {
+ //
+ int64 aid = 1;
+ //
+ int64 cid = 2;
+ //
+ int64 duration = 3;
+ //
+ bilibili.app.viewunite.common.Stat stat = 4;
+ //
+ string bvid = 5;
+ //
+ int32 copyright = 6;
+ //
+ Rights right = 7;
+ //
+ string cover = 8;
+ //
+ int64 type_id = 9;
+ //
+ string title = 10;
+}
+
+//
+message ArcRefreshReply {
+ //
+ bilibili.app.viewunite.common.Stat stat = 1;
+ //
+ SimpleReqUser req_user = 2;
+ //
+ SimpleArc arc = 3;
+ //
+ Online online = 4;
+ //
+ LikeConfig like_config = 5;
+ //
+ SimpleOwner owner = 6;
+}
+
+//
+message ArcRefreshReq {
+ //
+ int64 aid = 1;
+ //
+ string bvid = 2;
+ //
+ UnionType type = 3;
+}
+
+//
+message AttentionCard {
+ //
+ repeated ShowTime show_time = 1;
+}
+
+//
+message BgPlayNotice {
+ //
+ bool allow_show = 1;
+ //
+ string text = 2;
+ //
+ string btn_text_1 = 3;
+ //
+ string btn_text_2 = 4;
+}
+
+//
+message BizFollowVideoParam {
+ //
+ int64 season_id = 1;
+}
+
+//
+message BizJumpLinkParam {
+ //
+ string url = 1;
+}
+
+//
+message BizReserveActivityParam {
+ //
+ int64 activity_id = 1;
+ //
+ string from = 2;
+ //
+ string type = 3;
+ //
+ int64 oid = 4;
+ //
+ int64 reserve_id = 5;
+}
+
+//
+message BizReserveGameParam {
+ //
+ int64 game_id = 1;
+}
+
+enum BizType {
+ //
+ BizTypeNone = 0;
+ //
+ BizTypeFollowVideo = 1;
+ //
+ BizTypeReserveActivity = 2;
+ //
+ BizTypeJumpLink = 3;
+ //
+ BizTypeFavSeason = 4;
+ //
+ BizTypeReserveGame = 5;
+}
+
+//
+message Button {
+ //
+ string title = 1;
+ //
+ string uri = 2;
+ //
+ string icon = 3;
+ //
+ JumpShowType jump_show_type = 4;
+}
+
+//
+message ChargingPlus {
+ //
+ bool pass = 1;
+ //
+ repeated PlayToast play_toast = 2;
+}
+
+//
+message Chronos {
+ //
+ string md5 = 1;
+ //
+ string file = 2;
+ //
+ string sign = 3;
+}
+
+//
+message ChronosParam {
+ //
+ string engine_version = 1;
+ //
+ string message_protocol = 2;
+ //
+ string service_key = 3;
+}
+
+// 推广信息
+message CM {
+ //
+ google.protobuf.Any cm_under_player = 1;
+ //
+ google.protobuf.Any ads_control = 2;
+ //
+ repeated google.protobuf.Any source_content = 3;
+}
+
+//
+message CommandDm {
+ //
+ int64 id = 1;
+ //
+ int64 oid = 2;
+ //
+ int64 mid = 3;
+ //
+ string command = 4;
+ //
+ string content = 5;
+ //
+ int32 progress = 6;
+ //
+ string ctime = 7;
+ //
+ string mtime = 8;
+ //
+ string extra = 9;
+ //
+ string idstr = 10;
+}
+
+// 播放器配置
+message Config {
+ //
+ Online online = 1;
+ //
+ PlayerIcon player_icon = 2;
+ //
+ StoryEntrance story_entrance = 3;
+ //
+ BgPlayNotice bg_play_notice = 4;
+}
+
+// 视频播放时弹出的卡片
+message ContractCard {
+ // 在第几秒弹出
+ float display_progress = 1;
+ //
+ int64 display_accuracy = 2;
+ // 弹出后停留的时间
+ int64 display_duration = 3;
+ // 展示方式, 暂未知对应关系
+ int32 show_mode = 4;
+ // 页面类型, 暂未知对应关系
+ int32 page_type = 5;
+ //
+ UpperInfos upper = 6;
+ //
+ int32 is_follow_display = 7;
+ // 卡片的文字说明信息
+ ContractText text = 8;
+ //
+ int64 follow_display_end_duration = 9;
+ //
+ int32 is_play_display = 10;
+ //
+ int32 is_interact_display = 11;
+ //
+ bool play_display_switch = 12;
+}
+
+// 视频播放时弹出的卡片的文字说明信息
+message ContractText {
+ //
+ string title = 1;
+ //
+ string subtitle = 2;
+ //
+ string inline_title = 3;
+}
+
+//
+message Control {
+ //
+ bool limit = 1;
+}
+
+//
+message DmResource {
+ //
+ repeated CommandDm command_dms = 1;
+ //
+ AttentionCard attention = 2;
+ //
+ repeated OperationCard cards = 3;
+}
+
+enum ECode {
+ //
+ CODE_DEFAULT = 0;
+ //
+ CODE_404 = 1;
+ // 青少年限制
+ CODE_TEENAGER = 78301;
+}
+
+//
+message ECodeConfig {
+ //
+ string redirect_url = 1;
+}
+
+//
+message FragmentArc {
+ //
+ int64 aid = 1;
+ //
+ int64 cid = 2;
+}
+
+//
+message FragmentParam {
+ //
+ repeated FragmentArc fragment_arcs = 1;
+}
+
+//
+message FragmentRes {
+ //
+ map video_shot = 1;
+}
+
+//
+message IconData {
+ //
+ string meta_json = 1;
+ //
+ string sprits_img = 2;
+}
+
+// 视频介绍 Tab
+message IntroductionTab {
+ //
+ string title = 1;
+ //
+ repeated bilibili.app.viewunite.common.Module modules = 2;
+}
+
+enum JumpShowType {
+ //
+ JST_DEFAULT = 0;
+ //
+ JST_FULLSCREEN = 1;
+ //
+ JST_HALFSCREEN = 2;
+}
+
+//
+message LikeConfig {
+ bilibili.app.viewunite.common.UpLikeImg triple_like = 1;
+ //
+ string like_animation = 2;
+}
+
+// 素材详情
+message Material {
+ //
+ string icon = 1;
+ //
+ string text = 2;
+ //
+ string url = 3;
+ //
+ MaterialBizType type = 4;
+ //
+ string param = 5;
+ //
+ string static_icon = 6;
+ //
+ string bg_color = 7;
+ //
+ string bg_pic = 8;
+ //
+ int32 jump_type = 9;
+ //
+ PageType page_type = 10;
+ //
+ bool need_login = 11;
+}
+
+// 素材类型
+enum MaterialBizType {
+ //
+ NONE = 0;
+ //
+ ACTIVITY = 1;
+ //
+ BGM = 2;
+ //
+ EFFECT = 3;
+ //
+ SHOOT_SAME = 4;
+ //
+ SHOOT_TOGETHER = 5;
+ //
+ ACTIVITY_ICON = 6;
+ //
+ NEW_BGM = 7;
+ //
+ GENERAL_TYPE = 8;
+}
+
+// 素材来源
+enum MaterialSource {
+ //
+ DEFAULT = 0;
+ // 必剪素材
+ BIJIAN = 1;
+}
+
+//
+message Online {
+ //
+ bool online_show = 1;
+}
+
+//
+message OperationCard {
+ //
+ int64 id = 1;
+ //
+ int32 from = 2;
+ //
+ int32 to = 3;
+ //
+ bool status = 4;
+ //
+ BizType biz_type = 5;
+ //
+ OperationCardContent content = 6;
+ //
+ oneof param {
+ //
+ BizFollowVideoParam follow = 7;
+ //
+ BizReserveActivityParam reserve = 8;
+ //
+ BizJumpLinkParam jump = 9;
+ //
+ BizReserveGameParam game = 10;
+ }
+}
+
+//
+message OperationCardContent {
+ //
+ string title = 1;
+ //
+ string subtitle = 2;
+ //
+ string icon = 3;
+ //
+ string button_title = 4;
+ //
+ string button_selected_title = 5;
+ //
+ bool show_selected = 6;
+}
+
+//
+enum PageCategory {
+ //
+ COMMON_PAGE = 0;
+ //
+ ACTIVITY_PAGE = 1;
+}
+
+//
+message PageControl {
+ Control toast_show = 1;
+ Control material_show = 2;
+ Control up_show = 3;
+}
+
+// 页面类型
+enum PageType {
+ // H5页面(Webview)
+ H5 = 0;
+ // 原生页面(native)
+ NA = 1;
+}
+
+//
+message PlayerIcon {
+ //
+ string url1 = 1;
+ //
+ string hash1 = 2;
+ //
+ string url2 = 3;
+ //
+ string hash2 = 4;
+ //
+ string drag_left_png = 5;
+ //
+ string middle_png = 6;
+ //
+ string drag_right_png = 7;
+ //
+ IconData drag_data = 8;
+ //
+ IconData nodrag_data = 9;
+}
+
+//
+message PlayToast {
+ //
+ PlayToastEnum business = 1;
+ //
+ string icon_url = 2;
+ //
+ string text = 3;
+}
+
+enum PlayToastEnum {
+ //
+ PLAYTOAST_UNKNOWN = 0;
+ //
+ PLAYTOAST_CHARGINGPLUS = 1;
+}
+
+//
+message PointMaterial {
+ //
+ string url = 1;
+ //
+ MaterialSource material_source = 2;
+}
+
+//
+message Relate {
+ //
+ int64 device_type = 1;
+ //
+ bilibili.pagination.Pagination pagination = 2;
+}
+
+// 视频详情页下方推荐 Reply
+message RelatesFeedReply {
+ //
+ repeated bilibili.app.viewunite.common.RelateCard relates = 1;
+ //
+ bilibili.pagination.Pagination pagination = 2;
+}
+
+// 视频详情页下方推荐 Req
+message RelatesFeedReq {
+ //
+ int64 aid = 1;
+ //
+ string bvid = 2;
+ //
+ string from = 3;
+ //
+ string spmid = 4;
+ //
+ string from_spmid = 5;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 6;
+ //
+ bilibili.pagination.Pagination pagination = 7;
+ //
+ string session_id = 8;
+ //
+ int64 auto_play = 9;
+ //
+ string from_track_id = 10;
+}
+
+//
+message ReplyStyle {
+ //
+ string badge_url = 1;
+ //
+ string badge_text = 2;
+ //
+ int64 badge_type = 3;
+}
+
+//
+message ReplyTab {
+ //
+ ReplyStyle reply_style = 1;
+ //
+ string title = 2;
+ //
+ TabControl control = 3;
+}
+
+//
+message ReqUser {
+ //
+ int32 favorite = 1;
+ //
+ int32 like = 2;
+ //
+ int32 coin = 3;
+ //
+ int32 fav_season = 4;
+ //
+ int32 follow = 5;
+ //
+ int32 dislike = 6;
+ // 头像旁充电按钮
+ Button elec_plus_btn = 7;
+ //
+ ChargingPlus charging_plus = 8;
+ //
+ ReqUserExtra extra = 9;
+ //
+ int32 paid = 10;
+}
+
+//
+message ReqUserExtra {
+ //
+ bool user_flag_new = 1;
+}
+
+//
+message Rights {
+ //
+ bool only_vip_download = 1;
+ //
+ bool no_reprint = 2;
+ //
+ bool download = 3;
+}
+
+//
+message ShowTime {
+ //
+ int32 start_time = 1;
+ //
+ int32 end_time = 2;
+ //
+ double pos_x = 3;
+ //
+ double pos_y = 4;
+}
+
+//
+message SimpleArc {
+ //
+ int32 copyright = 1;
+}
+
+//
+message SimpleOwner {
+ //
+ int32 attention_relation = 1;
+}
+
+//
+message SimpleReqUser {
+ //
+ int32 favorite = 1;
+ //
+ int32 like = 2;
+ //
+ int32 coin = 3;
+}
+
+//
+message StoryEntrance {
+ //
+ bool arc_play_story = 1;
+ //
+ string story_icon = 2;
+ //
+ bool arc_landscape_story = 3;
+ //
+ string landscape_icon = 4;
+ //
+ bool play_story = 5;
+}
+
+//
+message Tab {
+ //
+ repeated TabModule tab_module = 1;
+ //
+ string tab_bg = 2;
+ //
+ TabControl danmaku_entrance = 3;
+}
+
+// 评论区/弹幕 Tab 控制
+message TabControl {
+ //
+ bool limit = 1;
+ //
+ bool disable = 2;
+ //
+ string disable_click_tip = 3;
+}
+
+//
+message TabModule {
+ //
+ TabType tab_type = 1;
+ //
+ oneof tab {
+ //
+ IntroductionTab introduction = 2;
+ //
+ ReplyTab reply = 3;
+ //
+ bilibili.app.viewunite.common.ActivityTab activity_tab = 4;
+ }
+}
+
+enum TabType {
+ //
+ TAB_NONE = 0;
+ // 详情 Tab
+ TAB_INTRODUCTION = 1;
+ // 评论区 Tab
+ TAB_REPLY = 2;
+ // OGV 活动信息 Tab
+ TAB_OGV_ACTIVITY = 3;
+}
+
+//
+enum UnionType {
+ //
+ UGC = 0;
+ //
+ OGV = 1;
+ //
+ PUGV = 2;
+}
+
+// UP主信息(可是Upper这个... 程序员英文不过关吧? )
+message UpperInfos {
+ // 粉丝数
+ uint64 fans_count = 1;
+ // 过去半年内的稿件数
+ uint64 arc_count_last_half_year = 2;
+ //
+ int64 first_up_dates = 3;
+ // UP稿件总播放数
+ uint64 total_play_count = 4;
+}
+
+//
+message VideoGuide {
+ //
+ repeated Material material = 1;
+ //
+ VideoViewPoint video_point = 2;
+ //
+ ContractCard contract_card = 3;
+}
+
+//
+message VideoPoint {
+ //
+ int32 type = 1;
+ //
+ int64 from = 2;
+ //
+ int64 to = 3;
+ //
+ string content = 4;
+ //
+ string cover = 5;
+ //
+ string logo_url = 6;
+}
+
+//
+message VideoShot {
+ //
+ string pv_data = 1;
+ //
+ int32 img_x_len = 2;
+ //
+ int32 imd_x_size = 3;
+ //
+ int32 img_y_len = 4;
+ //
+ int32 img_y_size = 5;
+ //
+ repeated string image = 6;
+}
+
+//
+message VideoViewPoint {
+ //
+ repeated VideoPoint points = 1;
+ //
+ PointMaterial point_material = 2;
+ //
+ bool point_permanent = 3;
+}
+
+//
+message ViewBase {
+ //
+ BizType biz_type = 1;
+ //
+ PageType page_type = 2;
+ //
+ PageControl control = 3;
+ //
+ ActivityResource activity_resource = 4;
+ //
+ Config config = 5;
+}
+
+//
+message ViewProgressReply {
+ //
+ VideoGuide video_guide = 1;
+ //
+ Chronos chronos = 2;
+ //
+ VideoShot arc_shot = 3;
+ //
+ DmResource dm = 4;
+}
+
+//
+message ViewProgressReq {
+ //
+ uint64 aid = 1;
+ //
+ uint64 cid = 2;
+ //
+ uint64 up_mid = 3;
+ //
+ ChronosParam chronos_param = 4;
+ //
+ UnionType type = 5;
+}
+
+//
+message ViewReply {
+ //
+ ViewBase view_base = 1;
+ //
+ Arc arc = 2;
+ //
+ ReqUser req_user = 3;
+ //
+ bilibili.app.viewunite.common.Owner owner = 4;
+ //
+ Tab tab = 5;
+ //
+ google.protobuf.Any supplement = 6;
+ //
+ CM cm = 7;
+ //
+ ECode ecode = 8;
+ //
+ ECodeConfig ecode_config = 9;
+ //
+ map report = 10;
+}
+
+//
+message ViewReq {
+ //
+ uint64 aid = 1;
+ //
+ string bvid = 2;
+ //
+ string from = 3;
+ //
+ string spmid = 4;
+ //
+ string from_spmid = 5;
+ //
+ string session_id = 6;
+ //
+ bilibili.app.archive.middleware.v1.PlayerArgs player_args = 7;
+ //
+ string track_id = 8;
+ //
+ map extra_content = 9;
+ //
+ string play_mode = 10;
+ //
+ Relate relate = 11;
+ //
+ string biz_extra = 12;
+ //
+ string ad_extra = 13;
+ //
+ string from_scene = 14;
+}
diff --git a/grpc_api/bilibili/broadcast/message/main/search.proto b/grpc_api/bilibili/broadcast/message/main/search.proto
new file mode 100644
index 0000000..8f18a02
--- /dev/null
+++ b/grpc_api/bilibili/broadcast/message/main/search.proto
@@ -0,0 +1,29 @@
+syntax = "proto3";
+
+package bilibili.broadcast.message.main;
+
+import "google/protobuf/empty.proto";
+import "bilibili/app/dynamic/v2/dynamic.proto";
+
+service Search {
+ rpc ChatResultPush (google.protobuf.Empty) returns (stream ChatResult);
+}
+
+//
+message Bubble {
+ repeated bilibili.app.dynamic.v2.Paragraph paragraphs = 1;
+}
+
+//
+message ChatResult {
+ //
+ int32 code = 1;
+ //
+ string session_id = 2;
+ //
+ repeated Bubble bubble = 3;
+ //
+ string rewrite_word = 4;
+ //
+ string title = 5;
+}
diff --git a/grpc_api/bilibili/community/service/dm/v1/dm.proto b/grpc_api/bilibili/community/service/dm/v1/dm.proto
index 9673a01..23074f2 100644
--- a/grpc_api/bilibili/community/service/dm/v1/dm.proto
+++ b/grpc_api/bilibili/community/service/dm/v1/dm.proto
@@ -202,7 +202,7 @@ message DanmakuElem {
int32 fontsize = 4;
// 弹幕颜色
uint32 color = 5;
- // 发送着mid hash
+ // 发送者mid hash
string midHash = 6;
// 弹幕正文
string content = 7;
@@ -221,6 +221,8 @@ message DanmakuElem {
int32 attr = 13;
//
string animation = 22;
+ // 大会员专属颜色
+ DmColorfulType colorful = 24;
}
// 弹幕ai云屏蔽条目
@@ -348,6 +350,16 @@ enum DMAttrBit {
DMAttrHighLike = 2; // 高赞弹幕
}
+message DmColorful {
+ DmColorfulType type = 1; // 颜色类型
+ string src = 2; //
+}
+
+enum DmColorfulType {
+ NoneType = 0; // 无
+ VipGradualColor = 60001; // 渐变色
+}
+
//
message DmExpoReportReq {
//
@@ -402,6 +414,7 @@ message DmSegMobileReply {
int32 state = 2;
// 弹幕云屏蔽ai评分值
DanmakuAIFlag ai_flag = 3;
+ repeated DmColorful colorfulSrc = 5;
}
// 获取弹幕-请求
diff --git a/grpc_api/bilibili/dagw/component/avatar/common/common.proto b/grpc_api/bilibili/dagw/component/avatar/common/common.proto
index 0ffdd02..4823322 100644
--- a/grpc_api/bilibili/dagw/component/avatar/common/common.proto
+++ b/grpc_api/bilibili/dagw/component/avatar/common/common.proto
@@ -1 +1,108 @@
-// TODO
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.dagw.component.avatar.common;
+
+//
+message BasicRenderSpec {
+ //
+ double opacity = 1;
+}
+
+//
+message ColorConfig {
+ //
+ bool is_dark_mode_aware = 1;
+ //
+ ColorSpec day = 2;
+ //
+ ColorSpec night = 3;
+}
+
+//
+message ColorSpec {
+ //
+ string argb = 1;
+}
+
+//
+message LayerGeneralSpec {
+ //
+ PositionSpec pos_spec = 1;
+ //
+ SizeSpec size_spec = 2;
+ //
+ BasicRenderSpec render_spec = 3;
+}
+
+//
+message MaskProperty {
+ //
+ LayerGeneralSpec general_spec = 1;
+ //
+ ResourceSource mask_src = 2;
+}
+
+//
+message NativeDrawRes {
+ //
+ int32 draw_type = 1;
+ //
+ int32 fill_mode = 2;
+ //
+ ColorConfig color_config = 3;
+ //
+ double edge_weight = 4;
+}
+
+//
+message PositionSpec {
+ //
+ int32 coordinate_pos = 1;
+ //
+ double axis_x = 2;
+ //
+ double axis_y = 3;
+}
+
+//
+message RemoteRes {
+ //
+ string url = 1;
+ //
+ string bfs_style = 2;
+}
+
+//
+message ResourceSource {
+ //
+ enum LocalRes {
+ LOCAL_RES_INVALID = 0;
+ LOCAL_RES_ICON_VIP = 1;
+ LOCAL_RES_ICON_SMALL_VIP = 2;
+ LOCAL_RES_ICON_PERSONAL_VERIFY = 3;
+ LOCAL_RES_ICON_ENTERPRISE_VERIFY = 4;
+ LOCAL_RES_ICON_NFT_MAINLAND = 5;
+ LOCAL_RES_DEFAULT_AVATAR = 6;
+ }
+ //
+ int32 src_type = 1;
+ //
+ int32 placeholder = 2;
+ //
+ oneof res {
+ //
+ RemoteRes remote = 3;
+ //
+ LocalRes local = 4;
+ //
+ NativeDrawRes draw = 5;
+ }
+}
+
+//
+message SizeSpec {
+ //
+ double width = 1;
+ //
+ double height = 2;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/dagw/component/avatar/v1/avatar.proto b/grpc_api/bilibili/dagw/component/avatar/v1/avatar.proto
index 0ffdd02..d1be861 100644
--- a/grpc_api/bilibili/dagw/component/avatar/v1/avatar.proto
+++ b/grpc_api/bilibili/dagw/component/avatar/v1/avatar.proto
@@ -1 +1,112 @@
-// TODO
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.dagw.component.avatar.v1;
+
+import "bilibili/dagw/component/avatar/common/common.proto";
+import "bilibili/dagw/component/avatar/v1/plugin.proto";
+
+//
+message AvatarItem {
+ //
+ bilibili.dagw.component.avatar.common.SizeSpec container_size = 1;
+ //
+ repeated LayerGroup layers = 2;
+ //
+ LayerGroup fallback_layers = 3;
+ //
+ int64 mid = 4;
+}
+
+//
+message BasicLayerResource {
+ //
+ int32 res_type = 1;
+ //
+ oneof payload {
+ //
+ ResImage res_image = 2;
+ //
+ ResAnimation res_animation = 3;
+ ///
+ ResNativeDraw res_native_draw = 4;
+ };
+}
+
+//
+message GeneralConfig {
+ //
+ map web_css_style = 1;
+}
+
+//
+message Layer {
+ //
+ string layer_id = 1;
+ //
+ bool visible = 2;
+ //
+ bilibili.dagw.component.avatar.common.LayerGeneralSpec general_spec = 3;
+ //
+ LayerConfig layer_config = 4;
+ //
+ BasicLayerResource resource = 5;
+}
+
+//
+message LayerConfig {
+ //
+ map tags = 1;
+ //
+ bool is_critical = 2;
+ //
+ bool allow_over_paint = 3;
+ //
+ bilibili.dagw.component.avatar.common.MaskProperty layer_mask = 4;
+}
+
+//
+message LayerGroup {
+ //
+ string group_id = 1;
+ //
+ repeated Layer layers = 2;
+ //
+ bilibili.dagw.component.avatar.common.MaskProperty group_mask = 3;
+ //
+ bool is_critical_group = 4;
+}
+
+//
+message LayerTagConfig {
+ //
+ int32 config_type = 1;
+ //
+ oneof config {
+ //
+ GeneralConfig general_config = 2;
+ //
+ bilibili.dagw.component.avatar.v1.plugin.GyroConfig gyro_config = 3;
+ //
+ bilibili.dagw.component.avatar.v1.plugin.CommentDoubleClickConfig comment_doubleClick_config = 4;
+ //
+ bilibili.dagw.component.avatar.v1.plugin.LiveAnimeConfig live_anime_config = 5;
+ };
+}
+
+//
+message ResAnimation {
+ //
+ bilibili.dagw.component.avatar.common.ResourceSource webp_src = 1;
+}
+
+//
+message ResImage {
+ //
+ bilibili.dagw.component.avatar.common.ResourceSource image_src = 1;
+}
+
+//
+message ResNativeDraw {
+ //
+ bilibili.dagw.component.avatar.common.ResourceSource draw_src = 1;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/dagw/component/avatar/v1/plugin.proto b/grpc_api/bilibili/dagw/component/avatar/v1/plugin.proto
new file mode 100644
index 0000000..7e88289
--- /dev/null
+++ b/grpc_api/bilibili/dagw/component/avatar/v1/plugin.proto
@@ -0,0 +1,93 @@
+syntax = "proto3";
+
+package bilibili.dagw.component.avatar.v1.plugin;
+
+import "bilibili/dagw/component/avatar/common/common.proto";
+
+//
+message CommentDoubleClickConfig {
+ //
+ Interaction interaction = 1;
+ //
+ double animation_scale = 2;
+}
+
+//
+message GyroConfig {
+ //
+ NFTImageV2 gyroscope = 1;
+}
+
+//
+message GyroscopeContentV2 {
+ //
+ string file_url = 1;
+ //
+ float scale = 2;
+ //
+ repeated PhysicalOrientationV2 physical_orientation = 3;
+}
+
+//
+message GyroscopeEntityV2 {
+ //
+ string display_type = 1;
+ //
+ repeated GyroscopeContentV2 contents = 2;
+}
+
+//
+message Interaction {
+ //
+ string nft_id = 1;
+ //
+ bool enabled = 2;
+ //
+ string itype = 3;
+ //
+ string metadata_url = 4;
+}
+
+//
+message LiveAnimeConfig {
+ //
+ bool is_live = 1;
+}
+
+//
+message LiveAnimeItem {
+ //
+ bilibili.dagw.component.avatar.common.ColorConfig color = 1;
+ //
+ double start_ratio = 2;
+ //
+ double end_ratio = 3;
+ //
+ double start_stroke = 4;
+ //
+ double start_opacity = 5;
+ //
+ int64 phase = 6;
+}
+
+//
+message NFTImageV2 {
+ //
+ repeated GyroscopeEntityV2 gyroscope = 1;
+}
+
+//
+message PhysicalOrientationAnimation {
+ //
+ string type = 1;
+ //
+ string bezier = 3;
+}
+
+//
+message PhysicalOrientationV2 {
+ //
+ string type = 1;
+ //
+ repeated PhysicalOrientationAnimation animations = 3;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/dynamic/common/dynamic.proto b/grpc_api/bilibili/dynamic/common/dynamic.proto
index 39d966b..9a25d0c 100644
--- a/grpc_api/bilibili/dynamic/common/dynamic.proto
+++ b/grpc_api/bilibili/dynamic/common/dynamic.proto
@@ -1,9 +1,25 @@
syntax = "proto3";
-package bilibili.dynamic;
+package bilibili.dynamic.common;
import "bilibili/app/dynamic/v2/dynamic.proto";
+//
+message Article {
+ //
+ int64 category_id = 1;
+ //
+ int64 list_id = 2;
+ //
+ int32 originality = 3;
+ //
+ int32 reproduced = 4;
+ //
+ repeated Pic cover = 5;
+ //
+ repeated string biz_tags = 6;
+}
+
// at分组信息
message AtGroup {
// 分组类型
@@ -75,6 +91,11 @@ enum AttachCardType {
ATTACH_CARD_PUGV = 13; // 课程
ATTACH_CARD_RESERVE = 14; // 预约
ATTACH_CARD_UP_TOPIC = 15; // up主话题活动
+ ATTACH_CARD_UP_ACTIVITY = 16;
+ ATTACH_CARD_UP_MAOER = 17;
+ ATTACH_CARD_MEMBER_GOODS = 18;
+ ATTACH_CARD_MAN_TIAN_XING = 19;
+ ATTACH_CARD_LOTTERY = 20;
}
//
@@ -85,6 +106,30 @@ message BottomBusiness {
int64 type = 2;
}
+//
+message CardParagraph {
+ //
+ LinkNode card = 1;
+ //
+ string default_text = 2;
+}
+
+//
+message CodeParagraph {
+ //
+ string lang = 1;
+ //
+ string content = 2;
+}
+
+//
+message Colors {
+ //
+ string color_day = 1;
+ //
+ string color_night = 2;
+}
+
//
enum ContentType {
CONTENT_TYPE_NONE = 0; // 占位
@@ -125,6 +170,8 @@ message CreateAttachCard {
CreateGoodsCard goods = 1;
// 通用附加大卡,目前仅限定Match,Game,Ugc,Pugv,Reserve,且同时只能有一个
CreateCommonAttachCard common_card = 2;
+ // 商业推广大卡
+ CreateCommercialCard commercial = 3;
}
// 发布页预校验-响应
@@ -141,6 +188,14 @@ message CreateCheckResp {
PlusRedDot plus_red_dot = 5;
}
+//
+message CreateCommercialCard {
+ //
+ int64 commercial_entity_type = 1;
+ //
+ int64 commercial_entity_id = 2;
+}
+
// 创建动态时附带的通用附加卡详情
message CreateCommonAttachCard {
// 通用附加卡的类型
@@ -157,6 +212,8 @@ message CreateCommonAttachCard {
message CreateContent {
// 描述信息(已按高亮拆分)
repeated CreateContentItem contents = 1;
+ //
+ string title = 2;
}
// 文本描述
@@ -230,6 +287,12 @@ message CreateDynVideo {
int64 up_from = 28;
//
int64 duration = 29;
+ //
+ int64 topic_id = 30;
+ //
+ string upload_id = 31;
+ //
+ DynVideoTopic topic_detail = 32;
}
// 创建动态视频的应答包(透传给客户端)
@@ -257,6 +320,7 @@ enum CreateInitCheckScene {
CREATE_INIT_CHECK_SCENE_REPOST = 2; // 动态feed流转发、三点分享,动态详情页转发
CREATE_INIT_CHECK_SCENE_SHARE = 3; // 其他页面分享到动态
CREATE_INIT_CHECK_SCENE_RESERVE_SHARE = 4; //
+ CREATE_INIT_CHECK_SCENE_ARTICLE = 5;
}
// 动态创建时的特殊选项
@@ -280,6 +344,18 @@ message CreateOption {
VideoShareInfo video_share_info = 6;
//
CreateActivity activity = 7;
+ //
+ int32 pic_mode = 10;
+ // 粉丝专享(充电专享)
+ int64 only_fans = 11;
+ // 限制推广?
+ int32 limit_pegasus = 12;
+ // 限制搜索?
+ int32 limit_search = 13;
+ // 定时发布
+ int64 timer_pub_time = 14;
+ //
+ int64 only_fans_dnd = 15;
}
// 创建图文动态时的图片信息
@@ -342,6 +418,8 @@ message CreateResp {
bilibili.app.dynamic.v2.DynamicItem fake_card = 5;
// 视频
CreateDynVideoResult video_result = 6;
+ //
+ ShareDynWindow share_window = 7;
}
// 发布类型(场景)
@@ -356,6 +434,9 @@ enum CreateScene {
CREATE_SCENE_SHARE_PROGRAM = 7; // 分享小程序
CREATE_SCENE_REPLY_SYNC = 8; // 评论同步到动态
CREATE_SCENE_REPLY_CREATE_ACTIVITY = 9; // 评论同步到动态并且发起活动
+ CREATE_SCENE_CREATE_AD = 10; // 广告推广
+ CREATE_SCENE_CREATE_LIVE_RCMD = 11; // 直播推荐
+ CREATE_SCENE_CREATE_ARTICLE = 12; // 动态文章
}
// 动态附带的小卡
@@ -368,12 +449,18 @@ message CreateTag {
BottomBusiness diversion = 3;
}
-//
+//
message CreateTopic {
- //
+ //
int64 id = 1;
- //
+ //
string name = 2;
+ //
+ string from_source = 3;
+ //
+ int64 from_topic_id = 4;
+ //
+ int64 super_topic_id = 5;
}
// 动态的标识
@@ -526,6 +613,14 @@ message DynVideoSubmitActBanner {
repeated DynVideoHotAct list = 3;
}
+//
+message DynVideoTopic {
+ //
+ string from_source = 1;
+ //
+ int64 from_topic_id = 2;
+}
+
//
message DynVideoVote {
//
@@ -549,6 +644,12 @@ message DynVideoWatermark {
int32 position = 3;
}
+//
+message EmoteNode {
+ //
+ string raw_text = 1;
+}
+
//
message ExtLbs {
//
@@ -569,6 +670,16 @@ message ExtLbs {
string show_distance = 8;
}
+//
+message FormulaNode {
+ //
+ string latex_content = 1;
+ //
+ ImgInlineCfg image_spec = 2;
+ //
+ bytes png_image_data = 3;
+}
+
// 根据name取uid-请求
message GetUidByNameReq {
// 查询昵称列表
@@ -592,6 +703,16 @@ message GoodsContent {
int64 shop_id = 3;
}
+//
+message ImgInlineCfg {
+ //
+ double width = 1;
+ //
+ double height = 2;
+ //
+ Colors color = 3;
+}
+
// UP已经创建的活动列表
message LaunchedActivity {
// 模块名称,示例:"已创建的活动"
@@ -622,6 +743,30 @@ message LbsLoc {
double lng = 2;
}
+//
+message LineParagraph {
+ //
+ Pic pic = 1;
+}
+
+//
+message LinkNode {
+ //
+ string show_text = 1;
+ //
+ string link = 2;
+ //
+ string icon = 3;
+ //
+ string icon_suffix = 4;
+ //
+ int32 link_type = 5;
+ //
+ string biz_id = 6;
+ //
+ VideoTs video_ts = 7;
+}
+
//
message MetaDataCtrl {
// 客户端平台
@@ -653,6 +798,232 @@ message MetaDataCtrl {
string ip = 13;
}
+//
+message OnlyFansDndSetting {
+ //
+ string title = 1;
+ //
+ string pop_title = 2;
+ //
+ string pop_desc = 3;
+ //
+ string pop_picture = 4;
+ //
+ string pop_btn_text = 5;
+}
+
+//
+message OnlyFansOption {
+ //
+ OnlyFansOptionType type = 1;
+ //
+ int32 disabled = 2;
+ //
+ string title = 3;
+ //
+ string subtitle = 4;
+ //
+ string icon = 5;
+ //
+ string only_fans_name = 6;
+ //
+ string desc_subtitle = 7;
+}
+
+enum OnlyFansOptionType {
+ //
+ ONLY_FANS_OPTION_NONE = 0;
+ //
+ ONLY_FANS_OPTION_UPOWER = 1;
+ //
+ ONLY_FANS_OPTION_HIGH_UPOWER = 2;
+}
+
+//
+message OnlyFansPermission {
+ //
+ int32 permission = 1;
+ //
+ string title = 2;
+ //
+ string subtitle = 3;
+ //
+ string icon = 4;
+ //
+ string toast = 5;
+ //
+ repeated OnlyFansOption options = 6;
+ //
+ OnlyFansDndSetting dnd_setting = 7;
+}
+
+//
+message Opus {
+ //
+ int64 opus_id = 1;
+ //
+ int32 opus_source = 2;
+ //
+ string title = 3;
+ //
+ int64 cover_avid = 4;
+ //
+ string h5_content = 5;
+ //
+ OpusContent content = 6;
+ //
+ repeated OpusTag tags = 7;
+ //
+ PubInfo pub_info = 8;
+ //
+ Article article = 9;
+}
+
+//
+enum OpusBizType {
+ DEFAULT = 0;
+ VIDEO = 1;
+ RESERVE = 2;
+ BIZ_VOTE = 3; // rename from "VOTE" due to name collision
+ LIVE = 4;
+ BIZ_LOTTERY = 5; // rename from "LOTTERY" due to name collision
+ MATCH = 6;
+ BIZ_GOODS = 7; // rename from "GOODS" due to name collision
+ OGV_SS = 8;
+ BIZ_OGV_EP = 9; // rename from "OGV_EP" due to name collision
+ MANGA = 10;
+ CHEESE = 11;
+ VIDEO_TS = 12;
+ BIZ_AT = 13; // rename from "AT" due to name collision
+ HASH_TAG = 14;
+ BIZ_CV = 15; // rename from "CV" due to name collision
+ URL = 16;
+ BIZ_MAIL = 17; // rename from "MAIL" due to name collision
+ LBS = 18;
+ ACTIVITY = 19;
+ BIZ_ATTACH_CARD_OFFICIAL_ACTIVITY = 20; // rename from "ATTACH_CARD_OFFICIAL_ACTIVITY" due to name collision
+ GAME = 21;
+ DECORATION = 22;
+ UP_TOPIC = 23;
+ UP_ACTIVITY = 24;
+ UP_MAOER = 25;
+ MEMBER_GOODS = 26;
+ OPENMALL_UP_ITEMS = 27;
+ MUSIC = 29;
+}
+
+//
+message OpusContent {
+ //
+ repeated Paragraph paragraphs = 1;
+}
+
+enum OpusSource {
+ DEFAULT_SOURCE = 0;
+ ALBUM = 1;
+ ARTICLE = 2;
+ NOTE = 3;
+ OGV_COMMENT = 4;
+ ARTICLE_H5 = 5;
+ WORD = 6;
+}
+
+//
+message OpusSummary {
+ //
+ int32 opus_source = 1;
+ //
+ string title = 2;
+ //
+ repeated Pic cover = 3;
+ //
+ OpusContent summary = 4;
+ //
+ repeated OpusTag tags = 5;
+ //
+ PubInfo pub_info = 6;
+}
+
+//
+message OpusTag {
+ //
+ LinkNode tag = 1;
+}
+
+//
+message Paragraph {
+ //
+ enum ParagraphType {
+ DEFAULT = 0;
+ TEXT = 1;
+ PICTURES = 2;
+ LINE = 3;
+ REFERENCE = 4;
+ SORTED_LIST = 5;
+ UNSORTED_LIST = 6;
+ LINK_CARD = 7;
+ }
+ //
+ message ListFormat {
+ //
+ int32 level = 1;
+ //
+ int32 order = 2;
+ //
+ string theme = 3;
+ }
+ //
+ message ParagraphFormat {
+ //
+ int32 align = 1;
+ //
+ ListFormat list_format = 2;
+ }
+
+ //
+ ParagraphType para_type = 1;
+ //
+ ParagraphFormat format = 2;
+ //
+ TextParagraph text = 3;
+ //
+ PicParagraph pic = 4;
+ //
+ LineParagraph line = 5;
+ //
+ CardParagraph link_card = 6;
+ //
+ CodeParagraph code = 7;
+}
+
+//
+message Pic {
+ //
+ string url = 1;
+ //
+ double width = 2;
+ //
+ double height = 3;
+ //
+ double size = 4;
+ //
+ string comment = 5;
+}
+
+//
+message PicParagraph {
+ //
+ enum PicParagraphStyle {
+ DEFAULT = 0;
+ NINE_CELL = 1;
+ SCROLL = 2;
+ }
+ //
+ repeated Pic pics = 1;
+ //
+ PicParagraphStyle style = 2;
+}
+
//
message PlusRedDot {
//
@@ -677,6 +1048,18 @@ message Program {
string jump_text = 7;
}
+//
+message PubInfo {
+ //
+ int64 uid = 1;
+ //
+ int64 pub_time = 2;
+ //
+ int64 last_mtime = 3;
+ //
+ int64 timer_pub_time = 4;
+}
+
// 发布相关的设置项
message PublishSetting {
// 提示转为专栏的最小字数,使用utf-16编码计算字符数
@@ -685,6 +1068,12 @@ message PublishSetting {
int32 max_words_to_article = 2;
// gif上传的最大值,单位:MB
int32 upload_size = 3;
+ //
+ int32 max_at_count = 4;
+ //
+ int32 max_draft_count = 5;
+ //
+ int64 title_max_len = 6;
}
// 发布页小黄条
@@ -737,6 +1126,16 @@ message ShareChannelItem {
ShareReserve reserve = 4;
}
+//
+message ShareDynWindow {
+ //
+ string main_title = 1;
+ //
+ string sub_title = 2;
+ //
+ bilibili.app.dynamic.v2.DynamicItem dyn_item = 3;
+}
+
//
message ShareReserve {
// 标题
@@ -811,6 +1210,35 @@ message Sketch {
string target_url = 7;
}
+//
+message TextNode {
+ //
+ enum TextNodeType {
+ DEFAULT = 0;
+ WORDS = 1;
+ EMOTE = 2;
+ AT = 3;
+ BIZ_LINK = 4;
+ FORMULA = 5;
+ }
+ //
+ TextNodeType node_type = 1;
+ //
+ WordNode word = 2;
+ //
+ EmoteNode emote = 3;
+ //
+ LinkNode link = 4;
+ //
+ FormulaNode formula = 5;
+}
+
+//
+message TextParagraph {
+ //
+ repeated TextNode nodes = 1;
+}
+
// 发布相关的权限内容
message UpPermission {
// 通用权限列表
@@ -819,6 +1247,8 @@ message UpPermission {
LaunchedActivity launched_activity = 2;
//
ShareResult share_result = 3;
+ //
+ OnlyFansPermission only_fans_permission = 4;
}
// 通用发布权限内容的详细定义
@@ -854,6 +1284,9 @@ enum UpPermissionType {
UP_PERMISSION_TYPE_CONTROL_DANMU = 7; // 是否有权限关闭弹幕(仅对动态视频生效),默认有
UP_PERMISSION_TYPE_VIDEO_RESERVE = 8; // 是否可以发起稿件预约
UP_PERMISSION_TYPE_LIVE_RESERVE = 9; // 是否可以发起直播预约
+ UP_PERMISSION_TYPE_BIZ_LINK = 10; //
+ UP_PERMISSION_TYPE_COMMERCIAL = 11; // 是否允许商业推广
+ UP_PERMISSION_TYPE_BIG_COVER = 12; // 是否允许大封面
}
// 用户主动发布(app/web发布)时的meta信息
@@ -873,3 +1306,52 @@ message VideoShareInfo {
//
int32 part = 2;
}
+
+//
+message VideoTs {
+ //
+ int64 cid = 1;
+ //
+ int64 oid_type = 2;
+ //
+ int64 status = 3;
+ //
+ int64 index = 4;
+ //
+ int64 seconds = 5;
+ //
+ int64 cidcount = 6;
+ //
+ string key = 7;
+ //
+ string title = 8;
+ //
+ int64 epid = 9;
+ //
+ string desc = 10;
+}
+
+//
+message WordNode {
+ //
+ message WordNodeStyle {
+ //
+ bool bold = 1;
+ //
+ bool italic = 2;
+ //
+ bool strikethrough = 3;
+ //
+ bool underline = 4;
+ }
+ //
+ string words = 1;
+ //
+ double font_size = 2;
+ //
+ string color = 3;
+ //
+ string dark_color = 4;
+ //
+ WordNodeStyle style = 5;
+}
diff --git a/grpc_api/bilibili/dynamic/gw/gateway.proto b/grpc_api/bilibili/dynamic/gw/gateway.proto
index ad4589c..15f44f5 100644
--- a/grpc_api/bilibili/dynamic/gw/gateway.proto
+++ b/grpc_api/bilibili/dynamic/gw/gateway.proto
@@ -1,5 +1,6 @@
syntax = "proto3";
+// Deprecated
package bilibili.dynamic.gateway;
import "google/protobuf/any.proto";
diff --git a/grpc_api/bilibili/dynamic/interfaces/campus/v1/api.proto b/grpc_api/bilibili/dynamic/interfaces/campus/v1/api.proto
index 0ffdd02..b41e761 100644
--- a/grpc_api/bilibili/dynamic/interfaces/campus/v1/api.proto
+++ b/grpc_api/bilibili/dynamic/interfaces/campus/v1/api.proto
@@ -1 +1,28 @@
-// TODO
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.dynamic.interfaces.campus.v1;
+
+//
+service Campus {
+ //
+ rpc ActionReport (ActionReportReq) returns (ActionReportReply);
+}
+
+//
+message ActionReportReply {}
+
+//
+message ActionReportReq {
+ //
+ string identity = 1;
+ //
+ ActionType action = 2;
+ //
+ int64 campus_id = 3;
+}
+
+//
+enum ActionType {
+ ACTION_NOTHING = 0;
+ ACTION_CLOSE_YELLOW_BAR = 1;
+}
diff --git a/grpc_api/bilibili/dynamic/interfaces/feed/v1/api.proto b/grpc_api/bilibili/dynamic/interfaces/feed/v1/api.proto
index a3308eb..472a831 100644
--- a/grpc_api/bilibili/dynamic/interfaces/feed/v1/api.proto
+++ b/grpc_api/bilibili/dynamic/interfaces/feed/v1/api.proto
@@ -1,67 +1,178 @@
syntax = "proto3";
-package bilibili.main.dynamic.feed.v1;
+package bilibili.dynamic.interfaces.feed.v1;
import "bilibili/dynamic/common/dynamic.proto";
//
service Feed {
- // 发布页预校验
- rpc CreateInitCheck(CreateInitCheckReq) returns (bilibili.dynamic.CreateCheckResp);
- //
- rpc SubmitCheck(SubmitCheckReq) returns (SubmitCheckRsp);
- // 创建动态
- rpc CreateDyn(CreateDynReq) returns (bilibili.dynamic.CreateResp);
- // 根据name取uid
- rpc GetUidByName(bilibili.dynamic.GetUidByNameReq) returns (bilibili.dynamic.GetUidByNameRsp);
+ //
+ rpc AddDynamicReport(AddDynamicReportReq) returns (AddDynamicReportRsp);
// at用户推荐列表
- rpc AtList(bilibili.dynamic.AtListReq) returns (bilibili.dynamic.AtListRsp);
+ rpc AtList(bilibili.dynamic.common.AtListReq) returns (bilibili.dynamic.common.AtListRsp);
// at用户搜索列表
- rpc AtSearch(bilibili.dynamic.AtSearchReq) returns (bilibili.dynamic.AtListRsp);
+ rpc AtSearch(bilibili.dynamic.common.AtSearchReq) returns (bilibili.dynamic.common.AtListRsp);
+ //
+ rpc AttachCardButton(AttachCardButtonReq) returns (AttachCardButtonRsp);
+ //
+ rpc Config(ConfigReq) returns (ConfigRsp);
+ // 创建动态
+ rpc CreateDyn(CreateDynReq) returns (bilibili.dynamic.common.CreateResp);
+ // 发布页预校验
+ rpc CreateInitCheck(CreateInitCheckReq) returns (bilibili.dynamic.common.CreateCheckResp);
//
- rpc ReserveButtonClick(ReserveButtonClickReq) returns (ReserveButtonClickResp);
- //
- rpc CreatePlusButtonClick(CreatePlusButtonClickReq) returns (CreatePlusButtonClickRsp);
- //
- rpc HotSearch(HotSearchReq) returns (HotSearchRsp);
- //
- rpc Suggest(SuggestReq) returns (SuggestRsp);
- //
- rpc DynamicButtonClick(DynamicButtonClickReq) returns (DynamicButtonClickRsp);
+ rpc CreatePageInfos(CreatePageInfosReq) returns (CreatePageInfosRsp);
//
rpc CreatePermissionButtonClick(CreatePermissionButtonClickReq) returns (CreatePermissionButtonClickRsp);
//
- rpc CreatePageInfos(CreatePageInfosReq) returns (CreatePageInfosRsp);
+ rpc CreatePlusButtonClick(CreatePlusButtonClickReq) returns (CreatePlusButtonClickRsp);
+ //
+ rpc DynamicButtonClick(DynamicButtonClickReq) returns (DynamicButtonClickRsp);
+ //
+ rpc DynamicRepost(DynamicRepostReq) returns (bilibili.dynamic.common.CreateResp);
+ //
+ rpc DynamicThumb(DynamicThumbReq) returns (DynamicThumbRsp);
+ //
+ rpc EditDyn(EditDynReq) returns (EditDynRsp);
+ //
+ rpc GetEditDynInfo(GetEditDynInfoReq) returns (GetEditDynInfoRsp);
+ // 根据name取uid
+ rpc GetUidByName(bilibili.dynamic.common.GetUidByNameReq) returns (bilibili.dynamic.common.GetUidByNameRsp);
+ //
+ rpc GoodsAttachCardPreview(GoodsAttachCardPreviewReq) returns (GoodsAttachCardPreviewRsp);
+ //
+ rpc HomeBubbleReport(HomeBubbleReportReq) returns (HomeBubbleReportRsp);
+ //
+ rpc HotSearch(HotSearchReq) returns (HotSearchRsp);
+ //
+ rpc ICreateGoodsReplySync(ICreateGoodsReplySyncReq) returns (ICreateResp);
+ //
+ rpc NearbyPoiList(NearbyPoiListReq) returns (NearbyPoiListRsp);
+ //
+ rpc ReserveButtonClick(ReserveButtonClickReq) returns (ReserveButtonClickResp);
+ //
+ rpc RmDyn(RmDynReq) returns (RmDynRsp);
+ //
+ rpc RmSpaceTop(RmSpaceTopReq) returns (RmSpaceTopRsp);
+ //
+ rpc SearchPoiList(SearchPoiListReq) returns (SearchPoiListRsp);
+ //
+ rpc SetSpaceTop(SetSpaceTopReq) returns (SetSpaceTopRsp);
+ //
+ rpc SubmitCheck(SubmitCheckReq) returns (SubmitCheckRsp);
+ //
+ rpc Suggest(SuggestReq) returns (SuggestRsp);
+}
+
+//
+message AddDynamicReportReq {
+ //
+ int64 accused_uid = 1;
+ //
+ string dynamic_id = 2;
+ //
+ int64 reason_type = 3;
+ //
+ string reason_desc = 4;
+}
+
+//
+message AddDynamicReportRsp {}
+
+//
+message AdInfoDetail {
+ //
+ string nation = 1;
+ //
+ string province = 2;
+ //
+ string city = 3;
+ //
+ string district = 4;
+}
+
+//
+message AttachCardButtonReq {
+ //
+ int32 cur_btn_status = 1;
+ //
+ int64 dynamic_id = 2;
+ //
+ bilibili.dynamic.common.AttachCardType attach_card_type = 3;
+ //
+ string spm_id = 4;
+ //
+ int64 reserve_total = 5;
+ //
+ string dynamic_id_str = 6;
+ //
+ string card_type = 7;
+}
+
+//
+message AttachCardButtonRsp {
+ //
+ int32 final_btn_status = 1;
+ //
+ string toast = 2;
+ //
+ string desc_update = 3;
+ //
+ int64 reserve_update = 4;
+}
+
+//
+message ConfigAB {
+ //
+ ConfigABEntry entry = 1;
+ //
+ int64 value = 2;
+}
+
+//
+enum ConfigABEntry {
+ CONFIG_AB_ENTRY_NONE = 0;
+ CONFIG_AB_ENTRY_PUB_PAGE_TITLE = 1;
+ CONFIG_AB_ENTRY_SELECT_PIC_PANEL = 2;
+}
+
+//
+message ConfigReq {}
+
+//
+message ConfigRsp {
+ //
+ repeated ConfigAB ab_entries = 1;
}
// 创建动态-请求
message CreateDynReq {
// 用户创建接口meta信息
- bilibili.dynamic.UserCreateMeta meta = 1;
+ bilibili.dynamic.common.UserCreateMeta meta = 1;
// 发布的内容
- bilibili.dynamic.CreateContent content = 2;
+ bilibili.dynamic.common.CreateContent content = 2;
// 发布类型
- bilibili.dynamic.CreateScene scene = 3;
+ bilibili.dynamic.common.CreateScene scene = 3;
// 图片内容
- repeated bilibili.dynamic.CreatePic pics = 4;
+ repeated bilibili.dynamic.common.CreatePic pics = 4;
// 转发源
- bilibili.dynamic.DynIdentity repost_src = 5;
+ bilibili.dynamic.common.DynIdentity repost_src = 5;
// 动态视频
- bilibili.dynamic.CreateDynVideo video = 6;
+ bilibili.dynamic.common.CreateDynVideo video = 6;
// 通用模板类型:2048方图 2049竖图 其他值无效
int64 sketch_type = 7;
// 通用模板的元内容(网页内容)
- bilibili.dynamic.Sketch sketch = 8;
+ bilibili.dynamic.common.Sketch sketch = 8;
// 小程序的内容
- bilibili.dynamic.Program program = 9;
+ bilibili.dynamic.common.Program program = 9;
// 动态附加小卡
- bilibili.dynamic.CreateTag dyn_tag = 10;
+ bilibili.dynamic.common.CreateTag dyn_tag = 10;
// 动态附加大卡
- bilibili.dynamic.CreateAttachCard attach_card = 11;
+ bilibili.dynamic.common.CreateAttachCard attach_card = 11;
// 特殊的创建选项
- bilibili.dynamic.CreateOption option = 12;
+ bilibili.dynamic.common.CreateOption option = 12;
//
- bilibili.dynamic.CreateTopic topic = 13;
+ bilibili.dynamic.common.CreateTopic topic = 13;
//
string upload_id = 14;
}
@@ -69,23 +180,37 @@ message CreateDynReq {
//
message CreateInitCheckReq {
//
- int32 scene = 1;
+ bilibili.dynamic.common.CreateInitCheckScene scene = 1;
//
- bilibili.dynamic.MetaDataCtrl meta = 2;
+ bilibili.dynamic.common.MetaDataCtrl meta = 2;
//
- bilibili.dynamic.RepostInitCheck repost = 3;
+ bilibili.dynamic.common.RepostInitCheck repost = 3;
}
-//
+//
+message CreatePageCommercialInfo {
+ //
+ string label_text = 1;
+ //
+ string desc = 2;
+}
+
+//
message CreatePageInfosReq {
- //
+ //
int64 topic_id = 1;
+ //
+ int64 commercial_entity_type = 2;
+ //
+ int64 commercial_entity_id = 3;
}
-//
+//
message CreatePageInfosRsp {
- //
+ //
CreatePageTopicInfo topic = 1;
+ //
+ CreatePageCommercialInfo commercial = 2;
}
//
@@ -126,7 +251,8 @@ enum DynamicButtonClickBizType {
//
message DynamicButtonClickReq {
-
+ //
+ repeated DynamicButtonClickBizType biz_type = 1;
}
//
@@ -134,6 +260,168 @@ message DynamicButtonClickRsp {
}
+//
+message DynamicRepostReq {
+ //
+ int64 uid = 1;
+ //
+ bilibili.dynamic.common.CreateContent content = 2;
+ //
+ bilibili.dynamic.common.DynIdentity repost_src = 3;
+ //
+ bilibili.dynamic.common.CreateOption option = 4;
+ //
+ bilibili.dynamic.common.CreateTopic topic = 5;
+ //
+ string upload_id = 6;
+}
+
+//
+message DynamicThumbReq {
+ //
+ int64 uid = 1;
+ //
+ int64 dyn_id = 2;
+ //
+ int64 type = 3;
+ //
+ int64 rid = 4;
+ //
+ int64 spec_type = 5;
+ //
+ int64 up = 6;
+ //
+ string from = 7;
+}
+
+//
+message DynamicThumbRsp {}
+
+//
+message EditDynReq {
+ //
+ int64 dyn_id = 1;
+ //
+ bilibili.dynamic.common.CreateScene scene = 2;
+ //
+ bilibili.dynamic.common.UserCreateMeta meta = 3;
+ //
+ bilibili.dynamic.common.CreateContent content = 4;
+ //
+ repeated bilibili.dynamic.common.CreatePic pics = 5;
+ //
+ bilibili.dynamic.common.DynIdentity repost_src = 6;
+ //
+ bilibili.dynamic.common.CreateTag dyn_tag = 7;
+ //
+ bilibili.dynamic.common.CreateAttachCard attach_card = 8;
+ //
+ bilibili.dynamic.common.CreateOption option = 9;
+ //
+ bilibili.dynamic.common.CreateTopic topic = 10;
+ //
+ string upload_id = 11;
+}
+
+//
+message EditDynRsp {
+ //
+ int64 state = 1;
+ //
+ string totast = 2;
+}
+
+//
+message GetEditDynInfoReq {
+ //
+ int64 dyn_id = 1;
+ //
+ bilibili.dynamic.common.CreateScene scene = 2;
+ //
+ bilibili.dynamic.common.MetaDataCtrl meta = 3;
+ //
+ bilibili.dynamic.common.RepostInitCheck repost = 4;
+}
+
+//
+message GetEditDynInfoRsp {
+ //
+ repeated bilibili.dynamic.common.CreatePic pics = 1;
+ //
+ int64 orig_dyn_id = 2;
+ //
+ int64 pre_dyn_id = 3;
+ //
+ repeated CreatePageTopicInfo topic_infos = 4;
+ //
+ bilibili.dynamic.common.CreateAttachCard attach_card = 5;
+ //
+ bilibili.dynamic.common.PublishSetting setting = 6;
+ //
+ bilibili.dynamic.common.UpPermission permission = 7;
+ //
+ bilibili.dynamic.common.ShareChannel share_info = 8;
+ //
+ bilibili.dynamic.common.PublishYellowBar yellow_bar = 9;
+ //
+ bilibili.dynamic.common.PlusRedDot plus_red_dot = 10;
+ //
+ int64 only_fans = 11;
+ //
+ string edit_alert_msg = 12;
+}
+
+//
+message GoodsAttachCardPreviewReq {
+ //
+ repeated int64 item_ids = 1;
+ //
+ int64 dyn_id = 2;
+ //
+ int64 mid = 3;
+ //
+ bilibili.dynamic.common.MetaDataCtrl meta = 4;
+}
+
+//
+message GoodsAttachCardPreviewRsp {
+ //
+ map goods = 1;
+}
+
+//
+message GoodsItem {
+ //
+ int64 items_id = 1;
+ //
+ string name = 2;
+ //
+ string brief = 3;
+ //
+ string img = 4;
+ //
+ float price = 5;
+ //
+ string price_str = 6;
+ //
+ string icon_name = 7;
+ //
+ string icon_url = 8;
+ //
+ string jump_link = 9;
+ //
+ string jump_link_desc = 10;
+}
+
+//
+message HomeBubbleReportReq {
+ //
+ string track_id = 1;
+}
+
+//
+message HomeBubbleReportRsp {}
+
//
message HotSearchReq {
@@ -152,6 +440,137 @@ message HotSearchRsp {
string version = 2;
}
+//
+message ICreateGoodsReplySyncReq {
+ //
+ int64 uid = 1;
+ //
+ int64 goods_id = 2;
+ //
+ bilibili.dynamic.common.CreateContent content = 3;
+ //
+ bilibili.dynamic.common.CreateScene scene = 4;
+ //
+ repeated bilibili.dynamic.common.CreatePic pics = 5;
+}
+
+//
+message ICreateResp {
+ //
+ int64 dyn_id = 1;
+ //
+ int64 dyn_type = 2;
+ //
+ int64 dyn_rid = 3;
+}
+
+//
+message LbsLocation {
+ //
+ double lat = 1;
+ //
+ double lng = 2;
+}
+
+//
+message NearbyPoiDetail {
+ //
+ LbsLocation location = 1;
+ //
+ POI_TYPE type = 2;
+ //
+ string poi = 3;
+ //
+ string address = 4;
+ //
+ string title = 5;
+ //
+ string show_title = 6;
+ //
+ double distance = 7;
+ //
+ string show_distance = 8;
+ //
+ AdInfoDetail ad_info = 9;
+ //
+ repeated PoiId ancestors = 10;
+}
+
+//
+message NearbyPoiListItem {
+ //
+ NearbyPoiDetail poi_info = 1;
+ //
+ int32 user_count = 2;
+}
+
+//
+message NearbyPoiListReq {
+ //
+ double lat = 1;
+ //
+ double lng = 2;
+ //
+ int32 page = 3;
+ //
+ int32 page_size = 4;
+}
+
+//
+message NearbyPoiListRsp {
+ //
+ bool has_more = 1;
+ //
+ repeated NearbyPoiListItem pois = 2;
+}
+
+enum POI_TYPE {
+ TENCENT = 0;
+ CITY = 1;
+ NATION = 2;
+ BILI = 3;
+}
+
+//
+message PoiDetail {
+ //
+ LbsLocation location = 1;
+ //
+ POI_TYPE type = 2;
+ //
+ string poi = 3;
+ //
+ string address = 4;
+ //
+ string title = 5;
+ //
+ string show_title = 6;
+ //
+ double distance = 7;
+ //
+ string show_distance = 8;
+ //
+ AdInfoDetail ad_info = 9;
+ //
+ PoiId ancestors = 10;
+}
+
+//
+message PoiId {
+ //
+ string poi = 1;
+ //
+ int32 type = 2;
+}
+
+//
+message PoiListItem {
+ //
+ PoiDetail poi_info = 1;
+ //
+ int32 user_count = 2;
+}
+
//
message ReserveButtonClickReq {
//
@@ -202,12 +621,89 @@ enum ReserveButtonStatus {
RESERVE_BUTTON_STATUS_CHECK = 2; //
}
+//
+message ReserveCalendarInfo {
+ //
+ string title = 1;
+ //
+ int64 startts = 2;
+ //
+ int64 endts = 3;
+ //
+ string description = 4;
+ //
+ string bussinessid = 5;
+}
+
+//
+message RmDynReq {
+ //
+ int64 dyn_id = 1;
+ //
+ string dyn_id_str = 2;
+}
+
+//
+message RmDynRsp {}
+
+//
+message RmSpaceTopReq {
+ //
+ int64 dyn_id = 1;
+ //
+ int32 teenagers_mode = 2;
+}
+
+//
+message RmSpaceTopRsp {}
+
+//
+message SearchPoiListReq {
+ //
+ double lat = 1;
+ //
+ double lng = 2;
+ //
+ int32 page = 3;
+ //
+ int32 page_size = 4;
+ //
+ string keyword = 5;
+}
+
+//
+message SearchPoiListRsp {
+ //
+ bool has_more = 1;
+ //
+ repeated PoiListItem pois = 2;
+}
+
+//
+message SetSpaceTopReq {
+ //
+ int64 dyn_id = 1;
+ //
+ int32 teenagers_mode = 2;
+}
+
+//
+message SetSpaceTopRsp {}
+
//
message SubmitCheckReq {
//
- bilibili.dynamic.CreateContent content = 1;
+ bilibili.dynamic.common.CreateContent content = 1;
//
- repeated bilibili.dynamic.CreatePic pics = 2;
+ repeated bilibili.dynamic.common.CreatePic pics = 2;
+ //
+ bilibili.dynamic.common.CreateAttachCard attach_card = 3;
+ //
+ bilibili.dynamic.common.CreateScene scene = 4;
+ //
+ bilibili.dynamic.common.CreateOption create_option = 5;
+ //
+ bilibili.dynamic.common.Opus opus = 6;
}
//
diff --git a/grpc_api/bilibili/gaia/gw/gw_api.proto b/grpc_api/bilibili/gaia/gw/gw_api.proto
index 8c6fab8..4d3cb95 100644
--- a/grpc_api/bilibili/gaia/gw/gw_api.proto
+++ b/grpc_api/bilibili/gaia/gw/gw_api.proto
@@ -6,10 +6,14 @@ import "google/protobuf/empty.proto";
// 应用列表上报
service Gaia {
- // 应用列表上报
- rpc ExUploadAppList(GaiaEncryptMsgReq) returns (UploadAppListReply);
+ //
+ rpc ExClimbAppleTrees(GaiaEncryptMsgReq) returns (UploadAppListReply);
// 拉取rsa公钥
rpc ExFetchPublicKey(google.protobuf.Empty) returns (FetchPublicKeyReply);
+ //
+ rpc ExGetAxe(google.protobuf.Empty) returns (FetchPublicKeyReply);
+ // 应用列表上报
+ rpc ExUploadAppList(GaiaEncryptMsgReq) returns (UploadAppListReply);
}
// 待加密的pb对象
diff --git a/grpc_api/bilibili/metadata/fawkes/fawkes.proto b/grpc_api/bilibili/metadata/fawkes/fawkes.proto
index dfdbfa1..0855314 100644
--- a/grpc_api/bilibili/metadata/fawkes/fawkes.proto
+++ b/grpc_api/bilibili/metadata/fawkes/fawkes.proto
@@ -8,14 +8,16 @@ message FawkesReply {
string config = 1;
// 客户端在fawkes系统中对应的已发布最新的ff版本号
string ff = 2;
+ //
+ string dd = 3;
}
//
message FawkesReq {
- // 客户端在fawkes系统的唯一名
+ // 客户端在fawkes系统的唯一名, 如 `android64`
string appkey = 1;
- // 客户端在fawkes系统中的环境参数
+ // 客户端在fawkes系统中的环境参数, 如 `prod`
string env = 2;
- // 启动id
+ // 启动id, 8 位 0~9, a~z 组成的字符串
string session_id = 3;
}
diff --git a/grpc_api/bilibili/metadata/metadata.proto b/grpc_api/bilibili/metadata/metadata.proto
index 9af2607..9befe06 100644
--- a/grpc_api/bilibili/metadata/metadata.proto
+++ b/grpc_api/bilibili/metadata/metadata.proto
@@ -5,18 +5,18 @@ package bilibili.metadata;
// 请求元数据
// gRPC头部:x-bili-metadata-bin
message Metadata {
- // 登录Token
+ // 登录 access_key
string access_key = 1;
- // 包类型
+ // 包类型, 如 `android`
string mobi_app = 2;
- // 运行设备
+ // 运行设备, 留空即可
string device = 3;
- // 构建id
+ // 构建id, 如 `7380300`
int32 build = 4;
- // APP分发渠道
+ // APP分发渠道, 如 `master`
string channel = 5;
- // 设备buvid
+ // 设备唯一标识
string buvid = 6;
- // 平台类型
+ // 平台类型, 如 `android`
string platform = 7;
}
diff --git a/grpc_api/bilibili/metadata/parabox/pararbox.proto b/grpc_api/bilibili/metadata/parabox/parabox.proto
similarity index 100%
rename from grpc_api/bilibili/metadata/parabox/pararbox.proto
rename to grpc_api/bilibili/metadata/parabox/parabox.proto
diff --git a/grpc_api/bilibili/metadata/restriction/restriction.proto b/grpc_api/bilibili/metadata/restriction/restriction.proto
index 67dca6a..9d4e16f 100644
--- a/grpc_api/bilibili/metadata/restriction/restriction.proto
+++ b/grpc_api/bilibili/metadata/restriction/restriction.proto
@@ -7,6 +7,7 @@ enum ModeType {
NORMAL = 0; // 正常模式
TEENAGERS = 1; // 青少年模式
LESSONS = 2; // 课堂模式
+ BASIC = 3; //
}
// 限制条件
@@ -21,4 +22,6 @@ message Restriction {
bool review = 4;
// 客户端是否选择关闭个性化推荐
bool disable_rcmd = 5;
+ //
+ bool basic_mode = 6;
}
diff --git a/grpc_api/bilibili/pgc/gateway/player/v2/playurl.proto b/grpc_api/bilibili/pgc/gateway/player/v2/playurl.proto
index 6a1d1e4..ddde218 100644
--- a/grpc_api/bilibili/pgc/gateway/player/v2/playurl.proto
+++ b/grpc_api/bilibili/pgc/gateway/player/v2/playurl.proto
@@ -1,785 +1,1127 @@
-syntax = "proto3";
-
-package bilibili.pgc.gateway.player.v2;
-
-import "google/protobuf/timestamp.proto";
-
-// 视频url
-service PlayURL {
- // 播放页信息
- rpc PlayView (PlayViewReq) returns (PlayViewReply);
- //
- rpc PlayViewComic(PlayViewReq) returns (PlayViewReply);
-}
-
-// 角标信息
-message BadgeInfo {
- // 角标文案
- string text = 1;
- // 角标色值
- string bg_color = 2;
- // 角标色值-夜间模式
- string bg_color_night = 3;
- // 文案色值
- string text_color = 4;
- // ? 新版本客户端已弃用此项
- GradientColor bg_gradient_color = 5;
-}
-
-// Dialog组件: 底部显示
-message BottomDisplay {
- // 文案
- TextInfo title = 1;
- // 图标
- string icon = 2;
-}
-
-// 按钮信息
-message ButtonInfo {
- // 按钮文案
- string text = 1;
- // 按钮字体色值
- string text_color = 2;
- // 按钮字体色值-夜间模式
- string text_color_night = 3;
- // 按钮背景色
- string bg_color = 4;
- // 按钮背景色-夜间模式
- string bg_color_night = 5;
- // 按钮链接
- string link = 6;
- // 按钮动作类型
- string action_type = 7;
- // 角标信息
- BadgeInfo badge_info = 8;
- // 埋点上报信息
- Report report = 9;
- // 左侧删除线样式文案
- string left_strikethrough_text = 10;
- // 缩略按钮文案信息
- TextInfo simple_text_info = 11;
- // 缩略按钮背景色值
- string simple_bg_color = 12;
- // 缩略按钮字体色值-夜间模式
- string simple_bg_color_night = 13;
- //
- GradientColor bg_gradient_color = 14;
- //
- map order_report_params = 15;
-}
-
-// 投屏限制. code = 0 时为无限制, 否则表示不不允许投屏并提示message
-message CastTips {
- //
- int32 code = 1;
- //
- string message = 2;
-}
-
-// 跳过片头/片尾配置
-message ClipInfo {
- //
- int64 material_no = 1;
- // DASH分段始
- int32 start = 2;
- // DASH分段终
- int32 end = 3;
- // Clip类型
- ClipType clip_type = 4;
- // 跳过片头/片尾时的提示语
- string toast_text = 5;
- //
- MultiView multi_view = 6;
-}
-
-// 跳过片头/片尾配置: Clip类型
-enum ClipType {
- NT_UNKNOWN = 0; //
- CLIP_TYPE_OP = 1; // 跳过OP
- CLIP_TYPE_ED = 2; // 跳过ED
- CLIP_TYPE_HE = 3; //
- CLIP_TYPE_MULTI_VIEW = 4; //
-}
-
-// 编码类型
-enum CodeType {
- NOCODE = 0; // 默认
- CODE264 = 1; // H.264
- CODE265 = 2; // H.265
-}
-
-//
-message ContinuePlayInfo {
- //
- int64 continue_play_ep_id = 1;
-}
-
-// 优惠券
-message Coupon {
- // 优惠券token
- string coupon_token = 1;
- // 优惠券类型
- // 1:折扣券 2:满减券 3:兑换券
- int64 type = 2;
- // 优惠券面值
- string value = 3;
- // 优惠券使用描述
- string use_desc = 4;
- // 优惠券标题
- string title = 5;
- // 优惠券描述
- string desc = 6;
- // 优惠券支付按钮文案
- string pay_button_text = 7;
- // 优惠券支付按钮删除线文案
- string pay_button_text_line_through = 8;
- // 实付金额
- string real_amount = 9;
- // 使用过期时间
- google.protobuf.Timestamp expire_time = 10;
-}
-
-// 优惠券信息
-message CouponInfo {
- // 提示框信息
- CouponToast toast = 1;
- // 弹窗信息
- PopWin pop_win = 2;
-}
-
-// 优惠券提示框文案信息
-message CouponTextInfo {
- // 提示框文案-播正片6分钟预览
- string positive_preview = 1;
- // 提示框文案-播非正片分节ep
- string section = 2;
-}
-
-// 优惠券提示框信息
-message CouponToast {
- // 提示框文案信息
- CouponTextInfo text_info = 1;
- // 提示框按钮
- ButtonInfo button = 2;
-}
-
-// dash条目
-message DashItem {
- // 清晰度
- uint32 id = 1;
- // 主线流
- string base_url = 2;
- // 备用流
- repeated string backup_url = 3;
- // 带宽
- uint32 bandwidth = 4;
- // 编码id
- uint32 codecid = 5;
- // md5
- string md5 = 6;
- // 视频大小
- uint64 size = 7;
- // 帧率
- string frame_rate = 8;
-}
-
-// dash视频流
-message DashVideo {
- // 主线流
- string base_url = 1;
- // 备用流
- repeated string backup_url = 2;
- // 带宽
- uint32 bandwidth = 3;
- // 编码id
- uint32 codecid = 4;
- // md5
- string md5 = 5;
- // 大小
- uint64 size = 6;
- // 伴音质量id
- uint32 audio_id = 7;
- // 是否非全二压
- bool no_rexcode = 8;
- // 帧率
- string frame_rate = 9;
- // 宽
- int32 width = 10;
- // 高
- int32 height = 11;
-}
-
-// 鉴权浮层
-message Dialog {
- // 鉴权限制码
- int64 code = 1;
- // 鉴权限制信息
- string msg = 2;
- // 浮层类型
- string type = 3;
- // 浮层样式类型
- string style_type = 4;
- // 浮层配置
- DialogConfig config = 5;
- // 标题
- TextInfo title = 6;
- // 副标题
- TextInfo subtitle = 7;
- // 图片信息
- ImageInfo image = 8;
- // 按钮列表
- repeated ButtonInfo button = 9;
- // 底部描述
- ButtonInfo bottom_desc = 10;
- // 埋点上报信息
- Report report = 11;
- // 倒计时 秒
- int32 count_down_sec = 12;
- // 右下描述
- TextInfo right_bottom_desc = 13;
- //
- repeated BottomDisplay bottom_display = 14;
-}
-
-// 鉴权浮层配置
-message DialogConfig {
- // 是否显示高斯模糊背景图
- bool is_show_cover = 1;
- // 是否响应转屏
- bool is_orientation_enable = 2;
- // 是否响应上滑吸顶
- bool is_nested_scroll_enable = 3;
- // 是否强制竖屏
- bool is_force_halfscreen_enable = 4;
-}
-
-// 当前分辨率信息
-message Dimension {
- // 宽
- int32 width = 1;
- // 长
- int32 height = 2;
- // 旋转角度
- int32 rotate = 3;
-}
-
-// 杜比音频信息
-message DolbyItem {
- // 杜比类型
- enum Type {
- NONE = 0; // NONE
- COMMON = 1; // 普通杜比音效
- ATMOS = 2; // 全景杜比音效
- }
- // 杜比类型
- Type type = 1;
- // 音频流
- DashItem audio = 2;
-}
-
-// DRM技术类型
-enum DrmTechType {
- NON = 0; //
- FAIR_PLAY = 1; //
-}
-
-// 播放结束页
-message EndPage {
- // 鉴权浮层
- Dialog dialog = 1;
- // 播放完后是否隐藏end_page
- bool hide = 2;
-}
-
-// 事件
-message Event {
- // 震动
- Shake shake = 1;
-}
-
-// ? 放映室提示语
-message FreyaConfig {
- //
- string desc = 1;
- //
- int32 type = 2;
- //
- int32 issued_cnt = 3;
- //
- bool is_always_show = 4;
- //
- int32 screen_number = 5;
- //
- int32 full_screen_number = 6;
-}
-
-// 渐变色信息
-message GradientColor {
- //
- string start_color = 1;
- //
- string end_color = 2;
-}
-
-// 高画质试看信息
-message HighDefinitionTrialInfo {
- //
- bool trial_able = 1;
- //
- int32 remaining_times = 2;
- //
- int32 start = 3;
- //
- int32 time_length = 4;
- //
- Toast start_toast = 5;
- //
- Toast end_toast = 6;
- //
- Report report = 7;
- //
- ButtonInfo quality_open_tip_btn = 8;
- //
- ButtonInfo no_longer_trial_btn = 9;
-}
-
-// 图片信息
-message ImageInfo {
- // 图片链接
- string url = 1;
-}
-
-//
-enum InlineScene {
- UNKNOWN = 0; //
- RELATED_EP = 1; //
- HE = 2; //
- SKIP = 3; //
-}
-
-//
-enum InlineType {
- TYPE_UNKNOWN = 0; //
- TYPE_WHOLE = 1; //
- TYPE_HE_CLIP = 2; //
- TYPE_PREVIEW = 3; //
-}
-
-//
-message MultiView {
- //
- string button_material = 1;
- //
- int64 ep_id = 2;
- //
- int64 cid = 3;
- //
- int64 avid = 4;
-}
-
-// 大会员广告: 支付提示信息
-message PayTip {
- //
- string title = 1;
- //
- string url = 2;
- //
- string icon = 3;
- //
- int32 type = 4;
- //
- int32 show_type = 5;
- //
- string img = 6;
- //
- string bg_day_color = 7;
- //
- string bg_night_color = 8;
- //
- string bg_line_color = 9;
- //
- string bg_night_line_color = 10;
- //
- string text_color = 11;
- //
- string text_night_color = 12;
- //
- int64 view_start_time = 13;
- //
- repeated ButtonInfo button = 14;
- //
- int32 url_open_type = 15;
- //
- Report report = 16;
- //
- int32 angle_style = 17;
- //
- int32 report_type = 18;
- //
- map order_report_params = 19;
-}
-
-// 禁用功能配置
-message PlayAbilityConf {
- bool background_play_disable = 1; // 后台播放
- bool flip_disable = 2; // 镜像反转
- bool cast_disable = 3; // 投屏
- bool feedback_disable = 4; // 反馈
- bool subtitle_disable = 5; // 字幕
- bool playback_rate_disable = 6; // 播放速度
- bool time_up_disable = 7; // 定时停止
- bool playback_mode_disable = 8; // 播放方式
- bool scale_mode_disable = 9; // 画面尺寸
- bool like_disable = 10; // 赞
- bool dislike_disable = 11; // 踩
- bool coin_disable = 12; // 投币
- bool elec_disable = 13; // 充电
- bool share_disable = 14; // 分享
- bool screen_shot_disable = 15; // 截图
- bool lock_screen_disable = 16; // 锁定
- bool recommend_disable = 17; // 相关推荐
- bool playback_speed_disable = 18; // 播放速度
- bool definition_disable = 19; // 清晰度
- bool selections_disable = 20; // 选集
- bool next_disable = 21; // 下一集
- bool edit_dm_disable = 22; // 编辑弹幕
- bool small_window_disable = 23; // 小窗
- bool shake_disable = 24; // 震动
- bool outer_dm_disable = 25; // 外层面板弹幕设置
- bool inner_dm_disable = 26; // 三点内弹幕设置
- bool freya_enter_disable = 27; // 一起看入口
- bool dolby_disable = 28; // 杜比音效
- bool freya_full_disable = 29; // 全屏一起看入口
- bool skip_oped_switch_disable = 30; //
- bool record_screen_disable = 31; //
- bool color_optimize_disable = 32; //
-}
-
-// 云控扩展配置信息
-message PlayAbilityExtConf {
- // 自定义配置扩展信息
- bool allow_close_subtitle = 1;
- //
- FreyaConfig freya_config = 2;
- //
- CastTips cast_tips = 3;
-}
-
-// 错误码
-enum PlayErr {
- NoErr = 0; //
- WithMultiDeviceLoginErr = 1; // 管控类型的错误码
-}
-
-// 其他业务信息
-message PlayViewBusinessInfo {
- // 当前视频是否是预览
- bool is_preview = 1;
- // 用户是否承包过
- bool bp = 2;
- // drm使用
- string marlin_token = 3;
- // 倍速动效色值
- string playback_speed_color = 4;
- //
- ContinuePlayInfo continue_play_info = 5;
- // 跳过片头/片尾配置
- repeated ClipInfo clip_info = 6;
- //
- InlineType inline_type = 7;
- //
- int32 ep_whole_duration = 8;
- // 当前分辨率信息
- Dimension dimension = 9;
- //
- map quality_ext_map = 10;
- //
- map exp_map = 11;
- // DRM技术类型
- DrmTechType drm_tech_type = 12;
-}
-
-// 播放页信息-响应
-message PlayViewReply {
- // 视频流信息
- VideoInfo video_info = 1;
- // 播放控件用户自定义配置
- PlayAbilityConf play_conf = 2;
- // 业务需要的其他信息
- PlayViewBusinessInfo business = 3;
- // 事件
- Event event = 4;
- // 展示信息
- ViewInfo view_info = 5;
- // 自定义配置扩展信息
- PlayAbilityExtConf play_ext_conf = 6;
-}
-
-// 播放页信息-请求
-message PlayViewReq {
- // 剧集epid
- int64 epid = 1;
- // 视频cid
- int64 cid = 2;
- // 清晰度
- int64 qn = 3;
- // 视频流版本
- int32 fnver = 4;
- // 视频流格式
- int32 fnval = 5;
- // 下载模式
- // 0:播放 1:flv下载 2:dash下载
- uint32 download = 6;
- // 流url强制是用域名
- // 0:允许使用ip 1:使用http 2:使用https
- int32 force_host = 7;
- // 是否4K
- bool fourk = 8;
- // 当前页spm
- string spmid = 9;
- // 上一页spm
- string from_spmid = 10;
- // 青少年模式
- int32 teenagers_mode = 11;
- // 视频编码
- CodeType prefer_codec_type = 12;
- // 是否强制请求预览视频
- bool is_preview = 13;
- // 一起看房间id
- int64 room_id = 14;
- // 是否需要展示信息
- bool is_need_view_info = 15;
- // 场景控制
- SceneControl scene_control = 16;
- //
- InlineScene inline_scene = 17;
- //
- int64 material_no = 18;
-}
-
-// 弹窗信息
-message PopWin {
- // 弹窗标题 老字段
- string title = 1;
- // 优惠券列表
- repeated Coupon coupon = 2;
- // 弹窗按钮列表
- repeated ButtonInfo button = 3;
- // 底部文案 老字段
- string bottom_text = 4;
- // 弹窗标题 新字段
- TextInfo pop_title = 5;
- // 弹窗副标题
- TextInfo subtitle = 6;
- // 底部描述 新字段
- ButtonInfo bottom_desc = 7;
- // 弹窗小图
- string cover = 8;
- // 弹窗类型
- string pop_type = 9;
-}
-
-// 广告组件: 竖屏时视频下部提示栏
-message PromptBar {
- // 主标题, 如: "本片含大会员专享内容"
- TextInfo title = 1;
- // 副标题, 如: "成为大会员可免费看全部剧集"
- TextInfo sub_title = 2;
- // 副标题前面的icon
- string sub_title_icon = 3;
- // 背景图
- string bg_image = 4;
- // 背景渐变色
- GradientColor bg_gradient_color = 5;
- // 按钮
- repeated ButtonInfo button = 6;
- // 埋点上报信息
- Report report = 7;
- //
- string full_screen_ip_icon = 8;
- //
- GradientColor full_screen_bg_gradient_color = 9;
-}
-
-// 云控拓展视频画质信息
-message QualityExtInfo {
- // 是否支持试看
- bool trial_support = 1;
-}
-
-// 埋点上报信息
-message Report {
- // 曝光事件
- string show_event_id = 1;
- // 点击事件
- string click_event_id = 2;
- // 埋点透传参数
- string extends = 3;
-}
-
-// 分段流条目
-message ResponseUrl {
- // 分段序号
- uint32 order = 1;
- // 分段时长
- uint64 length = 2;
- // 分段大小
- uint64 size = 3;
- // 主线流
- string url = 4;
- // 备用流
- repeated string backup_url = 5;
- // md5
- string md5 = 6;
-}
-
-// 场景控制
-message SceneControl {
- // 是否收藏播单
- bool fav_playlist = 1;
- // 是否小窗
- bool small_window = 2;
- // 是否画中画
- bool pip = 3;
- //
- bool was_he_inline = 4;
- //
- bool is_need_trial = 5;
-}
-
-//分段视频流
-message SegmentVideo {
- //分段视频流列表
- repeated ResponseUrl segment = 1;
-}
-
-// 震动
-message Shake {
- // 文件地址
- string file = 1;
-}
-
-// 视频流信息
-message Stream {
- // 元数据
- StreamInfo info = 1;
- // 流数据
- oneof content {
- // dash流
- DashVideo dash_video = 2;
- // 分段流
- SegmentVideo segment_video = 3;
- }
-}
-
-// 流媒体元数据
-message StreamInfo {
- // 清晰度
- uint32 quality = 1;
- // 格式
- string format = 2;
- // 格式描述
- string description = 3;
- // 错误码
- uint32 err_code = 4;
- // 不满足条件信息
- StreamLimit limit = 5;
- // 是否需要vip
- bool need_vip = 6;
- // 是否需要登录
- bool need_login = 7;
- // 是否完整
- bool intact = 8;
- // 是否非全二压
- bool no_rexcode = 9;
- // 清晰度属性位
- int64 attribute = 10;
- // 新版格式描述
- string new_description = 11;
- // 格式文字
- string display_desc = 12;
- // 新版格式描述备注
- string superscript = 13;
-}
-
-// 清晰度不满足条件信息
-message StreamLimit {
- // 标题
- string title = 1;
- // 跳转地址
- string uri = 2;
- // 提示信息
- string msg = 3;
-}
-
-// 文案信息
-message TextInfo {
- // 文案
- string text = 1;
- // 字体色值
- string textColor = 2;
- // 字体色值-夜间模式
- string textColorNight = 3;
-}
-
-// toast
-message Toast {
- // toast文案 老字段
- string text = 1;
- // toast按钮
- ButtonInfo button = 2;
- // 显示样式类型
- int32 show_style_type = 3;
- // 图标
- string icon = 4;
- // toast文案 新字段
- TextInfo toast_text = 5;
- // 埋点上报信息
- Report report = 6;
- //
- map order_report_params = 7;
-}
-
-// 视频url信息
-message VideoInfo {
- // 视频清晰度
- uint32 quality = 1;
- // 视频格式
- string format = 2;
- // 视频时长
- uint64 timelength = 3;
- // 视频编码id
- uint32 video_codecid = 4;
- // 视频流
- repeated Stream stream_list = 5;
- // 伴音流
- repeated DashItem dash_audio = 6;
- // 杜比伴音流
- DolbyItem dolby = 7;
-}
-
-// 展示信息
-message ViewInfo {
- // 鉴权浮层
- Dialog dialog = 1;
- // toast
- Toast toast = 2;
- // 优惠券信息
- CouponInfo coupon_info = 3;
- // 未购买的超前点播ep列表
- repeated int64 demand_no_pay_epids = 4;
- // 播放结束页
- EndPage end_page = 5;
- //
- map exp_config = 6;
- // 弹窗
- PopWin pop_win = 7;
- //
- PromptBar try_watch_prompt_bar = 8;
- //
- PayTip pay_tip = 9;
- //
- HighDefinitionTrialInfo high_definition_trial_info = 10;
- //
- map ext_dialog = 11;
-}
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.pgc.gateway.player.v2;
+
+import "google/protobuf/timestamp.proto";
+
+// 视频url
+service PlayURL {
+ // 播放页信息
+ rpc PlayView (PlayViewReq) returns (PlayViewReply);
+ //
+ rpc PlayViewComic(PlayViewReq) returns (PlayViewReply);
+}
+
+//
+message Animation {
+ //
+ map qn_svga_animation_map = 1;
+}
+
+//
+message AudioMaterialProto {
+ //
+ string audio_id = 1;
+ //
+ string title = 2;
+ //
+ string edition = 3;
+ //
+ uint64 person_id = 4;
+ //
+ string person_name = 5;
+ //
+ string person_avatar = 6;
+ //
+ repeated DashItem audio = 7;
+}
+
+// 角标信息
+message BadgeInfo {
+ // 角标文案
+ string text = 1;
+ // 角标色值
+ string bg_color = 2;
+ // 角标色值-夜间模式
+ string bg_color_night = 3;
+ // 文案色值
+ string text_color = 4;
+ // ? 新版本客户端已弃用此项
+ GradientColor bg_gradient_color = 5;
+ //
+ string img = 6;
+}
+
+// Dialog组件: 底部显示
+message BottomDisplay {
+ // 文案
+ TextInfo title = 1;
+ // 图标
+ string icon = 2;
+}
+
+// 按钮信息
+message ButtonInfo {
+ // 按钮文案
+ string text = 1;
+ // 按钮字体色值
+ string text_color = 2;
+ // 按钮字体色值-夜间模式
+ string text_color_night = 3;
+ // 按钮背景色
+ string bg_color = 4;
+ // 按钮背景色-夜间模式
+ string bg_color_night = 5;
+ // 按钮链接
+ string link = 6;
+ // 按钮动作类型
+ string action_type = 7;
+ // 角标信息
+ BadgeInfo badge_info = 8;
+ // 埋点上报信息
+ Report report = 9;
+ // 左侧删除线样式文案
+ string left_strikethrough_text = 10;
+ // 缩略按钮文案信息
+ TextInfo simple_text_info = 11;
+ // 缩略按钮背景色值
+ string simple_bg_color = 12;
+ // 缩略按钮字体色值-夜间模式
+ string simple_bg_color_night = 13;
+ //
+ GradientColor bg_gradient_color = 14;
+ //
+ map order_report_params = 15;
+ //
+ TaskParam task_param = 16;
+ //
+ string pc_link = 17;
+}
+
+// 投屏限制. code = 0 时为无限制, 否则表示不不允许投屏并提示message
+message CastTips {
+ //
+ int32 code = 1;
+ //
+ string message = 2;
+}
+
+// 跳过片头/片尾配置
+message ClipInfo {
+ //
+ int64 material_no = 1;
+ // DASH分段始
+ int32 start = 2;
+ // DASH分段终
+ int32 end = 3;
+ // Clip类型
+ ClipType clip_type = 4;
+ // 跳过片头/片尾时的提示语
+ string toast_text = 5;
+ //
+ MultiView multi_view = 6;
+}
+
+// 跳过片头/片尾配置: Clip类型
+enum ClipType {
+ NT_UNKNOWN = 0; //
+ CLIP_TYPE_OP = 1; // 跳过OP
+ CLIP_TYPE_ED = 2; // 跳过ED
+ CLIP_TYPE_HE = 3; //
+ CLIP_TYPE_MULTI_VIEW = 4; //
+ CLIP_TYPE_AD = 5; //
+}
+
+// 编码类型
+enum CodeType {
+ NOCODE = 0; // 默认
+ CODE264 = 1; // H.264
+ CODE265 = 2; // H.265
+}
+
+//
+message ContinuePlayInfo {
+ //
+ int64 continue_play_ep_id = 1;
+}
+
+// 优惠券
+message Coupon {
+ // 优惠券token
+ string coupon_token = 1;
+ // 优惠券类型
+ // 1:折扣券 2:满减券 3:兑换券
+ int64 type = 2;
+ // 优惠券面值
+ string value = 3;
+ // 优惠券使用描述
+ string use_desc = 4;
+ // 优惠券标题
+ string title = 5;
+ // 优惠券描述
+ string desc = 6;
+ // 优惠券支付按钮文案
+ string pay_button_text = 7;
+ // 优惠券支付按钮删除线文案
+ string pay_button_text_line_through = 8;
+ // 实付金额
+ string real_amount = 9;
+ // 使用过期时间
+ google.protobuf.Timestamp expire_time = 10;
+ //
+ int64 otype = 11;
+ //
+ string amount = 12;
+}
+
+// 优惠券信息
+message CouponInfo {
+ // 提示框信息
+ CouponToast toast = 1;
+ // 弹窗信息
+ PopWin pop_win = 2;
+}
+
+// 优惠券提示框文案信息
+message CouponTextInfo {
+ // 提示框文案-播正片6分钟预览
+ string positive_preview = 1;
+ // 提示框文案-播非正片分节ep
+ string section = 2;
+}
+
+// 优惠券提示框信息
+message CouponToast {
+ // 提示框文案信息
+ CouponTextInfo text_info = 1;
+ // 提示框按钮
+ ButtonInfo button = 2;
+}
+
+// dash条目
+message DashItem {
+ // 清晰度
+ uint32 id = 1;
+ // 主线流
+ string base_url = 2;
+ // 备用流
+ repeated string backup_url = 3;
+ // 带宽
+ uint32 bandwidth = 4;
+ // 编码id
+ uint32 codecid = 5;
+ // md5
+ string md5 = 6;
+ // 视频大小
+ uint64 size = 7;
+ // 帧率
+ string frame_rate = 8;
+ // DRM widevine 密钥
+ string widevine_pssh = 9;
+}
+
+// dash视频流
+message DashVideo {
+ // 主线流
+ string base_url = 1;
+ // 备用流
+ repeated string backup_url = 2;
+ // 带宽
+ uint32 bandwidth = 3;
+ // 编码id
+ uint32 codecid = 4;
+ // md5
+ string md5 = 5;
+ // 大小
+ uint64 size = 6;
+ // 伴音质量id
+ uint32 audio_id = 7;
+ // 是否非全二压
+ bool no_rexcode = 8;
+ // 帧率
+ string frame_rate = 9;
+ // 宽
+ int32 width = 10;
+ // 高
+ int32 height = 11;
+ // DRM 密钥
+ string widevine_pssh = 12;
+}
+
+//
+message DataControl {
+ //
+ bool need_watch_progress = 1;
+}
+
+// 鉴权浮层
+message Dialog {
+ // 鉴权限制码
+ int64 code = 1;
+ // 鉴权限制信息
+ string msg = 2;
+ // 浮层类型
+ string type = 3;
+ // 浮层样式类型
+ string style_type = 4;
+ // 浮层配置
+ DialogConfig config = 5;
+ // 标题
+ TextInfo title = 6;
+ // 副标题
+ TextInfo subtitle = 7;
+ // 图片信息
+ ImageInfo image = 8;
+ // 按钮列表
+ repeated ButtonInfo button = 9;
+ // 底部描述
+ ButtonInfo bottom_desc = 10;
+ // 埋点上报信息
+ Report report = 11;
+ // 倒计时 秒
+ int32 count_down_sec = 12;
+ // 右下描述
+ TextInfo right_bottom_desc = 13;
+ //
+ repeated BottomDisplay bottom_display = 14;
+ //
+ repeated PlayList play_list = 15;
+}
+
+// 鉴权浮层配置
+message DialogConfig {
+ // 是否显示高斯模糊背景图
+ bool is_show_cover = 1;
+ // 是否响应转屏
+ bool is_orientation_enable = 2;
+ // 是否响应上滑吸顶
+ bool is_nested_scroll_enable = 3;
+ // 是否强制竖屏
+ bool is_force_halfscreen_enable = 4;
+ // 是否启用背景半透明
+ bool is_background_translucent_enable = 5;
+}
+
+// 当前分辨率信息
+message Dimension {
+ // 宽
+ int32 width = 1;
+ // 长
+ int32 height = 2;
+ // 旋转角度
+ int32 rotate = 3;
+}
+
+// 杜比音频信息
+message DolbyItem {
+ // 杜比类型
+ enum Type {
+ NONE = 0; // NONE
+ COMMON = 1; // 普通杜比音效
+ ATMOS = 2; // 全景杜比音效
+ }
+ // 杜比类型
+ Type type = 1;
+ // 音频流
+ DashItem audio = 2;
+}
+
+// DRM技术类型
+enum DrmTechType {
+ NON = 0; //
+ FAIR_PLAY = 1; //
+ WIDE_VINE = 2; //
+ BILI_DRM = 3; //
+}
+
+// 播放结束后的尾页Dialog
+message EndPage {
+ //
+ Dialog dialog = 1;
+ //
+ bool hide = 2;
+}
+
+//
+message EpInlineVideo {
+ //
+ int64 material_no = 1;
+ //
+ int64 aid = 2;
+ //
+ int64 cid = 3;
+}
+
+// 剧集广告信息
+message EpisodeAdvertisementInfo {
+ //
+ int64 aid = 1;
+ //
+ string title = 2;
+ //
+ string link = 3;
+ //
+ int32 follow_video_bnt_flag = 4;
+ //
+ string next_video_title = 5;
+ //
+ string next_video_link = 6;
+ //
+ int64 cid = 7;
+ //
+ int32 season_id = 8;
+ //
+ int32 follow = 9;
+}
+
+// EP信息
+message EpisodeInfo {
+ //
+ int32 ep_id = 1;
+ //
+ int64 cid = 2;
+ //
+ int64 aid = 3;
+ //
+ int64 ep_status = 4;
+ //
+ SeasonInfo season_info = 5;
+ //
+ string cover = 6;
+ //
+ string title = 7;
+ //
+ Interaction interaction = 8;
+ //
+ string long_title = 9;
+}
+
+//
+message EpPreVideo {
+ //
+ int64 aid = 1;
+ //
+ int64 cid = 2;
+}
+
+//
+message EpPublicityVideo {
+ //
+ enum Type {
+ DATA_NOT_SET = 0;
+ EP_PRE_VIDEO = 2;
+ EP_INLINE = 3;
+ }
+ //
+ Type type = 1;
+ //
+ oneof data {
+ //
+ EpPreVideo ep_pre_video = 2;
+ //
+ EpInlineVideo ep_inline_video = 3;
+ }
+}
+
+//
+enum EpPublicityVideoType {
+ //
+ PRE = 0;
+ //
+ INLINE = 1;
+}
+
+// 事件
+message Event {
+ // 震动
+ Shake shake = 1;
+}
+
+// 放映室提示语
+message FreyaConfig {
+ //
+ string desc = 1;
+ //
+ int32 type = 2;
+ //
+ int32 issued_cnt = 3;
+ //
+ bool is_always_show = 4;
+ //
+ int32 screen_number = 5;
+ //
+ int32 full_screen_number = 6;
+}
+
+// 渐变色信息
+message GradientColor {
+ //
+ string start_color = 1;
+ //
+ string end_color = 2;
+}
+
+// 高画质试看信息
+message HighDefinitionTrialInfo {
+ //
+ bool trial_able = 1;
+ //
+ int32 remaining_times = 2;
+ //
+ int32 start = 3;
+ //
+ int32 time_length = 4;
+ //
+ Toast start_toast = 5;
+ //
+ Toast end_toast = 6;
+ //
+ Report report = 7;
+ //
+ ButtonInfo quality_open_tip_btn = 8;
+ //
+ ButtonInfo no_longer_trial_btn = 9;
+}
+
+// 历史记录节点
+message HistoryNode {
+ // 节点ID
+ int64 node_id = 1;
+ // 节点标题
+ string title = 2;
+ // 对应CID
+ int64 cid = 3;
+}
+
+// 图片信息
+message ImageInfo {
+ // 图片链接
+ string url = 1;
+}
+
+//
+enum InlineScene {
+ UNKNOWN = 0; //
+ RELATED_EP = 1; //
+ HE = 2; //
+ SKIP = 3; //
+}
+
+//
+enum InlineType {
+ TYPE_UNKNOWN = 0; //
+ TYPE_WHOLE = 1; //
+ TYPE_HE_CLIP = 2; //
+ TYPE_PREVIEW = 3; //
+}
+
+// 交互信息
+message Interaction {
+ // 历史节点
+ HistoryNode history_node = 1;
+ // 版本
+ int64 graph_version = 2;
+ // 交互消息
+ string msg = 3;
+ // 是否为交互
+ bool is_interaction = 4;
+}
+
+// 限制操作类型
+enum LimitActionType {
+ //
+ LAT_UNKNOWN = 0;
+ //
+ SHOW_LIMIT_DIALOG = 1;
+ //
+ SKIP_CURRENT_EP = 2;
+}
+
+//
+message MultiView {
+ //
+ string button_material = 1;
+ //
+ int64 ep_id = 2;
+ //
+ int64 cid = 3;
+ //
+ int64 avid = 4;
+}
+
+// 大会员广告: 支付提示信息
+message PayTip {
+ // 标题
+ string title = 1;
+ // 跳转链接
+ string url = 2;
+ // 图标
+ string icon = 3;
+ // 浮层类型
+ int32 type = 4;
+ // 显示类型
+ int32 show_type = 5;
+ // 图片信息
+ string img = 6;
+ // 白天背景颜色
+ string bg_day_color = 7;
+ // 夜间背景颜色
+ string bg_night_color = 8;
+ // 白天线条颜色
+ string bg_line_color = 9;
+ // 夜间线条颜色
+ string bg_night_line_color = 10;
+ // 文字颜色
+ string text_color = 11;
+ // 夜间文字颜色
+ string text_night_color = 12;
+ // 视图展示起始时间
+ int64 view_start_time = 13;
+ // 按钮列表
+ repeated ButtonInfo button = 14;
+ // 跳转链接打开方式
+ int32 url_open_type = 15;
+ // 埋点上报信息
+ Report report = 16;
+ // 角度样式
+ int32 angle_style = 17;
+ // 埋点上报类型
+ int32 report_type = 18;
+ // 订单埋点上报参数
+ map order_report_params = 19;
+ // 巨屏图片信息
+ string giant_screen_img = 20;
+}
+
+// 禁用功能配置
+message PlayAbilityConf {
+ bool background_play_disable = 1; // 后台播放
+ bool flip_disable = 2; // 镜像反转
+ bool cast_disable = 3; // 投屏
+ bool feedback_disable = 4; // 反馈
+ bool subtitle_disable = 5; // 字幕
+ bool playback_rate_disable = 6; // 播放速度
+ bool time_up_disable = 7; // 定时停止
+ bool playback_mode_disable = 8; // 播放方式
+ bool scale_mode_disable = 9; // 画面尺寸
+ bool like_disable = 10; // 赞
+ bool dislike_disable = 11; // 踩
+ bool coin_disable = 12; // 投币
+ bool elec_disable = 13; // 充电
+ bool share_disable = 14; // 分享
+ bool screen_shot_disable = 15; // 截图
+ bool lock_screen_disable = 16; // 锁定
+ bool recommend_disable = 17; // 相关推荐
+ bool playback_speed_disable = 18; // 播放速度
+ bool definition_disable = 19; // 清晰度
+ bool selections_disable = 20; // 选集
+ bool next_disable = 21; // 下一集
+ bool edit_dm_disable = 22; // 编辑弹幕
+ bool small_window_disable = 23; // 小窗
+ bool shake_disable = 24; // 震动
+ bool outer_dm_disable = 25; // 外层面板弹幕设置
+ bool inner_dm_disable = 26; // 三点内弹幕设置
+ bool freya_enter_disable = 27; // 一起看入口
+ bool dolby_disable = 28; // 杜比音效
+ bool freya_full_disable = 29; // 全屏一起看入口
+ bool skip_oped_switch_disable = 30; // 跳过片头片尾
+ bool record_screen_disable = 31; // 录屏
+ bool color_optimize_disable = 32; // 色觉优化
+ bool dubbing_disable = 33; // 配音
+}
+
+// 云控扩展配置信息
+message PlayAbilityExtConf {
+ //
+ bool allow_close_subtitle = 1;
+ //
+ FreyaConfig freya_config = 2;
+ //
+ CastTips cast_tips = 3;
+}
+
+// 播放配音信息
+message PlayDubbingInfo {
+ // 背景音频
+ AudioMaterialProto background_audio = 1;
+ // 角色音频列表
+ repeated RoleAudioProto role_audio_list = 2;
+ // 引导文本
+ string guide_text = 3;
+}
+
+// 错误码
+enum PlayErr {
+ NoErr = 0; //
+ WithMultiDeviceLoginErr = 1; // 管控类型的错误码
+}
+
+
+// 播放扩展信息
+message PlayExtInfo {
+ // 播放配音信息
+ PlayDubbingInfo play_dubbing_info = 1;
+}
+
+//
+message PlayList {
+ //
+ int32 season_id = 1;
+ //
+ string title = 2;
+ //
+ string cover = 3;
+ //
+ string link = 4;
+ //
+ BadgeInfo badge_info = 5;
+}
+
+// 其他业务信息
+message PlayViewBusinessInfo {
+ // 当前视频是否是预览
+ bool is_preview = 1;
+ // 用户是否承包过
+ bool bp = 2;
+ // drm使用
+ string marlin_token = 3;
+ // 倍速动效色值
+ string playback_speed_color = 4;
+ //
+ ContinuePlayInfo continue_play_info = 5;
+ // 跳过片头/片尾配置
+ repeated ClipInfo clip_info = 6;
+ //
+ InlineType inline_type = 7;
+ //
+ int32 ep_whole_duration = 8;
+ // 当前分辨率信息
+ Dimension dimension = 9;
+ //
+ map quality_ext_map = 10;
+ //
+ map exp_map = 11;
+ // DRM技术类型
+ DrmTechType drm_tech_type = 12;
+ //
+ int32 limit_action_type = 13;
+ //
+ bool is_drm = 14;
+ //
+ RecordInfo record_info = 15;
+ //
+ int32 vip_status = 16;
+ //
+ bool is_live_pre = 17;
+ //
+ EpisodeInfo episode_info = 18;
+ //
+ EpisodeAdvertisementInfo episode_advertisement_info = 19;
+ //
+ UserStatus user_status = 20;
+}
+
+// 播放页信息-响应
+message PlayViewReply {
+ // 视频流信息
+ VideoInfo video_info = 1;
+ // 播放控件用户自定义配置
+ PlayAbilityConf play_conf = 2;
+ // 业务需要的其他信息
+ PlayViewBusinessInfo business = 3;
+ // 事件
+ Event event = 4;
+ // 展示信息
+ ViewInfo view_info = 5;
+ // 自定义配置扩展信息
+ PlayAbilityExtConf play_ext_conf = 6;
+ // 播放扩展信息
+ PlayExtInfo play_ext_info = 7;
+}
+
+// 播放页信息-请求
+message PlayViewReq {
+ // 剧集epid
+ int64 epid = 1;
+ // 视频cid
+ int64 cid = 2;
+ // 清晰度
+ int64 qn = 3;
+ // 视频流版本
+ int32 fnver = 4;
+ // 视频流格式
+ int32 fnval = 5;
+ // 下载模式
+ // 0:播放 1:flv下载 2:dash下载
+ uint32 download = 6;
+ // 流url强制是用域名
+ // 0:允许使用ip 1:使用http 2:使用https
+ int32 force_host = 7;
+ // 是否4K
+ bool fourk = 8;
+ // 当前页spm
+ string spmid = 9;
+ // 上一页spm
+ string from_spmid = 10;
+ // 青少年模式
+ int32 teenagers_mode = 11;
+ // 视频编码
+ CodeType prefer_codec_type = 12;
+ // 是否强制请求预览视频
+ bool is_preview = 13;
+ // 一起看房间id
+ int64 room_id = 14;
+ // 是否需要展示信息
+ bool is_need_view_info = 15;
+ // 场景控制
+ SceneControl scene_control = 16;
+ //
+ InlineScene inline_scene = 17;
+ //
+ int64 material_no = 18;
+ // DRM 安全等级
+ int32 security_level = 19;
+ //
+ int64 season_id = 20;
+ //
+ DataControl data_control = 21;
+}
+
+// 弹窗信息
+message PopWin {
+ // 弹窗标题 老字段
+ string title = 1;
+ // 优惠券列表
+ repeated Coupon coupon = 2;
+ // 弹窗按钮列表
+ repeated ButtonInfo button = 3;
+ // 底部文案 老字段
+ string bottom_text = 4;
+ // 弹窗标题 新字段
+ TextInfo pop_title = 5;
+ // 弹窗副标题
+ TextInfo subtitle = 6;
+ // 底部描述 新字段
+ ButtonInfo bottom_desc = 7;
+ // 弹窗小图
+ string cover = 8;
+ // 弹窗类型
+ string pop_type = 9;
+}
+
+// 广告组件: 竖屏时视频下部提示栏
+message PromptBar {
+ // 主标题, 如: "本片含大会员专享内容"
+ TextInfo title = 1;
+ // 副标题, 如: "成为大会员可免费看全部剧集"
+ TextInfo sub_title = 2;
+ // 副标题前面的icon
+ string sub_title_icon = 3;
+ // 背景图
+ string bg_image = 4;
+ // 背景渐变色
+ GradientColor bg_gradient_color = 5;
+ // 按钮
+ repeated ButtonInfo button = 6;
+ // 埋点上报信息
+ Report report = 7;
+ //
+ string full_screen_ip_icon = 8;
+ //
+ GradientColor full_screen_bg_gradient_color = 9;
+}
+
+// 云控拓展视频画质信息
+message QualityExtInfo {
+ // 是否支持试看
+ bool trial_support = 1;
+}
+
+// 备案信息
+message RecordInfo {
+ // 记录
+ string record = 1;
+ // 记录图标
+ string record_icon = 2;
+}
+
+// 埋点上报信息
+message Report {
+ // 曝光事件
+ string show_event_id = 1;
+ // 点击事件
+ string click_event_id = 2;
+ // 埋点透传参数
+ string extends = 3;
+}
+
+// 分段流条目
+message ResponseUrl {
+ // 分段序号
+ uint32 order = 1;
+ // 分段时长
+ uint64 length = 2;
+ // 分段大小
+ uint64 size = 3;
+ // 主线流
+ string url = 4;
+ // 备用流
+ repeated string backup_url = 5;
+ // md5
+ string md5 = 6;
+}
+
+// 权限信息
+message Rights {
+ // 是否可以观看
+ int32 can_watch = 1;
+}
+
+// 角色配音信息
+message RoleAudioProto {
+ // 角色ID
+ int64 role_id = 1;
+ // 角色名称
+ string role_name = 2;
+ // 角色头像
+ string role_avatar = 3;
+ // 音频素材列表
+ repeated AudioMaterialProto audio_material_list = 4;
+}
+
+// 场景控制
+message SceneControl {
+ // 是否收藏播单
+ bool fav_playlist = 1;
+ // 是否小窗
+ bool small_window = 2;
+ // 是否画中画
+ bool pip = 3;
+ //
+ bool was_he_inline = 4;
+ //
+ bool is_need_trial = 5;
+}
+
+// 方案
+message Scheme {
+ enum ActionType {
+ UNKNOWN = 0;
+ SHOW_TOAST = 1;
+ }
+ //
+ ActionType action_type = 1;
+ //
+ string toast = 2;
+}
+
+// PGC SEASON 信息
+message SeasonInfo {
+ // PGC SEASON ID
+ int32 season_id = 1;
+ // PGC SEASON 类型
+ int32 season_type = 2;
+ // PGC SEASON 状态
+ int32 season_status = 3;
+ // 封面
+ string cover = 4;
+ // 标题
+ string title = 5;
+ // 权限信息
+ Rights rights = 6;
+ // 模式
+ int32 mode = 7;
+}
+
+// DRM 安全等级
+enum SecurityLevel {
+ LEVEL_UNKNOWN = 0; //
+ LEVEL_L1 = 1; //
+ LEVEL_L2 = 2; //
+ LEVEL_L3 = 3; //
+}
+
+// 分段视频流
+message SegmentVideo {
+ //分段视频流列表
+ repeated ResponseUrl segment = 1;
+}
+
+// 震动
+message Shake {
+ // 文件地址
+ string file = 1;
+}
+
+// 视频流信息
+message Stream {
+ // 元数据
+ StreamInfo info = 1;
+ // 流数据
+ oneof content {
+ // dash流
+ DashVideo dash_video = 2;
+ // 分段流
+ SegmentVideo segment_video = 3;
+ }
+}
+
+// 流媒体元数据
+message StreamInfo {
+ // 视频质量
+ int32 quality = 1;
+ // 视频格式
+ string format = 2;
+ // 描述信息
+ string description = 3;
+ // 错误码
+ int32 err_code = 4;
+ // 流限制信息
+ StreamLimit limit = 5;
+ // 是否需要VIP
+ bool need_vip = 6;
+ // 是否需要登录
+ bool need_login = 7;
+ // 是否完整
+ bool intact = 8;
+ // 权限信息
+ int64 attribute = 10;
+ // 新版描述信息
+ string new_description = 11;
+ // 显示描述信息
+ string display_desc = 12;
+ // 上标
+ string superscript = 13;
+ // 方案信息
+ Scheme scheme = 14;
+ // 是否支持DRM
+ bool support_drm = 15;
+ // 字幕信息
+ string subtitle = 16;
+}
+
+// 清晰度不满足条件信息
+message StreamLimit {
+ // 标题
+ string title = 1;
+ // 跳转地址
+ string uri = 2;
+ // 提示信息
+ string msg = 3;
+}
+
+// 任务参数信息
+message TaskParam {
+ // 任务类型
+ string task_type = 1;
+ // 活动ID
+ int64 activity_id = 2;
+ // 提示ID
+ int64 tips_id = 3;
+}
+
+// 文案信息
+message TextInfo {
+ // 文案
+ string text = 1;
+ // 字体色值
+ string text_color = 2;
+ // 字体色值-夜间模式
+ string text_color_night = 3;
+}
+
+// toast
+message Toast {
+ // toast文案 老字段
+ string text = 1;
+ // toast按钮
+ ButtonInfo button = 2;
+ // 显示样式类型
+ int32 show_style_type = 3;
+ // 图标
+ string icon = 4;
+ // toast文案 新字段
+ TextInfo toast_text = 5;
+ // 埋点上报信息
+ Report report = 6;
+ //
+ map order_report_params = 7;
+}
+
+// 用户状态信息
+message UserStatus {
+ // 是否支付
+ bool pay_check = 1;
+ // 是否承包
+ bool sponsor = 2;
+ // 观看进度
+ WatchProgress watch_progress = 3;
+ // 系列观看进度
+ WatchProgress aid_watch_progress = 4;
+}
+
+// 视频url信息
+message VideoInfo {
+ // 视频清晰度
+ uint32 quality = 1;
+ // 视频格式
+ string format = 2;
+ // 视频时长
+ uint64 timelength = 3;
+ // 视频编码id
+ uint32 video_codecid = 4;
+ // 视频流
+ repeated Stream stream_list = 5;
+ // 伴音流
+ repeated DashItem dash_audio = 6;
+ // 杜比伴音流
+ DolbyItem dolby = 7;
+}
+
+// 展示信息
+message ViewInfo {
+ // 弹窗
+ Dialog dialog = 1;
+ // Toast
+ Toast toast = 2;
+ // 优惠券信息
+ CouponInfo coupon_info = 3;
+ // 未支付剧集ID列表
+ repeated int64 demand_no_pay_epids = 4;
+ // 结束页
+ EndPage end_page = 5;
+ // 扩展配置
+ map exp_config = 6;
+ // 弹窗
+ PopWin pop_win = 7;
+ // 试看提示栏
+ PromptBar try_watch_prompt_bar = 8;
+ // 支付提示信息
+ PayTip pay_tip = 9;
+ // 高清试看提示信息
+ HighDefinitionTrialInfo high_definition_trial_info = 10;
+ // 弹窗扩展
+ map ext_dialog = 11;
+ // 动画
+ Animation animation = 12;
+ // Toast扩展
+ map ext_toast = 13;
+}
+
+// 观看进度信息
+message WatchProgress {
+ // 上次观看的 EP ID
+ int32 last_ep_id = 1;
+ // 上次观看到的EP INDEX
+ string last_ep_index = 2;
+ // 上次观看的进度
+ int64 progress = 3;
+ // 上次观看的 CID
+ int64 last_play_cid = 4;
+ // 带时间的提示信息
+ Toast toast = 5;
+ // 不带时间的提示信息
+ Toast toast_without_time = 6;
+ // 上次观看的 AID
+ int64 last_play_aid = 7;
+}
diff --git a/grpc_api/bilibili/pgc/gateway/player/v3/playurl.proto b/grpc_api/bilibili/pgc/gateway/player/v3/playurl.proto
deleted file mode 100644
index 28374f9..0000000
--- a/grpc_api/bilibili/pgc/gateway/player/v3/playurl.proto
+++ /dev/null
@@ -1,32 +0,0 @@
-syntax = "proto3";
-
-package bilibili.pgc.gateway.player.v3;
-
-import "bilibili/playershared/playershared.proto";
-
-import "google/protobuf/any.proto";
-
-// 播放页信息-请求
-message PlayViewReq {
- // 视频信息
- bilibili.playershared.VideoVod vod = 1;
- // 当前页spm
- string spmid = 2;
- // 上一页spm
- string from_spmid = 3;
- // 青少年模式
- int32 teenagers_mode = 4;
- //
- map extra_content = 5;
-
-}
-
-// 播放页信息-响应
-message PlayViewReply {
- bilibili.playershared.VodInfo vod_info = 1;
- bilibili.playershared.PlayArcConf play_arc_conf = 2;
- google.protobuf.Any supplement = 3;
- bilibili.playershared.PlayArc play_arc = 4;
- bilibili.playershared.QnTrialInfo qn_trial_info = 5;
- bilibili.playershared.Event event = 6;
-}
\ No newline at end of file
diff --git a/grpc_api/bilibili/playershared/playershared.proto b/grpc_api/bilibili/playershared/playershared.proto
index d272b7a..0f246f6 100644
--- a/grpc_api/bilibili/playershared/playershared.proto
+++ b/grpc_api/bilibili/playershared/playershared.proto
@@ -1,426 +1,974 @@
-syntax = "proto3";
-
-package bilibili.playershared;
-
-
-message ArcConf {
- bool is_support = 1;
- bool disable = 2;
- ExtraContent extra_connent = 3;
- repeated int32 unsupport_scene = 4;
-}
-
-// 视频编码
-enum CodeType {
- NOCODE = 0; //
- CODE264 = 1; // H264
- CODE265 = 2; // H265
- CODEAV1 = 3; // AV1
-}
-
-// 功能类型
-enum ConfType {
- NoType = 0;
- FLIPCONF = 1;
- CASTCONF = 2;
- FEEDBACK = 3;
- SUBTITLE = 4;
- PLAYBACKRATE = 5;
- TIMEUP = 6;
- PLAYBACKMODE = 7;
- SCALEMODE = 8;
- BACKGROUNDPLAY = 9;
- LIKE = 10;
- DISLIKE = 11;
- COIN = 12;
- ELEC = 13;
- SHARE = 14;
- SCREENSHOT = 15;
- LOCKSCREEN = 16;
- RECOMMEND = 17;
- PLAYBACKSPEED = 18;
- DEFINITION = 19;
- SELECTIONS = 20;
- NEXT = 21;
- EDITDM = 22;
- SMALLWINDOW = 23;
- SHAKE = 24;
- OUTERDM = 25;
- INNERDM = 26;
- PANORAMA = 27;
- DOLBY = 28;
- COLORFILTER = 29;
- LOSSLESS = 30;
- FREYAENTER = 31;
- FREYAFULLENTER = 32;
- SKIPOPED = 33;
- RECORDSCREEN = 34;
- DUBBING = 35;
- LISTEN = 36;
-}
-
-message ConfValue {
- oneof value {
- // dash流
- int32 switch_val = 1;
- // 分段流
- int32 selected_val = 2;
- }
-}
-
-message DeviceConf {
- ConfValue conf_value = 1;
-}
-
-// DRM类型
-enum DrmTechType {
- //
- UNKNOWN_DRM = 0;
- //
- FAIR_PLAY = 1;
- //
- WIDE_VINE = 2;
- // 哔哩哔哩自研DRM
- BILI_DRM = 3;
-}
-
-// ? 错误码补充信息
-message ExtraContent {
- //
- string disable_reason = 1;
- //
- uint64 disable_code = 2;
-}
-
-// 播放历史
-message History {
- // 播放进度
- uint64 progress = 1;
- //
- string toast = 2;
- //
- uint64 last_play_cid = 3;
-}
-
-message PlayDeviceConf {
- map arc_confs = 1;
-}
-
-// 错误码
-enum PlayErr {
- NoErr = 0; //
- WithMultiDeviceLoginErr = 1; // 管控类型的错误码
-}
-
-// 方案
-message Scheme {
- enum ActionType {
- UNKNOWN = 0;
- SHOW_TOAST = 1;
- }
- ActionType action_type = 1;
- string toast = 2;
-}
-
-//
-enum UnsupportScene {
- //
- UNKNOWN_SCENE = 0;
- //
- PREMIERE = 1;
-}
-
-// 视频类型
-enum VideoType {
- UNKNOWN = 0;
- // 用户生成内容
- UGC = 1;
- // 专业生产内容
- PGC = 2;
-}
-
-// 视频流信息
-message Stream {
- // 元数据
- StreamInfo stream_info = 1;
- // 流数据
- oneof content {
- // dash流
- DashVideo dash_video = 2;
- // 分段流
- SegmentVideo segment_video = 3;
- }
-}
-
-// 视频流信息: 元数据
-message StreamInfo {
- // 清晰度
- uint32 quality = 1;
- // 格式
- string format = 2;
- // 格式描述
- string description = 3;
- // 错误码
- uint32 err_code = 4;
- // 不满足条件信息
- StreamLimit limit = 5;
- // 是否需要vip
- bool need_vip = 6;
- // 是否需要登录
- bool need_login = 7;
- // 是否完整
- bool intact = 8;
- // 是否非全二压
- bool no_rexcode = 9;
- // 清晰度属性位
- int64 attribute = 10;
- // 新版格式描述
- string new_description = 11;
- // 格式文字
- string display_desc = 12;
- // 新版格式描述备注
- string superscript = 13;
- //
- bool vip_free = 14;
- //
- string subtitle = 15;
- // 方案
- Scheme scheme = 16;
- // 支持drm
- bool support_drm = 17;
-}
-
-// Dash条目
-message DashItem {
- // 清晰度
- uint32 id = 1;
- // 主线流
- string base_url = 2;
- // 备用流
- repeated string backup_url = 3;
- // 带宽
- uint32 bandwidth = 4;
- // 编码id
- uint32 codecid = 5;
- // md5
- string md5 = 6;
- // 大小
- uint64 size = 7;
- // 帧率
- string frame_rate = 8;
- // DRM密钥
- string widevine_pssh = 9;
-}
-
-// 视频流信息: dash流
-message DashVideo {
- // 主线流
- string base_url = 1;
- // 备用流
- repeated string backup_url = 2;
- // 带宽
- uint32 bandwidth = 3;
- // 编码id
- uint32 codecid = 4;
- // md5
- string md5 = 5;
- // 大小
- uint64 size = 6;
- // 伴音质量id
- uint32 audio_id = 7;
- // 是否非全二压
- bool no_rexcode = 8;
- // 帧率
- string frame_rate = 9;
- // 宽
- int32 width = 10;
- // 高
- int32 height = 11;
- // DRM密钥
- string widevine_pssh = 12;
-}
-
-// 视频流信息: 分段流
-message SegmentVideo {
- repeated ResponseUrl segment = 1;
-}
-
-// 分段流条目
-message ResponseUrl {
- // 分段序号
- uint32 order = 1;
- // 分段时长
- uint64 length = 2;
- // 分段大小
- uint64 size = 3;
- // 主线流
- string url = 4;
- // 备用流
- repeated string backup_url = 5;
- // md5
- string md5 = 6;
-}
-
-// Dash Response, 未使用
-message ResponseDash {
- repeated DashItem video = 1;
- repeated DashItem audio = 2;
-}
-
-// 视频流信息: 流媒体元数据: 清晰度不满足条件信息
-message StreamLimit {
- // 标题
- string title = 1;
- // 跳转地址
- string uri = 2;
- // 提示信息
- string msg = 3;
-}
-
-
-// 播放页信息-请求: 音视频VOD
-message VideoVod {
- // 视频aid
- int32 aid = 1;
- // 视频cid
- int32 cid = 2;
- // 清晰度
- uint64 qn = 3;
- // 视频流版本
- int32 fnver = 4;
- // 视频流格式
- int32 fnval = 5;
- // 下载模式
- // 0:播放 1:flv下载 2:dash下载
- uint32 download = 6;
- // 流url强制是用域名
- // 0:允许使用ip 1:使用http 2:使用https
- int32 force_host = 7;
- // 是否4K
- bool fourk = 8;
- // 视频编码
- CodeType prefer_codec_type = 9;
- // 响度均衡
- uint64 voice_balance = 10;
-}
-
-// 播放页信息-响应: VOD音视频信息
-message VodInfo {
- // 视频清晰度
- uint32 quality = 1;
- // 视频格式
- string format = 2;
- // 视频时长
- uint64 timelength = 3;
- // 视频编码id
- uint32 video_codecid = 4;
- // 视频流
- repeated Stream stream_list = 5;
- // 伴音流
- repeated DashItem dash_audio = 6;
- // 杜比伴音流
- DolbyItem dolby = 7;
- // 响度均衡操作信息
- VolumeInfo volume = 8;
- // HIRES伴音流信息
- LossLessItem loss_less_item = 9;
-}
-
-// 杜比伴音流信息
-message DolbyItem {
- // 杜比类型
- enum Type {
- NONE = 0; // NONE
- COMMON = 1; // 普通杜比音效
- ATMOS = 2; // 全景杜比音效
- }
- // 杜比类型
- Type type = 1;
- // 音频流
- DashItem audio = 2;
-}
-
-// HIRES伴音流信息
-message LossLessItem {
- // 是否为hires
- bool is_lossless_audio = 1;
- // 音频流信息
- DashItem audio = 2;
- // 是否需要大会员
- bool need_vip = 3;
-}
-
-// 响度均衡操作信息
-message VolumeInfo {
- // Measured integrated loudness 实际综合响度
- double measured_i = 1;
- // Measured loudness range 实际响度范围
- double measured_lra = 2;
- // Measured true peak 实际响度真峰值
- double measured_tp = 3;
- // Measured threshold 实际响度阈值
- double measured_threshold = 4;
- // Target offset gain(Gain is applied before the true-peak limiter) 目标增益Offset(增益在真实峰值限制器之前应用)
- double target_offset = 5;
- // Target integrated loudness 目标综合响度
- double target_i = 6;
- // Target true peak 目标响度真峰值
- double target_tp = 7;
-}
-
-//
-message PlayArc {
- VideoType video_type = 1;
- uint64 aid = 2;
- uint64 cid = 3;
- DrmTechType drm_tech_type = 4;
-}
-
-// 播放页信息-响应: PlayArcConf
-message PlayArcConf {
- map arc_confs = 1;
-}
-
-// 高画质试看信息: 按钮
-message QnTrialButton {
- string text = 1;
- string link = 2;
-}
-
-// 播放页信息-响应: 高画质试看信息
-message QnTrialInfo {
- // 能否试看高画质
- bool trial_able = 1;
- //
- int32 remaining_times = 2;
- //
- int32 start = 3;
- //
- int32 time_length = 4;
- //
- QnTrialToast start_toast = 5;
- //
- QnTrialToast end_toast = 6;
- //
- QnTrialButton quality_open_tip_btn = 8;
-}
-
-// 高画质试看信息: Toast信息
-message QnTrialToast {
- // toast文案 老字段
- string text = 1;
- // toast按钮
- QnTrialButton button = 2;
-}
-
-// 事件
-message Event {
- // 震动
- Shake shake = 1;
-}
-
-// 震动
-message Shake {
- //
- string file = 1;
-}
+syntax = "proto3";
+
+package bilibili.playershared;
+
+import "google/protobuf/any.proto";
+
+// ArcConf消息
+message ArcConf {
+ // 是否支持
+ bool is_support = 1;
+ // 是否禁用
+ bool disabled = 2;
+ // 额外内容
+ ExtraContent extra_content = 3;
+ // 不支持场景列表
+ repeated int32 unsupport_scene = 4;
+}
+
+//
+enum ArcType {
+ //
+ ARC_TYPE_NORMAL = 0;
+ //
+ ARC_TYPE_INTERACT = 1;
+}
+
+//
+message BackgroundInfo {
+ //
+ string drawable_color = 1;
+ //
+ string drawable_bitmap_url = 2;
+ //
+ int32 effects = 3;
+}
+
+//
+message BadgeInfo {
+ //
+ string text = 1;
+ //
+ string bg_color = 2;
+ //
+ string bg_color_night = 3;
+ //
+ string text_color = 4;
+ //
+ GradientColor bg_gradient_color = 5;
+ //
+ string img = 6;
+}
+
+//
+message Banner {
+ //
+ string jump_link = 1;
+ //
+ string image_link = 2;
+ //
+ string half_image_link = 3;
+ //
+ Report report = 4;
+}
+
+//
+message BenefitInfo {
+ //
+ string title = 1;
+ //
+ string icon = 2;
+}
+
+//
+enum BizType {
+ //
+ BIZ_TYPE_UNKNOWN = 0;
+ //
+ BIZ_TYPE_UGC = 1;
+ //
+ BIZ_TYPE_PGC = 2;
+ //
+ BIZ_TYPE_PUGV = 3;
+}
+
+//
+message BottomDisplay {
+ //
+ TextInfo title = 1;
+ //
+ string icon = 2;
+}
+
+// 按钮组件
+message Button {
+ // 按钮文本
+ string text = 1;
+ // 按钮跳转链接
+ string link = 2;
+ // 埋点上报相关
+ map report_params = 3;
+}
+
+enum ButtonAction {
+ //
+ BUTTON_UNKNOWN = 0;
+ //
+ PAY = 1;
+ //
+ VIP = 2;
+ //
+ PACK = 3;
+ //
+ LINK = 4;
+ //
+ COUPON = 5;
+ //
+ DEMAND = 6;
+ //
+ DEMAND_PACK = 7;
+ //
+ FOLLOW = 8;
+ //
+ APPOINTMENT = 9;
+ //
+ VIP_FREE = 10;
+ //
+ TASK = 11;
+ //
+ CHARGINGPLUS = 12;
+ //
+ BP = 13;
+ //
+ PRE_SELL = 14;
+ //
+ LOGIN = 15;
+}
+
+//
+message ButtonInfo {
+ //
+ string text = 1;
+ //
+ string text_color = 2;
+ //
+ string text_color_night = 3;
+ //
+ string bg_color = 4;
+ //
+ string bg_color_night = 5;
+ //
+ string link = 6;
+ //
+ ButtonAction action_type = 7;
+ //
+ BadgeInfo badge_info = 8;
+ //
+ Report report = 9;
+ //
+ string left_strikethrough_text = 10;
+ //
+ TextInfo simple_text_info = 11;
+ //
+ string simple_bg_color = 12;
+ //
+ string simple_bg_color_night = 13;
+ //
+ GradientColor bg_gradient_color = 14;
+ //
+ map order_report_params = 15;
+ //
+ TaskParam task_param = 16;
+ //
+ string frame_color = 17;
+ //
+ string icon = 18;
+}
+
+// 视频编码
+enum CodeType {
+ NOCODE = 0; // 不指定
+ CODE264 = 1; // H264
+ CODE265 = 2; // H265
+ CODEAV1 = 3; // AV1
+}
+
+//
+message ComprehensiveToast {
+ //
+ int32 type = 1;
+ //
+ ButtonInfo button = 2;
+ //
+ int32 show_style_type = 3;
+ //
+ string icon = 4;
+ //
+ TextInfo toast_text = 5;
+ //
+ Report report = 6;
+ //
+ map order_report_params = 7;
+}
+
+// 功能类型
+enum ConfType {
+ NoType = 0;
+ FLIPCONF = 1;
+ CASTCONF = 2;
+ FEEDBACK = 3;
+ SUBTITLE = 4;
+ PLAYBACKRATE = 5;
+ TIMEUP = 6;
+ PLAYBACKMODE = 7;
+ SCALEMODE = 8;
+ BACKGROUNDPLAY = 9;
+ LIKE = 10;
+ DISLIKE = 11;
+ COIN = 12;
+ ELEC = 13;
+ SHARE = 14;
+ SCREENSHOT = 15;
+ LOCKSCREEN = 16;
+ RECOMMEND = 17;
+ PLAYBACKSPEED = 18;
+ DEFINITION = 19;
+ SELECTIONS = 20;
+ NEXT = 21;
+ EDITDM = 22;
+ SMALLWINDOW = 23;
+ SHAKE = 24;
+ OUTERDM = 25;
+ INNERDM = 26;
+ PANORAMA = 27;
+ DOLBY = 28;
+ COLORFILTER = 29;
+ LOSSLESS = 30;
+ FREYAENTER = 31;
+ FREYAFULLENTER = 32;
+ SKIPOPED = 33;
+ RECORDSCREEN = 34;
+ DUBBING = 35;
+ LISTEN = 36;
+}
+
+//
+message ConfValue {
+ oneof value {
+ //
+ int32 switch_val = 1;
+ //
+ int32 selected_val = 2;
+ }
+}
+
+// Dash条目
+message DashItem {
+ // 清晰度
+ uint32 id = 1;
+ // 主线流
+ string base_url = 2;
+ // 备用流
+ repeated string backup_url = 3;
+ // 带宽
+ uint32 bandwidth = 4;
+ // 编码id
+ uint32 codecid = 5;
+ // md5
+ string md5 = 6;
+ // 大小
+ uint64 size = 7;
+ // 帧率
+ string frame_rate = 8;
+ // DRM密钥
+ string widevine_pssh = 9;
+}
+
+// 视频流信息: dash流
+message DashVideo {
+ // 主线流
+ string base_url = 1;
+ // 备用流
+ repeated string backup_url = 2;
+ // 带宽
+ uint32 bandwidth = 3;
+ // 编码id
+ uint32 codecid = 4;
+ // md5
+ string md5 = 5;
+ // 大小
+ uint64 size = 6;
+ // 伴音质量id
+ uint32 audio_id = 7;
+ // 是否非全二压
+ bool no_rexcode = 8;
+ // 帧率
+ string frame_rate = 9;
+ // 宽
+ int32 width = 10;
+ // 高
+ int32 height = 11;
+ // DRM密钥
+ string widevine_pssh = 12;
+}
+
+//
+message DeviceConf {
+ ConfValue conf_value = 1;
+}
+
+//
+message Dialog {
+ //
+ GuideStyle style_type = 1;
+ //
+ BackgroundInfo background_info = 2;
+ //
+ TextInfo title = 3;
+ //
+ TextInfo subtitle = 4;
+ //
+ ImageInfo image = 5;
+ //
+ repeated ButtonInfo button = 6;
+ //
+ ButtonInfo bottom_desc = 7;
+ //
+ Report report = 8;
+ //
+ int32 count_down_sec = 9;
+ //
+ TextInfo right_bottom_desc = 10;
+ //
+ repeated BottomDisplay bottom_display = 11;
+ //
+ ExtData ext_data = 12;
+ //
+ LimitActionType limit_action_type = 13;
+ //
+ int32 is_hide_more_btn = 14;
+}
+
+
+// 当前分辨率信息
+message Dimension {
+ // 宽
+ int32 width = 1;
+ // 长
+ int32 height = 2;
+ // 旋转角度
+ int32 rotate = 3;
+}
+
+// 杜比伴音流信息
+message DolbyItem {
+ // 杜比类型
+ enum Type {
+ NONE = 0; // NONE
+ COMMON = 1; // 普通杜比音效
+ ATMOS = 2; // 全景杜比音效
+ }
+ // 杜比类型
+ Type type = 1;
+ // 音频流
+ repeated DashItem audio = 2;
+}
+
+// DRM类型
+enum DrmTechType {
+ //
+ UNKNOWN_DRM = 0;
+ //
+ FAIR_PLAY = 1;
+ //
+ WIDE_VINE = 2;
+ // 哔哩哔哩自研DRM
+ BILI_DRM = 3;
+}
+
+//
+enum Effects {
+ //
+ EFFECTS_UNKNOWN = 0;
+ //
+ GAUSSIAN_BLUR = 1;
+ //
+ HALF_ALPHA = 2;
+}
+
+//
+message EpInlineVideo {
+ //
+ int64 material_no = 1;
+ //
+ int64 aid = 2;
+ //
+ int64 cid = 3;
+}
+
+//
+message EpInlineVideoInfo {
+ //
+ repeated EpInlineVideo ep_inline_video = 1;
+}
+
+// 事件
+message Event {
+ // 震动
+ Shake shake = 1;
+}
+
+//
+message ExtData {
+ //
+ ExtDataType type = 1;
+ //
+ oneof data {
+ PlayListInfo play_list_info = 2;
+ }
+}
+
+enum ExtDataType {
+ //
+ EXT_DATA_TYPE_UNKNOWN = 0;
+ //
+ PLAY_LIST = 1;
+}
+
+// ? 错误码补充信息
+message ExtraContent {
+ //
+ string disable_reason = 1;
+ //
+ int64 disable_code = 2;
+}
+
+//
+message Fragment {
+ //
+ repeated FragmentInfo infos = 1;
+}
+
+//
+message FragmentInfo {
+ //
+ int32 index = 1;
+ //
+ FragmentPosition fragment_position = 2;
+ //
+ FragmentType fragment_type = 3;
+ //
+ int64 aid = 4;
+ //
+ int64 cid = 5;
+ //
+ int64 start_time = 6;
+ //
+ google.protobuf.Any report = 7;
+}
+
+//
+enum FragmentPosition {
+ INVALID = 0;
+ PRE = 1;
+ MIDDLE = 2;
+ POST = 3;
+}
+
+//
+enum FragmentType {
+ UNKNOWN = 0;
+ AD_FRAGMENT = 1;
+ OGV_FRAGMENT = 2;
+}
+
+//
+message FragmentVideo {
+ //
+ repeated FragmentVideoInfo videos = 1;
+}
+
+//
+message FragmentVideoInfo {
+ //
+ FragmentInfo fragment_info = 1;
+ //
+ VodInfo vod_info = 2;
+ //
+ PlayArcConf play_arc_conf = 3;
+ //
+ Dimension dimension = 4;
+ //
+ int64 timelength = 5;
+ //
+ BizType video_type = 6;
+ //
+ bool playable_status = 7;
+}
+
+//
+message GradientColor {
+ //
+ string start_color = 1;
+ //
+ string end_color = 2;
+}
+
+//
+enum GuideStyle {
+ //
+ STYLE_UNKNOWN = 0;
+ //
+ HORIZONTAL_IMAGE = 1;
+ //
+ VERTICAL_TEXT = 2;
+ //
+ SIMPLE_TEXT = 3;
+ //
+ CHARGING_TEXT = 4;
+}
+
+// 播放历史
+message History {
+ //
+ HistoryInfo current_video = 1;
+ //
+ HistoryInfo related_video = 2;
+}
+
+//
+message HistoryInfo {
+ //
+ int64 progress = 1;
+ //
+ int64 last_play_cid = 2;
+ //
+ Toast toast = 3;
+ //
+ Toast toast_without_time = 4;
+ //
+ int64 last_play_aid = 5;
+}
+
+//
+message ImageInfo {
+ //
+ string url = 1;
+}
+
+
+//
+message Interaction {
+ //
+ Node history_node = 1;
+ //
+ int64 graph_version = 2;
+ //
+ string msg = 3;
+ //
+ int64 mark = 4;
+}
+
+//
+enum LimitActionType {
+ //
+ LAT_UNKNOWN = 0;
+ //
+ SHOW_LIMIT_DIALOG = 1;
+ //
+ SKIP_CURRENT_EP = 2;
+}
+
+// HIRES伴音流信息
+message LossLessItem {
+ // 是否为hires
+ bool is_lossless_audio = 1;
+ // 音频流信息
+ DashItem audio = 2;
+ // 是否需要大会员
+ bool need_vip = 3;
+}
+
+//
+message Node {
+ //
+ int64 node_id = 1;
+ //
+ string title = 2;
+ //
+ int64 cid = 3;
+}
+
+//
+message PlayArc {
+ //
+ BizType video_type = 1;
+ //
+ uint64 aid = 2;
+ //
+ uint64 cid = 3;
+ //
+ DrmTechType drm_tech_type = 4;
+ //
+ ArcType arc_type = 5;
+ //
+ Interaction interaction = 6;
+ //
+ Dimension dimension = 7;
+ //
+ int64 duration = 8;
+ //
+ bool is_preview = 9;
+ //
+ int64 watch_time_length = 10;
+ //
+ int64 duration_ms = 11;
+}
+
+// 播放页信息-响应: PlayArcConf
+message PlayArcConf {
+ map arc_confs = 1;
+}
+
+//
+message PlayDeviceConf {
+ //
+ map device_confs = 1;
+}
+
+// 错误码
+enum PlayErr {
+ NoErr = 0; //
+ WithMultiDeviceLoginErr = 1; // 管控类型的错误码
+}
+
+//
+message PlayList {
+ //
+ int64 season_id = 1;
+ //
+ string title = 2;
+ //
+ string cover = 3;
+ //
+ string link = 4;
+ //
+ BadgeInfo badge_info = 5;
+}
+
+//
+message PlayListInfo {
+ //
+ repeated PlayList play_list = 2;
+}
+
+// 视频下方广告 Banner
+message PromptBar {
+ //
+ TextInfo title = 1;
+ //
+ TextInfo subtitle = 2;
+ //
+ string sub_title_icon = 3;
+ //
+ string bg_image = 4;
+ //
+ GradientColor bg_gradient_color = 5;
+ //
+ repeated ButtonInfo button = 6;
+ //
+ Report report = 7;
+ //
+ string full_screen_ip_icon = 8;
+ //
+ GradientColor full_screen_bg_gradient_color = 9;
+ //
+ PromptBarType prompt_bar_type = 10;
+ //
+ PromptBarStyle prompt_bar_style = 11;
+ //
+ repeated BenefitInfo benefit_infos = 12;
+ //
+ int64 end_time = 13;
+}
+
+//
+enum PromptBarStyle {
+ PROMPT_BAR_STYLE_UNKNOWN = 0;
+ TEXT = 1;
+ CURING_BENEFITS = 2;
+ CARD_OPENING_GIFT = 3;
+ COUNTDOWN = 4;
+}
+
+//
+enum PromptBarType {
+ PROMPT_BAR_TYPE_UNKNOWN = 0;
+ OPEN_PROMPT_BAR = 1;
+}
+
+// 播放页信息-响应: 高画质试看信息
+message QnTrialInfo {
+ // 能否试看高画质
+ bool trial_able = 1;
+ //
+ int32 remaining_times = 2;
+ //
+ int32 start = 3;
+ //
+ int32 time_length = 4;
+ //
+ Toast start_toast = 5;
+ //
+ Toast end_toast = 6;
+ //
+ Button quality_open_tip_btn = 8;
+}
+
+//
+message Report {
+ //
+ string show_event_id = 1;
+ //
+ string click_event_id = 2;
+ //
+ string extends = 3;
+}
+
+// Dash Response, 未使用
+message ResponseDash {
+ repeated DashItem video = 1;
+ repeated DashItem audio = 2;
+}
+
+// 分段流条目
+message ResponseUrl {
+ // 分段序号
+ uint32 order = 1;
+ // 分段时长
+ uint64 length = 2;
+ // 分段大小
+ uint64 size = 3;
+ // 主线流
+ string url = 4;
+ // 备用流
+ repeated string backup_url = 5;
+ // md5
+ string md5 = 6;
+}
+
+// 方案
+message Scheme {
+ enum ActionType {
+ UNKNOWN = 0;
+ SHOW_TOAST = 1;
+ }
+ //
+ ActionType action_type = 1;
+ //
+ string toast = 2;
+}
+
+// 视频流信息: 分段流
+message SegmentVideo {
+ repeated ResponseUrl segment = 1;
+}
+
+// 震动
+message Shake {
+ //
+ string file = 1;
+}
+
+//
+enum ShowStyleType {
+ //
+ SHOW_STYLE_TYPE_UNKNOWN = 0;
+ //
+ SHOW_STYLE_TYPE_ORDINARY = 1;
+ //
+ SHOW_STYLE_TYPE_RESIDENT = 2;
+}
+
+// 视频流信息
+message Stream {
+ // 元数据
+ StreamInfo stream_info = 1;
+ // 流数据
+ oneof content {
+ // dash流
+ DashVideo dash_video = 2;
+ // 分段流
+ SegmentVideo segment_video = 3;
+ }
+}
+
+// 视频流信息: 元数据
+message StreamInfo {
+ // 清晰度
+ uint32 quality = 1;
+ // 格式
+ string format = 2;
+ // 格式描述
+ string description = 3;
+ // 错误码
+ uint32 err_code = 4;
+ // 不满足条件信息
+ StreamLimit limit = 5;
+ // 是否需要vip
+ bool need_vip = 6;
+ // 是否需要登录
+ bool need_login = 7;
+ // 是否完整
+ bool intact = 8;
+ // 是否非全二压
+ bool no_rexcode = 9;
+ // 清晰度属性位
+ int64 attribute = 10;
+ // 新版格式描述
+ string new_description = 11;
+ // 格式文字
+ string display_desc = 12;
+ // 新版格式描述备注
+ string superscript = 13;
+ //
+ bool vip_free = 14;
+ //
+ string subtitle = 15;
+ // 方案
+ Scheme scheme = 16;
+ // 支持drm
+ bool support_drm = 17;
+}
+
+// 视频流信息: 流媒体元数据: 清晰度不满足条件信息
+message StreamLimit {
+ // 标题
+ string title = 1;
+ // 跳转地址
+ string uri = 2;
+ // 提示信息
+ string msg = 3;
+}
+
+//
+message TaskParam {
+ //
+ string task_type = 1;
+ //
+ int64 activity_id = 2;
+ //
+ int64 tips_id = 3;
+}
+
+//
+message TextInfo {
+ //
+ string text = 1;
+ //
+ string text_color = 2;
+ //
+ string text_color_night = 3;
+}
+
+
+// Toast信息
+message Toast {
+ // toast文案
+ string text = 1;
+ // toast按钮
+ Button button = 2;
+}
+
+enum ToastType {
+ //
+ TOAST_TYPE_UNKNOWN = 0;
+ //
+ VIP_CONTENT_REMIND = 1;
+ //
+ VIP_DEFINITION_REMIND = 2;
+ //
+ VIP_DEFINITION_GUIDE = 3;
+ //
+ OGV_VIDEO_START_TOAST = 4;
+ //
+ CHARGING_TOAST = 5;
+ //
+ VIP_SKIP_FRAGMENT_TOAST = 6;
+}
+
+//
+enum UnsupportScene {
+ //
+ UNKNOWN_SCENE = 0;
+ //
+ PREMIERE = 1;
+}
+
+// 播放页信息-请求: 音视频VOD
+message VideoVod {
+ // 视频aid
+ int32 aid = 1;
+ // 视频cid
+ int32 cid = 2;
+ // 清晰度
+ uint64 qn = 3;
+ // 视频流版本
+ int32 fnver = 4;
+ // 视频流格式
+ int32 fnval = 5;
+ // 下载模式
+ // 0:播放 1:flv下载 2:dash下载
+ uint32 download = 6;
+ // 流url强制是用域名
+ // 0:允许使用ip 1:使用http 2:使用https
+ int32 force_host = 7;
+ // 是否4K
+ bool fourk = 8;
+ // 视频编码
+ CodeType prefer_codec_type = 9;
+ // 响度均衡
+ uint64 voice_balance = 10;
+}
+
+//
+message ViewInfo {
+ //
+ map dialog_map = 1;
+ //
+ PromptBar prompt_bar = 2;
+ //
+ repeated ComprehensiveToast toasts = 3;
+}
+
+// 播放页信息-响应: VOD音视频信息
+message VodInfo {
+ // 视频清晰度
+ uint32 quality = 1;
+ // 视频格式
+ string format = 2;
+ // 视频时长
+ uint64 timelength = 3;
+ // 视频编码id
+ uint32 video_codecid = 4;
+ // 视频流
+ repeated Stream stream_list = 5;
+ // 伴音流
+ repeated DashItem dash_audio = 6;
+ // 杜比伴音流
+ DolbyItem dolby = 7;
+ // 响度均衡操作信息
+ VolumeInfo volume = 8;
+ // HIRES伴音流信息
+ LossLessItem loss_less_item = 9;
+ // 是否支持投屏
+ bool support_project = 10;
+}
+
+// 响度均衡操作信息
+message VolumeInfo {
+ // Measured integrated loudness 实际综合响度
+ double measured_i = 1;
+ // Measured loudness range 实际响度范围
+ double measured_lra = 2;
+ // Measured true peak 实际响度真峰值
+ double measured_tp = 3;
+ // Measured threshold 实际响度阈值
+ double measured_threshold = 4;
+ // Target offset gain(Gain is applied before the true-peak limiter) 目标增益Offset(增益在真实峰值限制器之前应用)
+ double target_offset = 5;
+ // Target integrated loudness 目标综合响度
+ double target_i = 6;
+ // Target true peak 目标响度真峰值
+ double target_tp = 7;
+}
diff --git a/grpc_api/bilibili/polymer/app/search/v1/search.proto b/grpc_api/bilibili/polymer/app/search/v1/search.proto
index f532f49..7741584 100644
--- a/grpc_api/bilibili/polymer/app/search/v1/search.proto
+++ b/grpc_api/bilibili/polymer/app/search/v1/search.proto
@@ -1098,18 +1098,38 @@ message SearchBannerCard {
//
message SearchByTypeRequest {
+ enum CategorySort {
+ CATEGORY_SORT_DEFAULT = 0;
+ CATEGORY_SORT_PUBLISH_TIME = 1;
+ CATEGORY_SORT_CLICK_COUNT = 2;
+ CATEGORY_SORT_COMMENT_COUNT = 3;
+ CATEGORY_SORT_LIKE_COUNT = 4;
+ }
+ enum UserType {
+ ALL = 0;
+ UP = 1;
+ NORMAL_USER = 2;
+ AUTHENTICATED_USER = 3;
+ }
+ enum UserSort {
+ USER_SORT_DEFAULT = 0;
+ USER_SORT_FANS_DESCEND = 1;
+ USER_SORT_FANS_ASCEND = 2;
+ USER_SORT_LEVEL_DESCEND = 3;
+ USER_SORT_LEVEL_ASCEND = 4;
+ }
// 搜索目标类型, 番剧为7
int32 type = 1;
// 关键词
string keyword = 2;
//
- int32 category_sort = 3;
+ CategorySort category_sort = 3;
//
int64 category_id = 4;
//
- int32 user_type = 5;
+ UserType user_type = 5;
//
- int32 user_sort = 6;
+ UserSort user_sort = 6;
//
bilibili.pagination.Pagination pagination = 7;
//
diff --git a/grpc_api/bilibili/polymer/contract/contract.proto b/grpc_api/bilibili/polymer/contract/v1/contract.proto
similarity index 97%
rename from grpc_api/bilibili/polymer/contract/contract.proto
rename to grpc_api/bilibili/polymer/contract/v1/contract.proto
index a6d4520..0b04e90 100644
--- a/grpc_api/bilibili/polymer/contract/contract.proto
+++ b/grpc_api/bilibili/polymer/contract/v1/contract.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
-package bilibili.polymer.contract;
+package bilibili.polymer.contract.v1;
import "google/protobuf/empty.proto";
diff --git a/grpc_api/bilibili/polymer/list/list.proto b/grpc_api/bilibili/polymer/list/v1/list.proto
similarity index 94%
rename from grpc_api/bilibili/polymer/list/list.proto
rename to grpc_api/bilibili/polymer/list/v1/list.proto
index 82e7a65..9d619e0 100644
--- a/grpc_api/bilibili/polymer/list/list.proto
+++ b/grpc_api/bilibili/polymer/list/v1/list.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
-package bilibili.polymer.list;
+package bilibili.polymer.list.v1;
//
service List {
diff --git a/grpc_api/bilibili/relation/interfaces/api.proto b/grpc_api/bilibili/relation/interfaces/api.proto
index 0ffdd02..6fe72cb 100644
--- a/grpc_api/bilibili/relation/interfaces/api.proto
+++ b/grpc_api/bilibili/relation/interfaces/api.proto
@@ -1 +1,37 @@
-// TODO
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.relation.interface.v1;
+
+service RelationInterface {
+ // 评论区 At 用户列表 (无需登录鉴权)
+ rpc AtSearch (AtSearchReq) returns (AtSearchReply);
+}
+
+message AtSearchReq {
+ // 可以为 1 , 但是不能为 0 或空 不知道有啥用
+ int64 mid = 1;
+ // 用户名搜索关键词
+ string keyword = 2;
+}
+
+message AtSearchReply {
+ // 搜索结果分组
+ repeated AtGroup items = 1;
+}
+
+message AtGroup {
+ // 分组类型 2: 我的关注 4:其他 ,其他自测
+ int32 group_type = 1;
+ // 分组名称
+ string group_name = 2;
+ // 用户列表
+ repeated AtItem items = 3;
+}
+
+message AtItem {
+ int64 mid = 1;
+ string name = 2;
+ string face = 3;
+ int32 fans = 4;
+ int32 official_verify_type = 5;
+}
diff --git a/grpc_api/bilibili/render/render.proto b/grpc_api/bilibili/render/render.proto
index 0ffdd02..1fa0204 100644
--- a/grpc_api/bilibili/render/render.proto
+++ b/grpc_api/bilibili/render/render.proto
@@ -1 +1,17 @@
-// TODO
\ No newline at end of file
+syntax = "proto3";
+
+package bilibili.render;
+
+import "google/protobuf/any.proto";
+
+//
+message Render {
+ //
+ int64 code = 1;
+ //
+ string message = 2;
+ //
+ string ttl = 3;
+ //
+ google.protobuf.Any data = 4;
+}
\ No newline at end of file
diff --git a/grpc_api/bilibili/web/interfaces/v1/interfaces.proto b/grpc_api/bilibili/web/interfaces/v1/interfaces.proto
index 62ca35f..190c623 100644
--- a/grpc_api/bilibili/web/interfaces/v1/interfaces.proto
+++ b/grpc_api/bilibili/web/interfaces/v1/interfaces.proto
@@ -1,1275 +1,1275 @@
-syntax = "proto3";
-
-package bilibili.web.interfaces.v1;
-
-//
-message AccInfo {
- //
- int64 mid = 1;
- //
- string name = 2;
- //
- string sex = 3;
- //
- string face = 4;
- //
- string sign = 5;
-}
-
-//
-message AccountCard {
- //
- string mid = 1;
- //
- string name = 2;
- //
- string sex = 3;
- //
- string rank = 4;
- //
- string face = 5;
- //
- int32 spacesta = 6;
- //
- string sign = 7;
- //
- CardLevelInfo level_info = 8;
- //
- PendantInfo pendant = 9;
- //
- NameplateInfo nameplate = 10;
- //
- OfficialInfo official = 11;
- //
- OfficialVerify official_verify = 12;
- //
- CardVip vip = 13;
- //
- int64 fans = 14;
- //
- int64 friend = 15;
- //
- int64 attention = 16;
-}
-
-//
-message ActivityArchiveReply {
- //
- Arc arc = 1;
- //
- string bvid = 2;
- //
- repeated Page pages = 3;
- //
- ReqUser req_user = 4;
- //
- repeated Staff staff = 5;
- //
- OperationRelate right_relate = 6;
- //
- OperationRelate bottom_relate = 7;
-}
-
-//
-message ActivityArchiveReq {
- //
- int64 aid = 1;
- //
- string bvid = 2;
- //
- string activity_key = 3;
-}
-
-//
-message ActivityEpisode {
- //
- int64 id = 1;
- //
- int64 aid = 2;
- //
- string bvid = 3;
- //
- int64 cid = 4;
- //
- string title = 5;
- //
- string cover = 6;
- //
- Author author = 7;
- //
- Rights rights = 8;
-}
-
-//
-message ActivityGame {
- //
- repeated ActivityGameIframe iframes = 1;
- //
- string disclaimer = 2;
- //
- string disclaimer_url = 3;
-}
-
-//
-message ActivityGameIframe {
- //
- string url = 1;
- //
- int64 height = 2;
-}
-
-//
-message ActivityLive {
- //
- int64 room_id = 1;
- //
- int64 now_time = 2;
- //
- int64 start_time = 3;
- //
- int64 end_time = 4;
- //
- string hover_pic = 5;
- //
- string hover_jump_url = 6;
- //
- int64 break_cycle = 7;
- //
- repeated LiveTimeline timeline = 8;
- //
- OperationRelate operation_relate = 9;
- //
- int64 reply_type = 10;
- //
- int64 reply_id = 11;
- //
- string hover_pic_close = 12;
- //
- string gift_disclaimer = 13;
-}
-
-//
-message ActivityLiveTimeInfoReply {
- //
- int64 now_time = 1;
- //
- int64 start_time = 2;
- //
- int64 end_time = 3;
- //
- repeated LiveTimeline timeline = 4;
-}
-
-//
-message ActivityLiveTimeInfoReq {
- //
- string activity_key = 1;
-}
-
-//
-message ActivitySeasonReply {
- //
- ActivitySeasonStatus status = 1;
- //
- string title = 2;
- //
- ActivityLive live = 3;
- //
- ActivitySubscribe subscribe = 4;
- //
- ActivityGame game = 5;
- //
- ActivityView view = 6;
- //
- ActivityTheme theme = 7;
-}
-
-//
-message ActivitySeasonReq {
- //
- int64 aid = 1;
- //
- string bvid = 2;
- //
- string activity_key = 3;
-}
-
-//
-message ActivitySeasonSection {
- //
- int64 id = 1;
- //
- string title = 2;
- //
- int64 type = 3;
- //
- repeated ActivityEpisode episodes = 4;
-}
-
-//
-enum ActivitySeasonStatus {
- StatusNone = 0; //
- StatusLive = 1; //
- StatusView = 2; //
-}
-
-//
-message ActivitySubscribe {
- //
- bool status = 1;
- //
- string title = 2;
- //
- string button_title = 3;
- //
- string button_selected_title = 4;
- //
- int64 season_stat_view = 5;
- //
- int64 season_stat_danmaku = 6;
- //
- OrderType order_type = 7;
- oneof param {
- //
- ReserveActivityParam reserve_activity_param = 8;
- //
- FavSeasonParam fav_season_param = 9;
- //
- JumpURLParam jump_URL_param = 10;
- }
-}
-
-//
-message ActivityTheme {
- //
- string base_color = 1;
- //
- string loading_bg_color = 2;
- //
- string operated_bg_color = 3;
- //
- string default_element_color = 4;
- //
- string hover_element_color = 5;
- //
- string selected_element_color = 6;
- //
- string base_font_color = 7;
- //
- string info_font_color = 8;
- //
- string mask_bg_color = 9;
- //
- string page_bg_color = 10;
- //
- string center_logo_img = 11;
- //
- string page_bg_img = 12;
- //
- string decorations2233_img = 13;
- //
- string main_banner_bg_img = 14;
- //
- string main_banner_title_img = 15;
- //
- string like_animation_img = 16;
- //
- string combo_like_img = 17;
- //
- string combo_coin_img = 18;
- //
- string combo_fav_img = 19;
- //
- string arrow_btn_img = 20;
- //
- string share_icon_bg_img = 21;
- //
- string live_list_location_img = 22;
- //
- string live_list_location_img_active = 23;
- //
- string player_loading_img = 24;
- //
- string share_img = 25;
- //
- map kv_color = 26;
-}
-
-//
-message ActivityView {
- //
- Arc arc = 1;
- //
- string bvid = 2;
- //
- repeated Page pages = 3;
- //
- repeated Staff staff = 4;
- //
- ReqUser req_user = 5;
- //
- OperationRelate right_relate = 6;
- //
- OperationRelate bottom_relate = 7;
- //
- repeated ActivitySeasonSection sections = 8;
-}
-
-//
-message Arc {
- //
- int64 aid = 1;
- //
- int64 videos = 2;
- //
- int32 type_id = 3;
- //
- string type_name = 4;
- //
- int32 copyright = 5;
- //
- string pic = 6;
- //
- string title = 7;
- //
- int64 pubdate = 8;
- //
- int64 ctime = 9;
- //
- string desc = 10;
- //
- int32 state = 11;
- //
- int32 access = 12;
- //
- int32 attribute = 13;
- //
- string tag = 14;
- //
- repeated string tags = 15;
- //
- int64 duration = 16;
- //
- int64 mission_id = 17;
- //
- int64 order_id = 18;
- //
- string redirect_url = 19;
- //
- int64 forward = 20;
- //
- Rights rights = 21;
- //
- Author author = 22;
- //
- Stat stat = 23;
- //
- string report_result = 24;
- //
- string dynamic = 25;
- //
- int64 first_cid = 26;
- //
- Dimension dimension = 27;
- //
- repeated StaffInfo staff_info = 28;
- //
- int64 season_id = 29;
- //
- repeated DescV2 desc_v2 = 30;
- //
- bool is_chargeable_season = 31;
- //
- bool is_blooper = 32;
-}
-
-//
-message Author {
- //
- int64 mid = 1;
- //
- string name = 2;
- //
- string face = 3;
-}
-
-//
-message Card {
- //
- AccountCard card = 1;
- //
- Space space = 2;
- //
- bool following = 3;
- //
- int64 archive_count = 4;
- //
- int32 article_count = 5;
- //
- int64 follower = 6;
-}
-
-//
-message CardLevelInfo {
- //
- int32 cur = 1;
- //
- int32 min = 2;
- //
- int32 now_exp = 3;
- //
- int32 next_exp = 4;
-}
-
-//
-message CardVip {
- //
- int32 type = 1;
- //
- string due_remark = 2;
- //
- int32 access_status = 3;
- //
- int32 vip_status = 4;
- //
- string vip_status_warn = 5;
- //
- int32 theme_type = 6;
-}
-
-message ClickActivitySeasonReq {
- //
- OrderType order_type = 1;
- oneof param {
- //
- ReserveActivityParam reserve_activity_param = 2;
- //
- FavSeasonParam fav_season_param = 3;
- //
- JumpURLParam jump_URL_param = 4;
- }
- //
- string spmid = 5;
- //
- int64 action = 6;
-}
-
-//
-message DescV2 {
- //
- string raw_text = 1;
- //
- int64 type = 2;
- //
- int64 biz_id = 3;
-}
-
-//
-message Dimension {
- //
- int64 width = 1;
- //
- int64 height = 2;
- //
- int64 rotate = 3;
-}
-
-//
-message FavSeasonParam {
- //
- int64 season_id = 1;
-}
-
-//
-message HotReply {
- //
- ReplyPage page = 1;
- //
- repeated Reply replies = 2;
-}
-
-//
-message JumpURLParam {
- //
- string jump_url = 1;
-}
-
-//
-message LiveTimeline {
- //
- string name = 1;
- //
- int64 start_time = 2;
- //
- int64 end_time = 3;
- //
- string cover = 4;
- //
- string subtitle = 5;
- //
- string h5_cover = 6;
-}
-
-//
-message NameplateInfo {
- //
- int32 nid = 1;
- //
- string name = 2;
- //
- string image = 3;
- //
- string image_small = 4;
- //
- string level = 5;
- //
- string condition = 6;
-}
-
-//
-message NoReply {}
-
-//
-message OfficialInfo {
- //
- int32 role = 1;
- //
- string title = 2;
- //
- string desc = 3;
-}
-
-//
-message OfficialVerify {
- //
- int32 type = 1;
- //
- string desc = 2;
-}
-
-//
-message OperationRelate {
- //
- string title = 1;
- //
- repeated RelateItem relate_item = 2;
- //
- repeated Relate ai_relate_item = 3;
-}
-
-//
-enum OrderType {
- TypeNone = 0; //
- TypeOrderActivity = 1; //
- TypeFavSeason = 2; //
- TypeClick = 3; //
-}
-
-//
-message Page {
- //
- int64 cid = 1;
- //
- int32 page = 2;
- //
- string from = 3;
- //
- string part = 4;
- //
- int64 duration = 5;
- //
- string vid = 6;
- //
- string desc = 7;
- //
- string weblink = 8;
- //
- Dimension dimension = 9;
-}
-
-//
-message PendantInfo {
- //
- int32 pid = 1;
- //
- string name = 2;
- //
- string image = 3;
- //
- int64 expire = 4;
-}
-
-//
-message ReasonStyle {
- //
- string text = 1;
-}
-
-//
-message Relate {
- //
- Arc arc = 1;
- //
- string bvid = 2;
- //
- int64 season_type = 3;
-}
-
-//
-message RelateItem {
- //
- string url = 1;
- //
- string cover = 2;
-}
-
-//
-message Relation {
- //
- int64 attribute = 1;
- //
- int64 special = 3;
-}
-
-//
-message Reply {
- //
- int64 rpid = 1;
- //
- int64 oid = 2;
- //
- int32 type = 3;
- //
- int64 mid = 4;
- //
- int64 root = 5;
- //
- int64 parent = 6;
- //
- int64 dialog = 7;
- //
- int32 count = 8;
- //
- int32 rcount = 9;
- //
- int32 floor = 10;
- //
- int32 state = 11;
- //
- int32 fans_grade = 12;
- //
- int32 attr = 13;
- //
- int64 ctime = 14;
- //
- string rpid_str = 15;
- //
- string root_str = 16;
- //
- string parent_str = 17;
- //
- string dialog_str = 18;
- //
- int32 like = 19;
- //
- int32 hate = 20;
- //
- int32 action = 21;
- //
- ReplyMember member = 22;
- //
- ReplyContent content = 23;
- //
- repeated Reply replies = 24;
- //
- int32 assist = 25;
- //
- ReplyFolder folder = 26;
- //
- ReplyUpAction up_action = 27;
- //
- ReplyLabel label = 28;
- //
- string raw_input = 29;
- //
- bool show_follow = 30;
-}
-
-//
-message ReplyContent {
- //
- int64 rp_id = 1;
- //
- string message = 2;
- //
- ReplyVote vote = 3;
- //
- repeated string topics = 5;
- //
- int32 ip = 6;
- //
- int32 plat = 7;
- //
- string device = 8;
- //
- string version = 9;
- //
- repeated ReplyMemberInfo members = 10;
- //
- map emote = 11;
-}
-
-//
-message ReplyEmote {
- //
- int64 id = 1;
- //
- int64 package_id = 2;
- //
- int64 state = 3;
- //
- int64 type = 4;
- //
- int64 attr = 5;
- //
- string text = 6;
- //
- string url = 7;
- //
- ReplyEmoteMeta meta = 8;
- //
- int64 ctime = 9;
- //
- int64 mtime = 10;
-}
-
-//
-message ReplyEmoteMeta {
- //
- ReplyEmoteMetaSize size = 1;
-}
-
-//
-enum ReplyEmoteMetaSize {
- EMOTE_META_SIZE_UNSPECIFIED = 0; //
- EMOTE_META_SIZE_SMALL = 1; //
- EMOTE_META_SIZE_BIG = 2; //
-}
-
-//
-message ReplyFansDetail {
- //
- int64 uid = 1;
- //
- int32 medal_id = 2;
- //
- string medal_name = 3;
- //
- int32 score = 4;
- //
- int32 level = 5;
- //
- int32 intimacy = 6;
- //
- int32 status = 7;
- //
- int32 received = 8;
-}
-
-//
-message ReplyFolder {
- //
- bool has_folded = 1;
- //
- bool is_folded = 2;
- //
- string rule = 3;
-}
-
-//
-message ReplyLabel {
- //
- int64 rpid = 1;
- //
- string content = 2;
- //
- string text_color = 3;
- //
- string text_color_night_mode = 4;
- //
- string bg_color = 5;
- //
- string bg_color_night_mode = 6;
- //
- string link = 7;
- //
- string position = 8;
-}
-
-//
-message ReplyLevelInfo {
- //
- int32 cur = 1;
- //
- int32 min = 2;
- //
- int32 now_exp = 3;
- //
- int32 next_exp = 4;
-}
-
-//
-message ReplyMember {
- //
- ReplyMemberInfo info = 1;
- //
- ReplyFansDetail fans_detail = 2;
- //
- int32 following = 3;
-}
-
-//
-message ReplyMemberInfo {
- //
- int32 role = 1;
- //
- string mid = 2;
- //
- string name = 3;
- //
- string sex = 4;
- //
- string sign = 5;
- //
- string avatar = 6;
- //
- string rank = 7;
- //
- string display_rank = 8;
- //
- ReplyLevelInfo level_info = 9;
- //
- PendantInfo pendant = 10;
- //
- NameplateInfo nameplate = 11;
- //
- OfficialVerify official_verify = 12;
- //
- ReplyVip vip = 13;
-}
-
-//
-message ReplyPage {
- //
- int64 acount = 1;
- //
- int64 count = 2;
- //
- int64 num = 3;
- //
- int64 size = 4;
-}
-
-//
-message ReplyUpAction {
- //
- bool like = 1;
- //
- bool reply = 2;
-}
-
-//
-message ReplyVip {
- //
- int32 type = 1;
- //
- int64 due_date = 2;
- //
- string due_remark = 3;
- //
- int32 access_status = 4;
- //
- int32 vip_status = 5;
- //
- string vip_status_warn = 6;
- //
- int32 theme_type = 7;
- //
- VipLabel label = 8;
-}
-
-//
-message ReplyVote {
- //
- int64 id = 1;
- //
- string title = 2;
- //
- int32 cnt = 3;
- //
- string desc = 4;
- //
- bool deleted = 5;
-}
-
-//
-message ReqUser {
- //
- bool favorite = 1;
- //
- bool like = 2;
- //
- bool dislike = 3;
- //
- int64 multiply = 4;
-}
-
-//
-message ReserveActivityParam {
- //
- int64 reserve_id = 1;
- //
- string from = 2;
- //
- string type = 3;
- //
- int64 oid = 4;
-}
-
-//
-message Rights {
- //
- int32 bp = 1;
- //
- int32 elec = 2;
- //
- int32 download = 3;
- //
- int32 movie = 4;
- //
- int32 pay = 5;
- //
- int32 hd5 = 6;
- //
- int32 no_reprint = 7;
- //
- int32 autoplay = 8;
- //
- int32 ugc_pay = 9;
- //
- int32 is_cooperation = 10;
- //
- int32 ugc_pay_preview = 11;
- //
- int32 arc_pay = 12;
- //
- int32 free_watch = 13;
-}
-
-//
-message SeasonEpisode {
- //
- int64 season_id = 1;
- //
- int64 section_id = 2;
- //
- int64 id = 3;
- //
- int64 aid = 4;
- //
- int64 cid = 5;
- //
- string title = 6;
- //
- int64 attribute = 7;
- //
- Arc arc = 8;
- //
- Page page = 9;
- //
- string bvid = 10;
- //
- ReasonStyle badge_style = 11;
-}
-
-//
-message SeasonSection {
- //
- int64 season_id = 1;
- //
- int64 id = 2;
- //
- string title = 3;
- //
- int64 type = 4;
- //
- repeated SeasonEpisode episodes = 5;
-}
-
-//
-message SeasonStat {
- //
- int64 season_id = 1;
- //
- int32 view = 2;
- //
- int32 danmaku = 3;
- //
- int32 reply = 4;
- //
- int32 fav = 5;
- //
- int32 coin = 6;
- //
- int32 share = 7;
- //
- int32 now_rank = 8;
- //
- int32 his_rank = 9;
- //
- int32 like = 10;
-}
-
-//
-message Space {
- //
- string s_img = 1;
- //
- string l_img = 2;
-}
-
-//
-message Staff {
- //
- int64 mid = 1;
- //
- string title = 2;
- //
- string name = 3;
- //
- string face = 4;
- //
- VipInfo vip = 5;
- //
- OfficialInfo official = 6;
- //
- int64 follower = 7;
- //
- int32 label_style = 8;
- //
- Relation relation = 9;
-}
-
-//
-message StaffInfo {
- //
- int64 mid = 1;
- //
- string title = 2;
-}
-
-//
-message Stat {
- //
- int64 aid = 1;
- //
- int32 view = 2;
- //
- int32 danmaku = 3;
- //
- int32 reply = 4;
- //
- int32 fav = 5;
- //
- int32 coin = 6;
- //
- int32 share = 7;
- //
- int32 now_rank = 8;
- //
- int32 his_rank = 9;
- //
- int32 like = 10;
- //
- int32 dislike = 11;
- //
- string evaluation = 12;
- //
- string argue_msg = 13;
-}
-
-//
-message Subtitle {
- //
- bool allow_submit = 1;
- //
- repeated SubtitleItem list = 2;
-}
-
-//
-message SubtitleItem {
- //
- int64 id = 1;
- //
- string lan = 2;
- //
- string lan_doc = 3;
- //
- bool is_lock = 4;
- //
- int64 author_mid = 5;
- //
- string subtitle_url = 6;
- //
- AccInfo author = 7;
-}
-
-//
-message Tag {
- //
- int64 id = 1;
- //
- string name = 2;
- //
- string cover = 3;
- //
- string head_cover = 4;
- //
- string content = 5;
- //
- string short_content = 6;
- //
- int32 type = 7;
- //
- int32 state = 8;
- //
- int64 ctime = 9;
- //
- TagCount tag_count = 10;
- //
- int32 is_atten = 11;
- //
- int64 likes = 12;
- //
- int64 hates = 13;
- //
- int32 attribute = 14;
- //
- int32 liked = 15;
- //
- int32 hated = 16;
-}
-
-//
-message TagCount {
- //
- int64 view = 1;
- //
- int64 use = 2;
- //
- int64 atten = 3;
-}
-
-//
-message UGCPayAsset {
- //
- int64 price = 1;
- //
- map platform_price = 2;
-}
-
-//
-message UGCSeason {
- //
- int64 id = 1;
- //
- string title = 2;
- //
- string cover = 3;
- //
- int64 mid = 4;
- //
- string intro = 5;
- //
- int32 sign_state = 6;
- //
- int64 attribute = 7;
- //
- repeated SeasonSection sections = 8;
- //
- SeasonStat stat = 9;
- //
- int64 ep_count = 10;
- //
- int64 season_type = 11;
- //
- bool is_pay_season = 12;
-}
-
-//
-message View {
- //
- Arc arc = 1;
- //
- bool no_cache = 2;
- //
- repeated Page pages = 3;
- //
- Subtitle subtitle = 4;
- //
- UGCPayAsset asset = 5;
- //
- ViewLabel label = 6;
- //
- repeated Staff staff = 7;
- //
- UGCSeason ugc_season = 8;
- //
- int64 stein_guide_cid = 9;
-}
-
-//
-message ViewDetailReply {
- //
- View view = 1;
- //
- Card card = 2;
- //
- repeated Tag tags = 3;
- //
- HotReply reply = 4;
- //
- repeated Arc related = 5;
-}
-
-//
-message ViewDetailReq {
- //
- int64 aid = 1;
- //
- string bvid = 2;
-}
-
-//
-message ViewLabel {
- //
- int64 type = 1;
-}
-
-//
-message VipInfo {
- //
- int32 type = 1;
- //
- int32 status = 2;
- //
- int32 vip_pay_type = 3;
- //
- int32 theme_type = 4;
-}
-
-//
-message VipLabel {
- //
- string path = 1;
-}
+syntax = "proto3";
+
+package bilibili.web.interfaces.v1;
+
+// 用户信息
+message AccInfo {
+ // 用户UID
+ int64 mid = 1;
+ // 用户昵称
+ string name = 2;
+ //
+ string sex = 3;
+ //
+ string face = 4;
+ //
+ string sign = 5;
+}
+
+//
+message AccountCard {
+ //
+ string mid = 1;
+ //
+ string name = 2;
+ //
+ string sex = 3;
+ //
+ string rank = 4;
+ //
+ string face = 5;
+ //
+ int32 spacesta = 6;
+ //
+ string sign = 7;
+ //
+ CardLevelInfo level_info = 8;
+ //
+ PendantInfo pendant = 9;
+ //
+ NameplateInfo nameplate = 10;
+ //
+ OfficialInfo official = 11;
+ //
+ OfficialVerify official_verify = 12;
+ //
+ CardVip vip = 13;
+ //
+ int64 fans = 14;
+ //
+ int64 friend = 15;
+ //
+ int64 attention = 16;
+}
+
+//
+message ActivityArchiveReply {
+ //
+ Arc arc = 1;
+ //
+ string bvid = 2;
+ //
+ repeated Page pages = 3;
+ //
+ ReqUser req_user = 4;
+ //
+ repeated Staff staff = 5;
+ //
+ OperationRelate right_relate = 6;
+ //
+ OperationRelate bottom_relate = 7;
+}
+
+//
+message ActivityArchiveReq {
+ //
+ int64 aid = 1;
+ //
+ string bvid = 2;
+ //
+ string activity_key = 3;
+}
+
+//
+message ActivityEpisode {
+ //
+ int64 id = 1;
+ //
+ int64 aid = 2;
+ //
+ string bvid = 3;
+ //
+ int64 cid = 4;
+ //
+ string title = 5;
+ //
+ string cover = 6;
+ //
+ Author author = 7;
+ //
+ Rights rights = 8;
+}
+
+//
+message ActivityGame {
+ //
+ repeated ActivityGameIframe iframes = 1;
+ //
+ string disclaimer = 2;
+ //
+ string disclaimer_url = 3;
+}
+
+//
+message ActivityGameIframe {
+ //
+ string url = 1;
+ //
+ int64 height = 2;
+}
+
+//
+message ActivityLive {
+ //
+ int64 room_id = 1;
+ //
+ int64 now_time = 2;
+ //
+ int64 start_time = 3;
+ //
+ int64 end_time = 4;
+ //
+ string hover_pic = 5;
+ //
+ string hover_jump_url = 6;
+ //
+ int64 break_cycle = 7;
+ //
+ repeated LiveTimeline timeline = 8;
+ //
+ OperationRelate operation_relate = 9;
+ //
+ int64 reply_type = 10;
+ //
+ int64 reply_id = 11;
+ //
+ string hover_pic_close = 12;
+ //
+ string gift_disclaimer = 13;
+}
+
+//
+message ActivityLiveTimeInfoReply {
+ //
+ int64 now_time = 1;
+ //
+ int64 start_time = 2;
+ //
+ int64 end_time = 3;
+ //
+ repeated LiveTimeline timeline = 4;
+}
+
+//
+message ActivityLiveTimeInfoReq {
+ //
+ string activity_key = 1;
+}
+
+//
+message ActivitySeasonReply {
+ //
+ ActivitySeasonStatus status = 1;
+ //
+ string title = 2;
+ //
+ ActivityLive live = 3;
+ //
+ ActivitySubscribe subscribe = 4;
+ //
+ ActivityGame game = 5;
+ //
+ ActivityView view = 6;
+ //
+ ActivityTheme theme = 7;
+}
+
+//
+message ActivitySeasonReq {
+ //
+ int64 aid = 1;
+ //
+ string bvid = 2;
+ //
+ string activity_key = 3;
+}
+
+//
+message ActivitySeasonSection {
+ //
+ int64 id = 1;
+ //
+ string title = 2;
+ //
+ int64 type = 3;
+ //
+ repeated ActivityEpisode episodes = 4;
+}
+
+//
+enum ActivitySeasonStatus {
+ StatusNone = 0; //
+ StatusLive = 1; //
+ StatusView = 2; //
+}
+
+//
+message ActivitySubscribe {
+ //
+ bool status = 1;
+ //
+ string title = 2;
+ //
+ string button_title = 3;
+ //
+ string button_selected_title = 4;
+ //
+ int64 season_stat_view = 5;
+ //
+ int64 season_stat_danmaku = 6;
+ //
+ OrderType order_type = 7;
+ oneof param {
+ //
+ ReserveActivityParam reserve_activity_param = 8;
+ //
+ FavSeasonParam fav_season_param = 9;
+ //
+ JumpURLParam jump_URL_param = 10;
+ }
+}
+
+//
+message ActivityTheme {
+ //
+ string base_color = 1;
+ //
+ string loading_bg_color = 2;
+ //
+ string operated_bg_color = 3;
+ //
+ string default_element_color = 4;
+ //
+ string hover_element_color = 5;
+ //
+ string selected_element_color = 6;
+ //
+ string base_font_color = 7;
+ //
+ string info_font_color = 8;
+ //
+ string mask_bg_color = 9;
+ //
+ string page_bg_color = 10;
+ //
+ string center_logo_img = 11;
+ //
+ string page_bg_img = 12;
+ //
+ string decorations2233_img = 13;
+ //
+ string main_banner_bg_img = 14;
+ //
+ string main_banner_title_img = 15;
+ //
+ string like_animation_img = 16;
+ //
+ string combo_like_img = 17;
+ //
+ string combo_coin_img = 18;
+ //
+ string combo_fav_img = 19;
+ //
+ string arrow_btn_img = 20;
+ //
+ string share_icon_bg_img = 21;
+ //
+ string live_list_location_img = 22;
+ //
+ string live_list_location_img_active = 23;
+ //
+ string player_loading_img = 24;
+ //
+ string share_img = 25;
+ //
+ map kv_color = 26;
+}
+
+//
+message ActivityView {
+ //
+ Arc arc = 1;
+ //
+ string bvid = 2;
+ //
+ repeated Page pages = 3;
+ //
+ repeated Staff staff = 4;
+ //
+ ReqUser req_user = 5;
+ //
+ OperationRelate right_relate = 6;
+ //
+ OperationRelate bottom_relate = 7;
+ //
+ repeated ActivitySeasonSection sections = 8;
+}
+
+//
+message Arc {
+ //
+ int64 aid = 1;
+ //
+ int64 videos = 2;
+ //
+ int32 type_id = 3;
+ //
+ string type_name = 4;
+ //
+ int32 copyright = 5;
+ //
+ string pic = 6;
+ //
+ string title = 7;
+ //
+ int64 pubdate = 8;
+ //
+ int64 ctime = 9;
+ //
+ string desc = 10;
+ //
+ int32 state = 11;
+ //
+ int32 access = 12;
+ //
+ int32 attribute = 13;
+ //
+ string tag = 14;
+ //
+ repeated string tags = 15;
+ //
+ int64 duration = 16;
+ //
+ int64 mission_id = 17;
+ //
+ int64 order_id = 18;
+ //
+ string redirect_url = 19;
+ //
+ int64 forward = 20;
+ //
+ Rights rights = 21;
+ //
+ Author author = 22;
+ //
+ Stat stat = 23;
+ //
+ string report_result = 24;
+ //
+ string dynamic = 25;
+ //
+ int64 first_cid = 26;
+ //
+ Dimension dimension = 27;
+ //
+ repeated StaffInfo staff_info = 28;
+ //
+ int64 season_id = 29;
+ //
+ repeated DescV2 desc_v2 = 30;
+ //
+ bool is_chargeable_season = 31;
+ //
+ bool is_blooper = 32;
+}
+
+//
+message Author {
+ //
+ int64 mid = 1;
+ //
+ string name = 2;
+ //
+ string face = 3;
+}
+
+//
+message Card {
+ //
+ AccountCard card = 1;
+ //
+ Space space = 2;
+ //
+ bool following = 3;
+ //
+ int64 archive_count = 4;
+ //
+ int32 article_count = 5;
+ //
+ int64 follower = 6;
+}
+
+//
+message CardLevelInfo {
+ //
+ int32 cur = 1;
+ //
+ int32 min = 2;
+ //
+ int32 now_exp = 3;
+ //
+ int32 next_exp = 4;
+}
+
+//
+message CardVip {
+ //
+ int32 type = 1;
+ //
+ string due_remark = 2;
+ //
+ int32 access_status = 3;
+ //
+ int32 vip_status = 4;
+ //
+ string vip_status_warn = 5;
+ //
+ int32 theme_type = 6;
+}
+
+message ClickActivitySeasonReq {
+ //
+ OrderType order_type = 1;
+ oneof param {
+ //
+ ReserveActivityParam reserve_activity_param = 2;
+ //
+ FavSeasonParam fav_season_param = 3;
+ //
+ JumpURLParam jump_URL_param = 4;
+ }
+ //
+ string spmid = 5;
+ //
+ int64 action = 6;
+}
+
+//
+message DescV2 {
+ //
+ string raw_text = 1;
+ //
+ int64 type = 2;
+ //
+ int64 biz_id = 3;
+}
+
+//
+message Dimension {
+ //
+ int64 width = 1;
+ //
+ int64 height = 2;
+ //
+ int64 rotate = 3;
+}
+
+//
+message FavSeasonParam {
+ //
+ int64 season_id = 1;
+}
+
+//
+message HotReply {
+ //
+ ReplyPage page = 1;
+ //
+ repeated Reply replies = 2;
+}
+
+//
+message JumpURLParam {
+ //
+ string jump_url = 1;
+}
+
+//
+message LiveTimeline {
+ //
+ string name = 1;
+ //
+ int64 start_time = 2;
+ //
+ int64 end_time = 3;
+ //
+ string cover = 4;
+ //
+ string subtitle = 5;
+ //
+ string h5_cover = 6;
+}
+
+//
+message NameplateInfo {
+ //
+ int32 nid = 1;
+ //
+ string name = 2;
+ //
+ string image = 3;
+ //
+ string image_small = 4;
+ //
+ string level = 5;
+ //
+ string condition = 6;
+}
+
+//
+message NoReply {}
+
+//
+message OfficialInfo {
+ //
+ int32 role = 1;
+ //
+ string title = 2;
+ //
+ string desc = 3;
+}
+
+//
+message OfficialVerify {
+ //
+ int32 type = 1;
+ //
+ string desc = 2;
+}
+
+//
+message OperationRelate {
+ //
+ string title = 1;
+ //
+ repeated RelateItem relate_item = 2;
+ //
+ repeated Relate ai_relate_item = 3;
+}
+
+//
+enum OrderType {
+ TypeNone = 0; //
+ TypeOrderActivity = 1; //
+ TypeFavSeason = 2; //
+ TypeClick = 3; //
+}
+
+//
+message Page {
+ //
+ int64 cid = 1;
+ //
+ int32 page = 2;
+ //
+ string from = 3;
+ //
+ string part = 4;
+ //
+ int64 duration = 5;
+ //
+ string vid = 6;
+ //
+ string desc = 7;
+ //
+ string weblink = 8;
+ //
+ Dimension dimension = 9;
+}
+
+//
+message PendantInfo {
+ //
+ int32 pid = 1;
+ //
+ string name = 2;
+ //
+ string image = 3;
+ //
+ int64 expire = 4;
+}
+
+//
+message ReasonStyle {
+ //
+ string text = 1;
+}
+
+//
+message Relate {
+ //
+ Arc arc = 1;
+ //
+ string bvid = 2;
+ //
+ int64 season_type = 3;
+}
+
+//
+message RelateItem {
+ //
+ string url = 1;
+ //
+ string cover = 2;
+}
+
+//
+message Relation {
+ //
+ int64 attribute = 1;
+ //
+ int64 special = 3;
+}
+
+//
+message Reply {
+ //
+ int64 rpid = 1;
+ //
+ int64 oid = 2;
+ //
+ int32 type = 3;
+ //
+ int64 mid = 4;
+ //
+ int64 root = 5;
+ //
+ int64 parent = 6;
+ //
+ int64 dialog = 7;
+ //
+ int32 count = 8;
+ //
+ int32 rcount = 9;
+ //
+ int32 floor = 10;
+ //
+ int32 state = 11;
+ //
+ int32 fans_grade = 12;
+ //
+ int32 attr = 13;
+ //
+ int64 ctime = 14;
+ //
+ string rpid_str = 15;
+ //
+ string root_str = 16;
+ //
+ string parent_str = 17;
+ //
+ string dialog_str = 18;
+ //
+ int32 like = 19;
+ //
+ int32 hate = 20;
+ //
+ int32 action = 21;
+ //
+ ReplyMember member = 22;
+ //
+ ReplyContent content = 23;
+ //
+ repeated Reply replies = 24;
+ //
+ int32 assist = 25;
+ //
+ ReplyFolder folder = 26;
+ //
+ ReplyUpAction up_action = 27;
+ //
+ ReplyLabel label = 28;
+ //
+ string raw_input = 29;
+ //
+ bool show_follow = 30;
+}
+
+//
+message ReplyContent {
+ //
+ int64 rp_id = 1;
+ //
+ string message = 2;
+ //
+ ReplyVote vote = 3;
+ //
+ repeated string topics = 5;
+ //
+ int32 ip = 6;
+ //
+ int32 plat = 7;
+ //
+ string device = 8;
+ //
+ string version = 9;
+ //
+ repeated ReplyMemberInfo members = 10;
+ //
+ map emote = 11;
+}
+
+//
+message ReplyEmote {
+ //
+ int64 id = 1;
+ //
+ int64 package_id = 2;
+ //
+ int64 state = 3;
+ //
+ int64 type = 4;
+ //
+ int64 attr = 5;
+ //
+ string text = 6;
+ //
+ string url = 7;
+ //
+ ReplyEmoteMeta meta = 8;
+ //
+ int64 ctime = 9;
+ //
+ int64 mtime = 10;
+}
+
+//
+message ReplyEmoteMeta {
+ //
+ ReplyEmoteMetaSize size = 1;
+}
+
+//
+enum ReplyEmoteMetaSize {
+ EMOTE_META_SIZE_UNSPECIFIED = 0; //
+ EMOTE_META_SIZE_SMALL = 1; //
+ EMOTE_META_SIZE_BIG = 2; //
+}
+
+//
+message ReplyFansDetail {
+ //
+ int64 uid = 1;
+ //
+ int32 medal_id = 2;
+ //
+ string medal_name = 3;
+ //
+ int32 score = 4;
+ //
+ int32 level = 5;
+ //
+ int32 intimacy = 6;
+ //
+ int32 status = 7;
+ //
+ int32 received = 8;
+}
+
+//
+message ReplyFolder {
+ //
+ bool has_folded = 1;
+ //
+ bool is_folded = 2;
+ //
+ string rule = 3;
+}
+
+//
+message ReplyLabel {
+ //
+ int64 rpid = 1;
+ //
+ string content = 2;
+ //
+ string text_color = 3;
+ //
+ string text_color_night_mode = 4;
+ //
+ string bg_color = 5;
+ //
+ string bg_color_night_mode = 6;
+ //
+ string link = 7;
+ //
+ string position = 8;
+}
+
+//
+message ReplyLevelInfo {
+ //
+ int32 cur = 1;
+ //
+ int32 min = 2;
+ //
+ int32 now_exp = 3;
+ //
+ int32 next_exp = 4;
+}
+
+//
+message ReplyMember {
+ //
+ ReplyMemberInfo info = 1;
+ //
+ ReplyFansDetail fans_detail = 2;
+ //
+ int32 following = 3;
+}
+
+//
+message ReplyMemberInfo {
+ //
+ int32 role = 1;
+ //
+ string mid = 2;
+ //
+ string name = 3;
+ //
+ string sex = 4;
+ //
+ string sign = 5;
+ //
+ string avatar = 6;
+ //
+ string rank = 7;
+ //
+ string display_rank = 8;
+ //
+ ReplyLevelInfo level_info = 9;
+ //
+ PendantInfo pendant = 10;
+ //
+ NameplateInfo nameplate = 11;
+ //
+ OfficialVerify official_verify = 12;
+ //
+ ReplyVip vip = 13;
+}
+
+//
+message ReplyPage {
+ //
+ int64 acount = 1;
+ //
+ int64 count = 2;
+ //
+ int64 num = 3;
+ //
+ int64 size = 4;
+}
+
+//
+message ReplyUpAction {
+ //
+ bool like = 1;
+ //
+ bool reply = 2;
+}
+
+//
+message ReplyVip {
+ //
+ int32 type = 1;
+ //
+ int64 due_date = 2;
+ //
+ string due_remark = 3;
+ //
+ int32 access_status = 4;
+ //
+ int32 vip_status = 5;
+ //
+ string vip_status_warn = 6;
+ //
+ int32 theme_type = 7;
+ //
+ VipLabel label = 8;
+}
+
+//
+message ReplyVote {
+ //
+ int64 id = 1;
+ //
+ string title = 2;
+ //
+ int32 cnt = 3;
+ //
+ string desc = 4;
+ //
+ bool deleted = 5;
+}
+
+//
+message ReqUser {
+ //
+ bool favorite = 1;
+ //
+ bool like = 2;
+ //
+ bool dislike = 3;
+ //
+ int64 multiply = 4;
+}
+
+//
+message ReserveActivityParam {
+ //
+ int64 reserve_id = 1;
+ //
+ string from = 2;
+ //
+ string type = 3;
+ //
+ int64 oid = 4;
+}
+
+//
+message Rights {
+ //
+ int32 bp = 1;
+ //
+ int32 elec = 2;
+ //
+ int32 download = 3;
+ //
+ int32 movie = 4;
+ //
+ int32 pay = 5;
+ //
+ int32 hd5 = 6;
+ //
+ int32 no_reprint = 7;
+ //
+ int32 autoplay = 8;
+ //
+ int32 ugc_pay = 9;
+ //
+ int32 is_cooperation = 10;
+ //
+ int32 ugc_pay_preview = 11;
+ //
+ int32 arc_pay = 12;
+ //
+ int32 free_watch = 13;
+}
+
+//
+message SeasonEpisode {
+ //
+ int64 season_id = 1;
+ //
+ int64 section_id = 2;
+ //
+ int64 id = 3;
+ //
+ int64 aid = 4;
+ //
+ int64 cid = 5;
+ //
+ string title = 6;
+ //
+ int64 attribute = 7;
+ //
+ Arc arc = 8;
+ //
+ Page page = 9;
+ //
+ string bvid = 10;
+ //
+ ReasonStyle badge_style = 11;
+}
+
+//
+message SeasonSection {
+ //
+ int64 season_id = 1;
+ //
+ int64 id = 2;
+ //
+ string title = 3;
+ //
+ int64 type = 4;
+ //
+ repeated SeasonEpisode episodes = 5;
+}
+
+//
+message SeasonStat {
+ //
+ int64 season_id = 1;
+ //
+ int32 view = 2;
+ //
+ int32 danmaku = 3;
+ //
+ int32 reply = 4;
+ //
+ int32 fav = 5;
+ //
+ int32 coin = 6;
+ //
+ int32 share = 7;
+ //
+ int32 now_rank = 8;
+ //
+ int32 his_rank = 9;
+ //
+ int32 like = 10;
+}
+
+//
+message Space {
+ //
+ string s_img = 1;
+ //
+ string l_img = 2;
+}
+
+//
+message Staff {
+ //
+ int64 mid = 1;
+ //
+ string title = 2;
+ //
+ string name = 3;
+ //
+ string face = 4;
+ //
+ VipInfo vip = 5;
+ //
+ OfficialInfo official = 6;
+ //
+ int64 follower = 7;
+ //
+ int32 label_style = 8;
+ //
+ Relation relation = 9;
+}
+
+//
+message StaffInfo {
+ //
+ int64 mid = 1;
+ //
+ string title = 2;
+}
+
+//
+message Stat {
+ //
+ int64 aid = 1;
+ //
+ int32 view = 2;
+ //
+ int32 danmaku = 3;
+ //
+ int32 reply = 4;
+ //
+ int32 fav = 5;
+ //
+ int32 coin = 6;
+ //
+ int32 share = 7;
+ //
+ int32 now_rank = 8;
+ //
+ int32 his_rank = 9;
+ //
+ int32 like = 10;
+ //
+ int32 dislike = 11;
+ //
+ string evaluation = 12;
+ //
+ string argue_msg = 13;
+}
+
+//
+message Subtitle {
+ //
+ bool allow_submit = 1;
+ //
+ repeated SubtitleItem list = 2;
+}
+
+//
+message SubtitleItem {
+ //
+ int64 id = 1;
+ //
+ string lan = 2;
+ //
+ string lan_doc = 3;
+ //
+ bool is_lock = 4;
+ //
+ int64 author_mid = 5;
+ //
+ string subtitle_url = 6;
+ //
+ AccInfo author = 7;
+}
+
+//
+message Tag {
+ //
+ int64 id = 1;
+ //
+ string name = 2;
+ //
+ string cover = 3;
+ //
+ string head_cover = 4;
+ //
+ string content = 5;
+ //
+ string short_content = 6;
+ //
+ int32 type = 7;
+ //
+ int32 state = 8;
+ //
+ int64 ctime = 9;
+ //
+ TagCount tag_count = 10;
+ //
+ int32 is_atten = 11;
+ //
+ int64 likes = 12;
+ //
+ int64 hates = 13;
+ //
+ int32 attribute = 14;
+ //
+ int32 liked = 15;
+ //
+ int32 hated = 16;
+}
+
+//
+message TagCount {
+ //
+ int64 view = 1;
+ //
+ int64 use = 2;
+ //
+ int64 atten = 3;
+}
+
+//
+message UGCPayAsset {
+ //
+ int64 price = 1;
+ //
+ map platform_price = 2;
+}
+
+//
+message UGCSeason {
+ //
+ int64 id = 1;
+ //
+ string title = 2;
+ //
+ string cover = 3;
+ //
+ int64 mid = 4;
+ //
+ string intro = 5;
+ //
+ int32 sign_state = 6;
+ //
+ int64 attribute = 7;
+ //
+ repeated SeasonSection sections = 8;
+ //
+ SeasonStat stat = 9;
+ //
+ int64 ep_count = 10;
+ //
+ int64 season_type = 11;
+ //
+ bool is_pay_season = 12;
+}
+
+//
+message View {
+ //
+ Arc arc = 1;
+ //
+ bool no_cache = 2;
+ //
+ repeated Page pages = 3;
+ //
+ Subtitle subtitle = 4;
+ //
+ UGCPayAsset asset = 5;
+ //
+ ViewLabel label = 6;
+ //
+ repeated Staff staff = 7;
+ //
+ UGCSeason ugc_season = 8;
+ //
+ int64 stein_guide_cid = 9;
+}
+
+//
+message ViewDetailReply {
+ //
+ View view = 1;
+ //
+ Card card = 2;
+ //
+ repeated Tag tags = 3;
+ //
+ HotReply reply = 4;
+ //
+ repeated Arc related = 5;
+}
+
+//
+message ViewDetailReq {
+ //
+ int64 aid = 1;
+ //
+ string bvid = 2;
+}
+
+//
+message ViewLabel {
+ //
+ int64 type = 1;
+}
+
+//
+message VipInfo {
+ //
+ int32 type = 1;
+ //
+ int32 status = 2;
+ //
+ int32 vip_pay_type = 3;
+ //
+ int32 theme_type = 4;
+}
+
+//
+message VipLabel {
+ //
+ string path = 1;
+}
diff --git a/grpc_api/datacenter/hakase/protobuf/android_device_info.proto b/grpc_api/datacenter/hakase/protobuf/android_device_info.proto
new file mode 100644
index 0000000..f9aab95
--- /dev/null
+++ b/grpc_api/datacenter/hakase/protobuf/android_device_info.proto
@@ -0,0 +1,268 @@
+syntax = "proto3";
+
+package datacenter.hakase.protobuf;
+
+message AndroidDeviceInfo {
+ // ?
+ string sdkver = 1;
+ // 产品id
+ // 粉 白 蓝 直播姬 HD 海外 OTT 漫画 TV野版 小视频 网易漫画 网易漫画 网易漫画HD 国际版 东南亚版
+ // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 30
+ string app_id = 2;
+ // 版本号, 如 "7.39.0"
+ string app_version = 3;
+ // 版本号, 如 "7390300"
+ string app_version_code = 4;
+ // 用户 mid
+ string mid = 5;
+ // 渠道号, 如 "master"
+ string chid = 6;
+ // APP 首次安装启动时间戳
+ int64 fts = 7;
+ // 此处实际为 fp, 但不知为何命名为 buvid_local
+ string buvid_local = 8;
+ // 留空为 0
+ int32 first = 9;
+ // 进程名, 如 "tv.danmaku.bili"
+ string proc = 10;
+ // 网络信息, 为一数组直接 toString() 的结果
+ // 如 """["dummy0,fe80::18d8:6ff:fe46:c2ba%dummy0,", "wlan0,fe80::a0f4:6dff:fea8:2d37%wlan0,192.168.1.5,", "lo,::1,127.0.0.1,", "rmnet_ims00,fe80::5a02:3ff:fe04:512%rmnet_ims00,2409:815a:7c38:cee1:1773:d0b9:d163:b023,"]"""
+ string net = 11;
+ // 手机无线电固件版本号(`Build.getRadioVersion()`). 如 `21C20B686S000C000,21C20B686S000C000`.
+ string band = 12;
+ // OS 版本号, 如 "12"
+ string osver = 13;
+ // 当前毫秒时间戳
+ int64 t = 14;
+ // CPU 逻辑核心计数
+ int32 cpu_count = 15;
+ // 手机 Model, 如 "NOH-AN01"
+ string model = 16;
+ // 手机品牌, 如 "HUAWEI"
+ string brand = 17;
+ // 屏幕信息, 如 "1288,2646,560", 即 "{width},{height},{pixel}"
+ string screen = 18;
+ // CPU 型号, 留空或根据实际情况确定
+ string cpu_model = 19;
+ // 蓝牙 MAC, 留空或根据实际情况确定
+ string btmac = 20;
+ // Linux 内核 bootid
+ int64 boot = 21;
+ // 模拟器(?), 如 "000"
+ string emu = 22;
+ // 移动网络 MCC MNC, 如中国移动为 46007
+ string oid = 23;
+ // 当前网络类型, 如 "WIFI", 见 bilibili.metadata.network.NetworkType
+ string network = 24;
+ // 运行内存(Byte)
+ int64 mem = 25;
+ // 传感器信息, 为一数组直接 toString() 的结果
+ // 如 """["accelerometer-icm20690,invensense", "akm-akm09918,akm", "orientation,huawei", "als-tcs3718,ams", "proximity-tcs3718,ams", "gyroscope-icm20690,invensense", "gravity,huawei", "linear Acceleration,huawei", "rotation Vector,huawei", "airpress-bmp280,bosch", "HALL sensor,huawei", "uncalibrated Magnetic Field,Asahi Kasei Microdevices", "game Rotation Vector,huawei", "uncalibrated Gyroscope,STMicroelectronics", "significant Motion,huawei", "step Detector,huawei", "step counter,huawei", "geomagnetic Rotation Vector,huawei", "phonecall sensor,huawei", "RPC sensor,huawei", "agt,huawei", "color sensor,huawei", "uncalibrated Accelerometer,huawei", "drop sensor,huawei"]"""
+ string sensor = 26;
+ // CPU 频率, 如 2045000
+ int64 cpu_freq = 27;
+ // CPU 架构, 如 "ARM"
+ string cpu_vendor = 28;
+ // ?
+ string sim = 29;
+ // 光照传感器数值
+ int32 brightness = 30;
+ // Android Build.prop 信息, key 包括 net.hostname, ro.boot.hardware, etc.
+ // 具体 key-value 需要技术手段自行确定
+ map props = 31;
+ // 系统信息, key 包括 product, cpu_model_name, display, cpu_abi_list, etc.
+ // 具体 key-value 需要技术手段自行确定
+ map sys = 32;
+ // Wifi MAC, 一般无法获取, 留空
+ string wifimac = 33;
+ // Android ID
+ string adid = 34;
+ // OS 名称, 如 "android"
+ string os = 35;
+ // IMEI, 一般无法获取, 留空
+ string imei = 36;
+ // ?, 留空
+ string cell = 37;
+ // IMSI, 一般无法获取, 留空
+ string imsi = 38;
+ // ICCID, 一般无法获取, 留空
+ string iccid = 39;
+ // 摄像头数量, 留空
+ int32 camcnt = 40;
+ // 摄像头像素, 留空
+ string campx = 41;
+ // 手机内置存储空间(Byte)
+ int64 total_space = 42;
+ // ?, 例如 "false"
+ string axposed = 43;
+ // ?, 留空
+ string maps = 44;
+ // 如: "/data/user/0/tv.danmaku.bili/files"
+ string files = 45;
+ // 是否为虚拟化(?), 如 "0"
+ string virtual = 46;
+ // 虚拟进程, 如 "[]"
+ string virtualproc = 47;
+ // ?, 留空
+ string gadid = 48;
+ // ?, 留空
+ string glimit = 49;
+ // 设备安装的 APP 列表, 如 "[]"
+ string apps = 50;
+ // 客户端 GUID
+ string guid = 51;
+ // ?, 区分于用户 UID
+ string uid = 52;
+ // ?, 留空
+ int32 root = 53;
+ // 摄像头放大倍数(?), 留空
+ string camzoom = 54;
+ // 摄像头闪光灯(?), 留空
+ string camlight = 55;
+ // OAID 匿名设备标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 默认 "00000000-0000-0000-0000-000000000000"
+ string oaid = 56;
+ // UDID 设备唯一标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 可留空
+ string udid = 57;
+ // VAID 开发者匿名设备标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 可留空
+ string vaid = 58;
+ // AAID, 应用匿名设备标识符, 参见 T/TAF 095-2021 安卓系统补充设备标识技术规范, 可留空
+ string aaid = 59;
+ // ?, 设置为 "[]"
+ string androidapp20 = 60;
+ // ?, 留空
+ int32 androidappcnt = 61;
+ // ?, 设置为 "[]"
+ string androidsysapp20 = 62;
+ // 当前剩余电量, 如 100
+ int32 battery = 63;
+ // Android 监听电量状态, 如 "BATTERY_STATUS_DISCHARGING"
+ string battery_state = 64;
+ // Wifi BSSID, 一般无法获取, 留空
+ string bssid = 65;
+ // ?, 如 "NOH-AN01 4.0.0.102(DEVC00E100R7P5)"
+ string build_id = 67;
+ // ISO 国家代码, 如 "CN"
+ string country_iso = 68;
+ // 可用运行内存(Byte)
+ int64 free_memory = 70;
+ // 可用内置存储空间(Byte)
+ string fstorage = 71;
+ // Linux kernel version
+ string kernel_version = 74;
+ // 语言, 如 "zh"
+ string languages = 75;
+ // Wifi 网卡 MAC(?), 留空
+ string mac = 76;
+ // 当前连接 Wifi 的 SSID, 留空
+ string ssid = 79;
+ // ?, 留空
+ int32 systemvolume = 80;
+ // Wifi 网卡 MAC 列表(?), 留空
+ string wifimaclist = 81;
+ // 运行内存(Byte)
+ int64 memory = 82;
+ // 当前剩余电量, 如 "100"
+ string str_battery = 83;
+ // 设备是否 Root(?), 留空
+ bool is_root = 84;
+ // 光照传感器数值字符串
+ string str_brightness = 85;
+ // 产品id, 见 2
+ string str_app_id = 86;
+ // 当前 IP(?), 留空
+ string ip = 87;
+ // 留空即可
+ string user_agent = 88;
+ // ?, 如: "1.25"
+ string light_intensity = 89;
+ // 设备 xyz 方向角度
+ repeated float device_angle = 90;
+ // GPS 传感器数量(或者是否有 GPS 传感器?), 如 "1"
+ int64 gps_sensor = 91;
+ // 速度传感器数量(或者是否有速度传感器?), 如 "1"
+ int64 speed_sensor = 92;
+ // 线性加速度传感器数量(或者是否有线性加速度传感器?), 如 "1"
+ int64 linear_speed_sensor = 93;
+ // 陀螺仪传感器数量(或者是否有陀螺仪传感器?), 如 "1"
+ int64 gyroscope_sensor = 94;
+ // 生物识别传感器数量(或者是否有生物识别传感器?), 如 "1"
+ int64 biometric = 95;
+ // 生物识别传感器类型(?), 如 "touchid"
+ repeated string biometrics = 96;
+ // 上次 Crash Dump 时的毫秒时间戳
+ int64 last_dump_ts = 97;
+ // 留空即可
+ string location = 98;
+ // 留空即可
+ string country = 99;
+ // 留空即可
+ string city = 100;
+ // ?, 默认为 0
+ int32 data_activity_state = 101;
+ // ?, 默认为 0
+ int32 data_connect_state = 102;
+ // ?, 默认为 0
+ int32 data_network_type = 103;
+ // ?, 默认为 0
+ int32 voice_network_type = 104;
+ // ?, 默认为 0
+ int32 voice_service_state = 105;
+ // USB 是否连接, 启用为 "1", 否则为 "0"
+ int32 usb_connected = 106;
+ // ADB 是否启用, 启用为 "1", 否则为 "0"
+ int32 adb_enabled = 107;
+ // 系统 UI 软件版本(?), 如 "14.0.0"
+ string ui_version = 108;
+ // 辅助服务
+ repeated string accessibility_service = 109;
+ // 传感器信息(需要和前面的 sensor 对应)
+ repeated SensorInfo sensors_info = 110;
+ // DrmId
+ string drmid = 111;
+ // 是否存在电池
+ bool battery_present = 112;
+ // 电池技术, 如 "Li-poly"
+ string battery_technology = 113;
+ // 电池温度(m℃)
+ int32 battery_temperature = 114;
+ // 电池电压(mV)
+ int32 battery_voltage = 115;
+ // 电池是否被拔开(?), 可以为 0
+ int32 battery_plugged = 116;
+ // 电池健康, 如 2
+ int32 battery_health = 117;
+ // 留空即可
+ repeated string cpu_abi_list = 118;
+ // 留空即可
+ string cpu_abi_libc = 119;
+ // 留空即可
+ string cpu_abi_libc64 = 120;
+ // 留空即可
+ string cpu_processor = 121;
+ // 留空即可
+ string cpu_model_name = 122;
+ // 留空即可
+ string cpu_hardware = 123;
+ // 留空即可
+ string cpu_features = 124;
+}
+
+// 传感器信息
+message SensorInfo {
+ // 传感器名称, 如 "rotation Vector"
+ string name = 1;
+ // 制造商
+ string vendor = 2;
+ //
+ int32 version = 3;
+ //
+ int32 type = 4;
+ //
+ float max_range = 5;
+ //
+ float resolution = 6;
+ // 耗电量(mA)
+ float power = 7;
+ //
+ int32 min_delay = 8;
+}
diff --git a/grpc_api/readme.md b/grpc_api/readme.md
index 96d75a3..b388543 100644
--- a/grpc_api/readme.md
+++ b/grpc_api/readme.md
@@ -1,34 +1,149 @@
-# grpc接口定义(protobuf结构体)
+# gRPC 接口定义(protobuf 结构体)
注:
-1. proto结构体文件按照包名分类,同级放在同一目录中
+1. proto 结构体文件按照包名分类, 同级放在同一目录中
-2. 暂时无说明文档,稍后添加
+2. gRPC 接口定义全部来自对官方粉版(即大陆版本) APP 的逆向工程, 一般不会有错误, 但是可能有更新, 有实际应用需求的建议自行反编译 APP, 定位到 `com.bapis.*` 自行补足.
-3. 以下文件全部来自apk的逆向工程,如有疏漏请包涵
+## gRPC 主机
-## grpc主机
+B 站客户端的 gRPC 接口主机包括:
-B站客户端的grpc接口主机为以下服务器
++ `grpc.biliapi.net` 原生 gRPC 接口
++ `app.bilibili.com` Failover gRPC 接口
-> grpc.biliapi.net
->
-> app.bilibili.com
+实际应用中, 后者速度相对更快. 但是需要设置如 gRPC 超时时间等参数时只能使用前者.
-## grpc鉴权
+## gRPC 鉴权
-需要在请求http头部中添加`access_key`,如下
+需要在 Metadata 中添加 `authorization`: `identify_v1 {access_key}`.
-```
-authorization:identify_v1 {access_key}
-```
+## gRPC Metadata
-## grpc头部
+参考 [gRPC Go 官方文档](https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md) 对 `Metadata` 的说明.
+
+gRPC 的 `Metadata` 简单理解,就是 HTTP 的 Header 中的 key-value 对, 本质上是一个 Map. 在 gRPC `Metadata` 中,key 永远是 String,但是 value 可以是 String 也可以是二进制数据. **需要存储二进制数据时, key 应当加上一个 `-bin` 后缀, 同时二进制 value 应当编码为 Base64**.
+
+一般而言, 设定 Binary 类型的 `Metadata` 时, 需要调用各个语言的 gRPC 库的相应方法, 库会帮我们编码二进制数据, 无需我们自行编码.
+
+需要的 `Metadata` 包括(但不限于):
+
++ Ascii 类
+ + `user-agent` 客户端 UA, 如 `Dalvik/2.1.0 (Linux; U; Android 12; {device_model} Build/{device_build}) {app_ver} os/android model/{device_model} mobi_app/{mobi_app} build/{app_build} channel/master innerVer/{app_build_inner} osVer/12 network/2 grpc-java-cronet/1.36.1`(其中 `grpc-java-cronet/1.36.1` 为原生 gRPC 接口才需要的). **必需**.
+ + `device_model` 设备 Model, 如 `NOH-AN01`.
+ + `device_build` 设备 Build, 如 `HUAWEINOH-AN01`.
+ + `app_ver` APP 版本号, 如 `7.38.0`.
+ + `mobi_app` APP 包类型, 参考 [APPKey.md](/docs/misc/sign/APPKey.md).
+ + `app_build` APP 版本号, 如 `7380300`.
+ + `app_build_inner` APP 版本号(内部), 如 `7380310`. 实际应用中设置为 `app_build` 即可.
+ + `x-bili-gaia-vtoken` 暂时留空.
+ + `x-bili-aurora-eid` 如 `UFUFQ1AA`. 算法见附录. 未登录留空. **必需**.
+ + `x-bili-mid` 用户 UID, 未登录默认为 0. **必需**.
+ + `x-bili-aurora-zone` 留空. **必需**.
+ + `x-bili-trace-id` 如 `06e903399574695df75be114ff63ac64:f75be114ff63ac64:0:0`. 算法见附录. **必需**.
+ + `authorization` 鉴权, 登录时设定为 `identify_v1 {access_key}`, 未登录时无需此项.
+ + `buvid` 设备唯一标识, 算法见 [device_identity.md](/docs/misc/device_identity.md). **必需(?)**.
+ + `bili-http-engine` 恒定为 `cronet`, 使用 `grpc.biliapi.net` 作为 gRPC 主机时无需此项.
+ + `te` 恒定为 `trailers`, Java gRPC 库固定添加, 使用 `app.bilibili.com` 作为 gRPC 主机时无需此项.
++ Binary 类
+ + `x-bili-fawkes-req-bin` 设备 Fawkes 信息, 使用 [FawkesReq](bilibili/metadata/fawkes/fawkes.proto) 生成. **必需**.
+ + `x-bili-metadata-bin` 使用 [Metadata](bilibili/metadata/metadata.proto) 生成. **必需**.
+ + `x-bili-device-bin` 设备信息, 使用 [Device](bilibili/metadata/device/device.proto) 生成. **必需**.
+ + `x-bili-network-bin` 设备网络信息, 使用 [Network](bilibili/metadata/network/network.proto) 生成. **必需**.
+ + `x-bili-restriction-bin` 限制信息, 使用 [Restriction](bilibili/metadata/restriction/restriction.proto) 生成. 本项一般直接传空值即可. **必需**.
+ + `x-bili-locale-bin` 设备区域信息, 使用 [Locale](bilibili/metadata/locale/locale.proto) 生成. **必需**.
+ + `x-bili-exps-bin` 使用 [Exps](bilibili/metadata/pararbox/pararbox.proto) 生成. 本项一般直接传空值即可. **必需**.
-- [bilibili.metadata](bilibili/metadata):客户端环境参数
-- [bilibili.rpc](bilibili/rpc/status.proto):响应错误信息
## 接口请求定义
-*稍后补充*
\ No newline at end of file
+等待补充, 参见 proto 文件注释. 以下仅介绍常用接口:
+
++ [bilibili.app.playeronline.v1 -> PlayerOnline](bilibili/app/playeronline/v1/playeronline.proto) 视频在线人数接口.
++ [bilibili.app.playerunite.v1 -> PlayViewUnite](bilibili/app/playerunite/v1/playerunite.proto) United 视频播放链接接口(同时适用于 PGC, UGC 视频).
++ [bilibili.app.playurl.v1 -> PlayURL](bilibili/app/playurl/v1/playurl.proto) UGC 视频播放链接接口(V1 版本).
++ [bilibili.pgc.gateway.player.v1 -> PlayView](bilibili/pgc/gateway/player/v1/playurl.proto) PGC 视频播放链接接口(V1 版本).
++ [bilibili.pgc.gateway.player.v2 -> PlayView](bilibili/pgc/gateway/player/v2/playurl.proto) PGC 视频播放链接接口(V2 版本).
++ [bilibili.polymer.app.search.v1 -> SearchAll, etc](bilibili/polymer/app/search/v1/search.proto) 搜索接口(V1 版本).
++ [bilibili.app.dynamic.v2 -> DynAll, etc](bilibili/app/dynamic/v2/dynamic.proto) 动态接口(V2 版本).
++ ...
+
+## 应用示例
+
+### Golang
+
+B 站 gRPC API Golang 封装:[XiaoMiku01/bilibili-grpc-api-go](https://github.com/XiaoMiku01/bilibili-grpc-api-go)
+
+## 附录
+
+
+点此展开
+
+### `x-bili-aurora-eid` 生成算法
+
+```rust
+pub fn gen_aurora_eid(uid: u64) -> Option {
+ if uid == 0 {
+ return None;
+ }
+ let mut result_byte = Vec::with_capacity(64);
+ // 1. 将 UID 字符串转为字节数组.
+ let mid_byte = uid.to_string().into_bytes();
+ // 2. 将字节数组逐位(记为第 i 位)与 b"ad1va46a7lza" 中第 (i % 12) 位进行异或操作, 作为结果数组第 i 位.
+ mid_byte.iter().enumerate().for_each(|(i, v)| {
+ result_byte.push(v ^ (b"ad1va46a7lza"[i % 12]))
+ });
+ // 3. 对字节数组执行 Base64 编码, 注意 no padding, 即得到 x-bili-aurora-eid.
+ Some(base64::Engine::encode(
+ &base64::engine::general_purpose::STANDARD_NO_PAD,
+ result_byte,
+ ))
+}
+```
+
+### `x-bili-trace-id` 生成算法
+
+```rust
+pub fn gen_trace_id() -> String {
+ // 1. 生成 32 位随机字符串 random_id , Charset 为 0~9, a~z.
+ let random_id = gen_random_string!(32);
+ let mut random_trace_id = String::with_capacity(40);
+ // 2. 取 random_id 前 24 位, 作为 random_trace_id.
+ random_trace_id.push_str(&random_id[0..24]);
+ // 3. 初始化一个长度为 3 的数组 b_arr, 初始值都为 0.
+ let mut b_arr: [i8; 3] = [0i8; 3];
+ // 并获取当前时间戳
+ let mut ts = chrono::Local::now().timestamp();
+ // 使用循环从高位到低位遍历 b_arr 数组, 循环体内执行以下逻辑:
+ // - 首先将 ts 右移 8 位
+ // - 然后根据条件向 b_arr 的第 i 位赋值:
+ // - 如果 (ts / 128) % 2的结果为0, 则 b_arr[i] = ts % 256
+ // - 否则 b_arr[i] = ts % 256 - 256
+ for i in (0..3).rev() {
+ ts >>= 8;
+ b_arr[i] = {
+ if ((ts / 128) % 2) == 0 {
+ (ts % 256) as i8
+ } else {
+ (ts % 256 - 256) as i8
+ }
+ }
+ }
+ // 4. 将数组 b_arr 中的每个元素逐个转换为两位的十六进制字符串并追加到 random_trace_id 中.
+ for i in 0..3 {
+ random_trace_id.push_str(&format!("{:0>2x}", b_arr[i]))
+ }
+ // 5. 将 random_id 的第 31, 32 个字符追加到 random_trace_id 中, 此时 random_trace_id 生成完毕, 应当为 32 位长度.
+ random_trace_id.push_str(&random_id[30..32]);
+ // 6. 最后, 按 `{random_trace_id}:{random_trace_id[16..32]}:0:0` 的顺序拼接起来, 即为 x-bili-trace-id
+ let mut random_trace_id_final = String::with_capacity(64);
+ random_trace_id_final.push_str(&random_trace_id);
+ random_trace_id_final.push_str(":");
+ random_trace_id_final.push_str(&random_trace_id[16..32]);
+ random_trace_id_final.push_str(":0:0");
+ random_trace_id_final
+}
+```
+
+
diff --git a/package.json b/package.json
index c7e8e00..16100db 100644
--- a/package.json
+++ b/package.json
@@ -5,12 +5,16 @@
"author": "SocialSisterYi <1440239038@qq.com>",
"license": "CC-BY-NC-4.0",
"dependencies": {
- "@vuepress/plugin-back-to-top": "^1.9.8",
- "markdown-it-task-lists": "^2.1.1",
- "vuepress": "^1.9.8"
+ "markdown-it-task-lists": "^2.1.1"
},
"scripts": {
"dev": "vuepress dev",
"build": "vuepress build"
+ },
+ "devDependencies": {
+ "vuepress": "2.0.0-beta.67",
+ "vuepress-plugin-copy-code2": "2.0.0-beta.237",
+ "vuepress-vite": "2.0.0-beta.67",
+ "@vuepress/plugin-search": "^2.0.0-beta.67"
}
}
diff --git a/yarn.lock b/yarn.lock
index 203ae46..4680b5b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,2454 +2,788 @@
# yarn lockfile v1
-"@ampproject/remapping@^2.2.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
- integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
- dependencies:
- "@jridgewell/gen-mapping" "^0.1.0"
- "@jridgewell/trace-mapping" "^0.3.9"
-
-"@babel/code-frame@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
- integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
- dependencies:
- "@babel/highlight" "^7.18.6"
-
-"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298"
- integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==
-
-"@babel/core@^7.11.0", "@babel/core@^7.8.4":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13"
- integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.21.0"
- "@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-module-transforms" "^7.21.0"
- "@babel/helpers" "^7.21.0"
- "@babel/parser" "^7.21.0"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.0"
- "@babel/types" "^7.21.0"
- convert-source-map "^1.7.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.2"
- semver "^6.3.0"
-
-"@babel/generator@^7.21.0":
- version "7.21.1"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd"
- integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==
- dependencies:
- "@babel/types" "^7.21.0"
- "@jridgewell/gen-mapping" "^0.3.2"
- "@jridgewell/trace-mapping" "^0.3.17"
- jsesc "^2.5.1"
-
-"@babel/helper-annotate-as-pure@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
- integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
- integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
- dependencies:
- "@babel/helper-explode-assignable-expression" "^7.18.6"
- "@babel/types" "^7.18.9"
-
-"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.9.6":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
- integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
- dependencies:
- "@babel/compat-data" "^7.20.5"
- "@babel/helper-validator-option" "^7.18.6"
- browserslist "^4.21.3"
- lru-cache "^5.1.1"
- semver "^6.3.0"
-
-"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
- integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.21.0"
- "@babel/helper-member-expression-to-functions" "^7.21.0"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-replace-supers" "^7.20.7"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
- "@babel/helper-split-export-declaration" "^7.18.6"
-
-"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb"
- integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- regexpu-core "^5.3.1"
-
-"@babel/helper-define-polyfill-provider@^0.3.3":
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
- integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
- dependencies:
- "@babel/helper-compilation-targets" "^7.17.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- debug "^4.1.1"
- lodash.debounce "^4.0.8"
- resolve "^1.14.2"
- semver "^6.1.2"
-
-"@babel/helper-environment-visitor@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
- integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
-
-"@babel/helper-explode-assignable-expression@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
- integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
- integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
- dependencies:
- "@babel/template" "^7.20.7"
- "@babel/types" "^7.21.0"
-
-"@babel/helper-hoist-variables@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
- integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
- integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
- dependencies:
- "@babel/types" "^7.21.0"
-
-"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.8.3":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
- integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.0.tgz#89a8f86ad748870e3d024e470b2e8405e869db67"
- integrity sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-simple-access" "^7.20.2"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.19.1"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.0"
- "@babel/types" "^7.21.0"
-
-"@babel/helper-optimise-call-expression@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
- integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
- integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
-
-"@babel/helper-remap-async-to-generator@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
- integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-wrap-function" "^7.18.9"
- "@babel/types" "^7.18.9"
-
-"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331"
- integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-member-expression-to-functions" "^7.20.7"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.7"
- "@babel/types" "^7.20.7"
-
-"@babel/helper-simple-access@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
- integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
- dependencies:
- "@babel/types" "^7.20.2"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
- integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
- dependencies:
- "@babel/types" "^7.20.0"
-
-"@babel/helper-split-export-declaration@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
- integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-string-parser@^7.19.4":
- version "7.19.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
- integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
-
-"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
- version "7.19.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
- integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
-
-"@babel/helper-validator-option@^7.18.6":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
- integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
-
-"@babel/helper-wrap-function@^7.18.9":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3"
- integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==
- dependencies:
- "@babel/helper-function-name" "^7.19.0"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.5"
- "@babel/types" "^7.20.5"
-
-"@babel/helpers@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
- integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
- dependencies:
- "@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.0"
- "@babel/types" "^7.21.0"
-
-"@babel/highlight@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
- integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
- dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
- chalk "^2.0.0"
- js-tokens "^4.0.0"
-
-"@babel/parser@^7.18.4", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0":
- version "7.21.1"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.1.tgz#a8f81ee2fe872af23faea4b17a08fcc869de7bcc"
- integrity sha512-JzhBFpkuhBNYUY7qs+wTzNmyCWUHEaAFpQQD2YfU1rPL38/L43Wvid0fFkiOCnHvsGncRZgEPyGnltABLcVDTg==
-
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
- integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1"
- integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
- "@babel/plugin-proposal-optional-chaining" "^7.20.7"
-
-"@babel/plugin-proposal-async-generator-functions@^7.20.1":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326"
- integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-remap-async-to-generator" "^7.18.9"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
-
-"@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.8.3":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
- integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-proposal-class-static-block@^7.18.6":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d"
- integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.21.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
-
-"@babel/plugin-proposal-decorators@^7.8.3":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63"
- integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.21.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-replace-supers" "^7.20.7"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/plugin-syntax-decorators" "^7.21.0"
-
-"@babel/plugin-proposal-dynamic-import@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
- integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
-
-"@babel/plugin-proposal-export-namespace-from@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
- integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-
-"@babel/plugin-proposal-json-strings@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
- integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
-
-"@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83"
- integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
- integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-
-"@babel/plugin-proposal-numeric-separator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
- integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
-
-"@babel/plugin-proposal-object-rest-spread@^7.20.2":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a"
- integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==
- dependencies:
- "@babel/compat-data" "^7.20.5"
- "@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.20.7"
-
-"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
- integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-
-"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea"
- integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-
-"@babel/plugin-proposal-private-methods@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
- integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-proposal-private-property-in-object@^7.18.6":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc"
- integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-create-class-features-plugin" "^7.21.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-
-"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
- integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
- integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-syntax-class-static-block@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
- integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-decorators@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78"
- integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-syntax-dynamic-import@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
- integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-export-namespace-from@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
- integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.3"
-
-"@babel/plugin-syntax-import-assertions@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4"
- integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
- integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
- integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
- integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-numeric-separator@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
- integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-object-rest-spread@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
- integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
- integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
- integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-private-property-in-object@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
- integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-syntax-top-level-await@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
- integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.14.5"
-
-"@babel/plugin-transform-arrow-functions@^7.18.6":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551"
- integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-async-to-generator@^7.18.6":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354"
- integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==
- dependencies:
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-remap-async-to-generator" "^7.18.9"
-
-"@babel/plugin-transform-block-scoped-functions@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
- integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-block-scoping@^7.20.2":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02"
- integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-classes@^7.20.2":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665"
- integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.21.0"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-replace-supers" "^7.20.7"
- "@babel/helper-split-export-declaration" "^7.18.6"
- globals "^11.1.0"
-
-"@babel/plugin-transform-computed-properties@^7.18.9":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa"
- integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/template" "^7.20.7"
-
-"@babel/plugin-transform-destructuring@^7.20.2":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454"
- integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
- integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-duplicate-keys@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
- integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-exponentiation-operator@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
- integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
- dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-for-of@^7.18.8":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e"
- integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-function-name@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
- integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
- dependencies:
- "@babel/helper-compilation-targets" "^7.18.9"
- "@babel/helper-function-name" "^7.18.9"
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-literals@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
- integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-member-expression-literals@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
- integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-modules-amd@^7.19.6":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a"
- integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==
- dependencies:
- "@babel/helper-module-transforms" "^7.20.11"
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-modules-commonjs@^7.19.6":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607"
- integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==
- dependencies:
- "@babel/helper-module-transforms" "^7.20.11"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-simple-access" "^7.20.2"
-
-"@babel/plugin-transform-modules-systemjs@^7.19.6":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e"
- integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==
- dependencies:
- "@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-module-transforms" "^7.20.11"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-validator-identifier" "^7.19.1"
-
-"@babel/plugin-transform-modules-umd@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
- integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==
- dependencies:
- "@babel/helper-module-transforms" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8"
- integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.20.5"
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-new-target@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
- integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-object-super@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
- integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-replace-supers" "^7.18.6"
-
-"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f"
- integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-property-literals@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
- integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-regenerator@^7.18.6":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d"
- integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- regenerator-transform "^0.15.1"
-
-"@babel/plugin-transform-reserved-words@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a"
- integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-runtime@^7.11.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8"
- integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==
- dependencies:
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.20.2"
- babel-plugin-polyfill-corejs2 "^0.3.3"
- babel-plugin-polyfill-corejs3 "^0.6.0"
- babel-plugin-polyfill-regenerator "^0.4.1"
- semver "^6.3.0"
-
-"@babel/plugin-transform-shorthand-properties@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
- integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-spread@^7.19.0":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e"
- integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
-
-"@babel/plugin-transform-sticky-regex@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
- integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-template-literals@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
- integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-typeof-symbol@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
- integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-unicode-escapes@^7.18.10":
- version "7.18.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
- integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-unicode-regex@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
- integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/preset-env@^7.11.0":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506"
- integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==
- dependencies:
- "@babel/compat-data" "^7.20.1"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-validator-option" "^7.18.6"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
- "@babel/plugin-proposal-async-generator-functions" "^7.20.1"
- "@babel/plugin-proposal-class-properties" "^7.18.6"
- "@babel/plugin-proposal-class-static-block" "^7.18.6"
- "@babel/plugin-proposal-dynamic-import" "^7.18.6"
- "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
- "@babel/plugin-proposal-json-strings" "^7.18.6"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
- "@babel/plugin-proposal-numeric-separator" "^7.18.6"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.2"
- "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
- "@babel/plugin-proposal-optional-chaining" "^7.18.9"
- "@babel/plugin-proposal-private-methods" "^7.18.6"
- "@babel/plugin-proposal-private-property-in-object" "^7.18.6"
- "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.20.0"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-top-level-await" "^7.14.5"
- "@babel/plugin-transform-arrow-functions" "^7.18.6"
- "@babel/plugin-transform-async-to-generator" "^7.18.6"
- "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
- "@babel/plugin-transform-block-scoping" "^7.20.2"
- "@babel/plugin-transform-classes" "^7.20.2"
- "@babel/plugin-transform-computed-properties" "^7.18.9"
- "@babel/plugin-transform-destructuring" "^7.20.2"
- "@babel/plugin-transform-dotall-regex" "^7.18.6"
- "@babel/plugin-transform-duplicate-keys" "^7.18.9"
- "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
- "@babel/plugin-transform-for-of" "^7.18.8"
- "@babel/plugin-transform-function-name" "^7.18.9"
- "@babel/plugin-transform-literals" "^7.18.9"
- "@babel/plugin-transform-member-expression-literals" "^7.18.6"
- "@babel/plugin-transform-modules-amd" "^7.19.6"
- "@babel/plugin-transform-modules-commonjs" "^7.19.6"
- "@babel/plugin-transform-modules-systemjs" "^7.19.6"
- "@babel/plugin-transform-modules-umd" "^7.18.6"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
- "@babel/plugin-transform-new-target" "^7.18.6"
- "@babel/plugin-transform-object-super" "^7.18.6"
- "@babel/plugin-transform-parameters" "^7.20.1"
- "@babel/plugin-transform-property-literals" "^7.18.6"
- "@babel/plugin-transform-regenerator" "^7.18.6"
- "@babel/plugin-transform-reserved-words" "^7.18.6"
- "@babel/plugin-transform-shorthand-properties" "^7.18.6"
- "@babel/plugin-transform-spread" "^7.19.0"
- "@babel/plugin-transform-sticky-regex" "^7.18.6"
- "@babel/plugin-transform-template-literals" "^7.18.9"
- "@babel/plugin-transform-typeof-symbol" "^7.18.9"
- "@babel/plugin-transform-unicode-escapes" "^7.18.10"
- "@babel/plugin-transform-unicode-regex" "^7.18.6"
- "@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.20.2"
- babel-plugin-polyfill-corejs2 "^0.3.3"
- babel-plugin-polyfill-corejs3 "^0.6.0"
- babel-plugin-polyfill-regenerator "^0.4.1"
- core-js-compat "^3.25.1"
- semver "^6.3.0"
-
-"@babel/preset-modules@^0.1.5":
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
- integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
- "@babel/plugin-transform-dotall-regex" "^7.4.4"
- "@babel/types" "^7.4.4"
- esutils "^2.0.2"
-
-"@babel/regjsgen@^0.8.0":
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
- integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-
-"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
- integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
- dependencies:
- regenerator-runtime "^0.13.11"
-
-"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
- integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
- dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
-
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc"
- integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA==
- dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.21.0"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.21.0"
- "@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.21.0"
- "@babel/types" "^7.21.0"
- debug "^4.1.0"
- globals "^11.1.0"
-
-"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.4.4":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819"
- integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==
- dependencies:
- "@babel/helper-string-parser" "^7.19.4"
- "@babel/helper-validator-identifier" "^7.19.1"
- to-fast-properties "^2.0.0"
-
-"@jridgewell/gen-mapping@^0.1.0":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
- integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
- dependencies:
- "@jridgewell/set-array" "^1.0.0"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/gen-mapping@^0.3.2":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
- integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
- dependencies:
- "@jridgewell/set-array" "^1.0.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.9"
-
-"@jridgewell/resolve-uri@3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
- integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-
-"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
- integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-
-"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
- version "1.4.14"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
- integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-
-"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.17"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
- integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
- dependencies:
- "@jridgewell/resolve-uri" "3.1.0"
- "@jridgewell/sourcemap-codec" "1.4.14"
-
-"@mrmlnc/readdir-enhanced@^2.2.1":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
- integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
- dependencies:
- call-me-maybe "^1.0.1"
- glob-to-regexp "^0.3.0"
-
-"@nodelib/fs.stat@^1.1.2":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
- integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
-
-"@sindresorhus/is@^0.14.0":
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
- integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
-
-"@szmarczak/http-timer@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
- integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
- dependencies:
- defer-to-connect "^1.0.1"
-
-"@types/body-parser@*":
- version "1.19.2"
- resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
- integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
- dependencies:
- "@types/connect" "*"
+"@babel/parser@^7.20.15", "@babel/parser@^7.21.3":
+ version "7.22.15"
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.22.15.tgz#d34592bfe288a32e741aa0663dbc4829fcd55160"
+ integrity sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==
+
+"@esbuild/android-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
+ integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
+
+"@esbuild/android-arm@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
+ integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
+
+"@esbuild/android-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
+ integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
+
+"@esbuild/darwin-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
+ integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
+
+"@esbuild/darwin-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
+ integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
+
+"@esbuild/freebsd-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
+ integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
+
+"@esbuild/freebsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
+ integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
+
+"@esbuild/linux-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
+ integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
+
+"@esbuild/linux-arm@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
+ integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
+
+"@esbuild/linux-ia32@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
+ integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
+
+"@esbuild/linux-loong64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
+ integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
+
+"@esbuild/linux-mips64el@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
+ integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
+
+"@esbuild/linux-ppc64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
+ integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
+
+"@esbuild/linux-riscv64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
+ integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
+
+"@esbuild/linux-s390x@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
+ integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
+
+"@esbuild/linux-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
+ integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
+
+"@esbuild/netbsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
+ integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
+
+"@esbuild/openbsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
+ integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
+
+"@esbuild/sunos-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
+ integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
+
+"@esbuild/win32-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
+ integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
+
+"@esbuild/win32-ia32@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
+ integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
+
+"@esbuild/win32-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
+ integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
+
+"@jridgewell/sourcemap-codec@^1.4.15":
+ version "1.4.15"
+ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@mdit-vue/plugin-component@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/plugin-component/-/plugin-component-0.12.1.tgz#ed04c94c767e4ba1f6fc16ab458da82750b401f6"
+ integrity sha512-L3elbvuKUufXwPLHrmJGd/ijd/QKxfcHXy3kRy4O+P7UIV7HSWePpfB0k+wWee+by3MviYYxjVAi392z+DGy3Q==
+ dependencies:
+ "@types/markdown-it" "^13.0.0"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/plugin-frontmatter@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-0.12.1.tgz#af02ebc6622fa24d71343fde627a0e49d4ffbab5"
+ integrity sha512-C6ycNjrJ+T4JgbVxwo9cUkfLacOO841Yl8ogqd5PJmAVpc5cM2OLBkqqkZxNRXos3g9xM1VvIQ7gK/047UNADg==
+ dependencies:
+ "@mdit-vue/types" "0.12.0"
+ "@types/markdown-it" "^13.0.0"
+ gray-matter "^4.0.3"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/plugin-headers@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/plugin-headers/-/plugin-headers-0.12.1.tgz#2ab8c446fca6d39ce951819b5e18fef614a227aa"
+ integrity sha512-DXAw/iWW8f3qUYMDHgQmamL+XGjnaoeRzdvDseLRyr7gXX4xpYO9OIhe/pv9LzSvUoY7UGYmn4kFeI+0qpWJ+g==
+ dependencies:
+ "@mdit-vue/shared" "0.12.1"
+ "@mdit-vue/types" "0.12.0"
+ "@types/markdown-it" "^13.0.0"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/plugin-sfc@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/plugin-sfc/-/plugin-sfc-0.12.1.tgz#49d6060e71e4016252ac35140f6960eb9a50cb6f"
+ integrity sha512-6j332CsSqumy1+StIM3XphdXG1zj9NXuWestDJrKgS3OLy5P0EAioXScUYiZYysw61ZG+2pP37MW7Hg+eHbyIg==
+ dependencies:
+ "@mdit-vue/types" "0.12.0"
+ "@types/markdown-it" "^13.0.0"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/plugin-title@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/plugin-title/-/plugin-title-0.12.1.tgz#d01c2b0e9fd374fc3d52a551689cadf5fe066890"
+ integrity sha512-JOsiDj+CryGbrTDWUnDAwB9kSkN6o9GDo3udR6BPDgBNVb3zAnx9ZNaRpEhDW1LnQhf9/LYicWJ2eTNRKPcJNQ==
+ dependencies:
+ "@mdit-vue/shared" "0.12.1"
+ "@mdit-vue/types" "0.12.0"
+ "@types/markdown-it" "^13.0.0"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/plugin-toc@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/plugin-toc/-/plugin-toc-0.12.1.tgz#ed650a05d3f4b84637e79d8b3b06e89295cc78bf"
+ integrity sha512-nFGwTwVa8GLCKJMV7cGST7lYuljSjEiCTPgKIpQ/WifwouHsQaL/rnBDr22kpzY2hRTAhM3+TT5GDwLyxa/e6A==
+ dependencies:
+ "@mdit-vue/shared" "0.12.1"
+ "@mdit-vue/types" "0.12.0"
+ "@types/markdown-it" "^13.0.0"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/shared@0.12.1", "@mdit-vue/shared@^0.12.1":
+ version "0.12.1"
+ resolved "https://registry.npmjs.org/@mdit-vue/shared/-/shared-0.12.1.tgz#b67cbfc71cac6fb49a7a0be169cd53d921e30344"
+ integrity sha512-bXgd0KThe4jC2leCFDFsyrudXIckvTwV4WnQK/rRMrXq0/BAuVdSNdIv1LGCWZxD5+oDyPyEPd0lalTIFwqsmg==
+ dependencies:
+ "@mdit-vue/types" "0.12.0"
+ "@types/markdown-it" "^13.0.0"
+ markdown-it "^13.0.1"
+
+"@mdit-vue/types@0.12.0", "@mdit-vue/types@^0.12.0":
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/@mdit-vue/types/-/types-0.12.0.tgz#096ff57d3590d076f7d7561dbc9956fb0bb89fe1"
+ integrity sha512-mrC4y8n88BYvgcgzq9bvTlDgFyi2zuvzmPilRvRc3Uz1iIvq8mDhxJ0rHKFUNzPEScpDvJdIujqiDrulMqiudA==
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.8"
+ resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@types/debug@^4.1.8":
+ version "4.1.8"
+ resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317"
+ integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==
+ dependencies:
+ "@types/ms" "*"
+
+"@types/fs-extra@^11.0.1":
+ version "11.0.1"
+ resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.1.tgz#f542ec47810532a8a252127e6e105f487e0a6ea5"
+ integrity sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==
+ dependencies:
+ "@types/jsonfile" "*"
"@types/node" "*"
-"@types/connect-history-api-fallback@*":
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
- integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==
- dependencies:
- "@types/express-serve-static-core" "*"
- "@types/node" "*"
+"@types/hash-sum@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@types/hash-sum/-/hash-sum-1.0.0.tgz#838f4e8627887d42b162d05f3d96ca636c2bc504"
+ integrity sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg==
-"@types/connect@*":
- version "3.4.35"
- resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
- integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
+"@types/jsonfile@*":
+ version "6.1.1"
+ resolved "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz#ac84e9aefa74a2425a0fb3012bdea44f58970f1b"
+ integrity sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==
dependencies:
"@types/node" "*"
-"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33":
- version "4.17.33"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543"
- integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==
- dependencies:
- "@types/node" "*"
- "@types/qs" "*"
- "@types/range-parser" "*"
-
-"@types/express@*":
- version "4.17.17"
- resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4"
- integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==
- dependencies:
- "@types/body-parser" "*"
- "@types/express-serve-static-core" "^4.17.33"
- "@types/qs" "*"
- "@types/serve-static" "*"
-
-"@types/glob@^7.1.1":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
- integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
- dependencies:
- "@types/minimatch" "*"
- "@types/node" "*"
-
-"@types/highlight.js@^9.7.0":
- version "9.12.4"
- resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34"
- integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww==
-
-"@types/http-proxy@^1.17.5":
- version "1.17.9"
- resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a"
- integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==
- dependencies:
- "@types/node" "*"
-
-"@types/json-schema@^7.0.5":
- version "7.0.11"
- resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
- integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
-
"@types/linkify-it@*":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9"
- integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz#15a0712296c5041733c79efe233ba17ae5a7587b"
+ integrity sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g==
-"@types/markdown-it@^10.0.0":
- version "10.0.3"
- resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-10.0.3.tgz#a9800d14b112c17f1de76ec33eff864a4815eec7"
- integrity sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw==
+"@types/markdown-it-emoji@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/@types/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz#f12a97df2758f38b4b38f277b468780459faff14"
+ integrity sha512-2ln8Wjbcj/0oRi/6VnuMeWEHHuK8uapFttvcLmDIe1GKCsFBLOLBX+D+xhDa9oWOQV0IpvxwrSfKKssAqqroog==
+ dependencies:
+ "@types/markdown-it" "*"
+
+"@types/markdown-it@*", "@types/markdown-it@^13.0.0", "@types/markdown-it@^13.0.1":
+ version "13.0.1"
+ resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.1.tgz#2f45bd54315f5db2d9bd909ec7fd4d994cf75df4"
+ integrity sha512-SUEb8Frsxs3D5Gg9xek6i6EG6XQ5s+O+ZdQzIPESZVZw3Pv3CPQfjCJBI+RgqZd1IBeu18S0Rn600qpPnEK37w==
dependencies:
- "@types/highlight.js" "^9.7.0"
"@types/linkify-it" "*"
"@types/mdurl" "*"
- highlight.js "^9.7.0"
"@types/mdurl@*":
version "1.0.2"
- resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9"
+ resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9"
integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==
-"@types/mime@*":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10"
- integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==
-
-"@types/minimatch@*":
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
- integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
+"@types/ms@*":
+ version "0.7.31"
+ resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197"
+ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
"@types/node@*":
- version "18.14.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.0.tgz#94c47b9217bbac49d4a67a967fdcdeed89ebb7d0"
- integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==
+ version "20.5.9"
+ resolved "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a"
+ integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==
-"@types/q@^1.5.1":
- version "1.5.5"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df"
- integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==
+"@types/web-bluetooth@^0.0.17":
+ version "0.0.17"
+ resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz#5c9f3c617f64a9735d7b72a7cc671e166d900c40"
+ integrity sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==
-"@types/qs@*":
- version "6.9.7"
- resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
- integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
+"@vitejs/plugin-vue@^4.3.3":
+ version "4.3.4"
+ resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz#a289dff38e01949fe7be581d5542cabaeb961dec"
+ integrity sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==
-"@types/range-parser@*":
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
- integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
-
-"@types/serve-static@*":
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155"
- integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==
+"@vue/compiler-core@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128"
+ integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==
dependencies:
- "@types/mime" "*"
- "@types/node" "*"
+ "@babel/parser" "^7.21.3"
+ "@vue/shared" "3.3.4"
+ estree-walker "^2.0.2"
+ source-map-js "^1.0.2"
-"@types/source-list-map@*":
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
- integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
-
-"@types/tapable@^1":
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
- integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
-
-"@types/uglify-js@*":
- version "3.17.1"
- resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5"
- integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==
+"@vue/compiler-dom@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151"
+ integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==
dependencies:
- source-map "^0.6.1"
+ "@vue/compiler-core" "3.3.4"
+ "@vue/shared" "3.3.4"
-"@types/webpack-dev-server@^3":
- version "3.11.6"
- resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc"
- integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==
+"@vue/compiler-sfc@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df"
+ integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==
dependencies:
- "@types/connect-history-api-fallback" "*"
- "@types/express" "*"
- "@types/serve-static" "*"
- "@types/webpack" "^4"
- http-proxy-middleware "^1.0.0"
+ "@babel/parser" "^7.20.15"
+ "@vue/compiler-core" "3.3.4"
+ "@vue/compiler-dom" "3.3.4"
+ "@vue/compiler-ssr" "3.3.4"
+ "@vue/reactivity-transform" "3.3.4"
+ "@vue/shared" "3.3.4"
+ estree-walker "^2.0.2"
+ magic-string "^0.30.0"
+ postcss "^8.1.10"
+ source-map-js "^1.0.2"
-"@types/webpack-sources@*":
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b"
- integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==
+"@vue/compiler-ssr@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777"
+ integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==
dependencies:
- "@types/node" "*"
- "@types/source-list-map" "*"
- source-map "^0.7.3"
+ "@vue/compiler-dom" "3.3.4"
+ "@vue/shared" "3.3.4"
-"@types/webpack@^4":
- version "4.41.33"
- resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc"
- integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==
+"@vue/devtools-api@^6.5.0":
+ version "6.5.0"
+ resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07"
+ integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==
+
+"@vue/reactivity-transform@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929"
+ integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==
dependencies:
- "@types/node" "*"
- "@types/tapable" "^1"
- "@types/uglify-js" "*"
- "@types/webpack-sources" "*"
- anymatch "^3.0.0"
- source-map "^0.6.0"
+ "@babel/parser" "^7.20.15"
+ "@vue/compiler-core" "3.3.4"
+ "@vue/shared" "3.3.4"
+ estree-walker "^2.0.2"
+ magic-string "^0.30.0"
-"@vue/babel-helper-vue-jsx-merge-props@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz#8d53a1e21347db8edbe54d339902583176de09f2"
- integrity sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==
-
-"@vue/babel-helper-vue-transform-on@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc"
- integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==
-
-"@vue/babel-plugin-jsx@^1.0.3":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1"
- integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==
+"@vue/reactivity@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253"
+ integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
- "@vue/babel-helper-vue-transform-on" "^1.0.2"
- camelcase "^6.0.0"
- html-tags "^3.1.0"
- svg-tags "^1.0.0"
+ "@vue/shared" "3.3.4"
-"@vue/babel-plugin-transform-vue-jsx@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz#4d4b3d46a39ea62b7467dd6e26ce47f7ceafb2fe"
- integrity sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==
+"@vue/runtime-core@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1"
+ integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
- "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0"
- html-tags "^2.0.0"
- lodash.kebabcase "^4.1.1"
- svg-tags "^1.0.0"
+ "@vue/reactivity" "3.3.4"
+ "@vue/shared" "3.3.4"
-"@vue/babel-preset-app@^4.1.2":
- version "4.5.19"
- resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.19.tgz#baee457da0065c016f74fac4149f7c97631ba5a7"
- integrity sha512-VCNRiAt2P/bLo09rYt3DLe6xXUMlhJwrvU18Ddd/lYJgC7s8+wvhgYs+MTx4OiAXdu58drGwSBO9SPx7C6J82Q==
+"@vue/runtime-dom@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566"
+ integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==
dependencies:
- "@babel/core" "^7.11.0"
- "@babel/helper-compilation-targets" "^7.9.6"
- "@babel/helper-module-imports" "^7.8.3"
- "@babel/plugin-proposal-class-properties" "^7.8.3"
- "@babel/plugin-proposal-decorators" "^7.8.3"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-jsx" "^7.8.3"
- "@babel/plugin-transform-runtime" "^7.11.0"
- "@babel/preset-env" "^7.11.0"
- "@babel/runtime" "^7.11.0"
- "@vue/babel-plugin-jsx" "^1.0.3"
- "@vue/babel-preset-jsx" "^1.2.4"
- babel-plugin-dynamic-import-node "^2.3.3"
- core-js "^3.6.5"
- core-js-compat "^3.6.5"
- semver "^6.1.0"
+ "@vue/runtime-core" "3.3.4"
+ "@vue/shared" "3.3.4"
+ csstype "^3.1.1"
-"@vue/babel-preset-jsx@^1.2.4":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz#f4914ba314235ab097bc4372ed67473c0780bfcc"
- integrity sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==
+"@vue/server-renderer@3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c"
+ integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==
dependencies:
- "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0"
- "@vue/babel-plugin-transform-vue-jsx" "^1.4.0"
- "@vue/babel-sugar-composition-api-inject-h" "^1.4.0"
- "@vue/babel-sugar-composition-api-render-instance" "^1.4.0"
- "@vue/babel-sugar-functional-vue" "^1.4.0"
- "@vue/babel-sugar-inject-h" "^1.4.0"
- "@vue/babel-sugar-v-model" "^1.4.0"
- "@vue/babel-sugar-v-on" "^1.4.0"
+ "@vue/compiler-ssr" "3.3.4"
+ "@vue/shared" "3.3.4"
-"@vue/babel-sugar-composition-api-inject-h@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz#187e1389f8871d89ece743bb50aed713be9d6c85"
- integrity sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==
+"@vue/shared@3.3.4", "@vue/shared@^3.3.4":
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780"
+ integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
+
+"@vuepress/bundler-vite@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/bundler-vite/-/bundler-vite-2.0.0-beta.67.tgz#a259fc47156afdfe494dc7a5af3578a1d602f7f3"
+ integrity sha512-W6YXixxu2G+xPECPFvx4Tzv5fmpBYvApEYVw7qfSNf/5YZ6aeIfV0AMGJZvhk7R/KniofvBTGCjAMSK4fqKp8w==
dependencies:
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vitejs/plugin-vue" "^4.3.3"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ autoprefixer "^10.4.15"
+ connect-history-api-fallback "^2.0.0"
+ postcss "^8.4.28"
+ postcss-load-config "^4.0.1"
+ rollup "^3.28.1"
+ vite "~4.4.9"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-"@vue/babel-sugar-composition-api-render-instance@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz#2c1607ae6dffdab47e785bc01fa45ba756e992c1"
- integrity sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==
+"@vuepress/cli@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/cli/-/cli-2.0.0-beta.67.tgz#f50e25dab06355f0b10f27ac27e926bfe6cbb317"
+ integrity sha512-OWd5JMq9pEHrz2MTTQV91EoG+7o18s1JWKP7GBfYQ2DRAu/Hf4rZPmluuibhFolTvnTDuTtXrfb6Wbx4iZ+M9Q==
dependencies:
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ cac "^6.7.14"
+ chokidar "^3.5.3"
+ envinfo "^7.10.0"
+ esbuild "~0.18.20"
-"@vue/babel-sugar-functional-vue@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz#60da31068567082287c7337c66ef4df04e0a1029"
- integrity sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==
+"@vuepress/client@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/client/-/client-2.0.0-beta.67.tgz#7cb444eaa12032a7d07b8d59a515d291933518dc"
+ integrity sha512-xfXZXmZmMbCvQxUhNltuAZzpoiwM0x9ke+DdPPDBF0oGMNDlmtOlsD7NcH322vQE3ehYy5mXJttXuEmfoNOG6A==
dependencies:
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/devtools-api" "^6.5.0"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vueuse/core" "^10.4.1"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-"@vue/babel-sugar-inject-h@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz#bf39aa6631fb1d0399b1c49b4c59e1c8899b4363"
- integrity sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==
+"@vuepress/core@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/core/-/core-2.0.0-beta.67.tgz#925eac48fdc27855a9e75b46c23c6dd37a1c2e4c"
+ integrity sha512-pbCm1x+zFKZqpJjS68sv3ziEQLMn0KM04Q6W249stcTUUBrKox2OPx+OcX/BrN6yH60OviXN8hD6MgCnFSWdZA==
dependencies:
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/markdown" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ vue "^3.3.4"
-"@vue/babel-sugar-v-model@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz#a51d986609f430c4f70ada3a93cc560a2970f720"
- integrity sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==
+"@vuepress/markdown@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/markdown/-/markdown-2.0.0-beta.67.tgz#179f1bbe57a590da362358c8ccad1198875db77a"
+ integrity sha512-dwciE7dbfDruLan+w9x/LUl5dLdBWB39QXznX/Hhv4oPp+Mm4as53J58gqjuRPi6N25DfRi3ODrzjG5Lduwnfw==
dependencies:
- "@babel/plugin-syntax-jsx" "^7.2.0"
- "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0"
- "@vue/babel-plugin-transform-vue-jsx" "^1.4.0"
- camelcase "^5.0.0"
- html-tags "^2.0.0"
- svg-tags "^1.0.0"
+ "@mdit-vue/plugin-component" "^0.12.1"
+ "@mdit-vue/plugin-frontmatter" "^0.12.1"
+ "@mdit-vue/plugin-headers" "^0.12.1"
+ "@mdit-vue/plugin-sfc" "^0.12.1"
+ "@mdit-vue/plugin-title" "^0.12.1"
+ "@mdit-vue/plugin-toc" "^0.12.1"
+ "@mdit-vue/shared" "^0.12.1"
+ "@mdit-vue/types" "^0.12.0"
+ "@types/markdown-it" "^13.0.1"
+ "@types/markdown-it-emoji" "^2.0.2"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ markdown-it "^13.0.1"
+ markdown-it-anchor "^8.6.7"
+ markdown-it-emoji "^2.0.2"
+ mdurl "^1.0.1"
-"@vue/babel-sugar-v-on@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz#43b7106a9672d8cbeefc0eb8afe1d376edc6166e"
- integrity sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==
+"@vuepress/plugin-active-header-links@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-beta.67.tgz#9dd4bfbbba578c2bd35c281e34436a8bd3bc0cc4"
+ integrity sha512-2AxtFnnvHn750x+dCFbCWgqxpS+zsNucw8vuATmyRiBAleEqfM1Wz+RuMSKBM38GxsI/7mnQgWOgqj4S90G+ZA==
dependencies:
- "@babel/plugin-syntax-jsx" "^7.2.0"
- "@vue/babel-plugin-transform-vue-jsx" "^1.4.0"
- camelcase "^5.0.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ ts-debounce "^4.0.0"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-"@vue/compiler-sfc@2.7.14":
- version "2.7.14"
- resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd"
- integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==
+"@vuepress/plugin-back-to-top@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-beta.67.tgz#aff0935cc036925fbd9947beb31bdd2971c316df"
+ integrity sha512-ystolf429cvAfX4qw1o9sHfkB8+KdQ4rV8P4ILR5LERgTZprL+1FbQfcHgVjEF2p0UKu2QXJQNGx2LfWWVuYdw==
dependencies:
- "@babel/parser" "^7.18.4"
- postcss "^8.4.14"
- source-map "^0.6.1"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ ts-debounce "^4.0.0"
+ vue "^3.3.4"
-"@vue/component-compiler-utils@^3.1.0":
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9"
- integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==
+"@vuepress/plugin-container@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-container/-/plugin-container-2.0.0-beta.67.tgz#a18acdf5b05165c03c29c2d7a04837cb6bf9f649"
+ integrity sha512-NuxjNkyJ2bYsRpw3iAiok2aeKYzZQsEZ8A/i+4LYwrDXbj3HfjlDhfPYhN+BMQfbxE9LpXOG0APNcXVCNMu0hw==
dependencies:
- consolidate "^0.15.1"
- hash-sum "^1.0.2"
- lru-cache "^4.1.2"
- merge-source-map "^1.1.0"
- postcss "^7.0.36"
- postcss-selector-parser "^6.0.2"
- source-map "~0.6.1"
- vue-template-es2015-compiler "^1.9.0"
- optionalDependencies:
- prettier "^1.18.2 || ^2.0.0"
+ "@types/markdown-it" "^13.0.1"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/markdown" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ markdown-it "^13.0.1"
+ markdown-it-container "^3.0.0"
-"@vuepress/core@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.9.8.tgz#56acf26d7c1a3c82b0b57bc778fef73024dc1854"
- integrity sha512-ZDm253vcjKlWIxd6c18aZWJZkWCmhBUXRT/X5eKFEoDO3aQatb+OpFYP6eH3zufD2VXjZwE5kV4MAMwtBHK+DQ==
+"@vuepress/plugin-external-link-icon@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-beta.67.tgz#e291b4a6052bcde0099675c4a8e62bfaebfdfec2"
+ integrity sha512-JD0/Uvt1WQXiGoAA0pjpqQ7OINDUm1TSgWeIpfPq9tZJNfgjmqUoartMFUuqcvl4eMi4Alfx0dWkzSF9qHL7Pg==
dependencies:
- "@babel/core" "^7.8.4"
- "@vue/babel-preset-app" "^4.1.2"
- "@vuepress/markdown" "1.9.8"
- "@vuepress/markdown-loader" "1.9.8"
- "@vuepress/plugin-last-updated" "1.9.8"
- "@vuepress/plugin-register-components" "1.9.8"
- "@vuepress/shared-utils" "1.9.8"
- "@vuepress/types" "1.9.8"
- autoprefixer "^9.5.1"
- babel-loader "^8.0.4"
- bundle-require "2.1.8"
- cache-loader "^3.0.0"
- chokidar "^2.0.3"
- connect-history-api-fallback "^1.5.0"
- copy-webpack-plugin "^5.0.2"
- core-js "^3.6.4"
- cross-spawn "^6.0.5"
- css-loader "^2.1.1"
- esbuild "0.14.7"
- file-loader "^3.0.1"
- js-yaml "^3.13.1"
- lru-cache "^5.1.1"
- mini-css-extract-plugin "0.6.0"
- optimize-css-assets-webpack-plugin "^5.0.1"
- portfinder "^1.0.13"
- postcss-loader "^3.0.0"
- postcss-safe-parser "^4.0.1"
- toml "^3.0.0"
- url-loader "^1.0.1"
- vue "^2.6.10"
- vue-loader "^15.7.1"
- vue-router "^3.4.5"
- vue-server-renderer "^2.6.10"
- vue-template-compiler "^2.6.10"
- vuepress-html-webpack-plugin "^3.2.0"
- vuepress-plugin-container "^2.0.2"
- webpack "^4.8.1"
- webpack-chain "^6.0.0"
- webpack-dev-server "^3.5.1"
- webpack-merge "^4.1.2"
- webpackbar "3.2.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/markdown" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ vue "^3.3.4"
-"@vuepress/markdown-loader@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.9.8.tgz#a08c527cdf1089d45a0067dbad600571e0bb3052"
- integrity sha512-rurhMqwq5h32nXlJG/ezrgzp7twkJtExBxh3bH+iUeuuPKoyTzd5+YI8lrOELXPsRXlvPoMZ9KQioW/D8xAmvA==
+"@vuepress/plugin-git@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-git/-/plugin-git-2.0.0-beta.67.tgz#e4b91a78afe6e5350d155deb26d2893bb8343d37"
+ integrity sha512-9JSGmEtDqBWEmszqEE7spBjWdbeZo0jeMi2ZQLT4KgQrYh5fU/DO8MgeJxGXXd9xvpz4aVAzQR+gqYpL6kO5Jw==
dependencies:
- "@vuepress/markdown" "1.9.8"
- loader-utils "^1.1.0"
- lru-cache "^5.1.1"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ execa "^8.0.1"
-"@vuepress/markdown@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.9.8.tgz#7c2ec75c20d4249fe52c0bb98ae4d70a176377cd"
- integrity sha512-7OaCXp2SMtf9pFf513U52aUtDf5gWWe8pT+NQA8hOU6jCNSJGex3izEEve1sPmLmsJWGjmVEAeKesGNg4wQE0A==
+"@vuepress/plugin-medium-zoom@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-beta.67.tgz#74ebc6e118f3ea7f00a41a2d7e983ef859576996"
+ integrity sha512-KLXfzKKbAhLSaRdbkHlvpbpYtaqINYBJ9gB4Q7CQ5AUaA8uStLG6rX0RjyhKAONfIJWuFiVYCp38QSI++fa/tA==
dependencies:
- "@vuepress/shared-utils" "1.9.8"
- markdown-it "^8.4.1"
- markdown-it-anchor "^5.0.2"
- markdown-it-chain "^1.3.0"
- markdown-it-emoji "^1.4.0"
- markdown-it-table-of-contents "^0.4.0"
- prismjs "^1.13.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ medium-zoom "^1.0.8"
+ vue "^3.3.4"
-"@vuepress/plugin-active-header-links@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.8.tgz#64a9b9018e7f8138a8b49119002e3421c24c23ec"
- integrity sha512-yyUwn/DOF5Gbxc5fFbiBNqz7XmRAVHyYZNTgsJooQX+E11DH9XCuJ0sWN3HHee1aVwmz2w94KYsoueiBTgfJ8g==
+"@vuepress/plugin-nprogress@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-beta.67.tgz#f1e16521953d5a7364c160ece403d5045a809738"
+ integrity sha512-BlqALWsNCllrqhMgRGz+50ah984XCwp1wejNYGP0ENEGSo1SY2dUI4AatIWep4Zj+0s7gbBR0swZc49hkLpENg==
dependencies:
- "@vuepress/types" "1.9.8"
- lodash.debounce "^4.0.8"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-"@vuepress/plugin-back-to-top@^1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-1.9.8.tgz#670f4502cccada08981b7dbcf4ec613897ba1c2f"
- integrity sha512-Unl8HMVPsqyt4q/1TIcaMH1XkQri43rjVdXKpPbC1nWTKVi1nvJpxbLfscInodX9Jlniju4Xo/uKxmugfFF1Dg==
+"@vuepress/plugin-palette@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-palette/-/plugin-palette-2.0.0-beta.67.tgz#64149c26bfab6b7b154299abddcff9032036b1d0"
+ integrity sha512-Ea2nLx9yH4c70MUQpFXuRAD6OZNVdyVGppvNwyGswutqPkRu7km18ml4Jk767iGMAVfzmrlphd6VIUJBUJ81JQ==
dependencies:
- "@vuepress/types" "1.9.8"
- lodash.debounce "^4.0.8"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ chokidar "^3.5.3"
-"@vuepress/plugin-last-updated@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.8.tgz#ab4db23138398d7e141066867b8cf19ac730f1b4"
- integrity sha512-tMmqKEEXV9Ask/MErJrVSDxRW6uEYm7UvUmfo6SbIoYjyLiNV8UCzmLPT+hAEixNuxuMReoI3rn/v60JiYPUZA==
+"@vuepress/plugin-prismjs@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-beta.67.tgz#1b5fc0f628e1dbc68a4746dae8be5ab600dc4cc0"
+ integrity sha512-IaTc/BHwdO/ydfcoGmqUsDI5G2rPsgffxDtHx4pogaBCF2A6X9O++hrR/YExOHwwyhaE/6c6kflJAefaHb+Arg==
dependencies:
- "@vuepress/types" "1.9.8"
- cross-spawn "^6.0.5"
+ "@vuepress/core" "2.0.0-beta.67"
+ prismjs "^1.29.0"
-"@vuepress/plugin-nprogress@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.8.tgz#78132a59c1139d9a225441fa69e4af82d0ffe945"
- integrity sha512-RW2n2VTnc36zPUMlQ9+uOu57ao9RKDvOIGoFqTPqvORiTI56VnyAipOv+79EqTky6DqXSG+ixzq+oE9gSJ8cXA==
+"@vuepress/plugin-search@^2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-2.0.0-beta.67.tgz#f903a10c360de0180517026b2bd992c2e33b9167"
+ integrity sha512-oju9DK2zQE7PqP7EXm/c0ekoG0clLSn4h6Y7DvgbXJRmonM42oHHj3DdC/eGtyLhTUGuD7mw93Svj2uaC556Nw==
dependencies:
- "@vuepress/types" "1.9.8"
- nprogress "^0.2.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ chokidar "^3.5.3"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-"@vuepress/plugin-register-components@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.9.8.tgz#fea0a86c49e32f77585b86e10b7713a24cd254d7"
- integrity sha512-TPa+HDKSevhXKvAh7zboGlGCaGXY/vzx/b7YtHzxKwHJE3Orj/aGNimG8ZvILjDXhzmrPCX+WghquiwYeco5Nw==
+"@vuepress/plugin-theme-data@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-beta.67.tgz#e2258b6b71096436dc89629a5a4b82b7bca4d275"
+ integrity sha512-emTj1fvYXM/+WWObmgR0STRwkcDEM9QLD9ZP/JK5hEdt9KQnl8qO9NIzVfP/acgqbxFJQVvsmMSruXXknN68FQ==
dependencies:
- "@vuepress/shared-utils" "1.9.8"
- "@vuepress/types" "1.9.8"
+ "@vue/devtools-api" "^6.5.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ vue "^3.3.4"
-"@vuepress/plugin-search@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.9.8.tgz#89bb96527f4a9c0bd34ecc476f24eb421fccd907"
- integrity sha512-LLZag4Rj1ZF679ubmkqvDyXv5/o0uxbvHFZjD7d+xWRRV6PZrw47Idep8HXlVcmL43BLdxQ//STiibPJpbWdXQ==
+"@vuepress/shared@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/shared/-/shared-2.0.0-beta.67.tgz#fb9abc662904117a97c26004aa436f1f2aa02263"
+ integrity sha512-gm8/6oAnd0Jh8g9xB89S+g8XJxt30QmeXK79J2Nwcbgy88CZnYbZssU1noyxFt4cHDX8wpUf8V5I388/dfHfoQ==
dependencies:
- "@vuepress/types" "1.9.8"
+ "@mdit-vue/types" "^0.12.0"
+ "@vue/shared" "^3.3.4"
-"@vuepress/shared-utils@1.9.8", "@vuepress/shared-utils@^1.2.0":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.9.8.tgz#1ecaf148409001fee9c00c6951dc719c9a279523"
- integrity sha512-34VfkChKRrs0waWEXugDPcBB4Cp6TnKwNQaTpa8GwpLFfQw627/mWi2IiuSwTyFNZdSXxZJV6e5blejmUlGh0g==
+"@vuepress/theme-default@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-beta.67.tgz#815acbbcdf12bfedef1cf916e5cbbfa33ad44b0c"
+ integrity sha512-t8wfKaf/WUAifcKTYfnpsUxTVF5C4LUSiX2DH+JTt0lB/bv4SKQstuZtLvLiV9C4q2ekjGpitaW85T4KDnshug==
dependencies:
- chalk "^2.3.2"
- escape-html "^1.0.3"
- fs-extra "^7.0.1"
- globby "^9.2.0"
- gray-matter "^4.0.1"
- hash-sum "^1.0.2"
- semver "^6.0.0"
- toml "^3.0.0"
- upath "^1.1.0"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/plugin-active-header-links" "2.0.0-beta.67"
+ "@vuepress/plugin-back-to-top" "2.0.0-beta.67"
+ "@vuepress/plugin-container" "2.0.0-beta.67"
+ "@vuepress/plugin-external-link-icon" "2.0.0-beta.67"
+ "@vuepress/plugin-git" "2.0.0-beta.67"
+ "@vuepress/plugin-medium-zoom" "2.0.0-beta.67"
+ "@vuepress/plugin-nprogress" "2.0.0-beta.67"
+ "@vuepress/plugin-palette" "2.0.0-beta.67"
+ "@vuepress/plugin-prismjs" "2.0.0-beta.67"
+ "@vuepress/plugin-theme-data" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ "@vueuse/core" "^10.4.1"
+ sass "^1.66.1"
+ sass-loader "^13.3.2"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-"@vuepress/theme-default@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.9.8.tgz#303ed3c73e37c3821e6447f90ead2e5629856560"
- integrity sha512-j0wC6fvRtlRRCg0chbYzNlTTeov36ASxfRaE+r/9kKZAFM0NDCQr3N79jYVx2vEVvlgrjq51moe1WgFqjjFPUg==
+"@vuepress/utils@2.0.0-beta.67":
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/@vuepress/utils/-/utils-2.0.0-beta.67.tgz#16bcc4bb5a3db270f205ca7b809c178d6774d9fa"
+ integrity sha512-wCK0uggm4gXroy7UkS1u8wDQmD4b0L6Gjqd/1PZTDhNlMLsrjBx7lqqoIKqarMdB2wmDLroPJcC9otvCz2oQug==
dependencies:
- "@vuepress/plugin-active-header-links" "1.9.8"
- "@vuepress/plugin-nprogress" "1.9.8"
- "@vuepress/plugin-search" "1.9.8"
- "@vuepress/types" "1.9.8"
- docsearch.js "^2.5.2"
- lodash "^4.17.15"
- stylus "^0.54.8"
- stylus-loader "^3.0.2"
- vuepress-plugin-container "^2.0.2"
- vuepress-plugin-smooth-scroll "^0.0.3"
+ "@types/debug" "^4.1.8"
+ "@types/fs-extra" "^11.0.1"
+ "@types/hash-sum" "^1.0.0"
+ "@vuepress/shared" "2.0.0-beta.67"
+ debug "^4.3.4"
+ fs-extra "^11.1.1"
+ globby "^13.2.2"
+ hash-sum "^2.0.0"
+ ora "^7.0.1"
+ picocolors "^1.0.0"
+ upath "^2.0.1"
-"@vuepress/types@1.9.8":
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/@vuepress/types/-/types-1.9.8.tgz#bf22bae02e265bc1f7b016495a236fa3ba97fa5c"
- integrity sha512-ygRFqILi4SQjExxvpVUFXB/h76dN+k8GrDWYhAgmox1zhWEEzsskbqewXGKWE48RW9EJDYGgh8jy+CWvm7ILXg==
+"@vueuse/core@^10.4.1":
+ version "10.4.1"
+ resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.4.1.tgz#fc2c8a83a571c207aaedbe393b22daa6d35123f2"
+ integrity sha512-DkHIfMIoSIBjMgRRvdIvxsyboRZQmImofLyOHADqiVbQVilP8VVHDhBX2ZqoItOgu7dWa8oXiNnScOdPLhdEXg==
dependencies:
- "@types/markdown-it" "^10.0.0"
- "@types/webpack-dev-server" "^3"
- webpack-chain "^6.0.0"
+ "@types/web-bluetooth" "^0.0.17"
+ "@vueuse/metadata" "10.4.1"
+ "@vueuse/shared" "10.4.1"
+ vue-demi ">=0.14.5"
-"@webassemblyjs/ast@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
- integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
+"@vueuse/metadata@10.4.1":
+ version "10.4.1"
+ resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.4.1.tgz#9d2ff5c67abf17a8c07865c2413fbd0e92f7b7d7"
+ integrity sha512-2Sc8X+iVzeuMGHr6O2j4gv/zxvQGGOYETYXEc41h0iZXIRnRbJZGmY/QP8dvzqUelf8vg0p/yEA5VpCEu+WpZg==
+
+"@vueuse/shared@10.4.1":
+ version "10.4.1"
+ resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.4.1.tgz#d5ce33033c156efb60664b5d6034d6cd4e2f530c"
+ integrity sha512-vz5hbAM4qA0lDKmcr2y3pPdU+2EVw/yzfRsBdu+6+USGa4PxqSQRYIUC9/NcT06y+ZgaTsyURw2I9qOFaaXHAg==
dependencies:
- "@webassemblyjs/helper-module-context" "1.9.0"
- "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
- "@webassemblyjs/wast-parser" "1.9.0"
+ vue-demi ">=0.14.5"
-"@webassemblyjs/floating-point-hex-parser@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
- integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
+ansi-regex@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
-"@webassemblyjs/helper-api-error@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
- integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
-
-"@webassemblyjs/helper-buffer@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
- integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
-
-"@webassemblyjs/helper-code-frame@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
- integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
- dependencies:
- "@webassemblyjs/wast-printer" "1.9.0"
-
-"@webassemblyjs/helper-fsm@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
- integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
-
-"@webassemblyjs/helper-module-context@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
- integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
-
-"@webassemblyjs/helper-wasm-bytecode@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
- integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
-
-"@webassemblyjs/helper-wasm-section@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
- integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/helper-buffer" "1.9.0"
- "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
- "@webassemblyjs/wasm-gen" "1.9.0"
-
-"@webassemblyjs/ieee754@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
- integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
- dependencies:
- "@xtuc/ieee754" "^1.2.0"
-
-"@webassemblyjs/leb128@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
- integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
- dependencies:
- "@xtuc/long" "4.2.2"
-
-"@webassemblyjs/utf8@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
- integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
-
-"@webassemblyjs/wasm-edit@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
- integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/helper-buffer" "1.9.0"
- "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
- "@webassemblyjs/helper-wasm-section" "1.9.0"
- "@webassemblyjs/wasm-gen" "1.9.0"
- "@webassemblyjs/wasm-opt" "1.9.0"
- "@webassemblyjs/wasm-parser" "1.9.0"
- "@webassemblyjs/wast-printer" "1.9.0"
-
-"@webassemblyjs/wasm-gen@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
- integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
- "@webassemblyjs/ieee754" "1.9.0"
- "@webassemblyjs/leb128" "1.9.0"
- "@webassemblyjs/utf8" "1.9.0"
-
-"@webassemblyjs/wasm-opt@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
- integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/helper-buffer" "1.9.0"
- "@webassemblyjs/wasm-gen" "1.9.0"
- "@webassemblyjs/wasm-parser" "1.9.0"
-
-"@webassemblyjs/wasm-parser@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
- integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/helper-api-error" "1.9.0"
- "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
- "@webassemblyjs/ieee754" "1.9.0"
- "@webassemblyjs/leb128" "1.9.0"
- "@webassemblyjs/utf8" "1.9.0"
-
-"@webassemblyjs/wast-parser@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
- integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/floating-point-hex-parser" "1.9.0"
- "@webassemblyjs/helper-api-error" "1.9.0"
- "@webassemblyjs/helper-code-frame" "1.9.0"
- "@webassemblyjs/helper-fsm" "1.9.0"
- "@xtuc/long" "4.2.2"
-
-"@webassemblyjs/wast-printer@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
- integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/wast-parser" "1.9.0"
- "@xtuc/long" "4.2.2"
-
-"@xtuc/ieee754@^1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
- integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
-
-"@xtuc/long@4.2.2":
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
- integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
-
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
-accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
- version "1.3.8"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
- integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
- dependencies:
- mime-types "~2.1.34"
- negotiator "0.6.3"
-
-acorn@^6.4.1:
- version "6.4.2"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
- integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
-
-agentkeepalive@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef"
- integrity sha512-TnB6ziK363p7lR8QpeLC8aMr8EGYBKZTpgzQLfqTs3bR0Oo5VbKdwKf8h0dSzsYrB7lSCgfJnMZKqShvlq5Oyg==
-
-ajv-errors@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
- integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
-
-ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
- integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
-
-ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4:
- version "6.12.6"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-algoliasearch@^3.24.5:
- version "3.35.1"
- resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.35.1.tgz#297d15f534a3507cab2f5dfb996019cac7568f0c"
- integrity sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==
- dependencies:
- agentkeepalive "^2.2.0"
- debug "^2.6.9"
- envify "^4.0.0"
- es6-promise "^4.1.0"
- events "^1.1.0"
- foreach "^2.0.5"
- global "^4.3.2"
- inherits "^2.0.1"
- isarray "^2.0.1"
- load-script "^1.0.0"
- object-keys "^1.0.11"
- querystring-es3 "^0.2.1"
- reduce "^1.0.1"
- semver "^5.1.0"
- tunnel-agent "^0.6.0"
-
-alphanum-sort@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
- integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==
-
-ansi-align@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59"
- integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==
- dependencies:
- string-width "^4.1.0"
-
-ansi-colors@^3.0.0:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
- integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
-
-ansi-escapes@^4.1.0:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
- dependencies:
- type-fest "^0.21.3"
-
-ansi-html-community@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
- integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
-
-ansi-regex@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
- integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-anymatch@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
- integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
- dependencies:
- micromatch "^3.1.4"
- normalize-path "^2.1.1"
-
-anymatch@^3.0.0, anymatch@~3.1.2:
+anymatch@~3.1.2:
version "3.1.3"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-aproba@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
- integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
argparse@^1.0.7:
version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
-arr-diff@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
- integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-arr-flatten@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
- integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
- integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
-
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
- integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-
-array-flatten@^2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
- integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
-
-array-union@^1.0.1, array-union@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
- integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==
+autoprefixer@^10.4.15:
+ version "10.4.15"
+ resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530"
+ integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==
dependencies:
- array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
- integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==
-
-array-unique@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
- integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
-
-array.prototype.reduce@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac"
- integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- es-array-method-boxes-properly "^1.0.0"
- is-string "^1.0.7"
-
-asn1.js@^5.2.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
- integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
- dependencies:
- bn.js "^4.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- safer-buffer "^2.1.0"
-
-asn1@~0.2.3:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
- integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
- dependencies:
- safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
- integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
-
-assert@^1.1.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
- integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
- dependencies:
- object-assign "^4.1.1"
- util "0.10.3"
-
-assign-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
- integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
-
-async-each@^1.0.1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77"
- integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==
-
-async-limiter@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
- integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
-
-async@^2.6.4:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
- integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
- dependencies:
- lodash "^4.17.14"
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
- integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
-
-atob@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
- integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-autocomplete.js@0.36.0:
- version "0.36.0"
- resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.36.0.tgz#94fe775fe64b6cd42e622d076dc7fd26bedd837b"
- integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==
- dependencies:
- immediate "^3.2.3"
-
-autoprefixer@^9.5.1:
- version "9.8.8"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a"
- integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==
- dependencies:
- browserslist "^4.12.0"
- caniuse-lite "^1.0.30001109"
+ browserslist "^4.21.10"
+ caniuse-lite "^1.0.30001520"
+ fraction.js "^4.2.0"
normalize-range "^0.1.2"
- num2fraction "^1.2.2"
- picocolors "^0.2.1"
- postcss "^7.0.32"
- postcss-value-parser "^4.1.0"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
-available-typed-arrays@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
- integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+balloon-css@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/balloon-css/-/balloon-css-1.2.0.tgz#53d3fb4051264a278a58713bed6865845dbcaf4b"
+ integrity sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
- integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
-
-aws4@^1.8.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
- integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
-
-babel-loader@^8.0.4:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8"
- integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==
- dependencies:
- find-cache-dir "^3.3.1"
- loader-utils "^2.0.0"
- make-dir "^3.1.0"
- schema-utils "^2.6.5"
-
-babel-plugin-dynamic-import-node@^2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
- integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
- dependencies:
- object.assign "^4.1.0"
-
-babel-plugin-polyfill-corejs2@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
- integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
- dependencies:
- "@babel/compat-data" "^7.17.7"
- "@babel/helper-define-polyfill-provider" "^0.3.3"
- semver "^6.1.1"
-
-babel-plugin-polyfill-corejs3@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
- integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
- dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.3"
- core-js-compat "^3.25.1"
-
-babel-plugin-polyfill-regenerator@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
- integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
- dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.3"
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-base64-js@^1.0.2:
+base64-js@^1.3.1:
version "1.5.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-base@^0.11.1:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
- integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
- dependencies:
- cache-base "^1.0.1"
- class-utils "^0.3.5"
- component-emitter "^1.2.1"
- define-property "^1.0.0"
- isobject "^3.0.1"
- mixin-deep "^1.2.0"
- pascalcase "^0.1.1"
-
-batch@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
- integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==
-
-bcrypt-pbkdf@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
- integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
- dependencies:
- tweetnacl "^0.14.3"
-
-big.js@^3.1.3:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
- integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
-
-big.js@^5.2.2:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
- integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
-
-binary-extensions@^1.0.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
- integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
-
binary-extensions@^2.0.0:
version "2.2.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
-bindings@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
- integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+bl@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273"
+ integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==
dependencies:
- file-uri-to-path "1.0.0"
+ buffer "^6.0.3"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
-bluebird@^3.1.1, bluebird@^3.5.5:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
- integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
- integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-
-bn.js@^5.0.0, bn.js@^5.1.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
- integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
-
-body-parser@1.20.1:
- version "1.20.1"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
- integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
- dependencies:
- bytes "3.1.2"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- on-finished "2.4.1"
- qs "6.11.0"
- raw-body "2.5.1"
- type-is "~1.6.18"
- unpipe "1.0.0"
-
-bonjour@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
- integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==
- dependencies:
- array-flatten "^2.1.0"
- deep-equal "^1.0.1"
- dns-equal "^1.0.0"
- dns-txt "^2.0.2"
- multicast-dns "^6.0.1"
- multicast-dns-service-types "^1.1.0"
-
-boolbase@^1.0.0, boolbase@~1.0.0:
+boolbase@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
-boxen@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
- integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==
- dependencies:
- ansi-align "^3.0.0"
- camelcase "^5.3.1"
- chalk "^3.0.0"
- cli-boxes "^2.2.0"
- string-width "^4.1.0"
- term-size "^2.1.0"
- type-fest "^0.8.1"
- widest-line "^3.1.0"
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@^2.3.1, braces@^2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
- integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
- dependencies:
- arr-flatten "^1.1.0"
- array-unique "^0.3.2"
- extend-shallow "^2.0.1"
- fill-range "^4.0.0"
- isobject "^3.0.1"
- repeat-element "^1.1.2"
- snapdragon "^0.8.1"
- snapdragon-node "^2.0.1"
- split-string "^3.0.2"
- to-regex "^3.0.1"
-
braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
-brorand@^1.0.1, brorand@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
- integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
- integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
+browserslist@^4.21.10:
+ version "4.21.10"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
+ integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
dependencies:
- buffer-xor "^1.0.3"
- cipher-base "^1.0.0"
- create-hash "^1.1.0"
- evp_bytestokey "^1.0.3"
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
+ caniuse-lite "^1.0.30001517"
+ electron-to-chromium "^1.4.477"
+ node-releases "^2.0.13"
+ update-browserslist-db "^1.0.11"
-browserify-cipher@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
- integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
dependencies:
- browserify-aes "^1.0.4"
- browserify-des "^1.0.0"
- evp_bytestokey "^1.0.0"
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
-browserify-des@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
- integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
- dependencies:
- cipher-base "^1.0.1"
- des.js "^1.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
- integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
- dependencies:
- bn.js "^5.0.0"
- randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
- integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
- dependencies:
- bn.js "^5.1.1"
- browserify-rsa "^4.0.1"
- create-hash "^1.2.0"
- create-hmac "^1.1.7"
- elliptic "^6.5.3"
- inherits "^2.0.4"
- parse-asn1 "^5.1.5"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
-browserify-zlib@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
- integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
- dependencies:
- pako "~1.0.5"
-
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.5:
- version "4.21.5"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
- integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
- dependencies:
- caniuse-lite "^1.0.30001449"
- electron-to-chromium "^1.4.284"
- node-releases "^2.0.8"
- update-browserslist-db "^1.0.10"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-buffer-indexof@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
- integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
-
-buffer-json@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23"
- integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==
-
-buffer-xor@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
- integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
-
-buffer@^4.3.0:
- version "4.9.2"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
- integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
- dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
-builtin-status-codes@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
- integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
-
-bundle-require@2.1.8:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-2.1.8.tgz#28f6de9d4468a6b7b76fb5c9bf52e70f5091245d"
- integrity sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw==
-
-bytes@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
- integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==
-
-bytes@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
- integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-
-cac@^6.5.6:
+cac@^6.7.14:
version "6.7.14"
- resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
+ resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
-cacache@^12.0.2, cacache@^12.0.3:
- version "12.0.4"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
- integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
+caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520:
+ version "1.0.30001527"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz#813826554828245ccee776c850566dce12bdeaba"
+ integrity sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==
+
+chalk@^5.0.0, chalk@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385"
+ integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
+
+cheerio-select@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
+ integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
dependencies:
- bluebird "^3.5.5"
- chownr "^1.1.1"
- figgy-pudding "^3.5.1"
- glob "^7.1.4"
- graceful-fs "^4.1.15"
- infer-owner "^1.0.3"
- lru-cache "^5.1.1"
- mississippi "^3.0.0"
- mkdirp "^0.5.1"
- move-concurrently "^1.0.1"
- promise-inflight "^1.0.1"
- rimraf "^2.6.3"
- ssri "^6.0.1"
- unique-filename "^1.1.1"
- y18n "^4.0.0"
+ boolbase "^1.0.0"
+ css-select "^5.1.0"
+ css-what "^6.1.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.3"
+ domutils "^3.0.1"
-cache-base@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
- integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+cheerio@1.0.0-rc.12:
+ version "1.0.0-rc.12"
+ resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683"
+ integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==
dependencies:
- collection-visit "^1.0.0"
- component-emitter "^1.2.1"
- get-value "^2.0.6"
- has-value "^1.0.0"
- isobject "^3.0.1"
- set-value "^2.0.0"
- to-object-path "^0.3.0"
- union-value "^1.0.0"
- unset-value "^1.0.0"
+ cheerio-select "^2.1.0"
+ dom-serializer "^2.0.0"
+ domhandler "^5.0.3"
+ domutils "^3.0.1"
+ htmlparser2 "^8.0.1"
+ parse5 "^7.0.0"
+ parse5-htmlparser2-tree-adapter "^7.0.0"
-cache-loader@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af"
- integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==
- dependencies:
- buffer-json "^2.0.0"
- find-cache-dir "^2.1.0"
- loader-utils "^1.2.3"
- mkdirp "^0.5.1"
- neo-async "^2.6.1"
- schema-utils "^1.0.0"
-
-cacheable-request@^6.0.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
- integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
- dependencies:
- clone-response "^1.0.2"
- get-stream "^5.1.0"
- http-cache-semantics "^4.0.0"
- keyv "^3.0.0"
- lowercase-keys "^2.0.0"
- normalize-url "^4.1.0"
- responselike "^1.0.2"
-
-call-bind@^1.0.0, call-bind@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
- integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
- dependencies:
- function-bind "^1.1.1"
- get-intrinsic "^1.0.2"
-
-call-me-maybe@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa"
- integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==
-
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==
- dependencies:
- callsites "^2.0.0"
-
-caller-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==
- dependencies:
- caller-callsite "^2.0.0"
-
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==
-
-camel-case@3.0.x:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
- integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==
- dependencies:
- no-case "^2.2.0"
- upper-case "^1.1.1"
-
-camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.0.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-caniuse-api@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
- integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
- dependencies:
- browserslist "^4.0.0"
- caniuse-lite "^1.0.0"
- lodash.memoize "^4.1.2"
- lodash.uniq "^4.5.0"
-
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001449:
- version "1.0.30001457"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001457.tgz#6af34bb5d720074e2099432aa522c21555a18301"
- integrity sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA==
-
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
- integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
-
-chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-chalk@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
- integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-chalk@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-chokidar@^2.0.3, chokidar@^2.1.8:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
- integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
- dependencies:
- anymatch "^2.0.0"
- async-each "^1.0.1"
- braces "^2.3.2"
- glob-parent "^3.1.0"
- inherits "^2.0.3"
- is-binary-path "^1.0.0"
- is-glob "^4.0.0"
- normalize-path "^3.0.0"
- path-is-absolute "^1.0.0"
- readdirp "^2.2.1"
- upath "^1.1.1"
- optionalDependencies:
- fsevents "^1.2.7"
-
-chokidar@^3.4.1:
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
version "3.5.3"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
dependencies:
anymatch "~3.1.2"
@@ -2462,1797 +796,277 @@ chokidar@^3.4.1:
optionalDependencies:
fsevents "~2.3.2"
-chownr@^1.1.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
- integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+cli-cursor@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea"
+ integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==
+ dependencies:
+ restore-cursor "^4.0.0"
-chrome-trace-event@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
- integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+cli-spinners@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db"
+ integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==
-ci-info@^2.0.0:
+connect-history-api-fallback@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
- integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+ resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
+ integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==
-ci-info@^3.1.1:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91"
- integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
- integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
+cross-spawn@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
-class-utils@^0.3.5:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
- integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
- dependencies:
- arr-union "^3.1.0"
- define-property "^0.2.5"
- isobject "^3.0.0"
- static-extend "^0.1.1"
-
-clean-css@4.2.x:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178"
- integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==
- dependencies:
- source-map "~0.6.0"
-
-cli-boxes@^2.2.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
- integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
-
-cliui@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
- integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
- dependencies:
- string-width "^3.1.0"
- strip-ansi "^5.2.0"
- wrap-ansi "^5.1.0"
-
-clone-response@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
- integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
- dependencies:
- mimic-response "^1.0.0"
-
-coa@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
- integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
- dependencies:
- "@types/q" "^1.5.1"
- chalk "^2.4.1"
- q "^1.1.2"
-
-collection-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
- integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==
- dependencies:
- map-visit "^1.0.0"
- object-visit "^1.0.0"
-
-color-convert@^1.9.0, color-convert@^1.9.3:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-
-color-name@^1.0.0, color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^1.6.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
- integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
- dependencies:
- color-name "^1.0.0"
- simple-swizzle "^0.2.2"
-
-color@^3.0.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
- integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
- dependencies:
- color-convert "^1.9.3"
- color-string "^1.6.0"
-
-combined-stream@^1.0.6, combined-stream@~1.0.6:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
- integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
- dependencies:
- delayed-stream "~1.0.0"
-
-commander@2.17.x:
- version "2.17.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
- integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
-
-commander@^2.20.0:
- version "2.20.3"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
-commander@~2.19.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
- integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
-
-commondir@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
- integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
-
-component-emitter@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
- integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-compressible@~2.0.16:
- version "2.0.18"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
- integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
- dependencies:
- mime-db ">= 1.43.0 < 2"
-
-compression@^1.7.4:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
- integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
- dependencies:
- accepts "~1.3.5"
- bytes "3.0.0"
- compressible "~2.0.16"
- debug "2.6.9"
- on-headers "~1.0.2"
- safe-buffer "5.1.2"
- vary "~1.1.2"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-concat-stream@^1.5.0:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
- dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-configstore@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
- integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
- dependencies:
- dot-prop "^5.2.0"
- graceful-fs "^4.1.2"
- make-dir "^3.0.0"
- unique-string "^2.0.0"
- write-file-atomic "^3.0.0"
- xdg-basedir "^4.0.0"
-
-connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
- integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
-
-consola@^2.6.0:
- version "2.15.3"
- resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
- integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
-
-console-browserify@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
- integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
-
-consolidate@^0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
- integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==
- dependencies:
- bluebird "^3.1.1"
-
-constants-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
- integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==
-
-content-disposition@0.5.4:
- version "0.5.4"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
- integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
- dependencies:
- safe-buffer "5.2.1"
-
-content-type@~1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
- integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-
-convert-source-map@^1.7.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
- integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
-
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
- integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-
-cookie@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
- integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
-
-copy-concurrently@^1.0.0:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
- integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
- dependencies:
- aproba "^1.1.1"
- fs-write-stream-atomic "^1.0.8"
- iferr "^0.1.5"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
- run-queue "^1.0.0"
-
-copy-descriptor@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
- integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
-
-copy-webpack-plugin@^5.0.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2"
- integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==
- dependencies:
- cacache "^12.0.3"
- find-cache-dir "^2.1.0"
- glob-parent "^3.1.0"
- globby "^7.1.1"
- is-glob "^4.0.1"
- loader-utils "^1.2.3"
- minimatch "^3.0.4"
- normalize-path "^3.0.0"
- p-limit "^2.2.1"
- schema-utils "^1.0.0"
- serialize-javascript "^4.0.0"
- webpack-log "^2.0.0"
-
-core-js-compat@^3.25.1, core-js-compat@^3.6.5:
- version "3.28.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.28.0.tgz#c08456d854608a7264530a2afa281fadf20ecee6"
- integrity sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg==
- dependencies:
- browserslist "^4.21.5"
-
-core-js@^3.6.4, core-js@^3.6.5:
- version "3.28.0"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.28.0.tgz#ed8b9e99c273879fdfff0edfc77ee709a5800e4a"
- integrity sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==
-
-core-util-is@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
-
-core-util-is@~1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
- integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-
-cosmiconfig@^5.0.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
- dependencies:
- import-fresh "^2.0.0"
- is-directory "^0.3.1"
- js-yaml "^3.13.1"
- parse-json "^4.0.0"
-
-create-ecdh@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
- integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
- dependencies:
- bn.js "^4.1.0"
- elliptic "^6.5.3"
-
-create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
- integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
- dependencies:
- cipher-base "^1.0.1"
- inherits "^2.0.1"
- md5.js "^1.3.4"
- ripemd160 "^2.0.1"
- sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
- integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
- dependencies:
- cipher-base "^1.0.3"
- create-hash "^1.1.0"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
- integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
- dependencies:
- nice-try "^1.0.4"
- path-key "^2.0.1"
- semver "^5.5.0"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-crypto-browserify@^3.11.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
- integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
- dependencies:
- browserify-cipher "^1.0.0"
- browserify-sign "^4.0.0"
- create-ecdh "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.0"
- diffie-hellman "^5.0.0"
- inherits "^2.0.1"
- pbkdf2 "^3.0.3"
- public-encrypt "^4.0.0"
- randombytes "^2.0.0"
- randomfill "^1.0.3"
-
-crypto-random-string@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
- integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-
-css-color-names@0.0.4, css-color-names@^0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
- integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==
-
-css-declaration-sorter@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
- integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
- dependencies:
- postcss "^7.0.1"
- timsort "^0.3.0"
-
-css-loader@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea"
- integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==
- dependencies:
- camelcase "^5.2.0"
- icss-utils "^4.1.0"
- loader-utils "^1.2.3"
- normalize-path "^3.0.0"
- postcss "^7.0.14"
- postcss-modules-extract-imports "^2.0.0"
- postcss-modules-local-by-default "^2.0.6"
- postcss-modules-scope "^2.1.0"
- postcss-modules-values "^2.0.0"
- postcss-value-parser "^3.3.0"
- schema-utils "^1.0.0"
-
-css-parse@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4"
- integrity sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==
- dependencies:
- css "^2.0.0"
-
-css-select-base-adapter@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
- integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
-
-css-select@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
- integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
dependencies:
boolbase "^1.0.0"
- css-what "^3.2.1"
- domutils "^1.7.0"
- nth-check "^1.0.2"
-
-css-select@^4.1.3:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
- integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
- dependencies:
- boolbase "^1.0.0"
- css-what "^6.0.1"
- domhandler "^4.3.1"
- domutils "^2.8.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
nth-check "^2.0.1"
-css-tree@1.0.0-alpha.37:
- version "1.0.0-alpha.37"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
- integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
- dependencies:
- mdn-data "2.0.4"
- source-map "^0.6.1"
-
-css-tree@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
- integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
- dependencies:
- mdn-data "2.0.14"
- source-map "^0.6.1"
-
-css-what@^3.2.1:
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
- integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
-
-css-what@^6.0.1:
+css-what@^6.1.0:
version "6.1.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
-css@^2.0.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
- integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
- dependencies:
- inherits "^2.0.3"
- source-map "^0.6.1"
- source-map-resolve "^0.5.2"
- urix "^0.1.0"
+csstype@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
-cssesc@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
- integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+dayjs@^1.11.9:
+ version "1.11.9"
+ resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a"
+ integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==
-cssnano-preset-default@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
- integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
- dependencies:
- css-declaration-sorter "^4.0.1"
- cssnano-util-raw-cache "^4.0.1"
- postcss "^7.0.0"
- postcss-calc "^7.0.1"
- postcss-colormin "^4.0.3"
- postcss-convert-values "^4.0.1"
- postcss-discard-comments "^4.0.2"
- postcss-discard-duplicates "^4.0.2"
- postcss-discard-empty "^4.0.1"
- postcss-discard-overridden "^4.0.1"
- postcss-merge-longhand "^4.0.11"
- postcss-merge-rules "^4.0.3"
- postcss-minify-font-values "^4.0.2"
- postcss-minify-gradients "^4.0.2"
- postcss-minify-params "^4.0.2"
- postcss-minify-selectors "^4.0.2"
- postcss-normalize-charset "^4.0.1"
- postcss-normalize-display-values "^4.0.2"
- postcss-normalize-positions "^4.0.2"
- postcss-normalize-repeat-style "^4.0.2"
- postcss-normalize-string "^4.0.2"
- postcss-normalize-timing-functions "^4.0.2"
- postcss-normalize-unicode "^4.0.1"
- postcss-normalize-url "^4.0.1"
- postcss-normalize-whitespace "^4.0.2"
- postcss-ordered-values "^4.1.2"
- postcss-reduce-initial "^4.0.3"
- postcss-reduce-transforms "^4.0.2"
- postcss-svgo "^4.0.3"
- postcss-unique-selectors "^4.0.1"
-
-cssnano-util-get-arguments@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
- integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==
-
-cssnano-util-get-match@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
- integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==
-
-cssnano-util-raw-cache@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
- integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
- dependencies:
- postcss "^7.0.0"
-
-cssnano-util-same-parent@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
- integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
-
-cssnano@^4.1.10:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
- integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
- dependencies:
- cosmiconfig "^5.0.0"
- cssnano-preset-default "^4.0.8"
- is-resolvable "^1.0.0"
- postcss "^7.0.0"
-
-csso@^4.0.2:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
- integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
- dependencies:
- css-tree "^1.1.2"
-
-csstype@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
- integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
-
-cyclist@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
- integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==
-
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
- dependencies:
- assert-plus "^1.0.0"
-
-de-indent@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
- integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
-
-debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@^3.2.7:
- version "3.2.7"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-debug@^4.1.0, debug@^4.1.1:
+debug@^4.3.4:
version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
-debug@~3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
- integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
dependencies:
- ms "2.0.0"
+ path-type "^4.0.0"
-decamelize@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
-
-decode-uri-component@^0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
- integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
-
-decompress-response@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
- integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==
- dependencies:
- mimic-response "^1.0.0"
-
-deep-equal@^1.0.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
- integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
- dependencies:
- is-arguments "^1.0.4"
- is-date-object "^1.0.1"
- is-regex "^1.0.4"
- object-is "^1.0.1"
- object-keys "^1.1.1"
- regexp.prototype.flags "^1.2.0"
-
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
-deepmerge@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
- integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
-
-default-gateway@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
- integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==
- dependencies:
- execa "^1.0.0"
- ip-regex "^2.1.0"
-
-defer-to-connect@^1.0.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
- integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
-
-define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5"
- integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==
- dependencies:
- has-property-descriptors "^1.0.0"
- object-keys "^1.1.1"
-
-define-property@^0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
- integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==
- dependencies:
- is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
- integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==
- dependencies:
- is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
- integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
- dependencies:
- is-descriptor "^1.0.2"
- isobject "^3.0.1"
-
-del@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
- integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
- dependencies:
- "@types/glob" "^7.1.1"
- globby "^6.1.0"
- is-path-cwd "^2.0.0"
- is-path-in-cwd "^2.0.0"
- p-map "^2.0.0"
- pify "^4.0.1"
- rimraf "^2.6.3"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-
-depd@2.0.0:
+dom-serializer@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
- integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
-
-depd@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
- integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
-
-des.js@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
- integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
+ resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
dependencies:
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
-destroy@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
- integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
-
-detect-node@^2.0.4:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
- integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
-
-diffie-hellman@^5.0.0:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
- integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
- dependencies:
- bn.js "^4.1.0"
- miller-rabin "^4.0.0"
- randombytes "^2.0.0"
-
-dir-glob@^2.0.0, dir-glob@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
- integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
- dependencies:
- path-type "^3.0.0"
-
-dns-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
- integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==
-
-dns-packet@^1.3.1:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
- integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
- dependencies:
- ip "^1.1.0"
- safe-buffer "^5.0.1"
-
-dns-txt@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
- integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==
- dependencies:
- buffer-indexof "^1.0.0"
-
-docsearch.js@^2.5.2:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d"
- integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==
- dependencies:
- algoliasearch "^3.24.5"
- autocomplete.js "0.36.0"
- hogan.js "^3.0.2"
- request "^2.87.0"
- stack-utils "^1.0.1"
- to-factory "^1.0.0"
- zepto "^1.2.0"
-
-dom-converter@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
- integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
- dependencies:
- utila "~0.4"
-
-dom-serializer@0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
- integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
- dependencies:
- domelementtype "^2.0.1"
- entities "^2.0.0"
-
-dom-serializer@^1.0.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
- integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
- dependencies:
- domelementtype "^2.0.1"
- domhandler "^4.2.0"
- entities "^2.0.0"
-
-dom-walk@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
- integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
-
-domain-browser@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
- integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-
-domelementtype@1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
- integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
-
-domelementtype@^2.0.1, domelementtype@^2.2.0:
+domelementtype@^2.3.0:
version "2.3.0"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
-domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
- integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+domhandler@^5.0.2, domhandler@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
dependencies:
- domelementtype "^2.2.0"
+ domelementtype "^2.3.0"
-domutils@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
- integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+domutils@^3.0.1:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e"
+ integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==
dependencies:
- dom-serializer "0"
- domelementtype "1"
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.3"
-domutils@^2.5.2, domutils@^2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
- integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
- dependencies:
- dom-serializer "^1.0.1"
- domelementtype "^2.2.0"
- domhandler "^4.2.0"
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
-dot-prop@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
- integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
- dependencies:
- is-obj "^2.0.0"
+electron-to-chromium@^1.4.477:
+ version "1.4.508"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz#5641ff2f5ba11df4bd960fe6a2f9f70aa8b9af96"
+ integrity sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==
-duplexer3@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e"
- integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==
+emoji-regex@^10.2.1:
+ version "10.2.1"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz#a41c330d957191efd3d9dfe6e1e8e1e9ab048b3f"
+ integrity sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==
-duplexify@^3.4.2, duplexify@^3.6.0:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
- integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
- dependencies:
- end-of-stream "^1.0.0"
- inherits "^2.0.1"
- readable-stream "^2.0.0"
- stream-shift "^1.0.0"
-
-ecc-jsbn@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
- integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
- dependencies:
- jsbn "~0.1.0"
- safer-buffer "^2.1.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-
-electron-to-chromium@^1.4.284:
- version "1.4.304"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.304.tgz#d6eb7fea4073aacc471cf117df08b4b4978dc6ad"
- integrity sha512-6c8M+ojPgDIXN2NyfGn8oHASXYnayj+gSEnGeLMKb9zjsySeVB/j7KkNAAG9yDcv8gNlhvFg5REa1N/kQU6pgA==
-
-elliptic@^6.5.3:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
- integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
- dependencies:
- bn.js "^4.11.9"
- brorand "^1.1.0"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.1"
- inherits "^2.0.4"
- minimalistic-assert "^1.0.1"
- minimalistic-crypto-utils "^1.0.1"
-
-emoji-regex@^7.0.1:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
- integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-emojis-list@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
- integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==
-
-emojis-list@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
- integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
-
-encodeurl@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
- integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
- integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- dependencies:
- once "^1.4.0"
-
-enhanced-resolve@^4.5.0:
+entities@^4.2.0, entities@^4.4.0:
version "4.5.0"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
- integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
- dependencies:
- graceful-fs "^4.1.2"
- memory-fs "^0.5.0"
- tapable "^1.0.0"
+ resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
+ integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-entities@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
- integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+entities@~3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4"
+ integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
-entities@~1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
- integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
+envinfo@^7.10.0:
+ version "7.10.0"
+ resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13"
+ integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==
-envify@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e"
- integrity sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==
- dependencies:
- esprima "^4.0.0"
- through "~2.3.4"
-
-envinfo@^7.2.0:
- version "7.8.1"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
- integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
-
-errno@^0.1.3, errno@~0.1.7:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
- integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
- dependencies:
- prr "~1.0.1"
-
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4:
- version "1.21.1"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6"
- integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==
- dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.2"
- es-set-tostringtag "^2.0.1"
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- function.prototype.name "^1.1.5"
- get-intrinsic "^1.1.3"
- get-symbol-description "^1.0.0"
- globalthis "^1.0.3"
- gopd "^1.0.1"
- has "^1.0.3"
- has-property-descriptors "^1.0.0"
- has-proto "^1.0.1"
- has-symbols "^1.0.3"
- internal-slot "^1.0.4"
- is-array-buffer "^3.0.1"
- is-callable "^1.2.7"
- is-negative-zero "^2.0.2"
- is-regex "^1.1.4"
- is-shared-array-buffer "^1.0.2"
- is-string "^1.0.7"
- is-typed-array "^1.1.10"
- is-weakref "^1.0.2"
- object-inspect "^1.12.2"
- object-keys "^1.1.1"
- object.assign "^4.1.4"
- regexp.prototype.flags "^1.4.3"
- safe-regex-test "^1.0.0"
- string.prototype.trimend "^1.0.6"
- string.prototype.trimstart "^1.0.6"
- typed-array-length "^1.0.4"
- unbox-primitive "^1.0.2"
- which-typed-array "^1.1.9"
-
-es-array-method-boxes-properly@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
- integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
-
-es-set-tostringtag@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
- integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
- dependencies:
- get-intrinsic "^1.1.3"
- has "^1.0.3"
- has-tostringtag "^1.0.0"
-
-es-to-primitive@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
- integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
- dependencies:
- is-callable "^1.1.4"
- is-date-object "^1.0.1"
- is-symbol "^1.0.2"
-
-es6-promise@^4.1.0:
- version "4.2.8"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
- integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
-esbuild-android-arm64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz#8c78cbb617f9f216abfb5a84cca453b51421a1b6"
- integrity sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w==
-
-esbuild-darwin-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz#7424bdb64c104556d36b7429af79ab51415ab8f4"
- integrity sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ==
-
-esbuild-darwin-arm64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz#6a243dc0132aeb11c1991f968a6a9e393f43c6bc"
- integrity sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw==
-
-esbuild-freebsd-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz#e7281e50522e724c4da502504dcd75be0db46c94"
- integrity sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ==
-
-esbuild-freebsd-arm64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz#31e513098efd181d76a3ba3ea285836d37f018a3"
- integrity sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ==
-
-esbuild-linux-32@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz#82cf96accbf55d3007c3338dc3b3144efa9ae108"
- integrity sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A==
-
-esbuild-linux-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz#67bdfe23a6ca918a0bb8e9558a3ee0fdf98c0bc0"
- integrity sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg==
-
-esbuild-linux-arm64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz#f79c69ff0c176559c418de8e59aa3cf388fff992"
- integrity sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg==
-
-esbuild-linux-arm@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz#3d665b35e1c27dbe1c9deb8bf956d7d1f191a21b"
- integrity sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ==
-
-esbuild-linux-mips64le@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz#226114a0cc6649ba0ffd3428118a8f622872f16d"
- integrity sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA==
-
-esbuild-linux-ppc64le@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz#5c67ae56517f2644d567b2ca5ecb97f9520cfc49"
- integrity sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA==
-
-esbuild-netbsd-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz#69dc0469ea089013956d8c6aa71c9e7fc25fc567"
- integrity sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw==
-
-esbuild-openbsd-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz#3a9d04ecf820708e2e5b7d26fa7332e3f19f6b6c"
- integrity sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw==
-
-esbuild-sunos-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz#7c33a682f0fd9565cae7df165d0e8736b7b62623"
- integrity sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg==
-
-esbuild-windows-32@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz#24ec706a5f25b4499048f56146bcff0ed3839dce"
- integrity sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A==
-
-esbuild-windows-64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz#dd6d5b5bace93cd7a9174d31fbd727ba21885abf"
- integrity sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ==
-
-esbuild-windows-arm64@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz#ecfd9ac289606f26760c4f737caaeeadfff3cfe3"
- integrity sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw==
-
-esbuild@0.14.7:
- version "0.14.7"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.7.tgz#e85cead55b0e1001abf1b2ce4a11c1d4d709d13c"
- integrity sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw==
+esbuild@^0.18.10, esbuild@~0.18.20:
+ version "0.18.20"
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
+ integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
optionalDependencies:
- esbuild-android-arm64 "0.14.7"
- esbuild-darwin-64 "0.14.7"
- esbuild-darwin-arm64 "0.14.7"
- esbuild-freebsd-64 "0.14.7"
- esbuild-freebsd-arm64 "0.14.7"
- esbuild-linux-32 "0.14.7"
- esbuild-linux-64 "0.14.7"
- esbuild-linux-arm "0.14.7"
- esbuild-linux-arm64 "0.14.7"
- esbuild-linux-mips64le "0.14.7"
- esbuild-linux-ppc64le "0.14.7"
- esbuild-netbsd-64 "0.14.7"
- esbuild-openbsd-64 "0.14.7"
- esbuild-sunos-64 "0.14.7"
- esbuild-windows-32 "0.14.7"
- esbuild-windows-64 "0.14.7"
- esbuild-windows-arm64 "0.14.7"
+ "@esbuild/android-arm" "0.18.20"
+ "@esbuild/android-arm64" "0.18.20"
+ "@esbuild/android-x64" "0.18.20"
+ "@esbuild/darwin-arm64" "0.18.20"
+ "@esbuild/darwin-x64" "0.18.20"
+ "@esbuild/freebsd-arm64" "0.18.20"
+ "@esbuild/freebsd-x64" "0.18.20"
+ "@esbuild/linux-arm" "0.18.20"
+ "@esbuild/linux-arm64" "0.18.20"
+ "@esbuild/linux-ia32" "0.18.20"
+ "@esbuild/linux-loong64" "0.18.20"
+ "@esbuild/linux-mips64el" "0.18.20"
+ "@esbuild/linux-ppc64" "0.18.20"
+ "@esbuild/linux-riscv64" "0.18.20"
+ "@esbuild/linux-s390x" "0.18.20"
+ "@esbuild/linux-x64" "0.18.20"
+ "@esbuild/netbsd-x64" "0.18.20"
+ "@esbuild/openbsd-x64" "0.18.20"
+ "@esbuild/sunos-x64" "0.18.20"
+ "@esbuild/win32-arm64" "0.18.20"
+ "@esbuild/win32-ia32" "0.18.20"
+ "@esbuild/win32-x64" "0.18.20"
escalade@^3.1.1:
version "3.1.1"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-escape-goat@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
- integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
-
-escape-html@^1.0.3, escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
-
-escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-eslint-scope@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
- integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
- dependencies:
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
esprima@^4.0.0:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esrecurse@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
- integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- dependencies:
- estraverse "^5.2.0"
-
-estraverse@^4.1.1:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
- integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
-
-eventemitter3@^4.0.0:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
- integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
-
-events@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
- integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==
-
-events@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
- integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-
-eventsource@^2.0.2:
+estree-walker@^2.0.2:
version "2.0.2"
- resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508"
- integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==
+ resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+ integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
- integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
+execa@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
+ integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
dependencies:
- md5.js "^1.3.4"
- safe-buffer "^5.1.1"
-
-execa@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
- integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
- dependencies:
- cross-spawn "^6.0.0"
- get-stream "^4.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-expand-brackets@^2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
- integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==
- dependencies:
- debug "^2.3.3"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- posix-character-classes "^0.1.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-express@^4.17.1:
- version "4.18.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
- integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
- dependencies:
- accepts "~1.3.8"
- array-flatten "1.1.1"
- body-parser "1.20.1"
- content-disposition "0.5.4"
- content-type "~1.0.4"
- cookie "0.5.0"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "2.0.0"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- finalhandler "1.2.0"
- fresh "0.5.2"
- http-errors "2.0.0"
- merge-descriptors "1.0.1"
- methods "~1.1.2"
- on-finished "2.4.1"
- parseurl "~1.3.3"
- path-to-regexp "0.1.7"
- proxy-addr "~2.0.7"
- qs "6.11.0"
- range-parser "~1.2.1"
- safe-buffer "5.2.1"
- send "0.18.0"
- serve-static "1.15.0"
- setprototypeof "1.2.0"
- statuses "2.0.1"
- type-is "~1.6.18"
- utils-merge "1.0.1"
- vary "~1.1.2"
+ cross-spawn "^7.0.3"
+ get-stream "^8.0.1"
+ human-signals "^5.0.0"
+ is-stream "^3.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^5.1.0"
+ onetime "^6.0.0"
+ signal-exit "^4.1.0"
+ strip-final-newline "^3.0.0"
extend-shallow@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
dependencies:
is-extendable "^0.1.0"
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
- integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
+fast-glob@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
+ integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
dependencies:
- assign-symbols "^1.0.0"
- is-extendable "^1.0.1"
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
-extend@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
- integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-extglob@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
- integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+fastq@^1.6.0:
+ version "1.15.0"
+ resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
+ integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
dependencies:
- array-unique "^0.3.2"
- define-property "^1.0.0"
- expand-brackets "^2.1.4"
- extend-shallow "^2.0.1"
- fragment-cache "^0.2.1"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
+ reusify "^1.0.4"
-extsprintf@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
- integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
-
-extsprintf@^1.2.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
- integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
-
-fast-deep-equal@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-glob@^2.2.6:
- version "2.2.7"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
- integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
- dependencies:
- "@mrmlnc/readdir-enhanced" "^2.2.1"
- "@nodelib/fs.stat" "^1.1.2"
- glob-parent "^3.1.0"
- is-glob "^4.0.0"
- merge2 "^1.2.3"
- micromatch "^3.1.10"
-
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-faye-websocket@^0.11.3, faye-websocket@^0.11.4:
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
- integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
- dependencies:
- websocket-driver ">=0.5.1"
-
-figgy-pudding@^3.5.1:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
- integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
-
-figures@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
- integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
- dependencies:
- escape-string-regexp "^1.0.5"
-
-file-loader@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa"
- integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==
- dependencies:
- loader-utils "^1.0.2"
- schema-utils "^1.0.0"
-
-file-uri-to-path@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
- integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
-
-fill-range@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
- integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==
- dependencies:
- extend-shallow "^2.0.1"
- is-number "^3.0.0"
- repeat-string "^1.6.1"
- to-regex-range "^2.1.0"
+fflate@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.npmjs.org/fflate/-/fflate-0.8.0.tgz#f93ad1dcbe695a25ae378cf2386624969a7cda32"
+ integrity sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg==
fill-range@^7.0.1:
version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
dependencies:
to-regex-range "^5.0.1"
-finalhandler@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
- integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+fraction.js@^4.2.0:
+ version "4.3.6"
+ resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d"
+ integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==
+
+fs-extra@^11.1.1:
+ version "11.1.1"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d"
+ integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==
dependencies:
- debug "2.6.9"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- on-finished "2.4.1"
- parseurl "~1.3.3"
- statuses "2.0.1"
- unpipe "~1.0.0"
-
-find-cache-dir@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
- integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
- dependencies:
- commondir "^1.0.1"
- make-dir "^2.0.0"
- pkg-dir "^3.0.0"
-
-find-cache-dir@^3.3.1:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
- integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
- dependencies:
- commondir "^1.0.1"
- make-dir "^3.0.2"
- pkg-dir "^4.1.0"
-
-find-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
- integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
- dependencies:
- locate-path "^3.0.0"
-
-find-up@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
- dependencies:
- locate-path "^5.0.0"
- path-exists "^4.0.0"
-
-flush-write-stream@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
- integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.3.6"
-
-follow-redirects@^1.0.0:
- version "1.15.2"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
- integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
-
-for-each@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
- integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
- dependencies:
- is-callable "^1.1.3"
-
-for-in@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
-
-foreach@^2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e"
- integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==
-
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
- integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
-
-form-data@~2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
- integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.6"
- mime-types "^2.1.12"
-
-forwarded@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
- integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
-
-fragment-cache@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
- integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==
- dependencies:
- map-cache "^0.2.2"
-
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
- integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-
-from2@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
- integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
- dependencies:
- inherits "^2.0.1"
- readable-stream "^2.0.0"
-
-fs-extra@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
- integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
-fs-write-stream-atomic@^1.0.8:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
- integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==
- dependencies:
- graceful-fs "^4.1.2"
- iferr "^0.1.5"
- imurmurhash "^0.1.4"
- readable-stream "1 || 2"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@^1.2.7:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
- integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
- dependencies:
- bindings "^1.5.0"
- nan "^2.12.1"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
fsevents@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
- integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+get-stream@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2"
+ integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
-function.prototype.name@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
- integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.0"
- functions-have-names "^1.2.2"
-
-functions-have-names@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
- integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-caller-file@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f"
- integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
- dependencies:
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.3"
-
-get-stream@^4.0.0, get-stream@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
- integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
- dependencies:
- pump "^3.0.0"
-
-get-stream@^5.1.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
- integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
- dependencies:
- pump "^3.0.0"
-
-get-symbol-description@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
- integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.1"
-
-get-value@^2.0.3, get-value@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
- integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==
-
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
- dependencies:
- assert-plus "^1.0.0"
-
-glob-parent@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
- integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==
- dependencies:
- is-glob "^3.1.0"
- path-dirname "^1.0.0"
-
-glob-parent@~5.1.2:
+glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
-glob-to-regexp@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
- integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==
-
-glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+globby@^13.2.2:
+ version "13.2.2"
+ resolved "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592"
+ integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==
dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.3.0"
+ ignore "^5.2.4"
+ merge2 "^1.4.1"
+ slash "^4.0.0"
-global-dirs@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
- integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
- dependencies:
- ini "1.3.7"
+graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.11"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
-global@^4.3.2:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
- integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
- dependencies:
- min-document "^2.19.0"
- process "^0.11.10"
-
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-globalthis@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
- integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
- dependencies:
- define-properties "^1.1.3"
-
-globby@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
- integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==
- dependencies:
- array-union "^1.0.1"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-globby@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
- integrity sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==
- dependencies:
- array-union "^1.0.1"
- dir-glob "^2.0.0"
- glob "^7.1.2"
- ignore "^3.3.5"
- pify "^3.0.0"
- slash "^1.0.0"
-
-globby@^9.2.0:
- version "9.2.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
- integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
- dependencies:
- "@types/glob" "^7.1.1"
- array-union "^1.0.2"
- dir-glob "^2.2.2"
- fast-glob "^2.2.6"
- glob "^7.1.3"
- ignore "^4.0.3"
- pify "^4.0.1"
- slash "^2.0.0"
-
-gopd@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
- integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
- dependencies:
- get-intrinsic "^1.1.3"
-
-got@^9.6.0:
- version "9.6.0"
- resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
- integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
- dependencies:
- "@sindresorhus/is" "^0.14.0"
- "@szmarczak/http-timer" "^1.1.2"
- cacheable-request "^6.0.0"
- decompress-response "^3.3.0"
- duplexer3 "^0.1.4"
- get-stream "^4.1.0"
- lowercase-keys "^1.0.1"
- mimic-response "^1.0.1"
- p-cancelable "^1.0.0"
- to-readable-stream "^1.0.0"
- url-parse-lax "^3.0.0"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
- version "4.2.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
- integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-
-gray-matter@^4.0.1:
+gray-matter@^4.0.3:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798"
+ resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798"
integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==
dependencies:
js-yaml "^3.13.1"
@@ -4260,4354 +1074,676 @@ gray-matter@^4.0.1:
section-matter "^1.0.0"
strip-bom-string "^1.0.0"
-handle-thing@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
- integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
- integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
-
-har-validator@~5.1.3:
- version "5.1.5"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
- integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
- dependencies:
- ajv "^6.12.3"
- har-schema "^2.0.0"
-
-has-bigints@^1.0.1, has-bigints@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
- integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-property-descriptors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
- integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
- dependencies:
- get-intrinsic "^1.1.1"
-
-has-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
- integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
-
-has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
- integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-
-has-tostringtag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
- integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
- dependencies:
- has-symbols "^1.0.2"
-
-has-value@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
- integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==
- dependencies:
- get-value "^2.0.3"
- has-values "^0.1.4"
- isobject "^2.0.0"
-
-has-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
- integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==
- dependencies:
- get-value "^2.0.6"
- has-values "^1.0.0"
- isobject "^3.0.0"
-
-has-values@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
- integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==
-
-has-values@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
- integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==
- dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
-
-has-yarn@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
- integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
-
-has@^1.0.0, has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hash-base@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
- integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
- dependencies:
- inherits "^2.0.4"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
-hash-sum@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
- integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==
-
hash-sum@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
+ resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
-hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
- integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+htmlparser2@^8.0.1:
+ version "8.0.2"
+ resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21"
+ integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==
dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.3"
+ domutils "^3.0.1"
+ entities "^4.4.0"
-he@1.2.x, he@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
- integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+human-signals@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
+ integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
-hex-color-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
- integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-
-highlight.js@^9.7.0:
- version "9.18.5"
- resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
- integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
-
-hmac-drbg@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-hogan.js@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd"
- integrity sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==
- dependencies:
- mkdirp "0.3.0"
- nopt "1.0.10"
-
-hpack.js@^2.1.6:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
- integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==
- dependencies:
- inherits "^2.0.1"
- obuf "^1.0.0"
- readable-stream "^2.0.1"
- wbuf "^1.1.0"
-
-hsl-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
- integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==
-
-hsla-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
- integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==
-
-html-entities@^1.3.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
- integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
-
-html-minifier@^3.2.3:
- version "3.5.21"
- resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
- integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
- dependencies:
- camel-case "3.0.x"
- clean-css "4.2.x"
- commander "2.17.x"
- he "1.2.x"
- param-case "2.1.x"
- relateurl "0.2.x"
- uglify-js "3.4.x"
-
-html-tags@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
- integrity sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==
-
-html-tags@^3.1.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961"
- integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==
-
-htmlparser2@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
- integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
- dependencies:
- domelementtype "^2.0.1"
- domhandler "^4.0.0"
- domutils "^2.5.2"
- entities "^2.0.0"
-
-http-cache-semantics@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
- integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
-
-http-deceiver@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
- integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
-
-http-errors@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
- integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
- dependencies:
- depd "2.0.0"
- inherits "2.0.4"
- setprototypeof "1.2.0"
- statuses "2.0.1"
- toidentifier "1.0.1"
-
-http-errors@~1.6.2:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
- integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.0"
- statuses ">= 1.4.0 < 2"
-
-http-parser-js@>=0.5.1:
- version "0.5.8"
- resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3"
- integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==
-
-http-proxy-middleware@0.19.1:
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
- integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==
- dependencies:
- http-proxy "^1.17.0"
- is-glob "^4.0.0"
- lodash "^4.17.11"
- micromatch "^3.1.10"
-
-http-proxy-middleware@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665"
- integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==
- dependencies:
- "@types/http-proxy" "^1.17.5"
- http-proxy "^1.18.1"
- is-glob "^4.0.1"
- is-plain-obj "^3.0.0"
- micromatch "^4.0.2"
-
-http-proxy@^1.17.0, http-proxy@^1.18.1:
- version "1.18.1"
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
- integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
- dependencies:
- eventemitter3 "^4.0.0"
- follow-redirects "^1.0.0"
- requires-port "^1.0.0"
-
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-https-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
- integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
-
-iconv-lite@0.4.24:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-icss-replace-symbols@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
- integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==
-
-icss-utils@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
- integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
- dependencies:
- postcss "^7.0.14"
-
-ieee754@^1.1.4:
+ieee754@^1.2.1:
version "1.2.1"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-iferr@^0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
- integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==
+ignore@^5.2.4:
+ version "5.2.4"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
+ integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
-ignore@^3.3.5:
- version "3.3.10"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
- integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+immutable@^4.0.0:
+ version "4.3.4"
+ resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f"
+ integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==
-ignore@^4.0.3:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
- integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
-
-immediate@^3.2.3:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266"
- integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==
-
-import-cwd@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
- integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==
- dependencies:
- import-from "^2.1.0"
-
-import-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==
- dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
-
-import-from@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
- integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==
- dependencies:
- resolve-from "^3.0.0"
-
-import-lazy@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
- integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==
-
-import-local@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
- integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
- dependencies:
- pkg-dir "^3.0.0"
- resolve-cwd "^2.0.0"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-indexes-of@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
- integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==
-
-infer-owner@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
- integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+inherits@^2.0.3, inherits@^2.0.4:
version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-inherits@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
- integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==
-
-inherits@2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
-
-ini@1.3.7:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
- integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
-
-ini@~1.3.0:
- version "1.3.8"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
- integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-
-internal-ip@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
- integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==
- dependencies:
- default-gateway "^4.2.0"
- ipaddr.js "^1.9.0"
-
-internal-slot@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986"
- integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==
- dependencies:
- get-intrinsic "^1.2.0"
- has "^1.0.3"
- side-channel "^1.0.4"
-
-ip-regex@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
- integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==
-
-ip@^1.1.0, ip@^1.1.5:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48"
- integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==
-
-ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
- integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-
-is-absolute-url@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
- integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==
-
-is-absolute-url@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
- integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==
-
-is-accessor-descriptor@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
- integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
- dependencies:
- kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
- integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-arguments@^1.0.4:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
- integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
-is-array-buffer@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a"
- integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.3"
- is-typed-array "^1.1.10"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-arrayish@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
- integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
-is-bigint@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
- integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
- dependencies:
- has-bigints "^1.0.1"
-
-is-binary-path@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
- integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==
- dependencies:
- binary-extensions "^1.0.0"
-
is-binary-path@~2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
dependencies:
binary-extensions "^2.0.0"
-is-boolean-object@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
- integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
-is-buffer@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
- integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
-is-ci@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
- integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
- dependencies:
- ci-info "^2.0.0"
-
-is-color-stop@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
- integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==
- dependencies:
- css-color-names "^0.0.4"
- hex-color-regex "^1.1.0"
- hsl-regex "^1.0.0"
- hsla-regex "^1.0.0"
- rgb-regex "^1.0.1"
- rgba-regex "^1.0.0"
-
-is-core-module@^2.9.0:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
- integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
- dependencies:
- has "^1.0.3"
-
-is-data-descriptor@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
- integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
- dependencies:
- kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
- integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-date-object@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
- integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-descriptor@^0.1.0:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
- integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
- dependencies:
- is-accessor-descriptor "^0.1.6"
- is-data-descriptor "^0.1.4"
- kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
- integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
- dependencies:
- is-accessor-descriptor "^1.0.0"
- is-data-descriptor "^1.0.0"
- kind-of "^6.0.2"
-
-is-directory@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
- integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
+is-extendable@^0.1.0:
version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
-is-extendable@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
- integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
- dependencies:
- is-plain-object "^2.0.4"
-
-is-extglob@^2.1.0, is-extglob@^2.1.1:
+is-extglob@^2.1.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
-
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
- integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
-is-glob@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
- integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==
- dependencies:
- is-extglob "^2.1.0"
-
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
+is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
dependencies:
is-extglob "^2.1.1"
-is-installed-globally@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
- integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
- dependencies:
- global-dirs "^2.0.1"
- is-path-inside "^3.0.1"
-
-is-negative-zero@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
- integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
-
-is-npm@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
- integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
-
-is-number-object@^1.0.4:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
- integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==
- dependencies:
- kind-of "^3.0.2"
+is-interactive@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90"
+ integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==
is-number@^7.0.0:
version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
- integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-
-is-path-cwd@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
- integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
-
-is-path-in-cwd@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
- integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
- dependencies:
- is-path-inside "^2.1.0"
-
-is-path-inside@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
- integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
- dependencies:
- path-is-inside "^1.0.2"
-
-is-path-inside@^3.0.1:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
- integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-
-is-plain-obj@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
- integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
-
-is-plain-obj@^3.0.0:
+is-stream@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
- integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
+ integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
- integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
- dependencies:
- isobject "^3.0.1"
-
-is-regex@^1.0.4, is-regex@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
- integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
-is-resolvable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
- integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
-
-is-shared-array-buffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
- integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
- dependencies:
- call-bind "^1.0.2"
-
-is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
-
-is-string@^1.0.5, is-string@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
- integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-symbol@^1.0.2, is-symbol@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
- integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
- dependencies:
- has-symbols "^1.0.2"
-
-is-typed-array@^1.1.10, is-typed-array@^1.1.9:
- version "1.1.10"
- resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
- integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
- dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.2"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-tostringtag "^1.0.0"
-
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
- integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
-
-is-weakref@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
- integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
- dependencies:
- call-bind "^1.0.2"
-
-is-windows@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
- integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-is-wsl@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
- integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==
-
-is-yarn-global@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
- integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
-
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
-
-isarray@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
- integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+is-unicode-supported@^1.1.0, is-unicode-supported@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714"
+ integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==
isexe@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==
- dependencies:
- isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
-
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
- integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
-
-javascript-stringify@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3"
- integrity sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==
-
-javascript-stringify@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79"
- integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==
-
-js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
js-yaml@^3.13.1:
version "3.14.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
- integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
-
-jsesc@^2.5.1:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
- integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
- integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
-
-json-buffer@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
- integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==
-
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
- integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-schema@0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
- integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
-
-json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
- integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
-
-json5@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
- integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
-
-json5@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
- integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
dependencies:
- minimist "^1.2.0"
-
-json5@^2.1.2, json5@^2.2.2:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-
-jsonfile@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
- integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
+ universalify "^2.0.0"
optionalDependencies:
graceful-fs "^4.1.6"
-jsprim@^1.2.2:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
- integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.4.0"
- verror "1.10.0"
-
-keyv@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
- integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
- dependencies:
- json-buffer "3.0.0"
-
-killable@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
- integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
- integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.3"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-last-call-webpack-plugin@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555"
- integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==
- dependencies:
- lodash "^4.17.5"
- webpack-sources "^1.1.0"
+lilconfig@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
-latest-version@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
- integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
- dependencies:
- package-json "^6.3.0"
-
-linkify-it@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
- integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
+linkify-it@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec"
+ integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==
dependencies:
uc.micro "^1.0.1"
-load-script@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4"
- integrity sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==
-
-loader-runner@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
- integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-
-loader-utils@^0.2.16:
- version "0.2.17"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
- integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==
+log-symbols@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93"
+ integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==
dependencies:
- big.js "^3.1.3"
- emojis-list "^2.0.0"
- json5 "^0.5.0"
- object-assign "^4.0.1"
+ chalk "^5.0.0"
+ is-unicode-supported "^1.1.0"
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
- integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
dependencies:
- big.js "^5.2.2"
- emojis-list "^3.0.0"
- json5 "^1.0.1"
+ yallist "^4.0.0"
-loader-utils@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
- integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
+magic-string@^0.30.0:
+ version "0.30.3"
+ resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85"
+ integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==
dependencies:
- big.js "^5.2.2"
- emojis-list "^3.0.0"
- json5 "^2.1.2"
+ "@jridgewell/sourcemap-codec" "^1.4.15"
-locate-path@^3.0.0:
+markdown-it-anchor@^8.6.7:
+ version "8.6.7"
+ resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634"
+ integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==
+
+markdown-it-container@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
- integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
- dependencies:
- p-locate "^3.0.0"
- path-exists "^3.0.0"
+ resolved "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz#1d19b06040a020f9a827577bb7dbf67aa5de9a5b"
+ integrity sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==
-locate-path@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
- integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
- dependencies:
- p-locate "^4.1.0"
-
-lodash._reinterpolate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
- integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==
-
-lodash.clonedeep@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
- integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==
-
-lodash.debounce@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
- integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
-
-lodash.kebabcase@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
- integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==
-
-lodash.memoize@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
- integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
-
-lodash.template@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
- integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
- dependencies:
- lodash._reinterpolate "^3.0.0"
- lodash.templatesettings "^4.0.0"
-
-lodash.templatesettings@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
- integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
- dependencies:
- lodash._reinterpolate "^3.0.0"
-
-lodash.uniq@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
- integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
-
-lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-loglevel@^1.6.8:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4"
- integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==
-
-lower-case@^1.1.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
- integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
-
-lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
- integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
-
-lowercase-keys@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
- integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
-
-lru-cache@^4.1.2:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
- integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
- dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
-
-lru-cache@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
- integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
- dependencies:
- yallist "^3.0.2"
-
-make-dir@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
- integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
- dependencies:
- pify "^4.0.1"
- semver "^5.6.0"
-
-make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
- integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
- dependencies:
- semver "^6.0.0"
-
-map-cache@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
- integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==
-
-map-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
- integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==
- dependencies:
- object-visit "^1.0.0"
-
-markdown-it-anchor@^5.0.2:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz#d549acd64856a8ecd1bea58365ef385effbac744"
- integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==
-
-markdown-it-chain@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc"
- integrity sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==
- dependencies:
- webpack-chain "^4.9.0"
-
-markdown-it-container@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695"
- integrity sha512-IxPOaq2LzrGuFGyYq80zaorXReh2ZHGFOB1/Hen429EJL1XkPI3FJTpx9TsJeua+j2qTru4h3W1TiCRdeivMmA==
-
-markdown-it-emoji@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc"
- integrity sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==
-
-markdown-it-table-of-contents@^0.4.0:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz#3dc7ce8b8fc17e5981c77cc398d1782319f37fbc"
- integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==
+markdown-it-emoji@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz#cd42421c2fda1537d9cc12b9923f5c8aeb9029c8"
+ integrity sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==
markdown-it-task-lists@^2.1.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz#f68f4d2ac2bad5a2c373ba93081a1a6848417088"
+ resolved "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz#f68f4d2ac2bad5a2c373ba93081a1a6848417088"
integrity sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==
-markdown-it@^8.4.1:
- version "8.4.2"
- resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
- integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
+markdown-it@^13.0.1:
+ version "13.0.1"
+ resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430"
+ integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==
dependencies:
- argparse "^1.0.7"
- entities "~1.1.1"
- linkify-it "^2.0.0"
+ argparse "^2.0.1"
+ entities "~3.0.1"
+ linkify-it "^4.0.1"
mdurl "^1.0.1"
uc.micro "^1.0.5"
-md5.js@^1.3.4:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
- integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-mdn-data@2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
- integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
-
-mdn-data@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
- integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-
mdurl@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
+ resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
- integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
+medium-zoom@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.0.8.tgz#2bd1fbcf2961fa7b0e318fe284462aa9b8608ed2"
+ integrity sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA==
-memory-fs@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
- integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==
- dependencies:
- errno "^0.1.3"
- readable-stream "^2.0.1"
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-memory-fs@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
- integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
- dependencies:
- errno "^0.1.3"
- readable-stream "^2.0.1"
-
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
-
-merge-source-map@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
- integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
- dependencies:
- source-map "^0.6.1"
-
-merge2@^1.2.3:
+merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-methods@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
- integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
-
-micromatch@^3.1.10, micromatch@^3.1.4:
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
- integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- braces "^2.3.1"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- extglob "^2.0.4"
- fragment-cache "^0.2.1"
- kind-of "^6.0.2"
- nanomatch "^1.2.9"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.2"
-
-micromatch@^4.0.2:
+micromatch@^4.0.4:
version "4.0.5"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
dependencies:
braces "^3.0.2"
picomatch "^2.3.1"
-miller-rabin@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
- integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
- dependencies:
- bn.js "^4.0.0"
- brorand "^1.0.1"
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
- version "1.52.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
- integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
- version "2.1.35"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
- integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
- dependencies:
- mime-db "1.52.0"
-
-mime@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-mime@^2.0.3, mime@^2.4.4:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
- integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
-
-mimic-response@^1.0.0, mimic-response@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
- integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
-
-min-document@^2.19.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
- integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
- dependencies:
- dom-walk "^0.1.0"
-
-mini-css-extract-plugin@0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz#a3f13372d6fcde912f3ee4cd039665704801e3b9"
- integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==
- dependencies:
- loader-utils "^1.1.0"
- normalize-url "^2.0.1"
- schema-utils "^1.0.0"
- webpack-sources "^1.1.0"
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
- integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
-
-minimatch@^3.0.4, minimatch@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0, minimist@^1.2.6:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
- integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-
-mississippi@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
- integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
- dependencies:
- concat-stream "^1.5.0"
- duplexify "^3.4.2"
- end-of-stream "^1.1.0"
- flush-write-stream "^1.0.0"
- from2 "^2.1.0"
- parallel-transform "^1.1.0"
- pump "^3.0.0"
- pumpify "^1.3.3"
- stream-each "^1.1.0"
- through2 "^2.0.0"
-
-mixin-deep@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
- integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
- dependencies:
- for-in "^1.0.2"
- is-extendable "^1.0.1"
-
-mkdirp@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
- integrity sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==
-
-mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
- integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
- dependencies:
- minimist "^1.2.6"
-
-mkdirp@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
- integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-
-move-concurrently@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
- integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==
- dependencies:
- aproba "^1.1.1"
- copy-concurrently "^1.0.0"
- fs-write-stream-atomic "^1.0.8"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
- run-queue "^1.0.3"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+mimic-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
+ integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
ms@2.1.2:
version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.1.1:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+nanoid@^3.3.6:
+ version "3.3.6"
+ resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
+ integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
-multicast-dns-service-types@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
- integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==
-
-multicast-dns@^6.0.1:
- version "6.2.3"
- resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
- integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
- dependencies:
- dns-packet "^1.3.1"
- thunky "^1.0.2"
-
-nan@^2.12.1:
- version "2.17.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
- integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
-
-nanoid@^3.3.4:
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
- integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
-
-nanomatch@^1.2.9:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
- integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- fragment-cache "^0.2.1"
- is-windows "^1.0.2"
- kind-of "^6.0.2"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-negotiator@0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
- integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
-
-neo-async@^2.5.0, neo-async@^2.6.1:
+neo-async@^2.6.2:
version "2.6.2"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-nice-try@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
- integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-
-no-case@^2.2.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
- integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
- dependencies:
- lower-case "^1.1.1"
-
-node-forge@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
- integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
-
-node-libs-browser@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
- integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
- dependencies:
- assert "^1.1.1"
- browserify-zlib "^0.2.0"
- buffer "^4.3.0"
- console-browserify "^1.1.0"
- constants-browserify "^1.0.0"
- crypto-browserify "^3.11.0"
- domain-browser "^1.1.1"
- events "^3.0.0"
- https-browserify "^1.0.0"
- os-browserify "^0.3.0"
- path-browserify "0.0.1"
- process "^0.11.10"
- punycode "^1.2.4"
- querystring-es3 "^0.2.0"
- readable-stream "^2.3.3"
- stream-browserify "^2.0.1"
- stream-http "^2.7.2"
- string_decoder "^1.0.0"
- timers-browserify "^2.0.4"
- tty-browserify "0.0.0"
- url "^0.11.0"
- util "^0.11.0"
- vm-browserify "^1.0.1"
-
-node-releases@^2.0.8:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
- integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
-
-nopt@1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
- integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==
- dependencies:
- abbrev "1"
-
-normalize-path@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
- integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
- dependencies:
- remove-trailing-separator "^1.0.1"
+node-releases@^2.0.13:
+ version "2.0.13"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
+ integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-range@^0.1.2:
version "0.1.2"
- resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
-normalize-url@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
- integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==
+npm-run-path@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
+ integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
dependencies:
- prepend-http "^2.0.0"
- query-string "^5.0.1"
- sort-keys "^2.0.0"
-
-normalize-url@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
- integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
-
-normalize-url@^4.1.0:
- version "4.5.1"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
- integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
-
-npm-run-path@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
- dependencies:
- path-key "^2.0.0"
-
-nprogress@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
- integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==
-
-nth-check@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
- integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
- dependencies:
- boolbase "~1.0.0"
+ path-key "^4.0.0"
nth-check@^2.0.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
boolbase "^1.0.0"
-num2fraction@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
- integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==
-
-oauth-sign@~0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
- integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-object-copy@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
- integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies:
- copy-descriptor "^0.1.0"
- define-property "^0.2.5"
- kind-of "^3.0.3"
+ mimic-fn "^2.1.0"
-object-inspect@^1.12.2, object-inspect@^1.9.0:
- version "1.12.3"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
- integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
-
-object-is@^1.0.1:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
- integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+onetime@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
+ integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
+ mimic-fn "^4.0.0"
-object-keys@^1.0.11, object-keys@^1.1.0, object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object-visit@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
- integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==
+ora@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz#cdd530ecd865fe39e451a0e7697865669cb11930"
+ integrity sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==
dependencies:
- isobject "^3.0.0"
+ chalk "^5.3.0"
+ cli-cursor "^4.0.0"
+ cli-spinners "^2.9.0"
+ is-interactive "^2.0.0"
+ is-unicode-supported "^1.3.0"
+ log-symbols "^5.1.0"
+ stdin-discarder "^0.1.0"
+ string-width "^6.1.0"
+ strip-ansi "^7.1.0"
-object.assign@^4.1.0, object.assign@^4.1.4:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
- integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
+parse5-htmlparser2-tree-adapter@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1"
+ integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==
dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- has-symbols "^1.0.3"
- object-keys "^1.1.1"
+ domhandler "^5.0.2"
+ parse5 "^7.0.0"
-object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3"
- integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==
+parse5@^7.0.0:
+ version "7.1.2"
+ resolved "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
+ integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
dependencies:
- array.prototype.reduce "^1.0.5"
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
+ entities "^4.4.0"
-object.pick@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==
- dependencies:
- isobject "^3.0.1"
+path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-object.values@^1.1.0:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
- integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-obuf@^1.0.0, obuf@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
- integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-
-on-finished@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
- integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
- dependencies:
- ee-first "1.1.1"
-
-on-headers@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
- integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
- dependencies:
- wrappy "1"
-
-opencollective-postinstall@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
- integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
-
-opn@^5.5.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
- integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==
- dependencies:
- is-wsl "^1.1.0"
-
-optimize-css-assets-webpack-plugin@^5.0.1:
- version "5.0.8"
- resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a"
- integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==
- dependencies:
- cssnano "^4.1.10"
- last-call-webpack-plugin "^3.0.0"
-
-os-browserify@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
- integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
-
-p-cancelable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
- integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
-
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
-
-p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
-p-locate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
- integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
- dependencies:
- p-limit "^2.0.0"
-
-p-locate@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
- integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
- dependencies:
- p-limit "^2.2.0"
-
-p-map@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
- integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
-
-p-retry@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
- integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==
- dependencies:
- retry "^0.12.0"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-package-json@^6.3.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
- integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==
- dependencies:
- got "^9.6.0"
- registry-auth-token "^4.0.0"
- registry-url "^5.0.0"
- semver "^6.2.0"
-
-pako@~1.0.5:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
- integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-
-parallel-transform@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
- integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
- dependencies:
- cyclist "^1.0.1"
- inherits "^2.0.3"
- readable-stream "^2.1.5"
-
-param-case@2.1.x:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
- integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==
- dependencies:
- no-case "^2.2.0"
-
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
- integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
- dependencies:
- asn1.js "^5.2.0"
- browserify-aes "^1.0.0"
- evp_bytestokey "^1.0.0"
- pbkdf2 "^3.0.3"
- safe-buffer "^5.1.1"
-
-parse-json@^4.0.0:
+path-key@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
+ integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
-parseurl@~1.3.2, parseurl@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-pascalcase@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
- integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==
-
-path-browserify@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
- integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-
-path-dirname@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
- integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
-
-path-exists@^4.0.0:
+path-type@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-is-inside@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
- integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==
-
-path-key@^2.0.0, path-key@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
-
-path-type@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
- integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
- dependencies:
- pify "^3.0.0"
-
-pbkdf2@^3.0.3:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
- integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
- dependencies:
- create-hash "^1.1.2"
- create-hmac "^1.1.4"
- ripemd160 "^2.0.1"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
-
-picocolors@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
- integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
+ resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
picocolors@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
-
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
-
-pify@^4.0.1:
+postcss-load-config@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
- integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd"
+ integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==
dependencies:
- pinkie "^2.0.0"
+ lilconfig "^2.0.5"
+ yaml "^2.1.1"
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
-
-pkg-dir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
- integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
- dependencies:
- find-up "^3.0.0"
-
-pkg-dir@^4.1.0:
+postcss-value-parser@^4.2.0:
version "4.2.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
- integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
- dependencies:
- find-up "^4.0.0"
-
-portfinder@^1.0.13, portfinder@^1.0.26:
- version "1.0.32"
- resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81"
- integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==
- dependencies:
- async "^2.6.4"
- debug "^3.2.7"
- mkdirp "^0.5.6"
-
-posix-character-classes@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
- integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
-
-postcss-calc@^7.0.1:
- version "7.0.5"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e"
- integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==
- dependencies:
- postcss "^7.0.27"
- postcss-selector-parser "^6.0.2"
- postcss-value-parser "^4.0.2"
-
-postcss-colormin@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
- integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
- dependencies:
- browserslist "^4.0.0"
- color "^3.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-convert-values@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
- integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
- dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-discard-comments@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
- integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
- dependencies:
- postcss "^7.0.0"
-
-postcss-discard-duplicates@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
- integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
- dependencies:
- postcss "^7.0.0"
-
-postcss-discard-empty@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
- integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
- dependencies:
- postcss "^7.0.0"
-
-postcss-discard-overridden@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
- integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
- dependencies:
- postcss "^7.0.0"
-
-postcss-load-config@^2.0.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
- integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
- dependencies:
- cosmiconfig "^5.0.0"
- import-cwd "^2.0.0"
-
-postcss-loader@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
- integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
- dependencies:
- loader-utils "^1.1.0"
- postcss "^7.0.0"
- postcss-load-config "^2.0.0"
- schema-utils "^1.0.0"
-
-postcss-merge-longhand@^4.0.11:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
- integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
- dependencies:
- css-color-names "0.0.4"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- stylehacks "^4.0.0"
-
-postcss-merge-rules@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
- integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
- dependencies:
- browserslist "^4.0.0"
- caniuse-api "^3.0.0"
- cssnano-util-same-parent "^4.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
- vendors "^1.0.0"
-
-postcss-minify-font-values@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
- integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
- dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-minify-gradients@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
- integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
- dependencies:
- cssnano-util-get-arguments "^4.0.0"
- is-color-stop "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-minify-params@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
- integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
- dependencies:
- alphanum-sort "^1.0.0"
- browserslist "^4.0.0"
- cssnano-util-get-arguments "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- uniqs "^2.0.0"
-
-postcss-minify-selectors@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
- integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
- dependencies:
- alphanum-sort "^1.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
-
-postcss-modules-extract-imports@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
- integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
- dependencies:
- postcss "^7.0.5"
-
-postcss-modules-local-by-default@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63"
- integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==
- dependencies:
- postcss "^7.0.6"
- postcss-selector-parser "^6.0.0"
- postcss-value-parser "^3.3.1"
-
-postcss-modules-scope@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
- integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
- dependencies:
- postcss "^7.0.6"
- postcss-selector-parser "^6.0.0"
-
-postcss-modules-values@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64"
- integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==
- dependencies:
- icss-replace-symbols "^1.1.0"
- postcss "^7.0.6"
-
-postcss-normalize-charset@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
- integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
- dependencies:
- postcss "^7.0.0"
-
-postcss-normalize-display-values@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
- integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
- dependencies:
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-positions@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
- integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
- dependencies:
- cssnano-util-get-arguments "^4.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-repeat-style@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
- integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
- dependencies:
- cssnano-util-get-arguments "^4.0.0"
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-string@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
- integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
- dependencies:
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-timing-functions@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
- integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
- dependencies:
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-unicode@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
- integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
- dependencies:
- browserslist "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-url@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
- integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
- dependencies:
- is-absolute-url "^2.0.0"
- normalize-url "^3.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-normalize-whitespace@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
- integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
- dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-ordered-values@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
- integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
- dependencies:
- cssnano-util-get-arguments "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-reduce-initial@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
- integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
- dependencies:
- browserslist "^4.0.0"
- caniuse-api "^3.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
-
-postcss-reduce-transforms@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
- integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
- dependencies:
- cssnano-util-get-match "^4.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
-
-postcss-safe-parser@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96"
- integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==
- dependencies:
- postcss "^7.0.26"
-
-postcss-selector-parser@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
- integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
- dependencies:
- dot-prop "^5.2.0"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
- version "6.0.11"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
- integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
- dependencies:
- cssesc "^3.0.0"
- util-deprecate "^1.0.2"
-
-postcss-svgo@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
- integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
- dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- svgo "^1.0.0"
-
-postcss-unique-selectors@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
- integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
- dependencies:
- alphanum-sort "^1.0.0"
- postcss "^7.0.0"
- uniqs "^2.0.0"
-
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
- integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
-postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6:
- version "7.0.39"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309"
- integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
+postcss@^8.1.10, postcss@^8.4.27, postcss@^8.4.28:
+ version "8.4.29"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd"
+ integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==
dependencies:
- picocolors "^0.2.1"
- source-map "^0.6.1"
-
-postcss@^8.4.14:
- version "8.4.21"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
- integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
- dependencies:
- nanoid "^3.3.4"
+ nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
-prepend-http@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
- integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
-
-"prettier@^1.18.2 || ^2.0.0":
- version "2.8.4"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3"
- integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==
-
-pretty-error@^2.0.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6"
- integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==
- dependencies:
- lodash "^4.17.20"
- renderkid "^2.0.4"
-
-pretty-time@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e"
- integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
-
-prismjs@^1.13.0:
+prismjs@^1.29.0:
version "1.29.0"
- resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"
+ resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"
integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==
-process-nextick-args@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-process@^0.11.10:
- version "0.11.10"
- resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
- integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
-
-promise-inflight@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
- integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
-
-proxy-addr@~2.0.7:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
- integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
- dependencies:
- forwarded "0.2.0"
- ipaddr.js "1.9.1"
-
-prr@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
- integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
-
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
-
-psl@^1.1.28:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
- integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
-
-public-encrypt@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
- integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
- dependencies:
- bn.js "^4.1.0"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- parse-asn1 "^5.0.0"
- randombytes "^2.0.1"
- safe-buffer "^5.1.2"
-
-pump@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
- integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-pump@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
- integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-pumpify@^1.3.3:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
- integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
- dependencies:
- duplexify "^3.6.0"
- inherits "^2.0.3"
- pump "^2.0.0"
-
-punycode@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
- integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==
-
-punycode@^1.2.4:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
- integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
-
-punycode@^2.1.0, punycode@^2.1.1:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
- integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
-
-pupa@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
- integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
- dependencies:
- escape-goat "^2.0.0"
-
-q@^1.1.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
-
-qs@6.11.0:
- version "6.11.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
- integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
- dependencies:
- side-channel "^1.0.4"
-
-qs@~6.5.2:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
- integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
-
-query-string@^5.0.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
- integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==
- dependencies:
- decode-uri-component "^0.2.0"
- object-assign "^4.1.0"
- strict-uri-encode "^1.0.0"
-
-querystring-es3@^0.2.0, querystring-es3@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
- integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
-
-querystring@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
- integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
-
-querystringify@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
- integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
- integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
- dependencies:
- safe-buffer "^5.1.0"
-
-randomfill@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
- integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
- dependencies:
- randombytes "^2.0.5"
- safe-buffer "^5.1.0"
-
-range-parser@^1.2.1, range-parser@~1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
- integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
- dependencies:
- bytes "3.1.2"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
-rc@1.2.8, rc@^1.2.8:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-readable-stream@^3.0.6, readable-stream@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+readable-stream@^3.4.0:
+ version "3.6.2"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-readdirp@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
- integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
- dependencies:
- graceful-fs "^4.1.11"
- micromatch "^3.1.10"
- readable-stream "^2.0.2"
-
readdirp@~3.6.0:
version "3.6.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
picomatch "^2.2.1"
-reduce@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.2.tgz#0cd680ad3ffe0b060e57a5c68bdfce37168d361b"
- integrity sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==
+restore-cursor@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9"
+ integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==
dependencies:
- object-keys "^1.1.0"
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
-regenerate-unicode-properties@^10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
- integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rollup@^3.27.1, rollup@^3.28.1:
+ version "3.28.1"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433"
+ integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
dependencies:
- regenerate "^1.4.2"
+ queue-microtask "^1.2.2"
-regenerate@^1.4.2:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
- integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-
-regenerator-runtime@^0.13.11:
- version "0.13.11"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
-
-regenerator-transform@^0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
- integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==
- dependencies:
- "@babel/runtime" "^7.8.4"
-
-regex-not@^1.0.0, regex-not@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
- integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
- dependencies:
- extend-shallow "^3.0.2"
- safe-regex "^1.1.0"
-
-regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
- integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- functions-have-names "^1.2.2"
-
-regexpu-core@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.1.tgz#66900860f88def39a5cb79ebd9490e84f17bcdfb"
- integrity sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==
- dependencies:
- "@babel/regjsgen" "^0.8.0"
- regenerate "^1.4.2"
- regenerate-unicode-properties "^10.1.0"
- regjsparser "^0.9.1"
- unicode-match-property-ecmascript "^2.0.0"
- unicode-match-property-value-ecmascript "^2.1.0"
-
-registry-auth-token@^4.0.0:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac"
- integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==
- dependencies:
- rc "1.2.8"
-
-registry-url@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
- integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
- dependencies:
- rc "^1.2.8"
-
-regjsparser@^0.9.1:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
- integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
- dependencies:
- jsesc "~0.5.0"
-
-relateurl@0.2.x:
- version "0.2.7"
- resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
- integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==
-
-remove-trailing-separator@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
- integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
-
-renderkid@^2.0.4:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609"
- integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==
- dependencies:
- css-select "^4.1.3"
- dom-converter "^0.2.0"
- htmlparser2 "^6.1.0"
- lodash "^4.17.21"
- strip-ansi "^3.0.1"
-
-repeat-element@^1.1.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
- integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
-
-repeat-string@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==
-
-request@^2.87.0:
- version "2.88.2"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
- integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.8.0"
- caseless "~0.12.0"
- combined-stream "~1.0.6"
- extend "~3.0.2"
- forever-agent "~0.6.1"
- form-data "~2.3.2"
- har-validator "~5.1.3"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.19"
- oauth-sign "~0.9.0"
- performance-now "^2.1.0"
- qs "~6.5.2"
- safe-buffer "^5.1.2"
- tough-cookie "~2.5.0"
- tunnel-agent "^0.6.0"
- uuid "^3.3.2"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-require-main-filename@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
- integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
-requires-port@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
- integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
-
-resolve-cwd@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
- integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==
- dependencies:
- resolve-from "^3.0.0"
-
-resolve-from@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
- integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==
-
-resolve-url@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
- integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
-
-resolve@^1.14.2, resolve@^1.22.0:
- version "1.22.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
- integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
- dependencies:
- is-core-module "^2.9.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-responselike@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
- integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==
- dependencies:
- lowercase-keys "^1.0.0"
-
-ret@~0.1.10:
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
- integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-retry@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
- integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-
-rgb-regex@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
- integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==
-
-rgba-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
- integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==
-
-rimraf@^2.5.4, rimraf@^2.6.3:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- dependencies:
- glob "^7.1.3"
-
-ripemd160@^2.0.0, ripemd160@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
- integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
-
-run-queue@^1.0.0, run-queue@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
- integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==
- dependencies:
- aproba "^1.1.1"
-
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+safe-buffer@~5.2.0:
version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-safe-regex-test@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
- integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
+sass-loader@^13.3.2:
+ version "13.3.2"
+ resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz#460022de27aec772480f03de17f5ba88fa7e18c6"
+ integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==
dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.3"
- is-regex "^1.1.4"
+ neo-async "^2.6.2"
-safe-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
- integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==
+sass@^1.66.1:
+ version "1.66.1"
+ resolved "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz#04b51c4671e4650aa393740e66a4e58b44d055b1"
+ integrity sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==
dependencies:
- ret "~0.1.10"
-
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-sax@~1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
-schema-utils@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
- integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
- dependencies:
- ajv "^6.1.0"
- ajv-errors "^1.0.0"
- ajv-keywords "^3.1.0"
-
-schema-utils@^2.6.5:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
- integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
- dependencies:
- "@types/json-schema" "^7.0.5"
- ajv "^6.12.4"
- ajv-keywords "^3.5.2"
+ chokidar ">=3.0.0 <4.0.0"
+ immutable "^4.0.0"
+ source-map-js ">=0.6.2 <2.0.0"
section-matter@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
+ resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
dependencies:
extend-shallow "^2.0.1"
kind-of "^6.0.0"
-select-hose@^2.0.0:
+semver@^7.5.4:
+ version "7.5.4"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
+shebang-command@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
- integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==
-
-selfsigned@^1.10.8:
- version "1.10.14"
- resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574"
- integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
dependencies:
- node-forge "^0.10.0"
+ shebang-regex "^3.0.0"
-semver-diff@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
- integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==
- dependencies:
- semver "^6.3.0"
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-semver@^5.1.0, semver@^5.5.0, semver@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-
-send@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
- integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
- dependencies:
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "2.0.0"
- mime "1.6.0"
- ms "2.1.3"
- on-finished "2.4.1"
- range-parser "~1.2.1"
- statuses "2.0.1"
-
-serialize-javascript@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
- integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
- dependencies:
- randombytes "^2.1.0"
-
-serialize-javascript@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c"
- integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==
- dependencies:
- randombytes "^2.1.0"
-
-serve-index@^1.9.1:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
- integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==
- dependencies:
- accepts "~1.3.4"
- batch "0.6.1"
- debug "2.6.9"
- escape-html "~1.0.3"
- http-errors "~1.6.2"
- mime-types "~2.1.17"
- parseurl "~1.3.2"
-
-serve-static@1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
- integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
- dependencies:
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- parseurl "~1.3.3"
- send "0.18.0"
-
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
-
-set-value@^2.0.0, set-value@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
- integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
- dependencies:
- extend-shallow "^2.0.1"
- is-extendable "^0.1.1"
- is-plain-object "^2.0.3"
- split-string "^3.0.1"
-
-setimmediate@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
- integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
-
-setprototypeof@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
- integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
-
-setprototypeof@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
- integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-
-sha.js@^2.4.0, sha.js@^2.4.8:
- version "2.4.11"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
- integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-shebang-command@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
- integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
- dependencies:
- shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
- integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
-
-side-channel@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
- integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
- dependencies:
- call-bind "^1.0.0"
- get-intrinsic "^1.0.2"
- object-inspect "^1.9.0"
-
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.2:
version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-simple-swizzle@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
- integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
- dependencies:
- is-arrayish "^0.3.1"
+signal-exit@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
- integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==
+slash@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
+ integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
-slash@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
- integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
-
-smoothscroll-polyfill@^0.4.3:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz#3a259131dc6930e6ca80003e1cb03b603b69abf8"
- integrity sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==
-
-snapdragon-node@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
- integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
- dependencies:
- define-property "^1.0.0"
- isobject "^3.0.0"
- snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
- integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
- dependencies:
- kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
- integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
- dependencies:
- base "^0.11.1"
- debug "^2.2.0"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- map-cache "^0.2.2"
- source-map "^0.5.6"
- source-map-resolve "^0.5.0"
- use "^3.1.0"
-
-sockjs-client@^1.5.0:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806"
- integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==
- dependencies:
- debug "^3.2.7"
- eventsource "^2.0.2"
- faye-websocket "^0.11.4"
- inherits "^2.0.4"
- url-parse "^1.5.10"
-
-sockjs@^0.3.21:
- version "0.3.24"
- resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
- integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
- dependencies:
- faye-websocket "^0.11.3"
- uuid "^8.3.2"
- websocket-driver "^0.7.4"
-
-sort-keys@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
- integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==
- dependencies:
- is-plain-obj "^1.0.0"
-
-source-list-map@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
- integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-
-source-map-js@^1.0.2:
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
-source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
- integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
- dependencies:
- atob "^2.1.2"
- decode-uri-component "^0.2.0"
- resolve-url "^0.2.1"
- source-map-url "^0.4.0"
- urix "^0.1.0"
-
-source-map-support@~0.5.12:
- version "0.5.21"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
- integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map-url@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
- integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
-
-source-map@0.5.6:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
- integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==
-
-source-map@^0.5.6:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
-
-source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-source-map@^0.7.3:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
- integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
-
-spdy-transport@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
- integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
- dependencies:
- debug "^4.1.0"
- detect-node "^2.0.4"
- hpack.js "^2.1.6"
- obuf "^1.1.2"
- readable-stream "^3.0.6"
- wbuf "^1.7.3"
-
-spdy@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
- integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
- dependencies:
- debug "^4.1.0"
- handle-thing "^2.0.0"
- http-deceiver "^1.2.7"
- select-hose "^2.0.0"
- spdy-transport "^3.0.0"
-
-split-string@^3.0.1, split-string@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
- integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
- dependencies:
- extend-shallow "^3.0.0"
-
sprintf-js@~1.0.2:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-sshpk@^1.7.0:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
- integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
+stdin-discarder@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21"
+ integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==
dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- bcrypt-pbkdf "^1.0.0"
- dashdash "^1.12.0"
- ecc-jsbn "~0.1.1"
- getpass "^0.1.1"
- jsbn "~0.1.0"
- safer-buffer "^2.0.2"
- tweetnacl "~0.14.0"
+ bl "^5.0.0"
-ssri@^6.0.1:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
- integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
+string-width@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz#96488d6ed23f9ad5d82d13522af9e4c4c3fd7518"
+ integrity sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==
dependencies:
- figgy-pudding "^3.5.1"
+ eastasianwidth "^0.2.0"
+ emoji-regex "^10.2.1"
+ strip-ansi "^7.0.1"
-stable@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
- integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-
-stack-utils@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
- integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==
- dependencies:
- escape-string-regexp "^2.0.0"
-
-static-extend@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
- integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==
- dependencies:
- define-property "^0.2.5"
- object-copy "^0.1.0"
-
-statuses@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
- integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-
-"statuses@>= 1.4.0 < 2":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
-
-std-env@^2.2.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.3.1.tgz#d42271908819c243f8defc77a140fc1fcee336a1"
- integrity sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g==
- dependencies:
- ci-info "^3.1.1"
-
-stream-browserify@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
- integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
- dependencies:
- inherits "~2.0.1"
- readable-stream "^2.0.2"
-
-stream-each@^1.1.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
- integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
- dependencies:
- end-of-stream "^1.1.0"
- stream-shift "^1.0.0"
-
-stream-http@^2.7.2:
- version "2.8.3"
- resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
- integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
- dependencies:
- builtin-status-codes "^3.0.0"
- inherits "^2.0.1"
- readable-stream "^2.3.6"
- to-arraybuffer "^1.0.0"
- xtend "^4.0.0"
-
-stream-shift@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
- integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
-
-strict-uri-encode@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
- integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
-
-string-width@^3.0.0, string-width@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
- integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
- dependencies:
- emoji-regex "^7.0.1"
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^5.1.0"
-
-string-width@^4.0.0, string-width@^4.1.0:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-string.prototype.trimend@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
- integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-string.prototype.trimstart@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
- integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-string_decoder@^1.0.0, string_decoder@^1.1.1:
+string_decoder@^1.1.1:
version "1.3.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+strip-ansi@^7.0.1, strip-ansi@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
dependencies:
- safe-buffer "~5.1.0"
-
-strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
- dependencies:
- ansi-regex "^4.1.0"
-
-strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
+ ansi-regex "^6.0.1"
strip-bom-string@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
+ resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==
-strip-eof@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
- integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
+strip-final-newline@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
+ integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
-
-stylehacks@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
- integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
- dependencies:
- browserslist "^4.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
-
-stylus-loader@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6"
- integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==
- dependencies:
- loader-utils "^1.0.2"
- lodash.clonedeep "^4.5.0"
- when "~3.6.x"
-
-stylus@^0.54.8:
- version "0.54.8"
- resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147"
- integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==
- dependencies:
- css-parse "~2.0.0"
- debug "~3.1.0"
- glob "^7.1.6"
- mkdirp "~1.0.4"
- safer-buffer "^2.1.2"
- sax "~1.2.4"
- semver "^6.3.0"
- source-map "^0.7.3"
-
-supports-color@^5.3.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
-supports-color@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
- integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
- dependencies:
- has-flag "^3.0.0"
-
-supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-svg-tags@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
- integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==
-
-svgo@^1.0.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
- integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
- dependencies:
- chalk "^2.4.1"
- coa "^2.0.2"
- css-select "^2.0.0"
- css-select-base-adapter "^0.1.1"
- css-tree "1.0.0-alpha.37"
- csso "^4.0.2"
- js-yaml "^3.13.1"
- mkdirp "~0.5.1"
- object.values "^1.1.0"
- sax "~1.2.4"
- stable "^0.1.8"
- unquote "~1.1.1"
- util.promisify "~1.0.0"
-
-tapable@^1.0.0, tapable@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
- integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
-
-term-size@^2.1.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
- integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
-
-terser-webpack-plugin@^1.4.3:
- version "1.4.5"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b"
- integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==
- dependencies:
- cacache "^12.0.2"
- find-cache-dir "^2.1.0"
- is-wsl "^1.1.0"
- schema-utils "^1.0.0"
- serialize-javascript "^4.0.0"
- source-map "^0.6.1"
- terser "^4.1.2"
- webpack-sources "^1.4.0"
- worker-farm "^1.7.0"
-
-terser@^4.1.2:
- version "4.8.1"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f"
- integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==
- dependencies:
- commander "^2.20.0"
- source-map "~0.6.1"
- source-map-support "~0.5.12"
-
-text-table@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
- integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-
-through2@^2.0.0:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- dependencies:
- readable-stream "~2.3.6"
- xtend "~4.0.1"
-
-through@~2.3.4:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-
-thunky@^1.0.2:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
- integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
-
-timers-browserify@^2.0.4:
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
- integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
- dependencies:
- setimmediate "^1.0.4"
-
-timsort@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
- integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==
-
-to-arraybuffer@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
- integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==
-
-to-factory@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/to-factory/-/to-factory-1.0.0.tgz#8738af8bd97120ad1d4047972ada5563bf9479b1"
- integrity sha512-JVYrY42wMG7ddf+wBUQR/uHGbjUHZbLisJ8N62AMm0iTZ0p8YTcZLzdtomU0+H+wa99VbkyvQGB3zxB7NDzgIQ==
-
-to-fast-properties@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
- integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
-
-to-object-path@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
- integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==
- dependencies:
- kind-of "^3.0.2"
-
-to-readable-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
- integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
-
-to-regex-range@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
- integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==
- dependencies:
- is-number "^3.0.0"
- repeat-string "^1.6.1"
+striptags@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
+ integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
to-regex-range@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
dependencies:
is-number "^7.0.0"
-to-regex@^3.0.1, to-regex@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
- integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
- dependencies:
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- regex-not "^1.0.2"
- safe-regex "^1.1.0"
-
-toidentifier@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
- integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-
-toml@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee"
- integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==
-
-toposort@^1.0.0:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
- integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==
-
-tough-cookie@~2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
- integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
- dependencies:
- psl "^1.1.28"
- punycode "^2.1.1"
-
-tty-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
- integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==
-
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
- dependencies:
- safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
- integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
-
-type-fest@^0.21.3:
- version "0.21.3"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-type-fest@^0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
- integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-
-type-is@~1.6.18:
- version "1.6.18"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.24"
-
-typed-array-length@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
- integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
- dependencies:
- call-bind "^1.0.2"
- for-each "^0.3.3"
- is-typed-array "^1.1.9"
-
-typedarray-to-buffer@^3.1.5:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
- integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
- dependencies:
- is-typedarray "^1.0.0"
-
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+ts-debounce@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/ts-debounce/-/ts-debounce-4.0.0.tgz#33440ef64fab53793c3d546a8ca6ae539ec15841"
+ integrity sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==
uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.6"
- resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
+ resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
-uglify-js@3.4.x:
- version "3.4.10"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
- integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
- dependencies:
- commander "~2.19.0"
- source-map "~0.6.1"
-
-unbox-primitive@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
- integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
- dependencies:
- call-bind "^1.0.2"
- has-bigints "^1.0.2"
- has-symbols "^1.0.3"
- which-boxed-primitive "^1.0.2"
-
-unicode-canonical-property-names-ecmascript@^2.0.0:
+universalify@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
- integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+ resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-unicode-match-property-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
- integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
- dependencies:
- unicode-canonical-property-names-ecmascript "^2.0.0"
- unicode-property-aliases-ecmascript "^2.0.0"
+upath@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b"
+ integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==
-unicode-match-property-value-ecmascript@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
- integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
-
-unicode-property-aliases-ecmascript@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
- integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
-
-union-value@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
- integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
- dependencies:
- arr-union "^3.1.0"
- get-value "^2.0.6"
- is-extendable "^0.1.1"
- set-value "^2.0.1"
-
-uniq@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
- integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==
-
-uniqs@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
- integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==
-
-unique-filename@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
- integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
- dependencies:
- unique-slug "^2.0.0"
-
-unique-slug@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
- integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
- dependencies:
- imurmurhash "^0.1.4"
-
-unique-string@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
- integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
- dependencies:
- crypto-random-string "^2.0.0"
-
-universalify@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
- integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
-unpipe@1.0.0, unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
- integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
-
-unquote@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
- integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==
-
-unset-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
- integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==
- dependencies:
- has-value "^0.3.1"
- isobject "^3.0.0"
-
-upath@^1.1.0, upath@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
- integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
-
-update-browserslist-db@^1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
- integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+update-browserslist-db@^1.0.11:
+ version "1.0.11"
+ resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
+ integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
-update-notifier@^4.0.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
- integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
- dependencies:
- boxen "^4.2.0"
- chalk "^3.0.0"
- configstore "^5.0.1"
- has-yarn "^2.1.0"
- import-lazy "^2.1.0"
- is-ci "^2.0.0"
- is-installed-globally "^0.3.1"
- is-npm "^4.0.0"
- is-yarn-global "^0.3.0"
- latest-version "^5.0.0"
- pupa "^2.0.1"
- semver-diff "^3.1.1"
- xdg-basedir "^4.0.0"
-
-upper-case@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
- integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-urix@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
- integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
-
-url-loader@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8"
- integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==
- dependencies:
- loader-utils "^1.1.0"
- mime "^2.0.3"
- schema-utils "^1.0.0"
-
-url-parse-lax@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
- integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==
- dependencies:
- prepend-http "^2.0.0"
-
-url-parse@^1.5.10:
- version "1.5.10"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
- integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
- dependencies:
- querystringify "^2.1.1"
- requires-port "^1.0.0"
-
-url@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
- integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==
- dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
-
-use@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
- integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
-util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+util-deprecate@^1.0.1:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-util.promisify@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
+vite@~4.4.9:
+ version "4.4.9"
+ resolved "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d"
+ integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==
dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
-
-util.promisify@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
- integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.2"
- has-symbols "^1.0.1"
- object.getownpropertydescriptors "^2.1.0"
-
-util@0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
- integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==
- dependencies:
- inherits "2.0.1"
-
-util@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
- integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
- dependencies:
- inherits "2.0.3"
-
-utila@~0.4:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
- integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==
-
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
- integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-
-uuid@^3.3.2:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
- integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-
-uuid@^8.3.2:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-
-vary@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
- integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-
-vendors@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
- integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
- dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
-
-vm-browserify@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
- integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-
-vue-hot-reload-api@^2.3.0:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
- integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
-
-vue-loader@^15.7.1:
- version "15.10.1"
- resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.10.1.tgz#c451c4cd05a911aae7b5dbbbc09fb913fb3cca18"
- integrity sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==
- dependencies:
- "@vue/component-compiler-utils" "^3.1.0"
- hash-sum "^1.0.2"
- loader-utils "^1.1.0"
- vue-hot-reload-api "^2.3.0"
- vue-style-loader "^4.1.0"
-
-vue-router@^3.4.5:
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8"
- integrity sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==
-
-vue-server-renderer@^2.6.10:
- version "2.7.14"
- resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.7.14.tgz#986f3fdca63fbb38bb6834698f11e0d6a81f182f"
- integrity sha512-NlGFn24tnUrj7Sqb8njhIhWREuCJcM3140aMunLNcx951BHG8j3XOrPP7psSCaFA8z6L4IWEjudztdwTp1CBVw==
- dependencies:
- chalk "^4.1.2"
- hash-sum "^2.0.0"
- he "^1.2.0"
- lodash.template "^4.5.0"
- lodash.uniq "^4.5.0"
- resolve "^1.22.0"
- serialize-javascript "^6.0.0"
- source-map "0.5.6"
-
-vue-style-loader@^4.1.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"
- integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==
- dependencies:
- hash-sum "^1.0.2"
- loader-utils "^1.0.2"
-
-vue-template-compiler@^2.6.10:
- version "2.7.14"
- resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1"
- integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
- dependencies:
- de-indent "^1.0.2"
- he "^1.2.0"
-
-vue-template-es2015-compiler@^1.9.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
- integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
-
-vue@^2.6.10:
- version "2.7.14"
- resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17"
- integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==
- dependencies:
- "@vue/compiler-sfc" "2.7.14"
- csstype "^3.1.0"
-
-vuepress-html-webpack-plugin@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz#219be272ad510faa8750d2d4e70fd028bfd1c16e"
- integrity sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==
- dependencies:
- html-minifier "^3.2.3"
- loader-utils "^0.2.16"
- lodash "^4.17.3"
- pretty-error "^2.0.2"
- tapable "^1.0.0"
- toposort "^1.0.0"
- util.promisify "1.0.0"
-
-vuepress-plugin-container@^2.0.2:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz#37fff05662fedbd63ffd3a5463b2592c7a7f3133"
- integrity sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA==
- dependencies:
- "@vuepress/shared-utils" "^1.2.0"
- markdown-it-container "^2.0.0"
-
-vuepress-plugin-smooth-scroll@^0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz#6eff2d4c186cca917cc9f7df2b0af7de7c8c6438"
- integrity sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg==
- dependencies:
- smoothscroll-polyfill "^0.4.3"
-
-vuepress@^1.9.8:
- version "1.9.8"
- resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.9.8.tgz#8bc436eb89ece2d95339a2a1cd7bfc6a53fcd8d3"
- integrity sha512-bjfSSRHlpxsZIrJo4Ds0mjt01lwC5H/a7ynDqub4zgXl7/osSsM6GmEgIqlc8oMAQ7j3nY7EBsHdAyrQamPjwA==
- dependencies:
- "@vuepress/core" "1.9.8"
- "@vuepress/theme-default" "1.9.8"
- "@vuepress/types" "1.9.8"
- cac "^6.5.6"
- envinfo "^7.2.0"
- opencollective-postinstall "^2.0.2"
- update-notifier "^4.0.0"
-
-watchpack-chokidar2@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
- integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==
- dependencies:
- chokidar "^2.1.8"
-
-watchpack@^1.7.4:
- version "1.7.5"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453"
- integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==
- dependencies:
- graceful-fs "^4.1.2"
- neo-async "^2.5.0"
+ esbuild "^0.18.10"
+ postcss "^8.4.27"
+ rollup "^3.27.1"
optionalDependencies:
- chokidar "^3.4.1"
- watchpack-chokidar2 "^2.0.1"
+ fsevents "~2.3.2"
-wbuf@^1.1.0, wbuf@^1.7.3:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
- integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
+vue-demi@>=0.14.5:
+ version "0.14.6"
+ resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92"
+ integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==
+
+vue-router@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz#382467a7e2923e6a85f015d081e1508052c191b9"
+ integrity sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==
dependencies:
- minimalistic-assert "^1.0.0"
+ "@vue/devtools-api" "^6.5.0"
-webpack-chain@^4.9.0:
- version "4.12.1"
- resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6"
- integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==
+vue@^3.3.4:
+ version "3.3.4"
+ resolved "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6"
+ integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==
dependencies:
- deepmerge "^1.5.2"
- javascript-stringify "^1.6.0"
+ "@vue/compiler-dom" "3.3.4"
+ "@vue/compiler-sfc" "3.3.4"
+ "@vue/runtime-dom" "3.3.4"
+ "@vue/server-renderer" "3.3.4"
+ "@vue/shared" "3.3.4"
-webpack-chain@^6.0.0:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206"
- integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==
+vuepress-plugin-copy-code2@2.0.0-beta.237:
+ version "2.0.0-beta.237"
+ resolved "https://registry.npmjs.org/vuepress-plugin-copy-code2/-/vuepress-plugin-copy-code2-2.0.0-beta.237.tgz#686097f7f9ae8c2966a88b9219cebae82426c6a0"
+ integrity sha512-k8HhFrLLxFc81AURJQh4pXbAlRE4OdF5MflcCSCi4R104A+vNs2DvvkmQHtNTiLyXmrciS8oyS3LwUdRvilhxQ==
dependencies:
- deepmerge "^1.5.2"
- javascript-stringify "^2.0.1"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ "@vueuse/core" "^10.4.1"
+ balloon-css "^1.2.0"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
+ vuepress-plugin-sass-palette "2.0.0-beta.237"
+ vuepress-shared "2.0.0-beta.237"
-webpack-dev-middleware@^3.7.2:
- version "3.7.3"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5"
- integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==
+vuepress-plugin-sass-palette@2.0.0-beta.237:
+ version "2.0.0-beta.237"
+ resolved "https://registry.npmjs.org/vuepress-plugin-sass-palette/-/vuepress-plugin-sass-palette-2.0.0-beta.237.tgz#6098f2bbf5260c83a79c54f26f469c75085f4492"
+ integrity sha512-Z0XpgRpYBp1ulL1zYk+H7XKnFU37HxTRGXFJLOkgEiTmVluQqYxH1pCrWDMvTkwoaEn+xOQytQgCW8S+5jrH0w==
dependencies:
- memory-fs "^0.4.1"
- mime "^2.4.4"
- mkdirp "^0.5.1"
- range-parser "^1.2.1"
- webpack-log "^2.0.0"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ chokidar "^3.5.3"
+ sass "^1.66.1"
+ vuepress-shared "2.0.0-beta.237"
-webpack-dev-server@^3.5.1:
- version "3.11.3"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3"
- integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==
+vuepress-shared@2.0.0-beta.237:
+ version "2.0.0-beta.237"
+ resolved "https://registry.npmjs.org/vuepress-shared/-/vuepress-shared-2.0.0-beta.237.tgz#526e9cbd5d9fb1e2c5ec8183875aa2ebbaf27811"
+ integrity sha512-R4lGkX0GD1yUyK0iDrWIZvJbuoGyi9Z41gPz3jFexJM4ojjirkuvLy6DuMwFCi80GKJlrfWq19Tpeo5z5foPBA==
dependencies:
- ansi-html-community "0.0.8"
- bonjour "^3.5.0"
- chokidar "^2.1.8"
- compression "^1.7.4"
- connect-history-api-fallback "^1.6.0"
- debug "^4.1.1"
- del "^4.1.1"
- express "^4.17.1"
- html-entities "^1.3.1"
- http-proxy-middleware "0.19.1"
- import-local "^2.0.0"
- internal-ip "^4.3.0"
- ip "^1.1.5"
- is-absolute-url "^3.0.3"
- killable "^1.0.1"
- loglevel "^1.6.8"
- opn "^5.5.0"
- p-retry "^3.0.1"
- portfinder "^1.0.26"
- schema-utils "^1.0.0"
- selfsigned "^1.10.8"
- semver "^6.3.0"
- serve-index "^1.9.1"
- sockjs "^0.3.21"
- sockjs-client "^1.5.0"
- spdy "^4.0.2"
- strip-ansi "^3.0.1"
- supports-color "^6.1.0"
- url "^0.11.0"
- webpack-dev-middleware "^3.7.2"
- webpack-log "^2.0.0"
- ws "^6.2.1"
- yargs "^13.3.2"
+ "@vuepress/client" "2.0.0-beta.67"
+ "@vuepress/shared" "2.0.0-beta.67"
+ "@vuepress/utils" "2.0.0-beta.67"
+ "@vueuse/core" "^10.4.1"
+ cheerio "1.0.0-rc.12"
+ dayjs "^1.11.9"
+ execa "^8.0.1"
+ fflate "^0.8.0"
+ gray-matter "^4.0.3"
+ semver "^7.5.4"
+ striptags "^3.2.0"
+ vue "^3.3.4"
+ vue-router "^4.2.4"
-webpack-log@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
- integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
+vuepress-vite@2.0.0-beta.67:
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/vuepress-vite/-/vuepress-vite-2.0.0-beta.67.tgz#24db0ce1ba96e1a50c14883970329f933b9d6418"
+ integrity sha512-oaak2RPKBP0LeaDpDntlsQWLklCBf2vdeceXtPSLV2IzL/wtMHs5DQ/f7zXxCzvku3h/FIstmgoKq/vC0TvHkA==
dependencies:
- ansi-colors "^3.0.0"
- uuid "^3.3.2"
+ "@vuepress/bundler-vite" "2.0.0-beta.67"
+ "@vuepress/cli" "2.0.0-beta.67"
+ "@vuepress/core" "2.0.0-beta.67"
+ "@vuepress/theme-default" "2.0.0-beta.67"
+ vue "^3.3.4"
-webpack-merge@^4.1.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
- integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
+vuepress@2.0.0-beta.67:
+ version "2.0.0-beta.67"
+ resolved "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-beta.67.tgz#eacf63d6d14f2364bd8043f13eba67234319cd53"
+ integrity sha512-931pKDOph20RKMLZAH5YYlMz+nfx9jcOQio1Gxk0pB7DwuSxAVFxPv2dbIUP4E/4uWOkLppRhLYcrOoxEbVYzA==
dependencies:
- lodash "^4.17.15"
+ vuepress-vite "2.0.0-beta.67"
-webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
- integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
- dependencies:
- source-list-map "^2.0.0"
- source-map "~0.6.1"
-
-webpack@^4.8.1:
- version "4.46.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
- integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
- dependencies:
- "@webassemblyjs/ast" "1.9.0"
- "@webassemblyjs/helper-module-context" "1.9.0"
- "@webassemblyjs/wasm-edit" "1.9.0"
- "@webassemblyjs/wasm-parser" "1.9.0"
- acorn "^6.4.1"
- ajv "^6.10.2"
- ajv-keywords "^3.4.1"
- chrome-trace-event "^1.0.2"
- enhanced-resolve "^4.5.0"
- eslint-scope "^4.0.3"
- json-parse-better-errors "^1.0.2"
- loader-runner "^2.4.0"
- loader-utils "^1.2.3"
- memory-fs "^0.4.1"
- micromatch "^3.1.10"
- mkdirp "^0.5.3"
- neo-async "^2.6.1"
- node-libs-browser "^2.2.1"
- schema-utils "^1.0.0"
- tapable "^1.1.3"
- terser-webpack-plugin "^1.4.3"
- watchpack "^1.7.4"
- webpack-sources "^1.4.1"
-
-webpackbar@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.2.0.tgz#bdaad103fad11a4e612500e72aaae98b08ba493f"
- integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==
- dependencies:
- ansi-escapes "^4.1.0"
- chalk "^2.4.1"
- consola "^2.6.0"
- figures "^3.0.0"
- pretty-time "^1.1.0"
- std-env "^2.2.1"
- text-table "^0.2.0"
- wrap-ansi "^5.1.0"
-
-websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
- integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
- dependencies:
- http-parser-js ">=0.5.1"
- safe-buffer ">=5.1.0"
- websocket-extensions ">=0.1.1"
-
-websocket-extensions@>=0.1.1:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
- integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
-
-when@~3.6.x:
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e"
- integrity sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q==
-
-which-boxed-primitive@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
- integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
- dependencies:
- is-bigint "^1.0.1"
- is-boolean-object "^1.1.0"
- is-number-object "^1.0.4"
- is-string "^1.0.5"
- is-symbol "^1.0.3"
-
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==
-
-which-typed-array@^1.1.9:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
- integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
- dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.2"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-tostringtag "^1.0.0"
- is-typed-array "^1.1.10"
-
-which@^1.2.9:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
- integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
-widest-line@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
- integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
- dependencies:
- string-width "^4.0.0"
-
-worker-farm@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
- integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
- dependencies:
- errno "~0.1.7"
-
-wrap-ansi@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
- integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
- dependencies:
- ansi-styles "^3.2.0"
- string-width "^3.0.0"
- strip-ansi "^5.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-write-file-atomic@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
- integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
- dependencies:
- imurmurhash "^0.1.4"
- is-typedarray "^1.0.0"
- signal-exit "^3.0.2"
- typedarray-to-buffer "^3.1.5"
-
-ws@^6.2.1:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
- integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
- dependencies:
- async-limiter "~1.0.0"
-
-xdg-basedir@^4.0.0:
+yallist@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
- integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+ resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-xtend@^4.0.0, xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
- integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==
-
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
-yargs-parser@^13.1.2:
- version "13.1.2"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
- integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
-
-yargs@^13.3.2:
- version "13.3.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
- integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
- dependencies:
- cliui "^5.0.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^13.1.2"
-
-zepto@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/zepto/-/zepto-1.2.0.tgz#e127bd9e66fd846be5eab48c1394882f7c0e4f98"
- integrity sha512-C1x6lfvBICFTQIMgbt3JqMOno3VOtkWat/xEakLTOurskYIHPmzJrzd1e8BnmtdDVJlGuk5D+FxyCA8MPmkIyA==
+yaml@^2.1.1:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144"
+ integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==