/** * `@drama/config-source` 公共面(唯一对外入口)。 * * 版本化配置缓存:`load` / `version` / `now` 全注入,包内不 import `@drama/db`、`ioredis`、 * 不读 `process.env`、不建连接、不用 `Date.now`。`import '@drama/config-source'` 零 IO。 * * 导出: * createVersionedSource({ load, version, ttlMs, now }) => { get, invalidate } * createTableVersion({ db, table }) => version() 配置表版本令牌(按 id 排序后的完整行内容) * * 消费方各自提供表映射的 `load`,本包只提供「新鲜窗口 + 版本比对 + 并发去重」机制与配置表的 * 通用版本令牌,不认识 redis / vendor / 行结构;db 由消费方注入,包内不建连接。 * * @typedef {import('./versioned-source.js').VersionedSource} VersionedSource * @typedef {import('./versioned-source.js').VersionedSourceDeps} VersionedSourceDeps */ export { createVersionedSource } from './versioned-source.js' export { createTableVersion } from './table-version.js'