@anov/cic-standard-sdk 0.0.1 → 0.0.3
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.
- package/README.md +22 -62
- package/dist/cic-sdk.cjs.js +6 -6
- package/dist/cic-sdk.es.js +1226 -1209
- package/dist/cic-sdk.umd.js +6 -6
- package/dist/sdk/CICSDK.d.ts +70 -0
- package/dist/sdk/ICICSDK.d.ts +43 -0
- package/dist/sdk/generators/ajv.d.ts +9 -0
- package/dist/sdk/generators/common.d.ts +26 -0
- package/dist/sdk/generators/component.d.ts +5 -0
- package/dist/sdk/generators/dataSource.d.ts +5 -0
- package/dist/sdk/generators/dependency.d.ts +5 -0
- package/dist/sdk/generators/meta.d.ts +8 -0
- package/dist/sdk/generators/page.d.ts +5 -0
- package/dist/sdk/generators/registry.d.ts +5 -0
- package/dist/sdk/generators/variables.d.ts +5 -0
- package/dist/types/componets.d.ts +49 -0
- package/dist/types/data.d.ts +35 -0
- package/dist/types/dataSources.d.ts +38 -0
- package/dist/types/deps.d.ts +71 -0
- package/dist/types/events.d.ts +133 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/meta.d.ts +54 -0
- package/dist/types/page.d.ts +17 -0
- package/dist/types/registry.d.ts +22 -0
- package/dist/types/variables.d.ts +58 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -30,16 +30,9 @@ CIC-Standard-1.0/
|
|
|
30
30
|
└── vite.config.ts # Vite 构建配置
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
## 1.
|
|
33
|
+
## 1. 简介
|
|
34
34
|
|
|
35
|
-
CIC
|
|
36
|
-
|
|
37
|
-
- **Config**: 全局配置根节点,包含页面列表、全局变量、资源依赖等。
|
|
38
|
-
- **Page**: 页面定义,包含布局配置、组件树、页面级数据源。
|
|
39
|
-
- **Component**: 组件实例,分为 View (视图)、Container (容器)、Logic (逻辑) 三类。
|
|
40
|
-
- **Event**: 强大的事件 DSL,支持变量操作、页面跳转、组件控制、自定义脚本等,支持条件执行与调度(Order/Delay)。
|
|
41
|
-
- **Variable**: 多级作用域(Global > Page > Component)的变量管理,支持 string/number/object/array/function。
|
|
42
|
-
- **DataSource**: 统一的数据源定义(REST, WebSocket, Static),支持轮询与依赖。
|
|
35
|
+
提供 CIC 标准的 TypeScript 类型与 SDK,支持 JSON Schema 校验、页面/组件/数据源等核心能力,适用于发布后的使用者。
|
|
43
36
|
|
|
44
37
|
## 2. SDK 使用指南
|
|
45
38
|
|
|
@@ -50,12 +43,12 @@ SDK 提供了操作 CIC 标准的常用工具方法,现已重构为面向对
|
|
|
50
43
|
推荐使用 `pnpm` 安装依赖:
|
|
51
44
|
|
|
52
45
|
```bash
|
|
53
|
-
pnpm
|
|
46
|
+
pnpm add @anov/cic-standard-sdk
|
|
54
47
|
```
|
|
55
48
|
|
|
56
49
|
```typescript
|
|
57
|
-
import { CICSDK } from 'cic-standard-sdk'
|
|
58
|
-
import { CICConfig } from 'cic-standard-sdk
|
|
50
|
+
import { CICSDK } from '@anov/cic-standard-sdk'
|
|
51
|
+
import type { CICConfig, ComponentInstance, DataSourceItem, CICPage, Meta, Layout, Registry, Variables, Dependency, ICICSDK } from '@anov/cic-standard-sdk';
|
|
59
52
|
|
|
60
53
|
const config: CICConfig = { ... };
|
|
61
54
|
const sdk = new CICSDK(config); // 实例化时自动执行 Schema 校验
|
|
@@ -63,7 +56,7 @@ const sdk = new CICSDK(config); // 实例化时自动执行 Schema 校验
|
|
|
63
56
|
|
|
64
57
|
### 常用 API
|
|
65
58
|
|
|
66
|
-
**1.
|
|
59
|
+
**1. 验证配置**
|
|
67
60
|
|
|
68
61
|
SDK 集成了完整的 JSON Schema (Draft-07),可验证字段类型、必填项、枚举值等。
|
|
69
62
|
|
|
@@ -83,7 +76,7 @@ try {
|
|
|
83
76
|
}
|
|
84
77
|
```
|
|
85
78
|
|
|
86
|
-
**2.
|
|
79
|
+
**2. 查找组件**
|
|
87
80
|
|
|
88
81
|
```typescript
|
|
89
82
|
// 按 ID 查找(支持跨页面)
|
|
@@ -97,7 +90,7 @@ const page = sdk.findPageByComponent('comp_btn_01')
|
|
|
97
90
|
console.log('所在页面:', page?.id)
|
|
98
91
|
```
|
|
99
92
|
|
|
100
|
-
**3.
|
|
93
|
+
**3. 获取变量值(自动处理作用域)**
|
|
101
94
|
|
|
102
95
|
```typescript
|
|
103
96
|
// 优先查找组件级 -> 页面级 -> 全局
|
|
@@ -107,7 +100,7 @@ const val = sdk.getVariable({ pageId: 'p1', componentId: 'c1' }, 'theme')
|
|
|
107
100
|
const val2 = sdk.getVariableByRef('global.theme')
|
|
108
101
|
```
|
|
109
102
|
|
|
110
|
-
**4.
|
|
103
|
+
**4. 遍历组件树**
|
|
111
104
|
|
|
112
105
|
```typescript
|
|
113
106
|
// 遍历整个配置的所有组件
|
|
@@ -118,7 +111,7 @@ sdk.walkComponents((comp, page, parent) => {
|
|
|
118
111
|
})
|
|
119
112
|
```
|
|
120
113
|
|
|
121
|
-
**5.
|
|
114
|
+
**5. 静态工具**
|
|
122
115
|
|
|
123
116
|
### 生成器 API(严格校验 + 规范化)
|
|
124
117
|
|
|
@@ -143,30 +136,22 @@ CICSDK.traverseTree(someComponent, c => {
|
|
|
143
136
|
})
|
|
144
137
|
```
|
|
145
138
|
|
|
146
|
-
## 3.
|
|
147
|
-
|
|
148
|
-
本项目使用 Vite 进行构建,Vitest 进行单元测试,推荐使用 `pnpm` 管理依赖。
|
|
149
|
-
|
|
150
|
-
### 命令脚本
|
|
151
|
-
|
|
152
|
-
- `pnpm install`: 安装依赖
|
|
153
|
-
- `pnpm run dev`: 启动开发模式
|
|
154
|
-
- `pnpm run build`: 构建 SDK(输出 `dist/`)
|
|
155
|
-
- `pnpm test`: 运行单元测试
|
|
139
|
+
## 3. 构建与类型
|
|
156
140
|
|
|
157
141
|
### 构建产物
|
|
158
142
|
|
|
159
|
-
- `dist/cic-sdk.es.js
|
|
160
|
-
- `dist/cic-sdk.cjs.js
|
|
161
|
-
- `dist/cic-sdk.umd.js
|
|
143
|
+
- `dist/cic-sdk.es.js`(ESM)
|
|
144
|
+
- `dist/cic-sdk.cjs.js`(CJS)
|
|
145
|
+
- `dist/cic-sdk.umd.js`(UMD)
|
|
146
|
+
- 类型声明:`dist/sdk/CICSDK.d.ts`
|
|
162
147
|
|
|
163
|
-
|
|
148
|
+
`package.json` 设置了 `sideEffects: false` 并使用 `exports` 指定导入/require 入口,方便 Tree‑shaking。
|
|
164
149
|
|
|
165
150
|
## 4. JSON Schema 校验
|
|
166
151
|
|
|
167
152
|
`schema/cic.schema.json` 提供了完整的协议约束。
|
|
168
153
|
|
|
169
|
-
###
|
|
154
|
+
### VS Code 智能提示
|
|
170
155
|
|
|
171
156
|
在你的 JSON 配置文件头部添加 `$schema` 字段:
|
|
172
157
|
|
|
@@ -184,7 +169,7 @@ CICSDK.traverseTree(someComponent, c => {
|
|
|
184
169
|
- 枚举值提示(如 `type`: `view` | `container`)
|
|
185
170
|
- 结构校验(必填字段检查)
|
|
186
171
|
|
|
187
|
-
###
|
|
172
|
+
### 报错与排查
|
|
188
173
|
|
|
189
174
|
- Ajv 错误输出包含 `instancePath`:根据路径定位到具体字段(如 `/pages/0/components/1/role must be equal to constant`)。
|
|
190
175
|
- 组件判别联合:`view` 必须提供 `component`;`container` 必须提供 `children`;`logic` 必须提供 `component`(`LogicRef`)。
|
|
@@ -196,34 +181,9 @@ CICSDK.traverseTree(someComponent, c => {
|
|
|
196
181
|
- 按需引入:仅从 `CICSDK` 静态导出使用所需生成器函数,减少打包体积。
|
|
197
182
|
- ID 规范:通过生成器的 `generateId` 自动生成 `uuid`,避免冲突。
|
|
198
183
|
|
|
199
|
-
## 5.
|
|
200
|
-
|
|
201
|
-
### Schema 生成脚本(`scripts/generate-schema.ts`)
|
|
202
|
-
|
|
203
|
-
- 通过配置项裁剪复杂度、保留必要字段,输出更简洁可用的 JSON Schema。
|
|
204
|
-
|
|
205
|
-
### Mock 生成与清洗(`scripts/generate-mock.ts`)
|
|
206
|
-
|
|
207
|
-
- 基于 Schema 随机生成后,使用 `deepClean` 进行规范化:
|
|
208
|
-
- 修正非法数组项、补齐 `id`(uuid)、规范 `url`/`ws` 链接。
|
|
209
|
-
- 为 `code` 字段提供可执行的默认实现。
|
|
210
|
-
|
|
211
|
-
示例输出能直接通过 Ajv 校验并用于演示与测试。
|
|
212
|
-
|
|
213
|
-
## 5. 示例说明
|
|
214
|
-
|
|
215
|
-
请查看 `examples/full-demo.json`,它展示了:
|
|
216
|
-
|
|
217
|
-
- 如何定义全局主题变量。
|
|
218
|
-
- 如何引入外部 ECharts 库与字体资源。
|
|
219
|
-
- 如何配置 REST 数据源。
|
|
220
|
-
- 如何构建包含图表与按钮的组件树。
|
|
221
|
-
- 如何通过点击事件触发变量更新与自定义逻辑。
|
|
222
|
-
|
|
223
|
-
## 安全声明
|
|
184
|
+
## 5. 许可与版本
|
|
224
185
|
|
|
225
|
-
|
|
186
|
+
- 语义化版本(SemVer)发布
|
|
187
|
+
- 请在 issue 中反馈使用问题与建议
|
|
226
188
|
|
|
227
|
-
|
|
228
|
-
2. 限制代码执行的上下文访问权限。
|
|
229
|
-
3. 对 `CustomRemoteEvent` 加载的外部脚本进行域名白名单控制。
|
|
189
|
+
(本 README 为发布版自述,专注使用信息;开发演示与内部脚本说明已省略。)
|