From 71404857c2559789f2d201b6beb17d72ffe9eed8 Mon Sep 17 00:00:00 2001 From: AI Engineer Date: Wed, 10 Jun 2026 12:21:29 +0800 Subject: [PATCH] chore: release v1.0.19 with refactored non-ESM architecture [By: AICoder] --- CHANGELOG.md | 13 + README.md | 91 +- dist/state.js | 1313 +++++++++-------- dist/state.min.js | 2 +- package.json | 2 +- src/component.js | 89 -- src/core.js | 31 - src/dom-utils.js | 3 - src/dom.badbak.for2exp.js | 366 ----- src/dom.js | 357 ----- src/engine.js | 492 ++++++ src/globals.js | 41 - src/index.js | 51 +- src/observer.js | 78 - src/reactive.js | 123 ++ src/utils.js | 98 +- test-results/.last-run.json | 6 +- .../error-context.md | 95 -- test/all.spec.js | 16 +- test/component.test.js | 10 +- test/core.test.js | 1 - test/dom.test.js | 20 +- test/foundation.test.js | 3 +- test/index.html | 22 +- test/inheritance.test.js | 3 +- test/merging.test.js | 5 +- test/observer.test.js | 7 +- test/priority.test.js | 19 +- test/timing.test.js | 3 +- 29 files changed, 1447 insertions(+), 1913 deletions(-) delete mode 100644 src/component.js delete mode 100644 src/core.js delete mode 100644 src/dom-utils.js delete mode 100644 src/dom.badbak.for2exp.js delete mode 100644 src/dom.js create mode 100644 src/engine.js delete mode 100644 src/globals.js delete mode 100644 src/observer.js create mode 100644 src/reactive.js delete mode 100644 test-results/all-modular-unit-tests-and-benchmark/error-context.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fd4972..4c1da7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # CHANGELOG +## v1.0.19 (2026-06-09) + +### 重大变更 (Pure Synchronous Architecture) +- **架构重组**: 将分散的 8 个文件整合为 3 个高内聚模块 (`utils.js`, `reactive.js`, `engine.js`),大幅减少文件碎片。 +- **全局命名空间平铺**: 彻底移除 `ApigoState` 包装对象,核心 API (`NewState`, `Component`, `$`, `$$` 等) 直接平铺挂载至 `globalThis`,回归最朴素的原生开发范式。 +- **源码脱离 ESM**: 源码层级全面剥离 `import` 和 `export` 语句,配合 IIFE 闭包技术实现内部逻辑封装,确保在 `` 中同步加载的绝对可靠性。 +- **`_refExt` 官方支持**: 将此前作为 Hack 存在的 `_refExt` 机制正式合入引擎核心,支持从外部通过 DOM 节点属性注入额外的响应式上下文。 + +### 优化与修复 +- **测试保真度**: 100% 重构单元测试加载机制,模拟用户真实同步引入环境,确保“所测即所用”。 +- **调试增强**: 引入 `globalThis.__DEBUG` 开关,支持在不污染生产环境的前提下开启详尽的指令解析日志。 +- **模板安全性**: 将自动生成的组件模板改为注入至 `document.head`,防止应用级 `innerHTML` 重置导致模板丢失。 + ## v1.0.17 (2026-06-05) ### 重大变更 (Philosophical Restoration) diff --git a/README.md b/README.md index 2861669..5b75426 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,31 @@ # @apigo.cc/state - AI 逻辑操作说明书 -本框架基于原生 `Proxy` 和 `MutationObserver` 实现数据与 DOM 的原子级同步。本手册仅供 AI 构建、维护及驱动基于此引擎的应用。 +本框架基于原生 `Proxy` 和 `MutationObserver` 实现数据与 DOM 的原子级同步。采用纯原生、零 ESM、全同步加载架构。 --- -## 1. 核心状态逻辑映射 +## 0. 快速开始 (Quick Start) +直接在 HTML 中引入(无需打包,完全非 ESM 注入): +```html + +``` -### `NewState(defaults, getter, setter)` -* **功能**:创建响应式代理。 -* **内部机制**:拦截所有属性读写。若属性值变更,触发所有引用该属性的 DOM 节点的更新任务(异步微任务)。 -* **扩展逻辑**:通过 `getter/setter` 拦截器可实现数据持久化(如同步至 URL Hash 或 LocalStorage)。 -* **原子操作**: - * `obj.__watch(key, cb)`: 建立 key -> callback 的直接依赖。 - * `obj.__unwatch(key, cb)`: 解除依赖。 +--- + +## 1. 核心全局 API + +引入后,以下接口直接挂载至 `globalThis`: + +| API | 功能说明 | +| :--- | :--- | +| **`NewState(defaults, getter, setter)`** | 创建响应式状态代理对象。 | +| **`Component.register(name, setup, tpl)`** | 注册自定义组件。支持自动模板合并。 | +| **`RefreshState(node)`** | (别名 `_unsafeRefreshState`) 手动触发特定树的扫描。仅限极致性能调优。 | +| **`SetTranslator(fn)`** | 设置国际化翻译函数。 | +| **`$` / `$$`** | 增强型原生选择器(支持限定作用域)。 | +| **`Util`** | 常用工具集(`clone`, `makeDom`, `getFunctionBody` 等)。 | +| **`Hash` / `LocalStorage`** | 自动同步至 URL 或本地存储的响应式单例。 | +| **`State`** | 框架内置的全局持久化状态单例(含 `exitBlocks` 等控制位)。 | --- @@ -24,61 +37,35 @@ | 指令 | 触发逻辑 | DOM 行为 | 运行约束 | | :--- | :--- | :--- | :--- | | **`$if`** | `Boolean(result)` | `true`: 挂载节点; `false`: 移除节点。 | **必须** 作用于 `