Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

oak-domain 更新日志

当前 package6.0.1
最新 tag6.0.0
覆盖区间5.1.36..6.0.0 / 6.0.0..HEAD

6.0.1 未发布(区间:6.0.0..HEAD

未发布package 已到 6.0.1,latest tag 后仍有编译器变更。
  • 编译器新增发布包实体解析模块,依赖实体入口按 es/entities -> lib/entities -> src/entities 查找,并支持同名 .d.ts + .js 合并解析。
  • EntityDesc 的第四泛型可以从声明文件继承枚举信息,覆盖字符串字面量联合、导入类型别名、enum、as const 数组和 keyof typeof CONST,例如 Language = keyof typeof LANGUAGE_LABELS
  • ActionDef 支持 runtime initializer、import alias 和本地 action/state alias bridge,发布包不再需要靠 src 提供 initializer 结构。
  • 新增 OakPackage metadata 类型和读取规则:oak.business.moduleoak.business.dependenciesoak.business.featureInitoak.compiler.transform 成为规范字段,旧的 isLibdepLibfeatureInitneedOakTransform 只作为兼容回退。
  • LocalizedContent 进入基础域,StorageDesc.localizedContentSelectOption.localizedContentBackendRuntimeContext.getLocale() 和 selection/result rewrite 链路补齐,支持按当前 locale 自动注入翻译内容。
  • Language 扩展为 zh_CNen_USes_ESfr_FRar_SAru_RUQ_FullTextValue.$language 也改为复用 Language
  • Decimal<P, S> / Price 改为字符串语义,新增 decimal 工具函数和 Q_DecimalValue,decimal 字段的 update expression 类型边界收紧,避免直接生成不支持的表达式类型。
  • 查询类型补齐 $xor、JSON 内部 $and / $or / $length / 点前缀字面量 key、Geo / SingleGeo 字段级过滤,以及 Geo 表达式类型。
  • locale 编译输出改为 src/data/i18n.json 承载大数据,src/data/i18n.ts 保持兼容 wrapper;tscBuilder 会复制相对 JSON 运行时资产。
  • routerBuilder 支持页面 / namespace 的 index.config,生成 web route meta.titletitleI18nKeyaccessnamespaceKeynamespacePath,并识别 web.mobile.tsx 作为 web 渲染文件。
  • routerBuilder 增加 Desktop renderer 路由发现;context 序列化与客户端环境元数据可携带 Desktop runtime / renderer 信息,供 application 解析区分浏览器与桌面壳。
  • tscBuilder 增加程序化 compiler plugin:build(pwd, args, plugins) 接收 TscCompilerPlugin[],插件的 prepareProgram(context) 可以替换 compiler host、rootNames,并映射或过滤 diagnostics;多个插件按顺序组合。watch program 与分析 Program 隔离,使用 plugin 时不会盲目复用旧 BuilderProgram。它是编译器 API,不等同于在 oak.config.ts 中填写任意 Vite 插件名。
  • schema builder 支持显式配置,locale builder 支持命名 workspace,不再只固定扫描历史 web / wechatMp 目录。
  • Connector 与跨端工具补齐 SSE / mini-program 路径:支持 connector-backed SSE endpoint、小程序 SSE fetch、socket scope 透传和轻量 URL/fetch 兼容层。
  • Connector 增加 makeEndpointUrl(path)SimpleConnector 下沉通用 fetch 适配;小程序端 URL 改用轻量实现,移除旧 bundled whatwg-url
  • validator 拆分为 utils/validate/*,补充身份证、手机号、国籍、护照等独立入口;内部工具从 lodash 切到 es-toolkit / utils/toolkit
  • 修复 update expression、unset 带点字面量 key、继承索引冲突、继承 enum locale 合并、runtime action def clone、自定义检查器 i18n 诊断等问题。
主要 diff 文件:src/compiler/entitySource.tssrc/compiler/entityDescEnum.tssrc/compiler/schemaBuilder.tssrc/compiler/dependencyBuilder.tssrc/compiler/localeBuilder.tssrc/compiler/routerBuilder.tssrc/types/OakPackage.tssrc/entities/LocalizedContent.tssrc/utils/localizedContent.tssrc/utils/decimal.tssrc/utils/fetch/*src/utils/url/lightweight.tstest/*

6.0.0(tag:6.0.0,区间:5.1.36..6.0.0

已发布6.x 编译链路重构版本。
  • schema 编译支持多继承与 inherited metadata,继承来的动作、状态、索引、locale 和 style 会进入生成结果。
  • dependency / feature 初始化输出重构,依赖包的初始化 metadata 下沉到发布包语义,不再依赖前端模式下的临时 init 文件。
  • locale 编译支持依赖包发现和英文 locale 输出,为后续系统翻译能力打基础。
  • tscBuilder 增加 alias emit / watch 支持,routerBuilder 增加 cache mode。
  • 新增一批 customChecks,并补充 dependency feature 初始化说明文档。
主要 diff 文件:src/compiler/dependencyBuilder.tssrc/compiler/schemaBuilder.tssrc/compiler/routerBuilder.tssrc/compiler/localeBuilder.tssrc/compiler/tscBuilder.tssrc/compiler/customChecks/*docs/dependency-feature-init-metadata.md

升级注意

发布包要求:发布 Oak 模块时不要发布 src 来补编译器能力。应保证 es/entities 中同时有实体声明和值产物,并把声明依赖到的类型文件一起发布。
覆盖实体:如果模块覆盖默认实体,必须保持旧实体兼容,尤其是动作、状态、关系、ActionDefentityDesc.localesstyle
Decimal 语义:decimal / price 字段现在按字符串保精度处理。业务代码不要再把这类字段当普通 number 做四则运算,过滤、更新和表达式更新都应使用字符串或 decimal helper。
包元数据:新包和升级后的共享包应迁移到 oak.business.*oak.compiler.transform。旧字段仍兼容,但不要继续把通用业务包硬编码到 app 的 extraOakModules 或编译器分支里。