schema-dsl 1.0.9 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +325 -2
  2. package/README.md +419 -189
  3. package/STATUS.md +65 -3
  4. package/docs/FEATURE-INDEX.md +1 -1
  5. package/docs/best-practices.md +3 -3
  6. package/docs/cache-manager.md +1 -1
  7. package/docs/conditional-api.md +1278 -0
  8. package/docs/dsl-syntax.md +1 -1
  9. package/docs/dynamic-locale.md +2 -2
  10. package/docs/error-handling.md +2 -2
  11. package/docs/export-guide.md +2 -2
  12. package/docs/export-limitations.md +3 -3
  13. package/docs/faq.md +6 -6
  14. package/docs/frontend-i18n-guide.md +1 -1
  15. package/docs/mongodb-exporter.md +3 -3
  16. package/docs/multi-type-support.md +12 -2
  17. package/docs/mysql-exporter.md +1 -1
  18. package/docs/plugin-system.md +4 -4
  19. package/docs/postgresql-exporter.md +1 -1
  20. package/docs/quick-start.md +4 -4
  21. package/docs/troubleshooting.md +2 -2
  22. package/docs/type-reference.md +5 -5
  23. package/docs/typescript-guide.md +5 -6
  24. package/docs/union-type-guide.md +147 -0
  25. package/docs/union-types.md +277 -0
  26. package/docs/validate-async.md +1 -1
  27. package/examples/array-dsl-example.js +1 -1
  28. package/examples/conditional-example.js +288 -0
  29. package/examples/conditional-non-object.js +129 -0
  30. package/examples/conditional-validate-example.js +321 -0
  31. package/examples/i18n-error.examples.js +181 -0
  32. package/examples/union-type-example.js +127 -0
  33. package/examples/union-types-example.js +77 -0
  34. package/index.d.ts +655 -7
  35. package/index.js +54 -3
  36. package/lib/adapters/DslAdapter.js +14 -5
  37. package/lib/core/ConditionalBuilder.js +503 -0
  38. package/lib/core/DslBuilder.js +113 -0
  39. package/lib/core/Locale.js +13 -8
  40. package/lib/core/Validator.js +250 -2
  41. package/lib/errors/I18nError.js +222 -0
  42. package/lib/locales/en-US.js +39 -0
  43. package/lib/locales/es-ES.js +4 -0
  44. package/lib/locales/fr-FR.js +4 -0
  45. package/lib/locales/ja-JP.js +9 -0
  46. package/lib/locales/zh-CN.js +39 -0
  47. package/package.json +3 -1
package/STATUS.md CHANGED
@@ -1,13 +1,15 @@
1
1
  # schema-dsl 项目状态
2
2
 
3
- > **最后更新**: 2026-01-04
4
- > **当前版本**: v1.0.9
5
- > **项目状态**: ✅ 全部完成,测试100%通过(725个测试)
3
+ > **最后更新**: 2026-01-06
4
+ > **当前版本**: v1.1.1
5
+ > **项目状态**: ✅ 全部完成,测试100%通过(921个测试)
6
6
 
7
7
  ---
8
8
 
9
9
  ## 📋 目录
10
10
 
