@ikenxuan/amagi 5.1.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -20,19 +20,8 @@ amagi 将作为一个独立的上游模块,提供给下游 [karin-plugin-kkk](
20
20
  pnpm add @ikenxuan/amagi@latest
21
21
  ```
22
22
 
23
- ## 版本说明 📋
24
23
 
25
- ### v4 版本 (推荐) 🔄
26
-
27
- v4 版本保持向后兼容,是默认导入版本,适合现有项目的平滑迁移。
28
-
29
- ### v5 版本 (测试中 慎用) 🆕
30
-
31
- v5 版本是当前的主要开发版本,提供了更好的错误处理、统一的响应格式和更强的类型安全性。
32
-
33
- ## 快速开始 (v4 版本) 🚀
34
-
35
- ### 基本用法 ✨
24
+ ## 基本用法
36
25
  主要就两个方法,`getDouyinData` 和 `getBilibiliData`。
37
26
 
38
27
  > 它接收三个参数,
@@ -73,22 +62,6 @@ async function example() {
73
62
  example()
74
63
  ```
75
64
 
76
- ## v5 版本完整指南 🆕
77
-
78
- ### v5 版本使用方式
79
-
80
- ```javascript
81
- // v5 版本导入方式
82
- import { createAmagiClient } from '@ikenxuan/amagi/v5'
83
- // 或者
84
- import amagi from '@ikenxuan/amagi/v5'
85
-
86
- const client = createAmagiClient({ douyin: 'your_cookie' })
87
- const result = await client.getDouyinData('搜索数据', { keyword: '测试' })
88
- ```
89
-
90
- ### v5 版本主要变化
91
-
92
65
  #### 1. 统一的响应格式 📦
93
66
 
94
67
  v5 版本所有 API 返回统一的响应格式:
@@ -116,6 +89,8 @@ if (result.success) {
116
89
 
117
90
  #### 3. 类型模式控制 🎯
118
91
 
92
+ > 接口返回数据的类型类型为自动生成,仅供参考,不保证 100% 准确。
93
+
119
94
  支持 `strict` 和 `loose` 两种类型模式:
120
95
 
121
96
  ```javascript
@@ -132,94 +107,6 @@ const looseResult = await client.getDouyinData(
132
107
  )
133
108
  ```
134
109
 
135
- #### 4. 强化的参数验证 🔍
136
- v5 版本引入了 Zod 进行运行时参数验证,确保数据类型安全和参数完整性。
137
- PS: 当前更改已在 v4.5.0 往后的版本实装
138
-
139
- ```javascript
140
- // 自动参数验证
141
- const result = await client.getDouyinData('搜索数据', {
142
- keyword: '测试', // ✅ 必需参数
143
- offset: 0, // ✅ 可选参数,类型正确
144
- count: 20 // ✅ 可选参数,类型正确
145
- })
146
-
147
- // 参数验证失败示例
148
- const invalidResult = await client.getDouyinData('搜索数据', {
149
- // ❌ 缺少必需参数 keyword
150
- offset: 'invalid' // ❌ 类型错误,应为 number
151
- })
152
- // 返回: { success: false, message: '参数验证失败: ...', code: 400 }
153
- ```
154
-
155
- 验证特性:
156
-
157
- - 🔒 类型安全 :确保参数类型正确
158
- - ✅ 必需参数检查 :自动验证必需参数是否存在
159
- - 🎯 值范围验证 :验证数值范围、字符串长度等
160
- - 🛡️ 注入防护 :防止恶意参数注入
161
- - 📝 详细错误信息 :提供具体的验证失败原因
162
-
163
- ```javascript
164
- // 验证错误响应示例
165
- {
166
- code: 400,
167
- message: "参数验证失败",
168
- data: null,
169
- errors: [
170
- {
171
- path: ["keyword"],
172
- message: "必需参数",
173
- code: "invalid_type"
174
- },
175
- {
176
- path: ["offset"],
177
- message: "期望 number 类型,收到 string",
178
- code: "invalid_type"
179
- }
180
- ]
181
- }
182
- ```
183
-
184
- ### v5 版本兼容性更改 🔄
185
-
186
- #### 向后兼容性 ✅
187
-
188
- - **v4 API 完全兼容**:现有的 v4 代码无需修改即可继续使用
189
- - **默认导入保持 v4**:`import Client from '@ikenxuan/amagi'` 仍然使用 v4 版本
190
- - **渐进式迁移**:可以逐步迁移到 v5 版本,无需一次性重写
191
-
192
- #### 迁移指南 📖
193
-
194
- ##### 从 v4 迁移到 v5
195
-
196
- 1. **更新导入语句**:
197
- ```javascript
198
- // v4
199
- import Client from '@ikenxuan/amagi'
200
-
201
- // v5
202
- import Client from '@ikenxuan/amagi/v5'
203
- ```
204
-
205
- 2. **处理响应格式**:
206
- ```javascript
207
- // v4 - 直接返回数据
208
- const data = await amagi.getDouyinData('搜索数据', { keyword: '测试' })
209
-
210
- // v5 - 包装的响应格式
211
- const response = await client.getDouyinData('搜索数据', { keyword: '测试' })
212
- const data = response.data
213
- ```
214
-
215
- #### 破坏性变更 ⚠️
216
-
217
- v5 版本的破坏性变更:
218
-
219
- 1. **响应格式变更**:所有 API 返回包装的响应对象而非直接数据
220
- 2. **服务器方法重命名**:`startClient()` 重命名为 `startServer()`
221
- 3. **错误处理方式**:错误不再抛出异常,而是在响应对象中返回
222
-
223
110
  ## 高级用法 🔧
224
111
 
225
112
  ### 启动本地 HTTP 服务 🌐
@@ -240,86 +127,7 @@ const app = amagi.startClient()
240
127
  - 抖音 API: `http://localhost:4567/api/douyin/...` 📱
241
128
  - bilibili API: `http://localhost:4567/api/bilibili/...` 📺
242
129
 
243
- API 文档: https://amagi.apifox.cn 📝
244
-
245
- ## 平台功能模块 🧩
246
-
247
- PS: 以下功能模块的使用方法与上述基本用法类似,我也不知道为什么要写这个。。。
248
-
249
- ### 抖音功能模块 📱
250
-
251
- 抖音相关功能模块提供了一系列工具和 API 接口,用于获取抖音平台的数据。
252
-
253
- ```javascript
254
- import { douyinUtils } from '@ikenxuan/amagi'
255
-
256
- // 使用签名算法
257
- const mstoken = douyinUtils.sign.Mstoken(107)
258
- const verifyFp = douyinUtils.sign.VerifyFpManager()
259
- const abSign = douyinUtils.sign.AB('需要签名的地址')
260
-
261
- // 使用 API 接口
262
- const videoData = await douyinUtils.api.getWorkInfo(
263
- { ...opt },
264
- 'cookies'
265
- )
266
-
267
- const userInfo = await douyinUtils.api.getUserProfile(
268
- { ...opt },
269
- 'cookies'
270
- )
271
-
272
- // 直接获取数据
273
- const searchResult = await douyinUtils.getDouyinData(
274
- '搜索数据',
275
- { ...opt }
276
- )
277
- ```
278
-
279
- 主要功能:
280
-
281
- - 📹 视频/图集作品数据获取
282
- - 👤 用户信息获取
283
- - 💬 评论数据获取
284
- - 🔍 搜索功能
285
- - 🎬 直播间信息
286
- - 🎵 音乐数据
287
- - 😄 表情数据
288
-
289
- ### bilibili 功能模块 📺
290
-
291
- bilibili 相关功能模块提供了获取 bilibili 平台数据的工具和 API。
292
-
293
- ```javascript
294
- import { bilibiliUtils } from '@ikenxuan/amagi'
295
-
296
- // 获取视频信息
297
- const videoInfo = await bilibiliUtils.api.getVideoInfo({ ...opt })
298
-
299
- // 获取评论数据
300
- const comments = await bilibiliUtils.api.getComments({ ...opt })
301
-
302
- // 直接获取数据
303
- const userInfo = await bilibiliUtils.getBilibiliData(
304
- '用户主页数据',
305
- { ...opt }
306
- )
307
- ```
308
-
309
- 主要功能:
310
-
311
- - 📹 视频信息获取
312
- - 💬 评论数据获取
313
- - 👤 用户信息获取
314
- - 🎬 番剧信息获取
315
- - 📡 直播间信息
316
- - 📊 动态数据获取
317
- - 🔄 AV/BV 号转换
318
-
319
- ## 类型支持 🧰
320
-
321
- 该库提供完整的 TypeScript 类型支持,可以获得良好的代码提示和类型检查。✅
322
- 虽有类型但写得和迷宫一样
130
+ API 文档: https://amagi.apifox.cn 或 https://ikenxuan.github.io/amagi📝
323
131
 
324
132
  ## 许可证 📜
325
133
 
@@ -27,7 +27,7 @@ var express__default = /*#__PURE__*/_interopDefault(express);
27
27
  * GPL-3.0 Licensed
28
28
  */
29
29
 
30
- // node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.4_tsx@4.20.4_typescript@5.9.2/node_modules/tsup/assets/cjs_shims.js
30
+ // node_modules/.pnpm/tsup@8.5.0_@swc+core@1.13.5_tsx@4.20.5_typescript@5.9.2_yaml@2.8.1/node_modules/tsup/assets/cjs_shims.js
31
31
  var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
32
32
  var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
33
33
  var getPackageLogsPath = () => {
@@ -1763,6 +1763,7 @@ var DouyinData = async (data2, cookie, requestConfig) => {
1763
1763
  const userAgent = (_a = baseRequestConfig.headers) == null ? void 0 : _a["User-Agent"];
1764
1764
  const douyinApiUrls3 = createDouyinApiUrls(userAgent);
1765
1765
  switch (data2.methodType) {
1766
+ case "\u6587\u5B57\u4F5C\u54C1\u6570\u636E":
1766
1767
  case "\u805A\u5408\u89E3\u6790":
1767
1768
  case "\u89C6\u9891\u4F5C\u54C1\u6570\u636E":
1768
1769
  case "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E":
@@ -2233,7 +2234,7 @@ var smartPositiveInteger = (errorMessage) => {
2233
2234
 
2234
2235
  // src/validation/douyin.ts
2235
2236
  var DouyinWorkParamsSchema = zod.z.object({
2236
- methodType: zod.z.enum(["\u89C6\u9891\u4F5C\u54C1\u6570\u636E", "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", "\u805A\u5408\u89E3\u6790"]),
2237
+ methodType: zod.z.enum(["\u6587\u5B57\u4F5C\u54C1\u6570\u636E", "\u89C6\u9891\u4F5C\u54C1\u6570\u636E", "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", "\u805A\u5408\u89E3\u6790"]),
2237
2238
  aweme_id: zod.z.string({ required_error: "\u89C6\u9891ID\u4E0D\u80FD\u4E3A\u7A7A" }).min(1, "\u89C6\u9891ID\u4E0D\u80FD\u4E3A\u7A7A")
2238
2239
  });
2239
2240
  var DouyinCommentParamsSchema = zod.z.object({
@@ -2274,6 +2275,7 @@ var DouyinEmojiProParamsSchema = zod.z.object({
2274
2275
  methodType: zod.z.literal("\u52A8\u6001\u8868\u60C5\u6570\u636E")
2275
2276
  });
2276
2277
  var DouyinValidationSchemas2 = {
2278
+ "\u6587\u5B57\u4F5C\u54C1\u6570\u636E": DouyinWorkParamsSchema,
2277
2279
  "\u805A\u5408\u89E3\u6790": DouyinWorkParamsSchema,
2278
2280
  "\u89C6\u9891\u4F5C\u54C1\u6570\u636E": DouyinWorkParamsSchema,
2279
2281
  "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E": DouyinWorkParamsSchema,
@@ -2999,6 +3001,13 @@ var createBoundDouyinApiMethod = (methodType, cookie, requestConfig) => {
2999
3001
  };
3000
3002
  };
3001
3003
  var douyin = {
3004
+ /**
3005
+ * 获取文字作品数据
3006
+ * @param options 请求参数,包含 aweme_id 和可选的 typeMode
3007
+ * @param cookie 有效的用户 Cookie
3008
+ * @returns 统一格式的API响应,包含文字作品详细信息
3009
+ */
3010
+ getTextWorkInfo: createDouyinApiMethod("\u6587\u5B57\u4F5C\u54C1\u6570\u636E"),
3002
3011
  /**
3003
3012
  * 聚合解析 (视频/图集/合辑)
3004
3013
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
@@ -3100,6 +3109,12 @@ var douyin = {
3100
3109
  };
3101
3110
  var createBoundDouyinApi = (cookie, requestConfig) => {
3102
3111
  return {
3112
+ /**
3113
+ * 获取文字作品数据
3114
+ * @param options 请求参数,包含 aweme_id 和可选的 typeMode
3115
+ * @returns 统一格式的API响应,包含文字作品详细信息
3116
+ */
3117
+ getTextWorkInfo: createBoundDouyinApiMethod("\u6587\u5B57\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
3103
3118
  /**
3104
3119
  * 聚合解析 (视频/图集/合辑)
3105
3120
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
@@ -3471,6 +3486,19 @@ var MajorType = /* @__PURE__ */ ((MajorType2) => {
3471
3486
  MajorType2["UPOWER_COMMON"] = "MAJOR_TYPE_UPOWER_COMMON";
3472
3487
  return MajorType2;
3473
3488
  })(MajorType || {});
3489
+ var AdditionalType = /* @__PURE__ */ ((AdditionalType2) => {
3490
+ AdditionalType2["NONE"] = "ADDITIONAL_TYPE_NONE";
3491
+ AdditionalType2["PGC"] = "ADDITIONAL_TYPE_PGC";
3492
+ AdditionalType2["GOODS"] = "ADDITIONAL_TYPE_GOODS";
3493
+ AdditionalType2["VOTE"] = "ADDITIONAL_TYPE_VOTE";
3494
+ AdditionalType2["COMMON"] = "ADDITIONAL_TYPE_COMMON";
3495
+ AdditionalType2["MATCH"] = "ADDITIONAL_TYPE_MATCH";
3496
+ AdditionalType2["UP_RCMD"] = "ADDITIONAL_TYPE_UP_RCMD";
3497
+ AdditionalType2["UGC"] = "ADDITIONAL_TYPE_UGC";
3498
+ AdditionalType2["RESERVE"] = "ADDITIONAL_TYPE_RESERVE";
3499
+ AdditionalType2["UPOWER_LOTTERY"] = "ADDITIONAL_TYPE_UPOWER_LOTTERY";
3500
+ return AdditionalType2;
3501
+ })(AdditionalType || {});
3474
3502
 
3475
3503
  // src/index.ts
3476
3504
  var amagiClient = createAmagiClient;
@@ -3495,6 +3523,7 @@ var amagi = Client;
3495
3523
  * GPL-3.0 Licensed
3496
3524
  */
3497
3525
 
3526
+ exports.AdditionalType = AdditionalType;
3498
3527
  exports.ApiError = ApiError;
3499
3528
  exports.BilibiliAv2BvParamsSchema = BilibiliAv2BvParamsSchema;
3500
3529
  exports.BilibiliBangumiInfoParamsSchema = BilibiliBangumiInfoParamsSchema;
@@ -1747,6 +1747,7 @@ var DouyinData = async (data2, cookie, requestConfig) => {
1747
1747
  const userAgent = (_a = baseRequestConfig.headers) == null ? void 0 : _a["User-Agent"];
1748
1748
  const douyinApiUrls3 = createDouyinApiUrls(userAgent);
1749
1749
  switch (data2.methodType) {
1750
+ case "\u6587\u5B57\u4F5C\u54C1\u6570\u636E":
1750
1751
  case "\u805A\u5408\u89E3\u6790":
1751
1752
  case "\u89C6\u9891\u4F5C\u54C1\u6570\u636E":
1752
1753
  case "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E":
@@ -2217,7 +2218,7 @@ var smartPositiveInteger = (errorMessage) => {
2217
2218
 
2218
2219
  // src/validation/douyin.ts
2219
2220
  var DouyinWorkParamsSchema = z.object({
2220
- methodType: z.enum(["\u89C6\u9891\u4F5C\u54C1\u6570\u636E", "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", "\u805A\u5408\u89E3\u6790"]),
2221
+ methodType: z.enum(["\u6587\u5B57\u4F5C\u54C1\u6570\u636E", "\u89C6\u9891\u4F5C\u54C1\u6570\u636E", "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E", "\u5408\u8F91\u4F5C\u54C1\u6570\u636E", "\u805A\u5408\u89E3\u6790"]),
2221
2222
  aweme_id: z.string({ required_error: "\u89C6\u9891ID\u4E0D\u80FD\u4E3A\u7A7A" }).min(1, "\u89C6\u9891ID\u4E0D\u80FD\u4E3A\u7A7A")
2222
2223
  });
2223
2224
  var DouyinCommentParamsSchema = z.object({
@@ -2258,6 +2259,7 @@ var DouyinEmojiProParamsSchema = z.object({
2258
2259
  methodType: z.literal("\u52A8\u6001\u8868\u60C5\u6570\u636E")
2259
2260
  });
2260
2261
  var DouyinValidationSchemas2 = {
2262
+ "\u6587\u5B57\u4F5C\u54C1\u6570\u636E": DouyinWorkParamsSchema,
2261
2263
  "\u805A\u5408\u89E3\u6790": DouyinWorkParamsSchema,
2262
2264
  "\u89C6\u9891\u4F5C\u54C1\u6570\u636E": DouyinWorkParamsSchema,
2263
2265
  "\u56FE\u96C6\u4F5C\u54C1\u6570\u636E": DouyinWorkParamsSchema,
@@ -2983,6 +2985,13 @@ var createBoundDouyinApiMethod = (methodType, cookie, requestConfig) => {
2983
2985
  };
2984
2986
  };
2985
2987
  var douyin = {
2988
+ /**
2989
+ * 获取文字作品数据
2990
+ * @param options 请求参数,包含 aweme_id 和可选的 typeMode
2991
+ * @param cookie 有效的用户 Cookie
2992
+ * @returns 统一格式的API响应,包含文字作品详细信息
2993
+ */
2994
+ getTextWorkInfo: createDouyinApiMethod("\u6587\u5B57\u4F5C\u54C1\u6570\u636E"),
2986
2995
  /**
2987
2996
  * 聚合解析 (视频/图集/合辑)
2988
2997
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
@@ -3084,6 +3093,12 @@ var douyin = {
3084
3093
  };
3085
3094
  var createBoundDouyinApi = (cookie, requestConfig) => {
3086
3095
  return {
3096
+ /**
3097
+ * 获取文字作品数据
3098
+ * @param options 请求参数,包含 aweme_id 和可选的 typeMode
3099
+ * @returns 统一格式的API响应,包含文字作品详细信息
3100
+ */
3101
+ getTextWorkInfo: createBoundDouyinApiMethod("\u6587\u5B57\u4F5C\u54C1\u6570\u636E", cookie, requestConfig),
3087
3102
  /**
3088
3103
  * 聚合解析 (视频/图集/合辑)
3089
3104
  * @param options 请求参数,包含 aweme_id 和可选的 typeMode
@@ -3455,6 +3470,19 @@ var MajorType = /* @__PURE__ */ ((MajorType2) => {
3455
3470
  MajorType2["UPOWER_COMMON"] = "MAJOR_TYPE_UPOWER_COMMON";
3456
3471
  return MajorType2;
3457
3472
  })(MajorType || {});
3473
+ var AdditionalType = /* @__PURE__ */ ((AdditionalType2) => {
3474
+ AdditionalType2["NONE"] = "ADDITIONAL_TYPE_NONE";
3475
+ AdditionalType2["PGC"] = "ADDITIONAL_TYPE_PGC";
3476
+ AdditionalType2["GOODS"] = "ADDITIONAL_TYPE_GOODS";
3477
+ AdditionalType2["VOTE"] = "ADDITIONAL_TYPE_VOTE";
3478
+ AdditionalType2["COMMON"] = "ADDITIONAL_TYPE_COMMON";
3479
+ AdditionalType2["MATCH"] = "ADDITIONAL_TYPE_MATCH";
3480
+ AdditionalType2["UP_RCMD"] = "ADDITIONAL_TYPE_UP_RCMD";
3481
+ AdditionalType2["UGC"] = "ADDITIONAL_TYPE_UGC";
3482
+ AdditionalType2["RESERVE"] = "ADDITIONAL_TYPE_RESERVE";
3483
+ AdditionalType2["UPOWER_LOTTERY"] = "ADDITIONAL_TYPE_UPOWER_LOTTERY";
3484
+ return AdditionalType2;
3485
+ })(AdditionalType || {});
3458
3486
 
3459
3487
  // src/index.ts
3460
3488
  var amagiClient = createAmagiClient;
@@ -3479,4 +3507,4 @@ var amagi = Client;
3479
3507
  * GPL-3.0 Licensed
3480
3508
  */
3481
3509
 
3482
- export { ApiError, BilibiliAv2BvParamsSchema, BilibiliBangumiInfoParamsSchema, BilibiliBangumiStreamParamsSchema, BilibiliBv2AvParamsSchema, BilibiliCommentParamsSchema, BilibiliDynamicParamsSchema, BilibiliEmojiParamsSchema, BilibiliLiveParamsSchema, BilibiliLoginParamsSchema, BilibiliQrcodeParamsSchema, BilibiliQrcodeStatusParamsSchema, BilibiliUserParamsSchema, BilibiliValidationSchemas2 as BilibiliValidationSchemas, BilibiliVideoDownloadParamsSchema, BilibiliVideoParamsSchema, CreateApp, DouyinCommentParamsSchema, DouyinCommentReplyParamsSchema, DouyinEmojiListParamsSchema, DouyinEmojiProParamsSchema, DouyinMusicParamsSchema, DouyinQrcodeParamsSchema, DouyinSearchParamsSchema, DouyinUserParamsSchema, DouyinValidationSchemas2 as DouyinValidationSchemas, DouyinWorkParamsSchema, DynamicType, KuaishouCommentParamsSchema, KuaishouEmojiParamsSchema, KuaishouValidationSchemas2 as KuaishouValidationSchemas, KuaishouVideoParamsSchema, MajorType, ValidationError, amagi, amagiClient, av2bv, bilibili, bilibiliApiUrls, bilibiliErrorCodeMap, bilibiliUtils, bv2av, createAmagiClient, createBilibiliRoutes, createBoundBilibiliApi, createBoundDouyinApi, createBoundKuaishouApi, createDouyinRoutes, createErrorResponse, createKuaishouRoutes, createSuccessResponse, Client as default, douyin, douyinApiUrls, douyinSign, douyinUtils, fetchData, fetchResponse, getBilibiliData, getDouyinData, getHeadersAndData, getKuaishouData, handleError, httpLogger, kuaishou, kuaishouApiUrls, kuaishouUtils, logMiddleware, logger, qtparam, createBilibiliRoutes as registerBilibiliRoutes, createDouyinRoutes as registerDouyinRoutes, createKuaishouRoutes as registerKuaishouRoutes, validateBilibiliParams, validateDouyinParams, validateKuaishouParams, wbi_sign };
3510
+ export { AdditionalType, ApiError, BilibiliAv2BvParamsSchema, BilibiliBangumiInfoParamsSchema, BilibiliBangumiStreamParamsSchema, BilibiliBv2AvParamsSchema, BilibiliCommentParamsSchema, BilibiliDynamicParamsSchema, BilibiliEmojiParamsSchema, BilibiliLiveParamsSchema, BilibiliLoginParamsSchema, BilibiliQrcodeParamsSchema, BilibiliQrcodeStatusParamsSchema, BilibiliUserParamsSchema, BilibiliValidationSchemas2 as BilibiliValidationSchemas, BilibiliVideoDownloadParamsSchema, BilibiliVideoParamsSchema, CreateApp, DouyinCommentParamsSchema, DouyinCommentReplyParamsSchema, DouyinEmojiListParamsSchema, DouyinEmojiProParamsSchema, DouyinMusicParamsSchema, DouyinQrcodeParamsSchema, DouyinSearchParamsSchema, DouyinUserParamsSchema, DouyinValidationSchemas2 as DouyinValidationSchemas, DouyinWorkParamsSchema, DynamicType, KuaishouCommentParamsSchema, KuaishouEmojiParamsSchema, KuaishouValidationSchemas2 as KuaishouValidationSchemas, KuaishouVideoParamsSchema, MajorType, ValidationError, amagi, amagiClient, av2bv, bilibili, bilibiliApiUrls, bilibiliErrorCodeMap, bilibiliUtils, bv2av, createAmagiClient, createBilibiliRoutes, createBoundBilibiliApi, createBoundDouyinApi, createBoundKuaishouApi, createDouyinRoutes, createErrorResponse, createKuaishouRoutes, createSuccessResponse, Client as default, douyin, douyinApiUrls, douyinSign, douyinUtils, fetchData, fetchResponse, getBilibiliData, getDouyinData, getHeadersAndData, getKuaishouData, handleError, httpLogger, kuaishou, kuaishouApiUrls, kuaishouUtils, logMiddleware, logger, qtparam, createBilibiliRoutes as registerBilibiliRoutes, createDouyinRoutes as registerDouyinRoutes, createKuaishouRoutes as registerKuaishouRoutes, validateBilibiliParams, validateDouyinParams, validateKuaishouParams, wbi_sign };