当前浏览的是 v7 预览版文档(v7 尚未正式发布,API 可能随版本调整)。本页是 v7 新增内容,去 v6 正式版文档首页
@ikenxuan/amagi
类型参考

接口

71 个符号,由 scripts/api-extractor.ts 从 packages/core/src/index.ts 抽取

本页 71 个符号由 packages/core/src/index.ts 的导出面在构建期生成, 签名、参数表与源码位置都取自 TypeScript 编译器对源码的解析。全部导出的索引见 类型索引,同一批能力的 SDK 与 HTTP 形态见 SDK 方法页 与 HTTP 端点参考。

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:responsetransport/client.ts 每发一次请求
http:errortransport/client.ts,响应回来了但状态码非 2xx
network:retrytransport/client.ts,一次失败即将退避重试
network:errortransport/client.ts,请求始终没拿到响应且退避用尽
log:warn / log:errorcreateTransportEmitter,上面两条的日志行
log:markclient/createClient.ts 的 startServer 开始监听时
api:success / api:errorruntime/execute.ts 收尾信封时
session:state / session:error / session:successruntime/session.ts 的会话引擎(扫码登录)
log:info / log:debug无 emit 点,见 UNEMITTED_BUS_EVENT_NAMES

Prop

Type

源码:src/runtime/events.ts

AmagiError

失败信封里唯一的错误载体,永不为 undefined

Prop

Type

源码:src/contracts/error.ts

AmagiEventMap

事件类型到数据的映射

Prop

Type

源码:src/model/events.ts

AmagiFailure

失败信封

Prop

Type

源码:src/contracts/result.ts

AmagiMeta

挂在每个信封上的元信息

Prop

Type

源码:src/contracts/meta.ts

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

源码:src/contracts/result.ts

ApiErrorEventData

API 错误事件数据

Prop

Type

源码:src/model/events.ts

ApiSuccessEventData

API 成功事件数据

Prop

Type

源码:src/model/events.ts

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

源码:src/contracts/session.ts

CheckDouyinLoginStateOptions

Prop

Type

源码:src/platforms/douyin/loginState.ts

ClientOptions

客户端构造选项

Prop

Type

源码:src/client/createClient.ts

Credential

跨平台统一的登录凭证

Prop

Type

源码:src/contracts/session.ts

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

源码:src/runtime/events.ts

FacadeServerOptions

门面版 startServer 的第二参。

只透出 openapi 一项;port / host / token / routers 这些全选项留给 server/auth.ts 的选项版 startServer。

Prop

Type

源码:src/client/createClient.ts

HttpRequestEventData

HTTP 请求事件数据

Prop

Type

源码:src/model/events.ts

HttpResponseEventData

HTTP 响应事件数据

Prop

Type

源码:src/model/events.ts

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

源码:src/model/events.ts

LoginNamespace

登录命名空间:qrcode() 创建会话,resume() 从 opaque string 恢复

Prop

Type

源码:src/contracts/session.ts

LoginSession

登录会话:三种消费方式(回调 / AsyncIterable / 手动单步)。

返回终态时永不 reject(除调用方回调自己抛出)。

Prop

Type

源码:src/contracts/session.ts

MintDouyinGuestCookieOptions

Prop

Type

源码:src/platforms/douyin/guestCredential.ts

NetworkErrorEventData

网络错误事件数据

Prop

Type

源码:src/model/events.ts

NetworkRetryEventData

网络重试事件数据

Prop

Type

源码:src/model/events.ts

NormalizedDouyinCookie

Prop

Type

源码:src/platforms/douyin/cookie.ts

Qrcode

二维码

Prop

Type

源码:src/contracts/session.ts

QrcodeLoginStrategy

平台扫码登录策略。

轮询循环 / 超时 / 退避 / 取消全在引擎里,策略只写协议细节。

Prop

Type

源码:src/contracts/session.ts

RequestTrace

单次底层 HTTP 请求的明细

Prop

Type

源码:src/contracts/meta.ts

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

源码:src/contracts/error.ts

SessionCtx

平台会话上下文。

由引擎创建并逐次轮询更新;平台私有字段(biz_trace_id / verify_way / verifyTicket / encryptUid / stdParams / newVerifyFlow / diversionTag…) 放在 data 里由策略自己读写,引擎原样携带。

Prop

Type

源码:src/contracts/session.ts

SmsChallenge

短信验证码 challenge

Prop

Type

源码:src/contracts/session.ts

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

源码:src/contracts/error.ts

VerifyPageOptions

renderVerifyPage 的选项

Prop

Type

源码:src/verify/index.ts

WatchHandlers

会话回调(watch 出口)

Prop

Type

源码:src/contracts/session.ts

WatchOptions

会话 watch 选项

Prop

Type

源码:src/contracts/session.ts

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

源码:src/contracts/cookie.ts

On this page