@crvouga/ mockingbird-service-vibe (英语)
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
WIP Vibe订正案 2026-06-01 (英语) OAuth和同步竞选支出报告.
安装
bun add @crvouga/mockingbird-service-vibe
使用量
import { DEFAULT_ADVERTISER } from "@crvouga/mockingbird-service-vibe"
import { createServer } from "@crvouga/mockingbird-service-vibe/server"
// Test setup: a local Vibe with one spend row for the default client's advertiser.
const advertiserId = DEFAULT_ADVERTISER
const server = await createServer({ rows: [{
advertiser_id: advertiserId, impression_date: "2026-01-01", spend: "12.50",
}] })
const baseUrl = server.url
// Application code: the report request it sends to Vibe.
const response = await fetch(`${baseUrl}/reports`, {
method: "POST",
headers: { authorization: "Bearer mock_vibe_token", "x-vibe-revision": "2026-06-01", "content-type": "application/json" },
body: JSON.stringify({ start_date: "2026-01-01", end_date: "2026-01-02", advertiser_ids: [advertiserId], dimensions: ["impression_date"], metrics: ["spend"] }),
})
const report = await response.json()
console.log(report.id, report.status)
await server.close()
运行 mockingbird-vibe serve --port 12128输入 http://localhost:12128 作为
消费者的API起源. 在同一来源下载点 。 没有通用的供应商
(b) 保持消费者生产HTTPS政策的完整.
合同
POST /oauth2/token:窗体编码客户端 具有HTTP Basic credities. 默认合成客户端为模拟 客户端/模拟 客户端 机密. 可选范围必须是: 客户端范围子集。 答复包括无记名标志、范围和过期失效. 这个端点不需要X-Vibe-Review;失败使用标准的OAuth信封.POST /reportsJSON报告请求, 熊鼠标志和被绑定的修改。 决 定 有UUID/状态/创建 at。 广告者必须属于客户端. 视窗是包含启动的, 最终排他性、阳性,最多45天。 JSON/DAY固定装置.GET /reports/{report_id}:只有拥有客户才能投票. 默认时钟进度 : 开始,在一秒钟,准备两秒钟。 准备 本地下载 url和生成/延长时间戳; FAILED 包括失败 原因.- 内部
/__admin/blobs/{id}?token=…:供应商预署下载的本地站点. 返回合成行的 JSON 阵列,保留数字-as-string 度量衡和无效值, 并在出生后24小时期满。 能力值为确定测试站, 而不是生产签名。 没有获取浏览器跟踪或真实的运动数据 .
种子 clients,预汇总 rows 财务报告和审定财务报表 settings 通过构建者选项或共享
/__admin/state。报告在创建时间保留固定行并选择要求的列.
定点日期已在要求的报告时区;没有归属或汇总
引擎是隐含的。 默认无记名模拟器 vibe token自初始播种起有效1小时.
测试控制
收藏:客户端,符号,行,报告,设置. 设置显示处理M, 准备中M
和标志Ttlseconds。 报告揭露了准备就绪的At(null意味着被卡住)、失败和缺失的Artifact.
使用共享时钟来推进生命周期/到期,并共享时间线/重置/状态/journal API.
重置还原了构造器固定装置. 期刊包含元数据,从不报告行或证书.
命名空间按信头、 映射的无记名符号或 /__admin/ns/{name} 路径。 下载链接
保留命名空间和自定义 adminPrefix 出行路线.
预设: 速率限制( 已写为 429/ Retry- After), 服务器 error (500), 连接 投放, 报告失败并报告 stuck。 共同过失规则还规定了决定性的延迟性. 这些是测试控制;它们不模拟真正的滑窗配额或实际处理SLA. 此子集不需要 Webhoks .
验收测试所有四期271行为,OAuth过期/镜片,本地文物
过期/丢失文件,命名空间/重置/已编辑的日记并服务于HTTP. 进行财产测试
每一次对等操作和检测差异. bun scripts/parity.ts 用途
VBE ACCESS TOKEN 和 VIBE REPORT ID 只读现有报告信封检查; 实时
经认证的等价尚未实现. bun scripts/parity.ts --unauthenticated 比较缺失/
无效的合成键对正端点错误 。 这个探测器经过确认
token_invalid 加号 WWW-Authenticate: Bearer,与文档中的
invalid_token 实例。 合同的其余部分沿用已公布的OpenAPI参考.
故意不模拟
代理购买、运动突变、归属推论、生产JWT签名、OAuth浏览器 同意/更新、CSV或非日报告、计量汇总、时区转换和报告 过滤表达式。 请求的尺寸种子已合并行 。 模拟器 拒绝CSV/非日请求,即使供应商支持这些请求;这些请求不在其中 初始消费子集. 它没有主张供应商API或活费率限额的完全平等.
API 密码
VibeAPI:获取API,重置和状态收藏.createRuntime: 共享管理员/名空间/小时/故障表面.VIBE_NAMESPACE, (中文(简体) ),VIBE_PRESETS, (中文(简体) ),DEFAULT_ADVERTISER:服务常数.document, (中文(简体) ),operationIds, (中文(简体) ),supportedOperationIds:生成合同元数据.createServer, (中文(简体) ),serveTarget, (中文(简体) ),DEFAULT_PORT从./server:节点HTTP/CLI出入口.
公共类型:客户端、托肯、行、报告、设置、vibeAPI 选项、操作 爱德, 被支持的OperationId;服务器类型为"vibeServer Options"和"vibeServer".