@ikenxuan/amagi 5.12.0 → 5.12.1
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/dist/default/index.cjs +1 -1
- package/dist/default/index.d.cts +71 -71
- package/dist/default/index.d.ts +71 -71
- package/dist/default/index.js +1 -1
- package/package.json +2 -2
package/dist/default/index.cjs
CHANGED
package/dist/default/index.d.cts
CHANGED
|
@@ -5564,12 +5564,12 @@ type DynamicTypeItemMap$1 = {
|
|
|
5564
5564
|
[DynamicType.FORWARD]: DynamicTypeForwardUnion['data']['item'];
|
|
5565
5565
|
[DynamicType.ARTICLE]: DynamicTypeArticle['data']['item'];
|
|
5566
5566
|
};
|
|
5567
|
-
type DataData$19<T
|
|
5568
|
-
item: DynamicTypeItemMap$1[T
|
|
5567
|
+
type DataData$19<T extends DynamicType> = {
|
|
5568
|
+
item: DynamicTypeItemMap$1[T];
|
|
5569
5569
|
};
|
|
5570
|
-
type BiliDynamicInfo<T
|
|
5570
|
+
type BiliDynamicInfo<T extends DynamicType> = {
|
|
5571
5571
|
code: number;
|
|
5572
|
-
data: DataData$19<T
|
|
5572
|
+
data: DataData$19<T>;
|
|
5573
5573
|
message: string;
|
|
5574
5574
|
ttl: number;
|
|
5575
5575
|
[property: string]: any;
|
|
@@ -5897,9 +5897,9 @@ type DynamicTypeItemMap = {
|
|
|
5897
5897
|
[DynamicType.FORWARD]: ForwardItem;
|
|
5898
5898
|
[DynamicType.ARTICLE]: ArticleItem;
|
|
5899
5899
|
};
|
|
5900
|
-
type DataData$18<T
|
|
5900
|
+
type DataData$18<T extends DynamicType = DynamicType> = {
|
|
5901
5901
|
has_more: boolean;
|
|
5902
|
-
items: DynamicTypeItemMap[T
|
|
5902
|
+
items: DynamicTypeItemMap[T][];
|
|
5903
5903
|
offset: string;
|
|
5904
5904
|
update_baseline: string;
|
|
5905
5905
|
update_num: number;
|
|
@@ -11205,21 +11205,21 @@ type OriginalDynamicItemMap = {
|
|
|
11205
11205
|
};
|
|
11206
11206
|
type ItemBasic = OriginalDynamicItemMap[DynamicType.DRAW]['basic'];
|
|
11207
11207
|
type ItemModules = OriginalDynamicItemMap[DynamicType.DRAW]['modules'];
|
|
11208
|
-
type DataData$8<T
|
|
11208
|
+
type DataData$8<T extends keyof OriginalDynamicItemMap> = {
|
|
11209
11209
|
item: {
|
|
11210
11210
|
basic: ItemBasic;
|
|
11211
11211
|
id_str: string;
|
|
11212
11212
|
modules: ItemModules;
|
|
11213
|
-
orig: OriginalDynamicItemMap[T
|
|
11213
|
+
orig: OriginalDynamicItemMap[T]['orig'];
|
|
11214
11214
|
type: DynamicType.FORWARD;
|
|
11215
11215
|
visible: boolean;
|
|
11216
11216
|
[property: string]: any;
|
|
11217
11217
|
};
|
|
11218
11218
|
[property: string]: any;
|
|
11219
11219
|
};
|
|
11220
|
-
type DynamicTypeForward<T
|
|
11220
|
+
type DynamicTypeForward<T extends keyof OriginalDynamicItemMap> = {
|
|
11221
11221
|
code: number;
|
|
11222
|
-
data: DataData$8<T
|
|
11222
|
+
data: DataData$8<T>;
|
|
11223
11223
|
message: string;
|
|
11224
11224
|
ttl: number;
|
|
11225
11225
|
[property: string]: any;
|
|
@@ -21018,7 +21018,7 @@ interface XiaohongshuReturnTypeMap {
|
|
|
21018
21018
|
/**
|
|
21019
21019
|
* 移除methodType字段的工具类型
|
|
21020
21020
|
*/
|
|
21021
|
-
type OmitMethodType<T
|
|
21021
|
+
type OmitMethodType<T> = Omit<T, 'methodType'>;
|
|
21022
21022
|
/**
|
|
21023
21023
|
* 类型精度控制参数
|
|
21024
21024
|
*/
|
|
@@ -21051,17 +21051,17 @@ type XiaohongshuDataOptionsMap = { [K in XiaohongshuMethodType]: {
|
|
|
21051
21051
|
opt: XiaohongshuMethodOptMap[K];
|
|
21052
21052
|
data: XiaohongshuReturnTypeMap[K];
|
|
21053
21053
|
} };
|
|
21054
|
-
type XiaohongshuDataOptions<T
|
|
21055
|
-
type DouyinDataOptions<T
|
|
21056
|
-
type BilibiliDataOptions<T
|
|
21057
|
-
type KuaishouDataOptions<T
|
|
21054
|
+
type XiaohongshuDataOptions<T extends keyof XiaohongshuDataOptionsMap> = OmitMethodType<XiaohongshuDataOptionsMap[T]['opt'] & TypeControl>;
|
|
21055
|
+
type DouyinDataOptions<T extends DouyinMethodType> = OmitMethodType<zod.infer<(typeof DouyinValidationSchemas)[T]> & TypeControl>;
|
|
21056
|
+
type BilibiliDataOptions<T extends keyof BilibiliDataOptionsMap> = OmitMethodType<BilibiliDataOptionsMap[T]['opt'] & TypeControl>;
|
|
21057
|
+
type KuaishouDataOptions<T extends keyof KuaishouDataOptionsMap> = OmitMethodType<KuaishouDataOptionsMap[T]['opt'] & TypeControl>;
|
|
21058
21058
|
/**
|
|
21059
21059
|
* API请求错误类型
|
|
21060
21060
|
* 该类型是方法 `getXXXData` 封装后请求遇到错误时的返回类型
|
|
21061
21061
|
*/
|
|
21062
|
-
type APIErrorType<T
|
|
21062
|
+
type APIErrorType<T extends 'douyin' | 'bilibili' | 'kuaishou' | 'xiaohongshu' | 'default' = 'default'> = {
|
|
21063
21063
|
/** 错误码 */
|
|
21064
|
-
code: T
|
|
21064
|
+
code: T extends 'douyin' ? douoyinAPIErrorCode : T extends 'bilibili' ? bilibiliAPIErrorCode : T extends 'kuaishou' ? kuaishouAPIErrorCode : T extends 'xiaohongshu' ? xiaohongshuAPIErrorCode : amagiAPIErrorCode;
|
|
21065
21065
|
/** 错误时的响应数据 */
|
|
21066
21066
|
data: any;
|
|
21067
21067
|
/** amagi 错误详情 */
|
|
@@ -21157,11 +21157,11 @@ type BaseResponse = {
|
|
|
21157
21157
|
* 成功响应类型
|
|
21158
21158
|
* @template T - 响应数据的类型,默认为any
|
|
21159
21159
|
*/
|
|
21160
|
-
type SuccessResult<T
|
|
21160
|
+
type SuccessResult<T = any> = BaseResponse & {
|
|
21161
21161
|
/** 响应状态 */
|
|
21162
21162
|
success: true;
|
|
21163
21163
|
/** 响应数据,类型由泛型 T 决定 */
|
|
21164
|
-
data: T
|
|
21164
|
+
data: T;
|
|
21165
21165
|
/** 成功响应时错误信息为空 */
|
|
21166
21166
|
error: never;
|
|
21167
21167
|
};
|
|
@@ -21180,41 +21180,41 @@ type ErrorResult = BaseResponse & {
|
|
|
21180
21180
|
* 通用API响应类型
|
|
21181
21181
|
* @template T - 成功响应数据的类型,默认为any
|
|
21182
21182
|
*/
|
|
21183
|
-
type Result<T
|
|
21183
|
+
type Result<T> = SuccessResult<T> | ErrorResult;
|
|
21184
21184
|
/**
|
|
21185
21185
|
* 通用API响应类型
|
|
21186
21186
|
* @template T - 成功响应数据的类型,默认为any
|
|
21187
21187
|
* @deprecated 请使用 Result<T> 替代
|
|
21188
21188
|
*/
|
|
21189
|
-
type ApiResponse<T
|
|
21189
|
+
type ApiResponse<T> = Result<T>;
|
|
21190
21190
|
/**
|
|
21191
21191
|
* 验证抖音参数
|
|
21192
21192
|
* @param methodType - 抖音方法类型
|
|
21193
21193
|
* @param params - 待验证的参数
|
|
21194
21194
|
* @returns 验证后的参数,符合原始API期望的类型
|
|
21195
21195
|
*/
|
|
21196
|
-
declare const validateDouyinParams: <T
|
|
21196
|
+
declare const validateDouyinParams: <T extends DouyinMethodType>(methodType: T, params: unknown) => zod.infer<(typeof DouyinValidationSchemas)[T]>;
|
|
21197
21197
|
/**
|
|
21198
21198
|
* 验证哔哩哔哩参数
|
|
21199
21199
|
* @param methodType - 哔哩哔哩方法类型
|
|
21200
21200
|
* @param params - 待验证的参数
|
|
21201
21201
|
* @returns 验证后的参数,符合原始API期望的类型
|
|
21202
21202
|
*/
|
|
21203
|
-
declare const validateBilibiliParams: <T
|
|
21203
|
+
declare const validateBilibiliParams: <T extends BilibiliMethodType>(methodType: T, params: unknown) => zod.infer<(typeof BilibiliValidationSchemas)[T]>;
|
|
21204
21204
|
/**
|
|
21205
21205
|
* 验证快手参数
|
|
21206
21206
|
* @param methodType - 快手方法类型
|
|
21207
21207
|
* @param params - 待验证的参数
|
|
21208
21208
|
* @returns 验证后的参数,符合原始API期望的类型
|
|
21209
21209
|
*/
|
|
21210
|
-
declare const validateKuaishouParams: <T
|
|
21210
|
+
declare const validateKuaishouParams: <T extends KuaishouMethodType>(methodType: T, params: unknown) => zod.infer<(typeof KuaishouValidationSchemas)[T]>;
|
|
21211
21211
|
/**
|
|
21212
21212
|
* 验证小红书参数
|
|
21213
21213
|
* @param methodType - 小红书方法类型
|
|
21214
21214
|
* @param params - 待验证的参数
|
|
21215
21215
|
* @returns 验证后的参数
|
|
21216
21216
|
*/
|
|
21217
|
-
declare const validateXiaohongshuParams: <T
|
|
21217
|
+
declare const validateXiaohongshuParams: <T extends XiaohongshuMethodType>(methodType: T, params: unknown) => zod.infer<(typeof XiaohongshuValidationSchemas)[T]>;
|
|
21218
21218
|
/**
|
|
21219
21219
|
* 创建成功响应格式
|
|
21220
21220
|
* @param data - 响应数据
|
|
@@ -21222,7 +21222,7 @@ declare const validateXiaohongshuParams: <T$1 extends XiaohongshuMethodType>(met
|
|
|
21222
21222
|
* @param code - 响应状态码(可选,默认200)
|
|
21223
21223
|
* @returns 格式化的成功API响应对象
|
|
21224
21224
|
*/
|
|
21225
|
-
declare const createSuccessResponse: <T
|
|
21225
|
+
declare const createSuccessResponse: <T>(data: T, message: string, code?: number) => SuccessResult<T>;
|
|
21226
21226
|
/**
|
|
21227
21227
|
* 创建失败响应格式
|
|
21228
21228
|
* @param error - 错误信息
|
|
@@ -22400,11 +22400,11 @@ declare const douyin: {
|
|
|
22400
22400
|
* @param requestConfig 可选的请求配置
|
|
22401
22401
|
* @returns 统一格式的API响应,包含方法返回的数据
|
|
22402
22402
|
*/
|
|
22403
|
-
invoke: <const T
|
|
22403
|
+
invoke: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
22404
22404
|
typeMode: infer Mode extends TypeMode;
|
|
22405
|
-
} ? Mode : "loose")>(methodType: T
|
|
22405
|
+
} ? Mode : "loose")>(methodType: T, options: Opts, cookie: string, requestConfig?: RequestConfig) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
22406
22406
|
type: infer SearchType;
|
|
22407
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T
|
|
22407
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T] : DouyinReturnTypeMap[T] : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
22408
22408
|
};
|
|
22409
22409
|
/**
|
|
22410
22410
|
* 创建绑定了cookie的抖音API对象
|
|
@@ -22548,11 +22548,11 @@ declare const createBoundDouyinApi: (cookie: string, requestConfig: RequestConfi
|
|
|
22548
22548
|
* @param options 请求参数
|
|
22549
22549
|
* @returns 统一格式的API响应,包含方法返回的数据
|
|
22550
22550
|
*/
|
|
22551
|
-
invoke: <const T
|
|
22551
|
+
invoke: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
22552
22552
|
typeMode: infer Mode extends TypeMode;
|
|
22553
|
-
} ? Mode : "loose")>(methodType: T
|
|
22553
|
+
} ? Mode : "loose")>(methodType: T, options: Opts) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
22554
22554
|
type: infer SearchType;
|
|
22555
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T
|
|
22555
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T] : DouyinReturnTypeMap[T] : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
22556
22556
|
};
|
|
22557
22557
|
/**
|
|
22558
22558
|
* 绑定cookie的抖音API对象类型
|
|
@@ -22593,7 +22593,7 @@ declare const douyinUtils: douyinUtilsModel;
|
|
|
22593
22593
|
//#region src/platform/kuaishou/API.d.ts
|
|
22594
22594
|
type KuaishouMethodOptionsWithoutMethodType = { [K in keyof KuaishouMethodOptionsMap]: OmitMethodType<KuaishouMethodOptionsMap[K]> };
|
|
22595
22595
|
declare class API {
|
|
22596
|
-
单个作品信息<T
|
|
22596
|
+
单个作品信息<T extends KuaishouMethodOptionsWithoutMethodType['VideoInfoParams']>(data: T): {
|
|
22597
22597
|
/** 接口类型 */
|
|
22598
22598
|
type: string;
|
|
22599
22599
|
/** 请求url */
|
|
@@ -22610,7 +22610,7 @@ declare class API {
|
|
|
22610
22610
|
query: string;
|
|
22611
22611
|
};
|
|
22612
22612
|
};
|
|
22613
|
-
作品评论信息<T
|
|
22613
|
+
作品评论信息<T extends KuaishouMethodOptionsWithoutMethodType['CommentParams']>(data: T): {
|
|
22614
22614
|
type: string;
|
|
22615
22615
|
url: string;
|
|
22616
22616
|
body: {
|
|
@@ -23122,23 +23122,23 @@ declare const createAmagiClient: (options?: Options) => {
|
|
|
23122
23122
|
/** 启动本地HTTP服务 */
|
|
23123
23123
|
startServer: (port?: number) => express.Application;
|
|
23124
23124
|
/** 获取抖音数据 */
|
|
23125
|
-
getDouyinData: <const T
|
|
23125
|
+
getDouyinData: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
23126
23126
|
typeMode: infer Mode extends TypeMode;
|
|
23127
|
-
} ? Mode : "loose")>(methodType: T
|
|
23127
|
+
} ? Mode : "loose")>(methodType: T, options?: Opts) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
23128
23128
|
type: infer SearchType;
|
|
23129
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinDataOptionsMap[T
|
|
23129
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinDataOptionsMap[T]["data"] : DouyinDataOptionsMap[T]["data"] : ConditionalReturnType<DouyinDataOptionsMap[T]["data"], M>>>;
|
|
23130
23130
|
/** 获取B站数据 */
|
|
23131
|
-
getBilibiliData: <T
|
|
23131
|
+
getBilibiliData: <T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
|
|
23132
23132
|
typeMode?: M;
|
|
23133
|
-
}) => Promise<Result<ConditionalReturnType<BilibiliDataOptionsMap[T
|
|
23133
|
+
}) => Promise<Result<ConditionalReturnType<BilibiliDataOptionsMap[T]["data"], M>>>;
|
|
23134
23134
|
/** 获取快手数据 */
|
|
23135
|
-
getKuaishouData: <T
|
|
23135
|
+
getKuaishouData: <T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
|
|
23136
23136
|
typeMode?: M;
|
|
23137
|
-
}) => Promise<Result<ConditionalReturnType<KuaishouDataOptionsMap[T
|
|
23137
|
+
}) => Promise<Result<ConditionalReturnType<KuaishouDataOptionsMap[T]["data"], M>>>;
|
|
23138
23138
|
/** 获取小红书数据 */
|
|
23139
|
-
getXiaohongshuData: <T
|
|
23139
|
+
getXiaohongshuData: <T extends XiaohongshuMethodType, M extends TypeMode>(methodType: T, options?: ExtendedXiaohongshuOptions<T> & {
|
|
23140
23140
|
typeMode?: M;
|
|
23141
|
-
}) => Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T
|
|
23141
|
+
}) => Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T]["data"], M>>>;
|
|
23142
23142
|
douyin: {
|
|
23143
23143
|
/** 绑定了cookie和请求配置的抖音API对象,调用时不需要传递cookie */
|
|
23144
23144
|
api: {
|
|
@@ -23192,11 +23192,11 @@ declare const createAmagiClient: (options?: Options) => {
|
|
|
23192
23192
|
getDanmaku: <const Opts extends ExtendedDouyinOptions<"弹幕数据">, M extends TypeMode = (Opts extends {
|
|
23193
23193
|
typeMode: infer Mode extends TypeMode;
|
|
23194
23194
|
} ? Mode : "loose")>(options: Opts) => Promise<Result<ConditionalReturnType<DyDanmakuList, M>>>;
|
|
23195
|
-
invoke: <const T
|
|
23195
|
+
invoke: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
23196
23196
|
typeMode: infer Mode extends TypeMode;
|
|
23197
|
-
} ? Mode : "loose")>(methodType: T
|
|
23197
|
+
} ? Mode : "loose")>(methodType: T, options: Opts) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
23198
23198
|
type: infer SearchType;
|
|
23199
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T
|
|
23199
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T] : DouyinReturnTypeMap[T] : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
23200
23200
|
};
|
|
23201
23201
|
sign: typeof douyinSign;
|
|
23202
23202
|
douyinApiUrls: typeof douyinApiUrls;
|
|
@@ -23555,8 +23555,8 @@ declare const createAmagiClient: (options?: Options) => {
|
|
|
23555
23555
|
*/
|
|
23556
23556
|
type TypeMode = 'strict' | 'loose';
|
|
23557
23557
|
/** 条件类型:根据TypeMode决定返回类型 */
|
|
23558
|
-
type ConditionalReturnType<T
|
|
23559
|
-
type ExtendedDouyinOptions<T
|
|
23558
|
+
type ConditionalReturnType<T, M extends TypeMode> = M extends 'strict' ? T : any;
|
|
23559
|
+
type ExtendedDouyinOptions<T extends DouyinMethodType, Opts = Omit<DouyinDataOptionsMap[T]['opt'], 'methodType'>> = Opts & {
|
|
23560
23560
|
/**
|
|
23561
23561
|
* 获取返回类型
|
|
23562
23562
|
* 类型定义时间:2025-02-02
|
|
@@ -23572,7 +23572,7 @@ type ExtendedDouyinOptions<T$1 extends DouyinMethodType, Opts = Omit<DouyinDataO
|
|
|
23572
23572
|
type InferDouyinSearchReturnType<Opts, M extends TypeMode> = Opts extends {
|
|
23573
23573
|
type: infer T;
|
|
23574
23574
|
} ? T extends '综合' ? SearchInfoGeneralData : T extends '用户' ? SearchInfoUser : T extends '视频' ? SearchInfoVideo : DouyinReturnTypeMap['搜索数据'] : DouyinReturnTypeMap['搜索数据'];
|
|
23575
|
-
type ExtendedBilibiliOptions<T
|
|
23575
|
+
type ExtendedBilibiliOptions<T extends BilibiliMethodType> = Omit<BilibiliDataOptionsMap[T]['opt'], 'methodType'> & {
|
|
23576
23576
|
/**
|
|
23577
23577
|
* 获取返回类型
|
|
23578
23578
|
* 类型定义时间:2025-02-02
|
|
@@ -23585,7 +23585,7 @@ type ExtendedBilibiliOptions<T$1 extends BilibiliMethodType> = Omit<BilibiliData
|
|
|
23585
23585
|
*/
|
|
23586
23586
|
typeMode?: TypeMode;
|
|
23587
23587
|
};
|
|
23588
|
-
type ExtendedKuaishouOptions<T
|
|
23588
|
+
type ExtendedKuaishouOptions<T extends KuaishouMethodType> = Omit<KuaishouDataOptionsMap[T]['opt'], 'methodType'> & {
|
|
23589
23589
|
/**
|
|
23590
23590
|
* 获取返回类型
|
|
23591
23591
|
* 类型定义时间:2025-02-02
|
|
@@ -23598,7 +23598,7 @@ type ExtendedKuaishouOptions<T$1 extends KuaishouMethodType> = Omit<KuaishouData
|
|
|
23598
23598
|
*/
|
|
23599
23599
|
typeMode?: TypeMode;
|
|
23600
23600
|
};
|
|
23601
|
-
type ExtendedXiaohongshuOptions<T
|
|
23601
|
+
type ExtendedXiaohongshuOptions<T extends XiaohongshuMethodType> = Omit<XiaohongshuDataOptionsMap[T]['opt'], 'methodType'> & {
|
|
23602
23602
|
/**
|
|
23603
23603
|
* 获取返回类型
|
|
23604
23604
|
* 类型定义时间:2025-02-02
|
|
@@ -23619,9 +23619,9 @@ type ExtendedXiaohongshuOptions<T$1 extends XiaohongshuMethodType> = Omit<Xiaoho
|
|
|
23619
23619
|
* @param requestConfig - 可选的请求配置
|
|
23620
23620
|
* @returns 根据typeMode返回对应类型的数据
|
|
23621
23621
|
*/
|
|
23622
|
-
declare function getDouyinData<const T
|
|
23622
|
+
declare function getDouyinData<const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, const M extends TypeMode = (Opts extends {
|
|
23623
23623
|
typeMode: infer Mode extends TypeMode;
|
|
23624
|
-
} ? Mode : 'loose')>(methodType: T
|
|
23624
|
+
} ? Mode : 'loose')>(methodType: T, options?: Opts, cookie?: string, requestConfig?: RequestConfig): Promise<Result<T extends '搜索数据' ? InferDouyinSearchReturnType<Opts, M> : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
23625
23625
|
/**
|
|
23626
23626
|
* 获取抖音数据的核心方法(重载:第二个参数为cookie)
|
|
23627
23627
|
* @param methodType - 请求数据类型
|
|
@@ -23630,9 +23630,9 @@ declare function getDouyinData<const T$1 extends DouyinMethodType, const Opts ex
|
|
|
23630
23630
|
* @param requestConfig - 可选的请求配置
|
|
23631
23631
|
* @returns 根据typeMode返回对应类型的数据
|
|
23632
23632
|
*/
|
|
23633
|
-
declare function getDouyinData<const T
|
|
23633
|
+
declare function getDouyinData<const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
23634
23634
|
typeMode: infer Mode extends TypeMode;
|
|
23635
|
-
} ? Mode : 'loose')>(methodType: T
|
|
23635
|
+
} ? Mode : 'loose')>(methodType: T, cookie: string, options?: Opts, requestConfig?: RequestConfig): Promise<Result<T extends '搜索数据' ? InferDouyinSearchReturnType<Opts, M> : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
23636
23636
|
/**
|
|
23637
23637
|
* 获取B站数据的核心方法(推荐用法:第三个参数为cookie)
|
|
23638
23638
|
* @param methodType - 请求数据类型
|
|
@@ -23640,9 +23640,9 @@ declare function getDouyinData<const T$1 extends DouyinMethodType, const Opts ex
|
|
|
23640
23640
|
* @param cookie - 可选的用户Cookie
|
|
23641
23641
|
* @returns 根据typeMode返回对应类型的数据
|
|
23642
23642
|
*/
|
|
23643
|
-
declare function getBilibiliData<T
|
|
23643
|
+
declare function getBilibiliData<T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
|
|
23644
23644
|
typeMode?: M;
|
|
23645
|
-
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T
|
|
23645
|
+
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T], M>>>;
|
|
23646
23646
|
/**
|
|
23647
23647
|
* 获取B站数据的核心方法(重载:第二个参数为cookie)
|
|
23648
23648
|
* @param methodType - 请求数据类型
|
|
@@ -23650,9 +23650,9 @@ declare function getBilibiliData<T$1 extends BilibiliMethodType, M extends TypeM
|
|
|
23650
23650
|
* @param options - 请求参数对象,包含typeMode属性控制返回类型
|
|
23651
23651
|
* @returns 根据typeMode返回对应类型的数据
|
|
23652
23652
|
*/
|
|
23653
|
-
declare function getBilibiliData<T
|
|
23653
|
+
declare function getBilibiliData<T extends BilibiliMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedBilibiliOptions<T> & {
|
|
23654
23654
|
typeMode?: M;
|
|
23655
|
-
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T
|
|
23655
|
+
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T], M>>>;
|
|
23656
23656
|
/**
|
|
23657
23657
|
* 获取快手数据的核心方法(推荐用法:第三个参数为cookie)
|
|
23658
23658
|
* @param methodType - 请求数据类型
|
|
@@ -23660,9 +23660,9 @@ declare function getBilibiliData<T$1 extends BilibiliMethodType, M extends TypeM
|
|
|
23660
23660
|
* @param cookie - 可选的用户Cookie
|
|
23661
23661
|
* @returns 根据typeMode返回对应类型的数据
|
|
23662
23662
|
*/
|
|
23663
|
-
declare function getKuaishouData<T
|
|
23663
|
+
declare function getKuaishouData<T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
|
|
23664
23664
|
typeMode?: M;
|
|
23665
|
-
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T
|
|
23665
|
+
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T], M>>>;
|
|
23666
23666
|
/**
|
|
23667
23667
|
* 获取快手数据的核心方法(重载:第二个参数为cookie)
|
|
23668
23668
|
* @param methodType - 请求数据类型
|
|
@@ -23670,9 +23670,9 @@ declare function getKuaishouData<T$1 extends KuaishouMethodType, M extends TypeM
|
|
|
23670
23670
|
* @param options - 请求参数对象,包含typeMode属性控制返回类型
|
|
23671
23671
|
* @returns 根据typeMode返回对应类型的数据
|
|
23672
23672
|
*/
|
|
23673
|
-
declare function getKuaishouData<T
|
|
23673
|
+
declare function getKuaishouData<T extends KuaishouMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedKuaishouOptions<T> & {
|
|
23674
23674
|
typeMode?: M;
|
|
23675
|
-
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T
|
|
23675
|
+
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T], M>>>;
|
|
23676
23676
|
/**
|
|
23677
23677
|
* 获取小红书数据的核心方法(推荐用法:第三个参数为cookie)
|
|
23678
23678
|
* @param methodType - 请求数据类型
|
|
@@ -23680,9 +23680,9 @@ declare function getKuaishouData<T$1 extends KuaishouMethodType, M extends TypeM
|
|
|
23680
23680
|
* @param cookie - 可选的用户Cookie
|
|
23681
23681
|
* @returns 根据typeMode返回对应类型的数据
|
|
23682
23682
|
*/
|
|
23683
|
-
declare function getXiaohongshuData<T
|
|
23683
|
+
declare function getXiaohongshuData<T extends XiaohongshuMethodType, M extends TypeMode>(methodType: T, options?: ExtendedXiaohongshuOptions<T> & {
|
|
23684
23684
|
typeMode?: M;
|
|
23685
|
-
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T
|
|
23685
|
+
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T]['data'], M>>>;
|
|
23686
23686
|
/**
|
|
23687
23687
|
* 获取小红书数据的核心方法(重载:第二个参数为cookie)
|
|
23688
23688
|
* @param methodType - 请求数据类型
|
|
@@ -23690,9 +23690,9 @@ declare function getXiaohongshuData<T$1 extends XiaohongshuMethodType, M extends
|
|
|
23690
23690
|
* @param options - 请求参数对象,包含typeMode属性控制返回类型
|
|
23691
23691
|
* @returns 根据typeMode返回对应类型的数据
|
|
23692
23692
|
*/
|
|
23693
|
-
declare function getXiaohongshuData<T
|
|
23693
|
+
declare function getXiaohongshuData<T extends XiaohongshuMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedXiaohongshuOptions<T> & {
|
|
23694
23694
|
typeMode?: M;
|
|
23695
|
-
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T
|
|
23695
|
+
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T]['data'], M>>>;
|
|
23696
23696
|
//#endregion
|
|
23697
23697
|
//#region src/utils/errors.d.ts
|
|
23698
23698
|
/**
|
|
@@ -23789,14 +23789,14 @@ declare const logMiddleware: (pathsToLog?: string[]) => express.RequestHandler;
|
|
|
23789
23789
|
* @param maxRetries - 最大重试次数,默认3次
|
|
23790
23790
|
* @returns 响应数据或错误结果
|
|
23791
23791
|
*/
|
|
23792
|
-
declare const fetchData: <T
|
|
23792
|
+
declare const fetchData: <T>(config: AxiosRequestConfig<T>, maxRetries?: number) => Promise<T | ErrorResult>;
|
|
23793
23793
|
/**
|
|
23794
23794
|
* 执行网络请求并返回完整响应(带自动重试)
|
|
23795
23795
|
* @param config - axios请求配置
|
|
23796
23796
|
* @param maxRetries - 最大重试次数,默认3次
|
|
23797
23797
|
* @returns 完整响应或错误结果
|
|
23798
23798
|
*/
|
|
23799
|
-
declare const fetchResponse: <T
|
|
23799
|
+
declare const fetchResponse: <T = unknown>(config: AxiosRequestConfig, maxRetries?: number) => Promise<AxiosResponse<T> | ErrorResult>;
|
|
23800
23800
|
/**
|
|
23801
23801
|
* 判断结果是否为网络错误响应
|
|
23802
23802
|
* @param result - 请求结果
|
|
@@ -23810,9 +23810,9 @@ declare const isNetworkErrorResult: (result: unknown) => result is ErrorResult;
|
|
|
23810
23810
|
* @param maxRetries - 最大重试次数,默认3次
|
|
23811
23811
|
* @returns 包含headers和data的对象,或错误结果
|
|
23812
23812
|
*/
|
|
23813
|
-
declare const getHeadersAndData: <T
|
|
23813
|
+
declare const getHeadersAndData: <T = any>(config: AxiosRequestConfig, maxRetries?: number) => Promise<{
|
|
23814
23814
|
headers: RawAxiosResponseHeaders;
|
|
23815
|
-
data: T
|
|
23815
|
+
data: T;
|
|
23816
23816
|
} | ErrorResult>;
|
|
23817
23817
|
//#endregion
|
|
23818
23818
|
//#region src/index.d.ts
|
package/dist/default/index.d.ts
CHANGED
|
@@ -5564,12 +5564,12 @@ type DynamicTypeItemMap$1 = {
|
|
|
5564
5564
|
[DynamicType.FORWARD]: DynamicTypeForwardUnion['data']['item'];
|
|
5565
5565
|
[DynamicType.ARTICLE]: DynamicTypeArticle['data']['item'];
|
|
5566
5566
|
};
|
|
5567
|
-
type DataData$19<T
|
|
5568
|
-
item: DynamicTypeItemMap$1[T
|
|
5567
|
+
type DataData$19<T extends DynamicType> = {
|
|
5568
|
+
item: DynamicTypeItemMap$1[T];
|
|
5569
5569
|
};
|
|
5570
|
-
type BiliDynamicInfo<T
|
|
5570
|
+
type BiliDynamicInfo<T extends DynamicType> = {
|
|
5571
5571
|
code: number;
|
|
5572
|
-
data: DataData$19<T
|
|
5572
|
+
data: DataData$19<T>;
|
|
5573
5573
|
message: string;
|
|
5574
5574
|
ttl: number;
|
|
5575
5575
|
[property: string]: any;
|
|
@@ -5897,9 +5897,9 @@ type DynamicTypeItemMap = {
|
|
|
5897
5897
|
[DynamicType.FORWARD]: ForwardItem;
|
|
5898
5898
|
[DynamicType.ARTICLE]: ArticleItem;
|
|
5899
5899
|
};
|
|
5900
|
-
type DataData$18<T
|
|
5900
|
+
type DataData$18<T extends DynamicType = DynamicType> = {
|
|
5901
5901
|
has_more: boolean;
|
|
5902
|
-
items: DynamicTypeItemMap[T
|
|
5902
|
+
items: DynamicTypeItemMap[T][];
|
|
5903
5903
|
offset: string;
|
|
5904
5904
|
update_baseline: string;
|
|
5905
5905
|
update_num: number;
|
|
@@ -11205,21 +11205,21 @@ type OriginalDynamicItemMap = {
|
|
|
11205
11205
|
};
|
|
11206
11206
|
type ItemBasic = OriginalDynamicItemMap[DynamicType.DRAW]['basic'];
|
|
11207
11207
|
type ItemModules = OriginalDynamicItemMap[DynamicType.DRAW]['modules'];
|
|
11208
|
-
type DataData$8<T
|
|
11208
|
+
type DataData$8<T extends keyof OriginalDynamicItemMap> = {
|
|
11209
11209
|
item: {
|
|
11210
11210
|
basic: ItemBasic;
|
|
11211
11211
|
id_str: string;
|
|
11212
11212
|
modules: ItemModules;
|
|
11213
|
-
orig: OriginalDynamicItemMap[T
|
|
11213
|
+
orig: OriginalDynamicItemMap[T]['orig'];
|
|
11214
11214
|
type: DynamicType.FORWARD;
|
|
11215
11215
|
visible: boolean;
|
|
11216
11216
|
[property: string]: any;
|
|
11217
11217
|
};
|
|
11218
11218
|
[property: string]: any;
|
|
11219
11219
|
};
|
|
11220
|
-
type DynamicTypeForward<T
|
|
11220
|
+
type DynamicTypeForward<T extends keyof OriginalDynamicItemMap> = {
|
|
11221
11221
|
code: number;
|
|
11222
|
-
data: DataData$8<T
|
|
11222
|
+
data: DataData$8<T>;
|
|
11223
11223
|
message: string;
|
|
11224
11224
|
ttl: number;
|
|
11225
11225
|
[property: string]: any;
|
|
@@ -21018,7 +21018,7 @@ interface XiaohongshuReturnTypeMap {
|
|
|
21018
21018
|
/**
|
|
21019
21019
|
* 移除methodType字段的工具类型
|
|
21020
21020
|
*/
|
|
21021
|
-
type OmitMethodType<T
|
|
21021
|
+
type OmitMethodType<T> = Omit<T, 'methodType'>;
|
|
21022
21022
|
/**
|
|
21023
21023
|
* 类型精度控制参数
|
|
21024
21024
|
*/
|
|
@@ -21051,17 +21051,17 @@ type XiaohongshuDataOptionsMap = { [K in XiaohongshuMethodType]: {
|
|
|
21051
21051
|
opt: XiaohongshuMethodOptMap[K];
|
|
21052
21052
|
data: XiaohongshuReturnTypeMap[K];
|
|
21053
21053
|
} };
|
|
21054
|
-
type XiaohongshuDataOptions<T
|
|
21055
|
-
type DouyinDataOptions<T
|
|
21056
|
-
type BilibiliDataOptions<T
|
|
21057
|
-
type KuaishouDataOptions<T
|
|
21054
|
+
type XiaohongshuDataOptions<T extends keyof XiaohongshuDataOptionsMap> = OmitMethodType<XiaohongshuDataOptionsMap[T]['opt'] & TypeControl>;
|
|
21055
|
+
type DouyinDataOptions<T extends DouyinMethodType> = OmitMethodType<zod.infer<(typeof DouyinValidationSchemas)[T]> & TypeControl>;
|
|
21056
|
+
type BilibiliDataOptions<T extends keyof BilibiliDataOptionsMap> = OmitMethodType<BilibiliDataOptionsMap[T]['opt'] & TypeControl>;
|
|
21057
|
+
type KuaishouDataOptions<T extends keyof KuaishouDataOptionsMap> = OmitMethodType<KuaishouDataOptionsMap[T]['opt'] & TypeControl>;
|
|
21058
21058
|
/**
|
|
21059
21059
|
* API请求错误类型
|
|
21060
21060
|
* 该类型是方法 `getXXXData` 封装后请求遇到错误时的返回类型
|
|
21061
21061
|
*/
|
|
21062
|
-
type APIErrorType<T
|
|
21062
|
+
type APIErrorType<T extends 'douyin' | 'bilibili' | 'kuaishou' | 'xiaohongshu' | 'default' = 'default'> = {
|
|
21063
21063
|
/** 错误码 */
|
|
21064
|
-
code: T
|
|
21064
|
+
code: T extends 'douyin' ? douoyinAPIErrorCode : T extends 'bilibili' ? bilibiliAPIErrorCode : T extends 'kuaishou' ? kuaishouAPIErrorCode : T extends 'xiaohongshu' ? xiaohongshuAPIErrorCode : amagiAPIErrorCode;
|
|
21065
21065
|
/** 错误时的响应数据 */
|
|
21066
21066
|
data: any;
|
|
21067
21067
|
/** amagi 错误详情 */
|
|
@@ -21157,11 +21157,11 @@ type BaseResponse = {
|
|
|
21157
21157
|
* 成功响应类型
|
|
21158
21158
|
* @template T - 响应数据的类型,默认为any
|
|
21159
21159
|
*/
|
|
21160
|
-
type SuccessResult<T
|
|
21160
|
+
type SuccessResult<T = any> = BaseResponse & {
|
|
21161
21161
|
/** 响应状态 */
|
|
21162
21162
|
success: true;
|
|
21163
21163
|
/** 响应数据,类型由泛型 T 决定 */
|
|
21164
|
-
data: T
|
|
21164
|
+
data: T;
|
|
21165
21165
|
/** 成功响应时错误信息为空 */
|
|
21166
21166
|
error: never;
|
|
21167
21167
|
};
|
|
@@ -21180,41 +21180,41 @@ type ErrorResult = BaseResponse & {
|
|
|
21180
21180
|
* 通用API响应类型
|
|
21181
21181
|
* @template T - 成功响应数据的类型,默认为any
|
|
21182
21182
|
*/
|
|
21183
|
-
type Result<T
|
|
21183
|
+
type Result<T> = SuccessResult<T> | ErrorResult;
|
|
21184
21184
|
/**
|
|
21185
21185
|
* 通用API响应类型
|
|
21186
21186
|
* @template T - 成功响应数据的类型,默认为any
|
|
21187
21187
|
* @deprecated 请使用 Result<T> 替代
|
|
21188
21188
|
*/
|
|
21189
|
-
type ApiResponse<T
|
|
21189
|
+
type ApiResponse<T> = Result<T>;
|
|
21190
21190
|
/**
|
|
21191
21191
|
* 验证抖音参数
|
|
21192
21192
|
* @param methodType - 抖音方法类型
|
|
21193
21193
|
* @param params - 待验证的参数
|
|
21194
21194
|
* @returns 验证后的参数,符合原始API期望的类型
|
|
21195
21195
|
*/
|
|
21196
|
-
declare const validateDouyinParams: <T
|
|
21196
|
+
declare const validateDouyinParams: <T extends DouyinMethodType>(methodType: T, params: unknown) => zod.infer<(typeof DouyinValidationSchemas)[T]>;
|
|
21197
21197
|
/**
|
|
21198
21198
|
* 验证哔哩哔哩参数
|
|
21199
21199
|
* @param methodType - 哔哩哔哩方法类型
|
|
21200
21200
|
* @param params - 待验证的参数
|
|
21201
21201
|
* @returns 验证后的参数,符合原始API期望的类型
|
|
21202
21202
|
*/
|
|
21203
|
-
declare const validateBilibiliParams: <T
|
|
21203
|
+
declare const validateBilibiliParams: <T extends BilibiliMethodType>(methodType: T, params: unknown) => zod.infer<(typeof BilibiliValidationSchemas)[T]>;
|
|
21204
21204
|
/**
|
|
21205
21205
|
* 验证快手参数
|
|
21206
21206
|
* @param methodType - 快手方法类型
|
|
21207
21207
|
* @param params - 待验证的参数
|
|
21208
21208
|
* @returns 验证后的参数,符合原始API期望的类型
|
|
21209
21209
|
*/
|
|
21210
|
-
declare const validateKuaishouParams: <T
|
|
21210
|
+
declare const validateKuaishouParams: <T extends KuaishouMethodType>(methodType: T, params: unknown) => zod.infer<(typeof KuaishouValidationSchemas)[T]>;
|
|
21211
21211
|
/**
|
|
21212
21212
|
* 验证小红书参数
|
|
21213
21213
|
* @param methodType - 小红书方法类型
|
|
21214
21214
|
* @param params - 待验证的参数
|
|
21215
21215
|
* @returns 验证后的参数
|
|
21216
21216
|
*/
|
|
21217
|
-
declare const validateXiaohongshuParams: <T
|
|
21217
|
+
declare const validateXiaohongshuParams: <T extends XiaohongshuMethodType>(methodType: T, params: unknown) => zod.infer<(typeof XiaohongshuValidationSchemas)[T]>;
|
|
21218
21218
|
/**
|
|
21219
21219
|
* 创建成功响应格式
|
|
21220
21220
|
* @param data - 响应数据
|
|
@@ -21222,7 +21222,7 @@ declare const validateXiaohongshuParams: <T$1 extends XiaohongshuMethodType>(met
|
|
|
21222
21222
|
* @param code - 响应状态码(可选,默认200)
|
|
21223
21223
|
* @returns 格式化的成功API响应对象
|
|
21224
21224
|
*/
|
|
21225
|
-
declare const createSuccessResponse: <T
|
|
21225
|
+
declare const createSuccessResponse: <T>(data: T, message: string, code?: number) => SuccessResult<T>;
|
|
21226
21226
|
/**
|
|
21227
21227
|
* 创建失败响应格式
|
|
21228
21228
|
* @param error - 错误信息
|
|
@@ -22400,11 +22400,11 @@ declare const douyin: {
|
|
|
22400
22400
|
* @param requestConfig 可选的请求配置
|
|
22401
22401
|
* @returns 统一格式的API响应,包含方法返回的数据
|
|
22402
22402
|
*/
|
|
22403
|
-
invoke: <const T
|
|
22403
|
+
invoke: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
22404
22404
|
typeMode: infer Mode extends TypeMode;
|
|
22405
|
-
} ? Mode : "loose")>(methodType: T
|
|
22405
|
+
} ? Mode : "loose")>(methodType: T, options: Opts, cookie: string, requestConfig?: RequestConfig) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
22406
22406
|
type: infer SearchType;
|
|
22407
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T
|
|
22407
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T] : DouyinReturnTypeMap[T] : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
22408
22408
|
};
|
|
22409
22409
|
/**
|
|
22410
22410
|
* 创建绑定了cookie的抖音API对象
|
|
@@ -22548,11 +22548,11 @@ declare const createBoundDouyinApi: (cookie: string, requestConfig: RequestConfi
|
|
|
22548
22548
|
* @param options 请求参数
|
|
22549
22549
|
* @returns 统一格式的API响应,包含方法返回的数据
|
|
22550
22550
|
*/
|
|
22551
|
-
invoke: <const T
|
|
22551
|
+
invoke: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
22552
22552
|
typeMode: infer Mode extends TypeMode;
|
|
22553
|
-
} ? Mode : "loose")>(methodType: T
|
|
22553
|
+
} ? Mode : "loose")>(methodType: T, options: Opts) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
22554
22554
|
type: infer SearchType;
|
|
22555
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T
|
|
22555
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T] : DouyinReturnTypeMap[T] : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
22556
22556
|
};
|
|
22557
22557
|
/**
|
|
22558
22558
|
* 绑定cookie的抖音API对象类型
|
|
@@ -22593,7 +22593,7 @@ declare const douyinUtils: douyinUtilsModel;
|
|
|
22593
22593
|
//#region src/platform/kuaishou/API.d.ts
|
|
22594
22594
|
type KuaishouMethodOptionsWithoutMethodType = { [K in keyof KuaishouMethodOptionsMap]: OmitMethodType<KuaishouMethodOptionsMap[K]> };
|
|
22595
22595
|
declare class API {
|
|
22596
|
-
单个作品信息<T
|
|
22596
|
+
单个作品信息<T extends KuaishouMethodOptionsWithoutMethodType['VideoInfoParams']>(data: T): {
|
|
22597
22597
|
/** 接口类型 */
|
|
22598
22598
|
type: string;
|
|
22599
22599
|
/** 请求url */
|
|
@@ -22610,7 +22610,7 @@ declare class API {
|
|
|
22610
22610
|
query: string;
|
|
22611
22611
|
};
|
|
22612
22612
|
};
|
|
22613
|
-
作品评论信息<T
|
|
22613
|
+
作品评论信息<T extends KuaishouMethodOptionsWithoutMethodType['CommentParams']>(data: T): {
|
|
22614
22614
|
type: string;
|
|
22615
22615
|
url: string;
|
|
22616
22616
|
body: {
|
|
@@ -23122,23 +23122,23 @@ declare const createAmagiClient: (options?: Options) => {
|
|
|
23122
23122
|
/** 启动本地HTTP服务 */
|
|
23123
23123
|
startServer: (port?: number) => express.Application;
|
|
23124
23124
|
/** 获取抖音数据 */
|
|
23125
|
-
getDouyinData: <const T
|
|
23125
|
+
getDouyinData: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
23126
23126
|
typeMode: infer Mode extends TypeMode;
|
|
23127
|
-
} ? Mode : "loose")>(methodType: T
|
|
23127
|
+
} ? Mode : "loose")>(methodType: T, options?: Opts) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
23128
23128
|
type: infer SearchType;
|
|
23129
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinDataOptionsMap[T
|
|
23129
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinDataOptionsMap[T]["data"] : DouyinDataOptionsMap[T]["data"] : ConditionalReturnType<DouyinDataOptionsMap[T]["data"], M>>>;
|
|
23130
23130
|
/** 获取B站数据 */
|
|
23131
|
-
getBilibiliData: <T
|
|
23131
|
+
getBilibiliData: <T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
|
|
23132
23132
|
typeMode?: M;
|
|
23133
|
-
}) => Promise<Result<ConditionalReturnType<BilibiliDataOptionsMap[T
|
|
23133
|
+
}) => Promise<Result<ConditionalReturnType<BilibiliDataOptionsMap[T]["data"], M>>>;
|
|
23134
23134
|
/** 获取快手数据 */
|
|
23135
|
-
getKuaishouData: <T
|
|
23135
|
+
getKuaishouData: <T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
|
|
23136
23136
|
typeMode?: M;
|
|
23137
|
-
}) => Promise<Result<ConditionalReturnType<KuaishouDataOptionsMap[T
|
|
23137
|
+
}) => Promise<Result<ConditionalReturnType<KuaishouDataOptionsMap[T]["data"], M>>>;
|
|
23138
23138
|
/** 获取小红书数据 */
|
|
23139
|
-
getXiaohongshuData: <T
|
|
23139
|
+
getXiaohongshuData: <T extends XiaohongshuMethodType, M extends TypeMode>(methodType: T, options?: ExtendedXiaohongshuOptions<T> & {
|
|
23140
23140
|
typeMode?: M;
|
|
23141
|
-
}) => Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T
|
|
23141
|
+
}) => Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T]["data"], M>>>;
|
|
23142
23142
|
douyin: {
|
|
23143
23143
|
/** 绑定了cookie和请求配置的抖音API对象,调用时不需要传递cookie */
|
|
23144
23144
|
api: {
|
|
@@ -23192,11 +23192,11 @@ declare const createAmagiClient: (options?: Options) => {
|
|
|
23192
23192
|
getDanmaku: <const Opts extends ExtendedDouyinOptions<"弹幕数据">, M extends TypeMode = (Opts extends {
|
|
23193
23193
|
typeMode: infer Mode extends TypeMode;
|
|
23194
23194
|
} ? Mode : "loose")>(options: Opts) => Promise<Result<ConditionalReturnType<DyDanmakuList, M>>>;
|
|
23195
|
-
invoke: <const T
|
|
23195
|
+
invoke: <const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
23196
23196
|
typeMode: infer Mode extends TypeMode;
|
|
23197
|
-
} ? Mode : "loose")>(methodType: T
|
|
23197
|
+
} ? Mode : "loose")>(methodType: T, options: Opts) => Promise<Result<T extends "\u641C\u7D22\u6570\u636E" ? Opts extends {
|
|
23198
23198
|
type: infer SearchType;
|
|
23199
|
-
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T
|
|
23199
|
+
} ? SearchType extends "\u7EFC\u5408" ? SearchInfoGeneralData : SearchType extends "\u7528\u6237" ? SearchInfoUser : SearchType extends "\u89C6\u9891" ? SearchInfoVideo : DouyinReturnTypeMap[T] : DouyinReturnTypeMap[T] : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
23200
23200
|
};
|
|
23201
23201
|
sign: typeof douyinSign;
|
|
23202
23202
|
douyinApiUrls: typeof douyinApiUrls;
|
|
@@ -23555,8 +23555,8 @@ declare const createAmagiClient: (options?: Options) => {
|
|
|
23555
23555
|
*/
|
|
23556
23556
|
type TypeMode = 'strict' | 'loose';
|
|
23557
23557
|
/** 条件类型:根据TypeMode决定返回类型 */
|
|
23558
|
-
type ConditionalReturnType<T
|
|
23559
|
-
type ExtendedDouyinOptions<T
|
|
23558
|
+
type ConditionalReturnType<T, M extends TypeMode> = M extends 'strict' ? T : any;
|
|
23559
|
+
type ExtendedDouyinOptions<T extends DouyinMethodType, Opts = Omit<DouyinDataOptionsMap[T]['opt'], 'methodType'>> = Opts & {
|
|
23560
23560
|
/**
|
|
23561
23561
|
* 获取返回类型
|
|
23562
23562
|
* 类型定义时间:2025-02-02
|
|
@@ -23572,7 +23572,7 @@ type ExtendedDouyinOptions<T$1 extends DouyinMethodType, Opts = Omit<DouyinDataO
|
|
|
23572
23572
|
type InferDouyinSearchReturnType<Opts, M extends TypeMode> = Opts extends {
|
|
23573
23573
|
type: infer T;
|
|
23574
23574
|
} ? T extends '综合' ? SearchInfoGeneralData : T extends '用户' ? SearchInfoUser : T extends '视频' ? SearchInfoVideo : DouyinReturnTypeMap['搜索数据'] : DouyinReturnTypeMap['搜索数据'];
|
|
23575
|
-
type ExtendedBilibiliOptions<T
|
|
23575
|
+
type ExtendedBilibiliOptions<T extends BilibiliMethodType> = Omit<BilibiliDataOptionsMap[T]['opt'], 'methodType'> & {
|
|
23576
23576
|
/**
|
|
23577
23577
|
* 获取返回类型
|
|
23578
23578
|
* 类型定义时间:2025-02-02
|
|
@@ -23585,7 +23585,7 @@ type ExtendedBilibiliOptions<T$1 extends BilibiliMethodType> = Omit<BilibiliData
|
|
|
23585
23585
|
*/
|
|
23586
23586
|
typeMode?: TypeMode;
|
|
23587
23587
|
};
|
|
23588
|
-
type ExtendedKuaishouOptions<T
|
|
23588
|
+
type ExtendedKuaishouOptions<T extends KuaishouMethodType> = Omit<KuaishouDataOptionsMap[T]['opt'], 'methodType'> & {
|
|
23589
23589
|
/**
|
|
23590
23590
|
* 获取返回类型
|
|
23591
23591
|
* 类型定义时间:2025-02-02
|
|
@@ -23598,7 +23598,7 @@ type ExtendedKuaishouOptions<T$1 extends KuaishouMethodType> = Omit<KuaishouData
|
|
|
23598
23598
|
*/
|
|
23599
23599
|
typeMode?: TypeMode;
|
|
23600
23600
|
};
|
|
23601
|
-
type ExtendedXiaohongshuOptions<T
|
|
23601
|
+
type ExtendedXiaohongshuOptions<T extends XiaohongshuMethodType> = Omit<XiaohongshuDataOptionsMap[T]['opt'], 'methodType'> & {
|
|
23602
23602
|
/**
|
|
23603
23603
|
* 获取返回类型
|
|
23604
23604
|
* 类型定义时间:2025-02-02
|
|
@@ -23619,9 +23619,9 @@ type ExtendedXiaohongshuOptions<T$1 extends XiaohongshuMethodType> = Omit<Xiaoho
|
|
|
23619
23619
|
* @param requestConfig - 可选的请求配置
|
|
23620
23620
|
* @returns 根据typeMode返回对应类型的数据
|
|
23621
23621
|
*/
|
|
23622
|
-
declare function getDouyinData<const T
|
|
23622
|
+
declare function getDouyinData<const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, const M extends TypeMode = (Opts extends {
|
|
23623
23623
|
typeMode: infer Mode extends TypeMode;
|
|
23624
|
-
} ? Mode : 'loose')>(methodType: T
|
|
23624
|
+
} ? Mode : 'loose')>(methodType: T, options?: Opts, cookie?: string, requestConfig?: RequestConfig): Promise<Result<T extends '搜索数据' ? InferDouyinSearchReturnType<Opts, M> : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
23625
23625
|
/**
|
|
23626
23626
|
* 获取抖音数据的核心方法(重载:第二个参数为cookie)
|
|
23627
23627
|
* @param methodType - 请求数据类型
|
|
@@ -23630,9 +23630,9 @@ declare function getDouyinData<const T$1 extends DouyinMethodType, const Opts ex
|
|
|
23630
23630
|
* @param requestConfig - 可选的请求配置
|
|
23631
23631
|
* @returns 根据typeMode返回对应类型的数据
|
|
23632
23632
|
*/
|
|
23633
|
-
declare function getDouyinData<const T
|
|
23633
|
+
declare function getDouyinData<const T extends DouyinMethodType, const Opts extends ExtendedDouyinOptions<T>, M extends TypeMode = (Opts extends {
|
|
23634
23634
|
typeMode: infer Mode extends TypeMode;
|
|
23635
|
-
} ? Mode : 'loose')>(methodType: T
|
|
23635
|
+
} ? Mode : 'loose')>(methodType: T, cookie: string, options?: Opts, requestConfig?: RequestConfig): Promise<Result<T extends '搜索数据' ? InferDouyinSearchReturnType<Opts, M> : ConditionalReturnType<DouyinReturnTypeMap[T], M>>>;
|
|
23636
23636
|
/**
|
|
23637
23637
|
* 获取B站数据的核心方法(推荐用法:第三个参数为cookie)
|
|
23638
23638
|
* @param methodType - 请求数据类型
|
|
@@ -23640,9 +23640,9 @@ declare function getDouyinData<const T$1 extends DouyinMethodType, const Opts ex
|
|
|
23640
23640
|
* @param cookie - 可选的用户Cookie
|
|
23641
23641
|
* @returns 根据typeMode返回对应类型的数据
|
|
23642
23642
|
*/
|
|
23643
|
-
declare function getBilibiliData<T
|
|
23643
|
+
declare function getBilibiliData<T extends BilibiliMethodType, M extends TypeMode>(methodType: T, options?: ExtendedBilibiliOptions<T> & {
|
|
23644
23644
|
typeMode?: M;
|
|
23645
|
-
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T
|
|
23645
|
+
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T], M>>>;
|
|
23646
23646
|
/**
|
|
23647
23647
|
* 获取B站数据的核心方法(重载:第二个参数为cookie)
|
|
23648
23648
|
* @param methodType - 请求数据类型
|
|
@@ -23650,9 +23650,9 @@ declare function getBilibiliData<T$1 extends BilibiliMethodType, M extends TypeM
|
|
|
23650
23650
|
* @param options - 请求参数对象,包含typeMode属性控制返回类型
|
|
23651
23651
|
* @returns 根据typeMode返回对应类型的数据
|
|
23652
23652
|
*/
|
|
23653
|
-
declare function getBilibiliData<T
|
|
23653
|
+
declare function getBilibiliData<T extends BilibiliMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedBilibiliOptions<T> & {
|
|
23654
23654
|
typeMode?: M;
|
|
23655
|
-
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T
|
|
23655
|
+
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<BilibiliReturnTypeMap[T], M>>>;
|
|
23656
23656
|
/**
|
|
23657
23657
|
* 获取快手数据的核心方法(推荐用法:第三个参数为cookie)
|
|
23658
23658
|
* @param methodType - 请求数据类型
|
|
@@ -23660,9 +23660,9 @@ declare function getBilibiliData<T$1 extends BilibiliMethodType, M extends TypeM
|
|
|
23660
23660
|
* @param cookie - 可选的用户Cookie
|
|
23661
23661
|
* @returns 根据typeMode返回对应类型的数据
|
|
23662
23662
|
*/
|
|
23663
|
-
declare function getKuaishouData<T
|
|
23663
|
+
declare function getKuaishouData<T extends KuaishouMethodType, M extends TypeMode>(methodType: T, options?: ExtendedKuaishouOptions<T> & {
|
|
23664
23664
|
typeMode?: M;
|
|
23665
|
-
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T
|
|
23665
|
+
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T], M>>>;
|
|
23666
23666
|
/**
|
|
23667
23667
|
* 获取快手数据的核心方法(重载:第二个参数为cookie)
|
|
23668
23668
|
* @param methodType - 请求数据类型
|
|
@@ -23670,9 +23670,9 @@ declare function getKuaishouData<T$1 extends KuaishouMethodType, M extends TypeM
|
|
|
23670
23670
|
* @param options - 请求参数对象,包含typeMode属性控制返回类型
|
|
23671
23671
|
* @returns 根据typeMode返回对应类型的数据
|
|
23672
23672
|
*/
|
|
23673
|
-
declare function getKuaishouData<T
|
|
23673
|
+
declare function getKuaishouData<T extends KuaishouMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedKuaishouOptions<T> & {
|
|
23674
23674
|
typeMode?: M;
|
|
23675
|
-
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T
|
|
23675
|
+
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<KuaishouReturnTypeMap[T], M>>>;
|
|
23676
23676
|
/**
|
|
23677
23677
|
* 获取小红书数据的核心方法(推荐用法:第三个参数为cookie)
|
|
23678
23678
|
* @param methodType - 请求数据类型
|
|
@@ -23680,9 +23680,9 @@ declare function getKuaishouData<T$1 extends KuaishouMethodType, M extends TypeM
|
|
|
23680
23680
|
* @param cookie - 可选的用户Cookie
|
|
23681
23681
|
* @returns 根据typeMode返回对应类型的数据
|
|
23682
23682
|
*/
|
|
23683
|
-
declare function getXiaohongshuData<T
|
|
23683
|
+
declare function getXiaohongshuData<T extends XiaohongshuMethodType, M extends TypeMode>(methodType: T, options?: ExtendedXiaohongshuOptions<T> & {
|
|
23684
23684
|
typeMode?: M;
|
|
23685
|
-
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T
|
|
23685
|
+
}, cookie?: string, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T]['data'], M>>>;
|
|
23686
23686
|
/**
|
|
23687
23687
|
* 获取小红书数据的核心方法(重载:第二个参数为cookie)
|
|
23688
23688
|
* @param methodType - 请求数据类型
|
|
@@ -23690,9 +23690,9 @@ declare function getXiaohongshuData<T$1 extends XiaohongshuMethodType, M extends
|
|
|
23690
23690
|
* @param options - 请求参数对象,包含typeMode属性控制返回类型
|
|
23691
23691
|
* @returns 根据typeMode返回对应类型的数据
|
|
23692
23692
|
*/
|
|
23693
|
-
declare function getXiaohongshuData<T
|
|
23693
|
+
declare function getXiaohongshuData<T extends XiaohongshuMethodType, M extends TypeMode>(methodType: T, cookie: string, options?: ExtendedXiaohongshuOptions<T> & {
|
|
23694
23694
|
typeMode?: M;
|
|
23695
|
-
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T
|
|
23695
|
+
}, requestConfig?: RequestConfig): Promise<Result<ConditionalReturnType<XiaohongshuDataOptionsMap[T]['data'], M>>>;
|
|
23696
23696
|
//#endregion
|
|
23697
23697
|
//#region src/utils/errors.d.ts
|
|
23698
23698
|
/**
|
|
@@ -23789,14 +23789,14 @@ declare const logMiddleware: (pathsToLog?: string[]) => express.RequestHandler;
|
|
|
23789
23789
|
* @param maxRetries - 最大重试次数,默认3次
|
|
23790
23790
|
* @returns 响应数据或错误结果
|
|
23791
23791
|
*/
|
|
23792
|
-
declare const fetchData: <T
|
|
23792
|
+
declare const fetchData: <T>(config: AxiosRequestConfig<T>, maxRetries?: number) => Promise<T | ErrorResult>;
|
|
23793
23793
|
/**
|
|
23794
23794
|
* 执行网络请求并返回完整响应(带自动重试)
|
|
23795
23795
|
* @param config - axios请求配置
|
|
23796
23796
|
* @param maxRetries - 最大重试次数,默认3次
|
|
23797
23797
|
* @returns 完整响应或错误结果
|
|
23798
23798
|
*/
|
|
23799
|
-
declare const fetchResponse: <T
|
|
23799
|
+
declare const fetchResponse: <T = unknown>(config: AxiosRequestConfig, maxRetries?: number) => Promise<AxiosResponse<T> | ErrorResult>;
|
|
23800
23800
|
/**
|
|
23801
23801
|
* 判断结果是否为网络错误响应
|
|
23802
23802
|
* @param result - 请求结果
|
|
@@ -23810,9 +23810,9 @@ declare const isNetworkErrorResult: (result: unknown) => result is ErrorResult;
|
|
|
23810
23810
|
* @param maxRetries - 最大重试次数,默认3次
|
|
23811
23811
|
* @returns 包含headers和data的对象,或错误结果
|
|
23812
23812
|
*/
|
|
23813
|
-
declare const getHeadersAndData: <T
|
|
23813
|
+
declare const getHeadersAndData: <T = any>(config: AxiosRequestConfig, maxRetries?: number) => Promise<{
|
|
23814
23814
|
headers: RawAxiosResponseHeaders;
|
|
23815
|
-
data: T
|
|
23815
|
+
data: T;
|
|
23816
23816
|
} | ErrorResult>;
|
|
23817
23817
|
//#endregion
|
|
23818
23818
|
//#region src/index.d.ts
|
package/dist/default/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikenxuan/amagi",
|
|
3
|
-
"version": "5.12.
|
|
3
|
+
"version": "5.12.1",
|
|
4
4
|
"description": "抖音、B站的 web 端相关数据接口基于 Node.js 的实现",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"douyin",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"sort": "npx sort-package-json"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@ikenxuan/xhshow-ts": "^1.0.
|
|
76
|
+
"@ikenxuan/xhshow-ts": "^1.0.1",
|
|
77
77
|
"axios": "^1.12.2",
|
|
78
78
|
"chalk": "5.6.2",
|
|
79
79
|
"express": "npm:@karinjs/express@^1.0.3",
|