11
+ - [v1.1.1](#v111) - 2026-01-06 ✅ 已完成
12
+ - [v1.1.0](#v110) - 2026-01-05 ✅ 已完成
11
13
  - [v1.0.9](#v109) - 2026-01-04 ✅ 已完成
12
14
  - [v1.0.8](#v108) - 2026-01-04 ✅ 已完成
13
15
  - [v1.0.7](#v107) - 2026-01-04 ✅ 已完成
@@ -23,6 +25,66 @@
23
25
 
24
26
  ## 版本发布计划
25
27
 
28
+ ### v1.1.1
29
+
30
+ **发布日期**: 2026-01-06
31
+ **状态**: ✅ 已完成
32
+ **类型**: 🎉 新功能 - ConditionalBuilder 独立消息 + I18nError 多语言错误
33
+ **进度**: 100%完成 | 测试: 921个通过 | 新增: 52个测试
34
+
35
+ | 需求标题 | 状态 | 优先级 | 详细 |
36
+ |---------|------|--------|------|
37
+ | ConditionalBuilder 独立消息 | ✅ 完成 | P1 | `.and()/.or()` 后可调用 `.message()` |
38
+ | I18nError 多语言错误 | ✅ 完成 | P1 | 统一的多语言错误抛出机制 |
39
+ | dsl.error 快捷方法 | ✅ 完成 | P1 | create/throw/assert 三个方法 |
40
+ | TypeScript 类型定义 | ✅ 完成 | P0 | I18nError + dsl.error 类型 |
41
+ | 测试用例 | ✅ 完成 | P0 | 52个新测试(24+28) |
42
+ | 文档更新 | ✅ 完成 | P0 | README + CHANGELOG + examples |
43
+ | 语言包扩充 | ✅ 完成 | P1 | 中英文 20+ 错误消息 |
44
+
45
+ **实现状态统计**:
46
+ - ✅ 完成: 7个
47
+ - 🔄 进行中: 0个
48
+ - ⏳ 待完成: 0个
49
+
50
+ **核心变更**:
51
+ - ✅ **新增**: ConditionalBuilder 支持 `.and()/.or()` 独立消息
52
+ - ✅ **新增**: I18nError 类 (lib/errors/I18nError.js)
53
+ - ✅ **新增**: dsl.error 快捷方法 (create/throw/assert)
54
+ - ✅ **新增**: 20+ 内置错误代码(通用/账户/用户/订单)
55
+ - ✅ **新增**: examples/i18n-error.examples.js 示例文件
56
+ - ✅ **更新**: README FAQ Q7/Q8
57
+ - ✅ **更新**: CHANGELOG v1.1.1 完整记录
58
+ - ✅ **更新**: index.d.ts TypeScript 类型定义
59
+
60
+ ---
61
+
62
+ ### v1.1.0
63
+
64
+ **发布日期**: 2026-01-05
65
+ **状态**: ✅ 已完成
66
+ **类型**: 🎉 重大功能 - 跨类型联合验证 + 插件系统增强
67
+ **进度**: 100%完成
68
+
69
+ | 需求标题 | 状态 | 优先级 | 详细 |
70
+ |---------|------|--------|------|
71
+ | 跨类型联合验证 | ✅ 完成 | P1 | `types:string|number` 语法 |
72
+ | 插件 DSL 类型注册 | ✅ 完成 | P1 | 插件可注册自定义 DSL 类型 |
73
+ | DslBuilder.registerType | ✅ 完成 | P0 | 静态方法供插件使用 |
74
+ | 文档更新 | ✅ 完成 | P0 | README + CHANGELOG |
75
+
76
+ **实现状态统计**:
77
+ - ✅ 完成: 4个
78
+ - 🔄 进行中: 0个
79
+ - ⏳ 待完成: 0个
80
+
81
+ **核心变更**:
82
+ - ✅ **新增**: `types:` 语法支持跨类型联合验证
83
+ - ✅ **增强**: 插件系统支持 DSL 类型注册
84
+ - ✅ **新增**: DslBuilder.registerType() 静态方法
85
+
86
+ ---
87
+
26
88
  ### v1.0.9
27
89
 
28
90
  **发布日期**: 2026-01-04
@@ -514,6 +514,6 @@ const schema = {
514
514
  ---
515
515
 
516
516
  **最后更新**: 2025-12-29
517
- **维护者**: SchemaIO Team
517
+ **维护者**: SchemaI-DSL Team
518
518
 
519
519
 
@@ -79,7 +79,7 @@ const schema = dsl({
79
79
 
80
80
  ### 3. 使用预设验证器
81
81
 
82
- SchemaIO 提供了常用的预设验证器,开箱即用:
82
+ SchemaI-DSL 提供了常用的预设验证器,开箱即用:
83
83
 
84
84
  ```javascript
85
85
  const schema = dsl({
@@ -639,7 +639,7 @@ setInterval(() => {
639
639
 
640
640
  ## 性能基准参考
641
641
 
642
- 基于 SchemaIO 的性能测试:
642
+ 基于 SchemaI-DSL 的性能测试:
643
643
 
644
644
  | 操作 | 性能指标 |
645
645
  |------|---------|
@@ -655,7 +655,7 @@ setInterval(() => {
655
655
 
656
656
  ## 总结
657
657
 
658
- 遵循这些最佳实践,你的 SchemaIO 代码将具备:
658
+ 遵循这些最佳实践,你的 SchemaI-DSL 代码将具备:
659
659
 
660
660
  ✅ **高性能** - 通过预编译和缓存
661
661
  ✅ **高安全性** - 避免常见安全陷阱
@@ -19,7 +19,7 @@
19
19
 
20
20
  ## 概述
21
21
 
22
- `CacheManager` 是 SchemaIO 的内部缓存系统,用于缓存编译后的 Schema 验证函数,避免重复编译带来的性能开销。
22
+ `CacheManager` 是 SchemaI-DSL 的内部缓存系统,用于缓存编译后的 Schema 验证函数,避免重复编译带来的性能开销。
23
23
 
24
24
  ### 核心功能
25
25