@inploi/flows

中文文档
9.10.2发布于 2026/11/01MITTypeScriptESM + CJS

@inploi/flows/engine 是共享应用程序解释器。遗留呼叫者保留他们现有的最新应答 undo 以及提交政策。

中文使用文档

流

@inploi/flows/engine 是共享应用程序解释器。遗留呼叫者保留 他们现有的最新答案 undo 以及提交政策。

@inploi/flows/replay 出口 createEditableFlowInterpreter这是一家可选择的工厂 同样的引擎参数加上 onReplayState. 它使 reviewAnswers, previewEdit({visitIndex, answer}) 和 editAnswer({visitIndex, answer}) 在 首次提交确认。访问确定已完成的问题出现情况; 包括明确的跳过。取消和预览永远不会改变应用程序。

编辑恢复其访问检查点并静默地重建所选内容 路径。缺少、无效或传递依赖的答案再次询问;新添加的, 更改和删除的分支输出通过依赖项失效传播。 每次访问都会对交付的问题文本、输入类型、选项、标签、 验证配置和区域设置,以及所有机器人呈现历史的SHA-256 从流的开始到那个问题,按顺序(包括文本,链接,图像, 系统/信息消息,早期的问题提示,每个交付控件的文本/配置和交付的插值)。 只排除候选答案回声,包括跳过的答案注释。更改之前的输出无效 每一个后来的回答;未更改的输出允许重用。更改了继续/确认控制暂停,以便在后面的问题之前明确回答;未更改的、先前确认的控件可以静默重播。预应用Continue标签插入当前答案。重复使用要求保存的指纹匹配; 独立的答案可以在暂停之后继续存在,包括重新加载和继续。等待编辑 在重建开始前保存。一个单独的持久同意需求 幸存日志丢失:编辑后的每次提交,包括自动提交节点 和验证码重试,等待显式发送。恢复的可编辑会话 可用日记账也显示确认。具有隔离服务的头部运行比较有效载荷,预应用输入, 路径、消息、当前输入、问题和上下文指纹以及审查和发送前的终端状态。Timing-only 确认字段不影响等效性;真正的输入保持它的冷却时间。一个 Mismatch记录一个无内容的警告,并从编辑过的访问请求。

可选的version-5日志共享主机现有的存储生命周期。Version-1-4 日志在没有重用的情况下退回到确认状态。主机使用 storableReplayJournal(data) 将匹配当前非文件提交的值替换为密钥和SHA-256指纹。 加载在将引用物化到解释器内存之前验证它们;检查点值只需要 中断的编辑将保留,直到达到它们或重建得到确认。取代检查点 比较只保留SHA-256指纹;保存的候选文件省略了旧的提示/控制文本。替换的值和保存的重放候选值 然后被修剪,保留最小的前缀用于第二次发送等价性检查。文件引用使用SHA-256 对完整的编码内容、元数据和文件顺序进行计算 答案是隐含的或隐含的。相同名称,相同大小的替代品仍然是不同的。 文件字节留在当前提交和瞬态解释器内存中,而不是日志中。 检查点引用池条目。加载验证答案的校验和, 访问,控制,历史和记录。“遗留撤销”将丢弃日志。过期的记录, 不同地区的记录和日志保留了上下文指纹 最新的修正,直到新的通道。 没有访问的遗留会话,循环重放后缀,包含重复问题访问的日志,同时发生的重复写入和 不支持的写节点不合格。定义限制为512个节点和 期刊到4096个不同的值;这些保守限制保留了修正。 流程/构建/作业/上下文标识必须与检查点匹配。第一次发送尝试 丢弃日志并永久禁用该会话的审阅编辑。 重复的重读会在调用集成之前使缓存的请求无效;因此失败了 使用引擎的错误默认值进行重建,没有过时的结果回退循环。 缓存使用SHA-256请求密钥,而不是原始的电子邮件请求。完成、重新启动和过期 丢弃带有主机快照的日志;候选程序还删除过期的内存回调记录。

影响预览遵循使用现有答案的预期路径,并且 新达到的问题的代表性值。回放时给出的答案 可以更改以后的分支,因此其问题计数。结果包括 questionCount 和 endsApplication,因此零问题终端分支可以是 区别于返回Send。它不执行真正的网络或分析调用。

预应用重复数据删除在引擎内部:规范的SHA-256指纹 抑制相同的快照请求,更改的答案附加一个新的快照, 最后Send重建自己的预应用输入。失败的快照请求可以是 稍后重试;它与应用程序写屏障是分开的。

浏览器渲染器共享保存的电话解析 countries,文件读取 utils 和一模一样的英语会话副本 i18n. 关闭提交行也在这里共享:“对不起,在您申请时此角色已关闭。” 英文措辞于2026年10月30日获得批准。它对应用程序交付或存储没有任何要求。

运行时依赖: @noble/hashes

@inploi/flows 只有一个运行时依赖 @inploi 同行, @noble/hashes (固定,审计,零依赖)。 contentFingerprint 在 src/pre-apply-request.ts 使用SHA-256进行预应用重复数据删除和每次重播 指纹》杂志上。其他选择在这里不起作用:

  • crypto.subtle.digest 仅在安全(https)页面上公开,而客户嵌入可以在HTTP上运行 (戳- 7444)。它也是异步的,而日志散列在整个引擎中是同步的。
  • 现有的 hashObject 在 session-key.ts 会话键的32位djb2散列。它不耐碰撞, 因此,它不能代替决定答案是否被重用的内容指纹。

成本:两个导入的函数增加了大约2.4 KB压缩(esbuild, minified,测量于2026年10月7日)。聊天机器人和候选人 束流,所以他们也携带它。将其替换为另一个在http页面上工作的同步SHA-256。

测试

运行 pnpm --filter @inploi/flows test, check 和 build. 生成的oracle位于 src/replay-tests;它的README记录测量的覆盖和复制命令。冻结发布的语料库为 中的一个库根测试夹具 test-fixtures/flows/外, packages/,所以它永远不会发货。所有语料库答案都是合成的。

版本与发布记录

@inploi/flows 共发布 32 个版本,首次发布于 2025/04/03;过去 12 个月发布了 29 个版本。

版本发布日期距今
9.10.2latest2026/11/012 天前
9.10.12026/10/313 天前
9.10.02026/10/295 天前
9.9.12026/10/267 天前
9.9.02026/10/2113 天前
9.8.22026/10/0925 天前

关于 @inploi/flows 的常见问题

@inploi/flows 是什么?

@inploi/flows/engine 是共享应用程序解释器。遗留呼叫者保留他们现有的最新应答 undo 以及提交政策。

如何安装 @inploi/flows?

在项目目录运行 npm install @inploi/flows,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@inploi/sdk(>=2.1.5)、@inploi/core(*)、@inploi/i18n(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@inploi/flows 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@inploi/flows 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@inploi/flows 可以商用吗?

@inploi/flows 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@inploi/flows 还在维护吗?

最新版本 9.10.2 发布于 2026/11/01(2 天前);至今共发布 32 个版本,其中过去 12 个月发布了 29 个;首次发布于 2025/04/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。