接口
71 个符号,由 scripts/api-extractor.ts 从 packages/core/src/index.ts 抽取
AmagiAxiosTrack
axios 轨。
与信封轨共用同一个实例、同一套 defaults / interceptors —— 差别只有一处:
失败的判据是「信封是不是失败信封」时,这里抛而不是返回。
data 的类型是 AmagiResult<T> 而不是平台载荷:信封是这次调用真正的产物。
Prop
Type
源码:src/client/request/index.ts
AmagiBusEventMap
事件名 → 负载的映射(实例级总线用;顶层导出的 AmagiEventMap 描述的是
全局单例 amagiEvents,是另一张表)。
名字不与 AmagiEventMap 重名:两个同名 interface 一起进 dts 会被打包器给
其中一个加上 $1 后缀,公开面上就出现一个谁都不认识的名字。
谁在发:
| 事件名 | emit 点 |
|---|---|
http:request / http:response | transport/client.ts 每发一次请求 |
http:error | transport/client.ts,响应回来了但状态码非 2xx |
network:retry | transport/client.ts,一次失败即将退避重试 |
network:error | transport/client.ts,请求始终没拿到响应且退避用尽 |
log:warn / log:error | createTransportEmitter,上面两条的日志行 |
log:mark | client/createClient.ts 的 startServer 开始监听时 |
api:success / api:error | runtime/execute.ts 收尾信封时 |
session:state / session:error / session:success | runtime/session.ts 的会话引擎(扫码登录) |
log:info / log:debug | 无 emit 点,见 UNEMITTED_BUS_EVENT_NAMES |
Prop
Type
AmagiError
失败信封里唯一的错误载体,永不为 undefined
Prop
Type
AmagiEventMap
事件类型到数据的映射
Prop
Type
AmagiFailure
失败信封
Prop
Type
AmagiMeta
挂在每个信封上的元信息
Prop
Type
AmagiRequest
平台的请求模块。
打的是任何 URL(包括 amagi 还没收录的接口),自动带上实例 ck 与平台签名,
走与 fetcher 同一条 execute 管线与同一套 judge。与 fetcher 的分工:
fetcher 打已声明的端点(有参数校验 / 翻页 / decode / normalize),
request 打裸请求(给原始载荷,不跑 decode)。
Prop
Type
源码:src/client/request/index.ts
AmagiRequestConfig
client.<平台>.request 的入参。
在 axios 配置之上做两处收窄,都是为了让「不可能发生的事」编译不过:
- 去掉
adapter—— 传它就会绕过签名与信封,直达网络。 responseType收成 transport 支持的三种。axios 还认'blob'/'stream'/'document',但那几种解析出来的东西装不进RawResponse.body。
Prop
Type
源码:src/client/request/index.ts
AmagiRequestOptions
单次请求的 amagi 专属选项。
挂在 axios 配置的 amagi 键下(client.douyin.request.get(url, { amagi: { cookie: false } }))。
只装 axios 装不下的东西 —— timeout / responseType / params / headers /
signal / proxy 这些一律直接用 axios 自己的键,不经这里转手。
Prop
Type
源码:src/contracts/request-options.ts
AmagiSuccess
成功信封
Prop
Type
ApiErrorEventData
API 错误事件数据
Prop
Type
ApiSuccessEventData
API 成功事件数据
Prop
Type
BilibiliFetcher
B站 Fetcher 类型(静态形态:三参签名)。
写成 interface … extends 而不是 type … =:后者是泛型类型别名,
打印器(IDE 悬停 / twoslash / .d.ts)会把 typeof bilibiliRegistry 那 27 个
EndpointDef 连 zod schema 一起整个内联展开(实测单个 fetcher 就上万字符)。
接口是名义类型:容器处只打印这个名字,BilibiliFetcher['fetchVideoInfo']
这样钻进去时方法签名依旧完整 —— 类型不变,只是显示收敛。
源码:src/model/fetchers/bilibili/index.ts
BilibiliMethodOptionsMap
B站 API 方法参数映射接口
每个键对应一种 API 方法,值为该方法所需的参数接口
Prop
Type
源码:src/types/BilibiliAPIParams.ts
BilibiliRefreshInput
刷新入参
Prop
Type
源码:src/platforms/bilibili/cookieRefresh.ts
BilibiliRefreshOutput
刷新产物
Prop
Type
源码:src/platforms/bilibili/cookieRefresh.ts
BilibiliReturnTypeMap
B站返回类型映射
将 methodType 映射到对应的返回数据类型
Prop
Type
源码:src/types/ReturnDataType/Bilibili/index.ts
BoundBilibiliFetcher
绑定 Cookie 的B站 Fetcher 类型(两参签名:cookie 已绑,只剩 options / requestConfig)。
名义接口,理由同 BilibiliFetcher:FetcherOf<…> 是泛型别名,直接用会把整个
registry 内联展开。改成 interface … extends 后 client.bilibili.fetcher /
createBoundBilibiliFetcher(...) 的悬停只显示这个名字,方法签名钻进去仍完整。
源码:src/model/fetchers/bilibili/index.ts
BoundDouyinFetcher
绑定 Cookie 的抖音 Fetcher 类型(形状 = FetcherOf,两参签名)。
名义接口,理由同 DouyinStaticFetcher:写成 type … = FetcherOf<…> 会在
悬停 / .d.ts 里把整个 registry 展开,interface … extends 则只打印这个名字。
源码:src/model/fetchers/douyin/index.ts
BoundKuaishouFetcher
绑定 Cookie 的快手 Fetcher 类型(两参签名:cookie 已绑,只剩 options / requestConfig)。
名义接口,理由同 KuaishouFetcher:FetcherOf<…> 是泛型别名,直接用会把整个
registry 内联展开。改成 interface … extends 后 client.kuaishou.fetcher /
createBoundKuaishouFetcher(...) 的悬停只显示这个名字,方法签名钻进去仍完整。
源码:src/model/fetchers/kuaishou/index.ts
BoundXiaohongshuFetcher
绑定 Cookie 的小红书 Fetcher 类型(两参签名:cookie 已绑,只剩 options / requestConfig)。
名义接口,理由同 XiaohongshuFetcher:FetcherOf<…> 是泛型别名,直接用会把整个
registry 内联展开。改成 interface … extends 后 client.xiaohongshu.fetcher /
createBoundXiaohongshuFetcher(...) 的悬停只显示这个名字,方法签名钻进去仍完整。
源码:src/model/fetchers/xiaohongshu/index.ts
CaptchaChallenge
图形验证码 challenge
Prop
Type
CheckDouyinLoginStateOptions
Prop
Type
源码:src/platforms/douyin/loginState.ts
ClientOptions
客户端构造选项
Prop
Type
Credential
跨平台统一的登录凭证
Prop
Type
DouyinCredentialRequestOptions
凭据请求与 API 请求走同一套 transport/代理/adapter。
Prop
Type
源码:src/platforms/douyin/credentialRequest.ts
DouyinFetcher
抖音 Fetcher 类型(静态形态:三参签名 + 4 个 passport 方法)。
名义接口,理由同 DouyinStaticFetcher。在 registry 派生的方法之上补 4 个
passport 方法(它们不是端点,见下方 douyinFetcher 的构造)。
Prop
Type
源码:src/model/fetchers/douyin/index.ts
DouyinLoginCheck
Prop
Type
源码:src/platforms/douyin/loginState.ts
DouyinMethodOptionsMap
抖音 API 方法参数映射接口
每个键对应一种 API 方法,值为该方法所需的参数接口
Prop
Type
源码:src/types/DouyinAPIParams.ts
DouyinReturnTypeMap
抖音返回类型映射
将 methodType 映射到对应的返回数据类型
Prop
Type
源码:src/types/ReturnDataType/Douyin/index.ts
DouyinStaticFetcher
抖音静态 fetcher 的类型(不含 passport,纯 registry 派生形态)。
写成 interface … extends 而不是 type … =:后者是泛型类型别名,
打印器(IDE 悬停 / twoslash / .d.ts)会把 typeof douyinRegistry 那些
EndpointDef 连 zod schema 一起整个内联展开(实测单个 fetcher 就上十万字符)。
接口是名义类型:容器处只打印这个名字,DouyinStaticFetcher['fetchVideoWork']
这样钻进去时方法签名依旧完整 —— 类型不变,只是显示收敛。
源码:src/model/fetchers/douyin/index.ts
DyPassportQrcode
登录二维码
Prop
Type
源码:src/types/ReturnDataType/Douyin/PassportLogin/PassportLogin.ts
DyPassportSendCodeResult
发码接口归一化后的结果,不含会话字段
Prop
Type
源码:src/types/ReturnDataType/Douyin/PassportLogin/PassportLogin.ts
DyPassportValidateCodeResult
验码接口归一化后的结果,不含会话字段
Prop
Type
源码:src/types/ReturnDataType/Douyin/PassportLogin/PassportLogin.ts
DyPassportVerifyContext
二次验证上下文
字段全部来自轮询响应,需原样透传给发码与验码接口,缺字段会被判为伪造请求。
Prop
Type
源码:src/types/ReturnDataType/Douyin/PassportLogin/PassportLogin.ts
DyPassportVerifyWay
二次验证的一种可选方式
Prop
Type
源码:src/types/ReturnDataType/Douyin/PassportLogin/PassportLogin.ts
EventBus
类型安全的事件总线。
一个 client 实例一条。构造两条就是两条,彼此不共享监听器。
Prop
Type
FacadeServerOptions
门面版 startServer 的第二参。
只透出 openapi 一项;port / host / token / routers 这些全选项留给
server/auth.ts 的选项版 startServer。
Prop
Type
HttpRequestEventData
HTTP 请求事件数据
Prop
Type
HttpResponseEventData
HTTP 响应事件数据
Prop
Type
KuaishouCaptchaChallenge
交给调用方的风控挑战
Prop
Type
源码:src/platforms/kuaishou/captcha.ts
KuaishouFetcher
快手 Fetcher 类型(静态形态:三参签名)。
写成 interface … extends 而不是 type … =:后者是泛型类型别名,
打印器(IDE 悬停 / twoslash / .d.ts)会把 typeof kuaishouRegistry 那些
EndpointDef 连 zod schema 一起整个内联展开。接口是名义类型:容器处只
打印这个名字,KuaishouFetcher['fetchVideoWork'] 这样钻进去时方法签名依旧
完整 —— 类型不变,只是显示收敛。
源码:src/model/fetchers/kuaishou/index.ts
KuaishouMethodOptionsMap
快手 API 方法参数映射
Prop
Type
源码:src/types/KuaishouAPIParams.ts
KuaishouReturnTypeMap
快手返回类型映射
Prop
Type
源码:src/types/ReturnDataType/Kuaishou/index.ts
LogEventData
日志事件数据
Prop
Type
LoginNamespace
登录命名空间:qrcode() 创建会话,resume() 从 opaque string 恢复
Prop
Type
LoginSession
登录会话:三种消费方式(回调 / AsyncIterable / 手动单步)。
返回终态时永不 reject(除调用方回调自己抛出)。
Prop
Type
MintDouyinGuestCookieOptions
Prop
Type
源码:src/platforms/douyin/guestCredential.ts
NetworkErrorEventData
网络错误事件数据
Prop
Type
NetworkRetryEventData
网络重试事件数据
Prop
Type
NormalizedDouyinCookie
Prop
Type
源码:src/platforms/douyin/cookie.ts
Qrcode
二维码
Prop
Type
QrcodeLoginStrategy
平台扫码登录策略。
轮询循环 / 超时 / 退避 / 取消全在引擎里,策略只写协议细节。
Prop
Type
RequestTrace
单次底层 HTTP 请求的明细
Prop
Type
ResolvedDouyinCredential
Prop
Type
源码:src/platforms/douyin/credential.ts
ResolveDouyinCredentialOptions
Prop
Type
源码:src/platforms/douyin/credential.ts
RiskChallenge
风控挑战:撞验证页时交给调用方的「怎么过去」。
为什么不塞进 JudgeVerdict:judge 只管分类,四个槽位装不下一个
URL。但 kind: 'risk' 光有分类是条死路 —— CAPTCHA_REQUIRED 只告诉调用方
「你被拦了」,不给出路。以前地址只能从 error.raw 里自己捞,而 raw 只在
createClient({ debug: true }) 时才有、HTTP 路由那一面结构上拿不到
(createXxxRoutes 不接 debug)——最需要滑块地址的入口恰好是唯一产不出它的
入口。所以这一份不受 debug 管,只要 judge 判成 risk 就填。
只放地址与票据,不放原始响应体:它是「必要信息」而不是「排障明细」, 也没有大对象与凭证字段的顾虑。
只做中转,不做绕过 —— amagi 不引入任何识别、轨迹模拟或自动过验证的代码。
Prop
Type
SessionCtx
平台会话上下文。
由引擎创建并逐次轮询更新;平台私有字段(biz_trace_id / verify_way /
verifyTicket / encryptUid / stdParams / newVerifyFlow / diversionTag…)
放在 data 里由策略自己读写,引擎原样携带。
Prop
Type
SmsChallenge
短信验证码 challenge
Prop
Type
SuccessBilibiliFetcher
只保留成功分支的B站 fetcher 类型。
给「用一层 Proxy 把失败信封转成异常」的下游封装用:包装后的 fetcher 声明成
这个类型,.data 就是 T 而不是 T | undefined。名义接口,理由同 BilibiliFetcher。
源码:src/model/fetchers/bilibili/index.ts
SuccessDouyinFetcher
只保留成功分支的抖音 fetcher 类型。
给「用一层 Proxy 把失败信封转成异常」的下游封装用:包装后的 fetcher 声明成
这个类型,.data 就是 T 而不是 T | undefined。名义接口,理由同上。
源码:src/model/fetchers/douyin/index.ts
SuccessKuaishouFetcher
只保留成功分支的快手 fetcher 类型。
给「用一层 Proxy 把失败信封转成异常」的下游封装用:包装后的 fetcher 声明成
这个类型,.data 就是 T 而不是 T | undefined。名义接口,理由同 KuaishouFetcher。
源码:src/model/fetchers/kuaishou/index.ts
SuccessXiaohongshuFetcher
只保留成功分支的小红书 fetcher 类型。
给「用一层 Proxy 把失败信封转成异常」的下游封装用:包装后的 fetcher 声明成
这个类型,.data 就是 T 而不是 T | undefined。名义接口,理由同 XiaohongshuFetcher。
源码:src/model/fetchers/xiaohongshu/index.ts
ValidationIssue
kind === 'validation' 时的字段级错误
Prop
Type
VerifyPageOptions
renderVerifyPage 的选项
Prop
Type
WatchHandlers
会话回调(watch 出口)
Prop
Type
WatchOptions
会话 watch 选项
Prop
Type
XiaohongshuFetcher
小红书 Fetcher 类型(静态形态:三参签名)。
写成 interface … extends 而不是 type … =:后者是泛型类型别名,
打印器(IDE 悬停 / twoslash / .d.ts)会把 typeof xiaohongshuRegistry 那些
EndpointDef 连 zod schema 一起整个内联展开。接口是名义类型:容器处只
打印这个名字,XiaohongshuFetcher['fetchNoteDetail'] 这样钻进去时方法签名依旧
完整 —— 类型不变,只是显示收敛。
源码:src/model/fetchers/xiaohongshu/index.ts
XiaohongshuMethodOptionsMap
小红书 API 方法参数映射
Prop
Type
源码:src/types/XiaohongshuAPIParams.ts
XiaohongshuReturnTypeMap
小红书返回类型映射
Prop
Type
源码:src/types/ReturnDataType/Xiaohongshu/index.ts
XiaohongshuSessionInput
小红书同一会话的 Cookie 与可选签名材料;不属于 HTTP 请求配置。
Prop
Type