@thejrsoft/subway-protocol 1.4.13 → 1.5.0
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/CHANGELOG.md +143 -0
- package/dist/index.d.ts +23 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/report-category.test.ts +174 -0
- package/src/index.ts +136 -6
- package/src/__tests__/protocol.test.ts +0 -297
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,148 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.5.0] - 2026-05-12
|
|
4
|
+
|
|
5
|
+
### ⚠️ BREAKING CHANGES — 无兼容、无 fallback(系统未上线)
|
|
6
|
+
|
|
7
|
+
#### 1. 统一失败信号 schema(`data.error` 嵌套对象)
|
|
8
|
+
|
|
9
|
+
所有失败上报(`level=ERROR` / `status=FAILED`)必须使用新 schema:
|
|
10
|
+
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"report": {
|
|
14
|
+
"code": "PROGRAM_UPLOAD_FAILED",
|
|
15
|
+
"level": "ERROR",
|
|
16
|
+
"message": "Program download timed out",
|
|
17
|
+
"messageEn": "Program download timed out",
|
|
18
|
+
"data": {
|
|
19
|
+
"error": {
|
|
20
|
+
"phase": "PROGRAM_FETCH",
|
|
21
|
+
"step": "Download",
|
|
22
|
+
"category": "TIMEOUT",
|
|
23
|
+
"detail": "HTTP 504 from CDN after 30s, 3/3 attempts"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
#### 2. 新增 / 移除字段
|
|
31
|
+
|
|
32
|
+
**新增**:
|
|
33
|
+
- `ReportMessage.messageEn?: string` — 英文文本(与 message 同义,便于 i18n 兼容)
|
|
34
|
+
- `ReportData` 接口(含 `error?: ErrorInfo` + 业务字段 index signature)
|
|
35
|
+
- `ErrorInfo` 接口(`phase` / `step` / `category` / `detail` 4 字段全必填)
|
|
36
|
+
- `ErrorPhase` 类型(15 个值,与 ProgressPhase 对齐)
|
|
37
|
+
- `ErrorStep` 类型(21 个值的 closed enum)
|
|
38
|
+
- `ErrorCategory` 类型(**7 类**:在 v1.4.14 的 4 类基础上加 `CONFIGURATION` / `PROTOCOL` / `AUTHORIZATION`)
|
|
39
|
+
- `ERROR_STEP_BY_PHASE` 映射常量(强校验 step ↔ phase 归属)
|
|
40
|
+
- 工具函数:`VALID_ERROR_CATEGORIES` / `isValidErrorCategory()` / `normalizeErrorCategory()` / `isValidErrorStepForPhase()`
|
|
41
|
+
- `ProgressPhase` 枚举新增 2 个值:`PROGRAM_INIT`(任务初始化)/ `PROGRAM_COMPLETE`(终态边界)
|
|
42
|
+
|
|
43
|
+
**删除**:
|
|
44
|
+
- `ReportMessage.category` 顶层字段(下沉到 `data.error.category`)
|
|
45
|
+
- `ReportCategory` 类型(重命名为 `ErrorCategory`,并扩到 7 类)
|
|
46
|
+
- `VALID_REPORT_CATEGORIES` / `isValidReportCategory()` / `normalizeReportCategory()`(重命名为 `VALID_ERROR_CATEGORIES` 等)
|
|
47
|
+
- `data.failedPhase` / `data.failedSubStage` / `data.failedReason` 平铺字段(合并到 `data.error.*`)
|
|
48
|
+
- PROGRAM 命令 6 个独立失败 code(统一为 `PROGRAM_UPLOAD_FAILED` + `data.error.*`):
|
|
49
|
+
- `PROGRAM_DOWNLOAD_FAILED`
|
|
50
|
+
- `PROGRAM_CHECKSUM_MISMATCH`
|
|
51
|
+
- `PROGRAM_COMPILE_FAILED`
|
|
52
|
+
- `PROGRAM_COMPILE_ERROR`
|
|
53
|
+
- `PROGRAM_DEPLOY_NOT_INITIALIZED`
|
|
54
|
+
- `PROGRAM_DEPLOY_ERROR`
|
|
55
|
+
- `failedReason` 6 值枚举(合并到 `category` + `step` + `detail`)
|
|
56
|
+
|
|
57
|
+
#### 3. COMPLEX 命令统一生命周期
|
|
58
|
+
|
|
59
|
+
所有 COMPLEX 命令统一为 `{CMD}_INIT (progress=0%) → 业务 phase → {CMD}_COMPLETE (progress=100%)`:
|
|
60
|
+
|
|
61
|
+
- PROGRAM 命令新增 `PROGRAM_INIT` / `PROGRAM_COMPLETE` phase(8 phase 序列)
|
|
62
|
+
- 终态决策矩阵在 `PROGRAM_COMPLETE` 触发(唯一收尾点)
|
|
63
|
+
- BUSY 并发拒绝场景从"特例"变成 `PROGRAM_INIT.CheckConcurrency` 阶段正常失败
|
|
64
|
+
|
|
65
|
+
#### 4. PROGRAM phase 序列重排(6 → 8)
|
|
66
|
+
|
|
67
|
+
| 序号 | phase | progress |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| 0 | `PROGRAM_INIT` | 0% |
|
|
70
|
+
| 1 | `PROGRAM_FETCH` | 1~15% |
|
|
71
|
+
| 2 | `PROGRAM_EXTRACT` | 16~25% |
|
|
72
|
+
| 3 | `PROGRAM_PREPROCESS` | 26~50% |
|
|
73
|
+
| 4 | `PROGRAM_COMPILE` | 51~70% |
|
|
74
|
+
| 5 | `PROGRAM_UPLOAD` | 71~95% |
|
|
75
|
+
| 6 | `PROGRAM_STATS` | 96~99% |
|
|
76
|
+
| 7 | `PROGRAM_COMPLETE` | 100% |
|
|
77
|
+
|
|
78
|
+
### Migration
|
|
79
|
+
|
|
80
|
+
设备端 (C#):
|
|
81
|
+
1. 新增 `ErrorPhase` / `ErrorStep` / `ErrorCategory` 强类型 enum
|
|
82
|
+
2. `ReportMessage` 移除 `Category` 顶层,新增 `ReportData.Error`
|
|
83
|
+
3. 新建 `ErrorClassifier` 集中归类异常 → (phase, step, category) 三元组
|
|
84
|
+
4. PROGRAM 编排器 6 处独立失败 code 调用改用 `ErrorClassifier.Classify(...)` 生成 `ErrorInfo`
|
|
85
|
+
5. 新增 `PROGRAM_INIT` / `PROGRAM_COMPLETE` phase 上报
|
|
86
|
+
|
|
87
|
+
第三方 (TypeScript/JS):
|
|
88
|
+
```javascript
|
|
89
|
+
function parseFailureMessage(msg) {
|
|
90
|
+
if (msg.report.level !== 'ERROR' && msg.status !== 'FAILED') return null;
|
|
91
|
+
const err = msg.report.data?.error;
|
|
92
|
+
if (!err) return null;
|
|
93
|
+
return {
|
|
94
|
+
category: err.category, // 粗分类(告警/聚合)
|
|
95
|
+
location: `${err.phase}.${err.step}`, // 细位置(诊断/UI)
|
|
96
|
+
i18nKey: `${err.phase}.${err.step}.${err.category}`, // i18n key
|
|
97
|
+
diagnostic: err.detail, // 日志/调试
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 协议设计依据
|
|
103
|
+
|
|
104
|
+
完整设计原则、决策回放(11 个关键技术选择记录)、归类决策树、错误映射表见 `claude-docs/protocol-upgrade-proposal-v1.5.0.md`。
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## [1.4.14] - 2026-05-11
|
|
109
|
+
|
|
110
|
+
### Added (零破坏 / minor bump)
|
|
111
|
+
- **`ReportCategory` enum 扩展为 4 档**:在原 `TRANSPORT | TIMEOUT | BUSINESS` 基础上加 `RESOURCE`,表达设备端本地资源耗尽故障(磁盘满 / 内存不足 / 文件句柄耗尽 / cache 写入失败)。区别于网络层 `TRANSPORT` / 超时 `TIMEOUT` / 业务结果 `BUSINESS`
|
|
112
|
+
- 抽出独立 `export type ReportCategory` 公开类型(之前是 `ReportMessage.category` inline literal union)
|
|
113
|
+
- 新增 helper:`VALID_REPORT_CATEGORIES`(只读数组)、`isValidReportCategory()` 类型守卫、`normalizeReportCategory()` 降级函数(未知值 → BUSINESS)
|
|
114
|
+
|
|
115
|
+
### Changed (文档约束放开,schema 零变更)
|
|
116
|
+
- **解除 v1.4.13 "仅 SIMPLE/BATCH 使用 category" 限制**:现允许 COMPLEX 命令(PROGRAM / QUICKLY_DETECTION / SYNC_MONITORING_TABLE)所有 PROGRESS_UPDATE 与终态响应使用 category。BATCH 聚合 COMMAND_RESPONSE 仍是唯一例外
|
|
117
|
+
- `ReportMessage.category` 字段类型从 inline literal union → `ReportCategory`(语义不变,类型抽离更清晰)
|
|
118
|
+
|
|
119
|
+
### Compatibility
|
|
120
|
+
- 完全向后兼容
|
|
121
|
+
- 旧版客户端(v1.4.13)发 v1.4.14 服务端:仍发 3 档值,type 兼容
|
|
122
|
+
- 新版服务端(v1.4.14)发 `RESOURCE` 给旧版客户端:旧客户端 enum 不识别 → 调用 `normalizeReportCategory()` 自动降级为 `BUSINESS`
|
|
123
|
+
- 字段始终 optional,缺省 = `BUSINESS`,老消息天然合法
|
|
124
|
+
- 文档约束放开是软约束,schema 零变更
|
|
125
|
+
|
|
126
|
+
### Migration(消费方建议,不强制)
|
|
127
|
+
```typescript
|
|
128
|
+
// 升级前
|
|
129
|
+
switch (msg.report?.category) {
|
|
130
|
+
case 'TRANSPORT': pageNetworkOps(); break;
|
|
131
|
+
case 'TIMEOUT': pageFieldEngineer(); break;
|
|
132
|
+
case 'BUSINESS':
|
|
133
|
+
default: ticketToProduct(); break;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// 升级后(接收 RESOURCE 路由到运维清磁盘)
|
|
137
|
+
switch (msg.report?.category) {
|
|
138
|
+
case 'TRANSPORT': pageNetworkOps(); break;
|
|
139
|
+
case 'TIMEOUT': pageFieldEngineer(); break;
|
|
140
|
+
case 'RESOURCE': pageDevOpsToCleanDisk(); break; // ← 新增
|
|
141
|
+
case 'BUSINESS':
|
|
142
|
+
default: ticketToProduct(); break;
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
3
146
|
## [1.4.13] - 2026-05-09
|
|
4
147
|
|
|
5
148
|
### Added (Breaking)
|
package/dist/index.d.ts
CHANGED
|
@@ -307,12 +307,14 @@ export interface ProgramResponseMessage extends BaseMessage {
|
|
|
307
307
|
* 不通过协议消息流转,**不**列在此 enum 中(属于 Backend 内部 audit 字符串)。
|
|
308
308
|
*/
|
|
309
309
|
export declare enum ProgressPhase {
|
|
310
|
+
PROGRAM_INIT = "PROGRAM_INIT",// v1.5.0 新增 — 任务初始化(参数校验、资源准备、并发检查)
|
|
310
311
|
PROGRAM_FETCH = "PROGRAM_FETCH",// 拉取节目源文件(OSS / Edge / 其他)
|
|
311
312
|
PROGRAM_EXTRACT = "PROGRAM_EXTRACT",// 解压归档(zip/tar/rar)
|
|
312
313
|
PROGRAM_PREPROCESS = "PROGRAM_PREPROCESS",// 图片预处理(缩放/滤镜等)
|
|
313
314
|
PROGRAM_COMPILE = "PROGRAM_COMPILE",// 编译为显示帧
|
|
314
315
|
PROGRAM_UPLOAD = "PROGRAM_UPLOAD",// 上传到底层显示设备
|
|
315
316
|
PROGRAM_STATS = "PROGRAM_STATS",// 上报统计信息
|
|
317
|
+
PROGRAM_COMPLETE = "PROGRAM_COMPLETE",// v1.5.0 新增 — 终态边界(决定 ALL_SUCCESS / PARTIAL / FAILED 等)
|
|
316
318
|
EDGE_CACHE_FETCH = "EDGE_CACHE_FETCH",// Edge 从 OSS 拉文件中
|
|
317
319
|
EDGE_CACHE_READY = "EDGE_CACHE_READY",// Edge 缓存就绪
|
|
318
320
|
SYNC_EXPORT = "SYNC_EXPORT",// 同步器监播表导出 SYNC_MONITORING_TABLE
|
|
@@ -358,12 +360,25 @@ export declare enum ReportLevel {
|
|
|
358
360
|
ERROR = "ERROR",
|
|
359
361
|
CRITICAL = "CRITICAL"
|
|
360
362
|
}
|
|
363
|
+
export type ErrorCategory = 'TRANSPORT' | 'TIMEOUT' | 'RESOURCE' | 'BUSINESS' | 'CONFIGURATION' | 'PROTOCOL' | 'AUTHORIZATION';
|
|
364
|
+
export type ErrorPhase = 'PROGRAM_INIT' | 'PROGRAM_FETCH' | 'PROGRAM_EXTRACT' | 'PROGRAM_PREPROCESS' | 'PROGRAM_COMPILE' | 'PROGRAM_UPLOAD' | 'PROGRAM_STATS' | 'PROGRAM_COMPLETE' | 'DETECT_INIT' | 'SWITCH_DETECT' | 'SWITCH_CONFIG_READ' | 'SYNC_DETECT' | 'BARGRAPH_DETECT' | 'RATER_DETECT' | 'SYNC_RECOVER' | 'DETECT_COMPLETE' | 'SYNC_EXPORT' | 'BATCH_EXECUTE';
|
|
365
|
+
export type ErrorStep = 'ValidateParameters' | 'PrepareResources' | 'LoadConfig' | 'CheckConcurrency' | 'Download' | 'VerifyChecksum' | 'ExtractZip' | 'ResizeImage' | 'AdjustColor' | 'GammaCorrect' | 'Histogram' | 'RGBCorrection' | 'CompileFrame' | 'MoveFrame' | 'VerifyFrameCount' | 'DeviceCheck' | 'DataTransfer' | 'ForbiddenTable' | 'StatusRecovery' | 'RetryLimitExceeded' | 'CloudReport';
|
|
366
|
+
export interface ErrorInfo {
|
|
367
|
+
phase: ErrorPhase;
|
|
368
|
+
step: ErrorStep;
|
|
369
|
+
category: ErrorCategory;
|
|
370
|
+
detail: string;
|
|
371
|
+
}
|
|
372
|
+
export interface ReportData {
|
|
373
|
+
error?: ErrorInfo;
|
|
374
|
+
[key: string]: any;
|
|
375
|
+
}
|
|
361
376
|
export interface ReportMessage {
|
|
362
377
|
level: ReportLevel;
|
|
363
378
|
message: string;
|
|
364
379
|
code?: string;
|
|
365
|
-
|
|
366
|
-
|
|
380
|
+
messageEn?: string;
|
|
381
|
+
data?: ReportData;
|
|
367
382
|
}
|
|
368
383
|
export interface ProgressUpdateMessage extends BaseMessage {
|
|
369
384
|
type: MessageType.PROGRESS_UPDATE;
|
|
@@ -410,6 +425,11 @@ export declare function isAuthorizationGrantedMessage(msg: any): msg is Authoriz
|
|
|
410
425
|
export declare function isAuthorizationRejectedMessage(msg: any): msg is AuthorizationRejectedMessage;
|
|
411
426
|
export declare function isDeviceApprovalRequestMessage(msg: any): msg is DeviceApprovalRequestMessage;
|
|
412
427
|
export declare function isDeviceApprovalResponseMessage(msg: any): msg is DeviceApprovalResponseMessage;
|
|
428
|
+
export declare const VALID_ERROR_CATEGORIES: readonly ErrorCategory[];
|
|
429
|
+
export declare function isValidErrorCategory(value: any): value is ErrorCategory;
|
|
430
|
+
export declare function normalizeErrorCategory(value: any): ErrorCategory;
|
|
431
|
+
export declare const ERROR_STEP_BY_PHASE: Record<string, readonly ErrorStep[]>;
|
|
432
|
+
export declare function isValidErrorStepForPhase(step: any, phase: any): boolean;
|
|
413
433
|
export declare class MessageFactory {
|
|
414
434
|
/**
|
|
415
435
|
* 创建注册消息
|
|
@@ -524,7 +544,7 @@ export declare class MessageFactory {
|
|
|
524
544
|
success: boolean, message?: string, routeCount?: number): UpdateRoutesAckMessage;
|
|
525
545
|
}
|
|
526
546
|
export type AnyMessage = RegisterMessage | RegisterAckMessage | UnregisterMessage | UnregisterAckMessage | CommandMessage | CommandResponseMessage | ProgramMessage | ProgramResponseMessage | HeartbeatMessage | HeartbeatAckMessage | ProgressUpdateMessage | UpdateRoutesMessage | UpdateRoutesAckMessage | RegisterPendingMessage | AuthorizationGrantedMessage | AuthorizationRejectedMessage | DeviceApprovalRequestMessage | DeviceApprovalResponseMessage | ErrorMessage;
|
|
527
|
-
export declare const PROTOCOL_VERSION = "1.
|
|
547
|
+
export declare const PROTOCOL_VERSION = "1.5.0";
|
|
528
548
|
export declare const DEFAULT_TIMEOUT = 10000;
|
|
529
549
|
export declare const DEFAULT_PRIORITY = Priority.NORMAL;
|
|
530
550
|
export * from './command-types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
23
23
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ProtocolUtils = exports.MessageValidator = exports.DEFAULT_PRIORITY = exports.DEFAULT_TIMEOUT = exports.PROTOCOL_VERSION = exports.MessageFactory = exports.ReportLevel = exports.ProgressStatus = exports.ProgressPhase = exports.ProgramDirection = exports.ProgramType = exports.CommandType = exports.CommandStatus = exports.Priority = exports.OperationType = exports.ClientType = exports.MessageType = void 0;
|
|
26
|
+
exports.ProtocolUtils = exports.MessageValidator = exports.DEFAULT_PRIORITY = exports.DEFAULT_TIMEOUT = exports.PROTOCOL_VERSION = exports.MessageFactory = exports.ERROR_STEP_BY_PHASE = exports.VALID_ERROR_CATEGORIES = exports.ReportLevel = exports.ProgressStatus = exports.ProgressPhase = exports.ProgramDirection = exports.ProgramType = exports.CommandType = exports.CommandStatus = exports.Priority = exports.OperationType = exports.ClientType = exports.MessageType = void 0;
|
|
27
27
|
exports.isRegisterMessage = isRegisterMessage;
|
|
28
28
|
exports.isRegisterAckMessage = isRegisterAckMessage;
|
|
29
29
|
exports.isUnregisterMessage = isUnregisterMessage;
|
|
@@ -43,6 +43,9 @@ exports.isAuthorizationGrantedMessage = isAuthorizationGrantedMessage;
|
|
|
43
43
|
exports.isAuthorizationRejectedMessage = isAuthorizationRejectedMessage;
|
|
44
44
|
exports.isDeviceApprovalRequestMessage = isDeviceApprovalRequestMessage;
|
|
45
45
|
exports.isDeviceApprovalResponseMessage = isDeviceApprovalResponseMessage;
|
|
46
|
+
exports.isValidErrorCategory = isValidErrorCategory;
|
|
47
|
+
exports.normalizeErrorCategory = normalizeErrorCategory;
|
|
48
|
+
exports.isValidErrorStepForPhase = isValidErrorStepForPhase;
|
|
46
49
|
// 消息类型枚举
|
|
47
50
|
var MessageType;
|
|
48
51
|
(function (MessageType) {
|
|
@@ -144,13 +147,16 @@ var ProgramDirection;
|
|
|
144
147
|
*/
|
|
145
148
|
var ProgressPhase;
|
|
146
149
|
(function (ProgressPhase) {
|
|
147
|
-
// ---- 节目处理 pipeline
|
|
150
|
+
// ---- 节目处理 pipeline(设备端)----
|
|
151
|
+
// v1.5.0: PROGRAM 命令统一生命周期 — 加 INIT 起始 / COMPLETE 终态边界
|
|
152
|
+
ProgressPhase["PROGRAM_INIT"] = "PROGRAM_INIT";
|
|
148
153
|
ProgressPhase["PROGRAM_FETCH"] = "PROGRAM_FETCH";
|
|
149
154
|
ProgressPhase["PROGRAM_EXTRACT"] = "PROGRAM_EXTRACT";
|
|
150
155
|
ProgressPhase["PROGRAM_PREPROCESS"] = "PROGRAM_PREPROCESS";
|
|
151
156
|
ProgressPhase["PROGRAM_COMPILE"] = "PROGRAM_COMPILE";
|
|
152
157
|
ProgressPhase["PROGRAM_UPLOAD"] = "PROGRAM_UPLOAD";
|
|
153
158
|
ProgressPhase["PROGRAM_STATS"] = "PROGRAM_STATS";
|
|
159
|
+
ProgressPhase["PROGRAM_COMPLETE"] = "PROGRAM_COMPLETE";
|
|
154
160
|
// ---- Edge 缓存可见性(v1.4.11 新增)----
|
|
155
161
|
ProgressPhase["EDGE_CACHE_FETCH"] = "EDGE_CACHE_FETCH";
|
|
156
162
|
ProgressPhase["EDGE_CACHE_READY"] = "EDGE_CACHE_READY";
|
|
@@ -245,6 +251,41 @@ function isDeviceApprovalRequestMessage(msg) {
|
|
|
245
251
|
function isDeviceApprovalResponseMessage(msg) {
|
|
246
252
|
return msg && msg.type === MessageType.DEVICE_APPROVAL_RESPONSE;
|
|
247
253
|
}
|
|
254
|
+
// v1.5.0: ErrorCategory 类型守卫(消费方收到未知值时降级到 BUSINESS)
|
|
255
|
+
exports.VALID_ERROR_CATEGORIES = [
|
|
256
|
+
'TRANSPORT',
|
|
257
|
+
'TIMEOUT',
|
|
258
|
+
'RESOURCE',
|
|
259
|
+
'BUSINESS',
|
|
260
|
+
'CONFIGURATION',
|
|
261
|
+
'PROTOCOL',
|
|
262
|
+
'AUTHORIZATION',
|
|
263
|
+
];
|
|
264
|
+
function isValidErrorCategory(value) {
|
|
265
|
+
return typeof value === 'string' && exports.VALID_ERROR_CATEGORIES.includes(value);
|
|
266
|
+
}
|
|
267
|
+
// v1.5.0: normalizeErrorCategory — 未知值降级到 'BUSINESS'(forward-compatibility 标准做法)
|
|
268
|
+
function normalizeErrorCategory(value) {
|
|
269
|
+
return isValidErrorCategory(value) ? value : 'BUSINESS';
|
|
270
|
+
}
|
|
271
|
+
// v1.5.0: ErrorStep ↔ ErrorPhase 归属映射(强校验:step 必须属于 phase)
|
|
272
|
+
exports.ERROR_STEP_BY_PHASE = {
|
|
273
|
+
PROGRAM_INIT: ['ValidateParameters', 'PrepareResources', 'LoadConfig', 'CheckConcurrency'],
|
|
274
|
+
PROGRAM_FETCH: ['Download', 'VerifyChecksum'],
|
|
275
|
+
PROGRAM_EXTRACT: ['ExtractZip'],
|
|
276
|
+
PROGRAM_PREPROCESS: ['ResizeImage', 'AdjustColor', 'GammaCorrect', 'Histogram', 'RGBCorrection'],
|
|
277
|
+
PROGRAM_COMPILE: ['CompileFrame', 'MoveFrame', 'VerifyFrameCount'],
|
|
278
|
+
PROGRAM_UPLOAD: ['DeviceCheck', 'DataTransfer', 'ForbiddenTable', 'StatusRecovery', 'RetryLimitExceeded'],
|
|
279
|
+
PROGRAM_STATS: ['CloudReport'],
|
|
280
|
+
PROGRAM_COMPLETE: [],
|
|
281
|
+
// QUICKLY_DETECTION / SYNC_MONITORING_TABLE 在 v1.5.x 后续补充 step 归属
|
|
282
|
+
};
|
|
283
|
+
function isValidErrorStepForPhase(step, phase) {
|
|
284
|
+
if (typeof step !== 'string' || typeof phase !== 'string')
|
|
285
|
+
return false;
|
|
286
|
+
const allowed = exports.ERROR_STEP_BY_PHASE[phase];
|
|
287
|
+
return Array.isArray(allowed) && allowed.includes(step);
|
|
288
|
+
}
|
|
248
289
|
// 消息工厂类 - 创建符合新协议的消息
|
|
249
290
|
class MessageFactory {
|
|
250
291
|
/**
|
|
@@ -563,7 +604,7 @@ class MessageFactory {
|
|
|
563
604
|
}
|
|
564
605
|
exports.MessageFactory = MessageFactory;
|
|
565
606
|
// 导出常量
|
|
566
|
-
exports.PROTOCOL_VERSION = '1.
|
|
607
|
+
exports.PROTOCOL_VERSION = '1.5.0';
|
|
567
608
|
exports.DEFAULT_TIMEOUT = 10000;
|
|
568
609
|
exports.DEFAULT_PRIORITY = Priority.NORMAL;
|
|
569
610
|
// 导出强类型命令系统
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thejrsoft/subway-protocol",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Shared WebSocket protocol definitions for JRSoft Subway -
|
|
3
|
+
"version": "1.5.0",
|
|
4
|
+
"description": "Shared WebSocket protocol definitions for JRSoft Subway - v1.5.0 unified failure schema (data.error nested) + COMPLEX lifecycle (INIT/COMPLETE) — BREAKING",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.5.0: ErrorCategory (7 类) + ErrorInfo + step-phase 归属强校验
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
ErrorCategory,
|
|
7
|
+
ErrorInfo,
|
|
8
|
+
VALID_ERROR_CATEGORIES,
|
|
9
|
+
isValidErrorCategory,
|
|
10
|
+
normalizeErrorCategory,
|
|
11
|
+
ERROR_STEP_BY_PHASE,
|
|
12
|
+
isValidErrorStepForPhase,
|
|
13
|
+
} from '../index';
|
|
14
|
+
|
|
15
|
+
describe('v1.5.0 ErrorCategory (7 类 closed enum)', () => {
|
|
16
|
+
describe('VALID_ERROR_CATEGORIES', () => {
|
|
17
|
+
test('包含完整 7 档', () => {
|
|
18
|
+
expect(VALID_ERROR_CATEGORIES).toEqual([
|
|
19
|
+
'TRANSPORT',
|
|
20
|
+
'TIMEOUT',
|
|
21
|
+
'RESOURCE',
|
|
22
|
+
'BUSINESS',
|
|
23
|
+
'CONFIGURATION',
|
|
24
|
+
'PROTOCOL',
|
|
25
|
+
'AUTHORIZATION',
|
|
26
|
+
]);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
test('保留 v1.4.14 的 4 档', () => {
|
|
30
|
+
expect(VALID_ERROR_CATEGORIES).toContain('TRANSPORT');
|
|
31
|
+
expect(VALID_ERROR_CATEGORIES).toContain('TIMEOUT');
|
|
32
|
+
expect(VALID_ERROR_CATEGORIES).toContain('RESOURCE');
|
|
33
|
+
expect(VALID_ERROR_CATEGORIES).toContain('BUSINESS');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('v1.5.0 新增 3 档', () => {
|
|
37
|
+
expect(VALID_ERROR_CATEGORIES).toContain('CONFIGURATION');
|
|
38
|
+
expect(VALID_ERROR_CATEGORIES).toContain('PROTOCOL');
|
|
39
|
+
expect(VALID_ERROR_CATEGORIES).toContain('AUTHORIZATION');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe('isValidErrorCategory', () => {
|
|
44
|
+
test.each([
|
|
45
|
+
'TRANSPORT', 'TIMEOUT', 'RESOURCE', 'BUSINESS',
|
|
46
|
+
'CONFIGURATION', 'PROTOCOL', 'AUTHORIZATION',
|
|
47
|
+
])('合法值 %s 通过', (v) => {
|
|
48
|
+
expect(isValidErrorCategory(v)).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test.each([
|
|
52
|
+
'transport', // 大小写敏感
|
|
53
|
+
'HARDWARE',
|
|
54
|
+
'',
|
|
55
|
+
null,
|
|
56
|
+
undefined,
|
|
57
|
+
123,
|
|
58
|
+
{},
|
|
59
|
+
])('非法值 %p 拒收', (v) => {
|
|
60
|
+
expect(isValidErrorCategory(v)).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe('normalizeErrorCategory (forward-compatibility 降级)', () => {
|
|
65
|
+
test.each([
|
|
66
|
+
'TRANSPORT', 'TIMEOUT', 'RESOURCE', 'BUSINESS',
|
|
67
|
+
'CONFIGURATION', 'PROTOCOL', 'AUTHORIZATION',
|
|
68
|
+
])('合法值 %s 原样返回', (v) => {
|
|
69
|
+
expect(normalizeErrorCategory(v)).toBe(v);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test('未知值降级为 BUSINESS', () => {
|
|
73
|
+
expect(normalizeErrorCategory('HARDWARE')).toBe('BUSINESS');
|
|
74
|
+
expect(normalizeErrorCategory('UNKNOWN_FUTURE_CATEGORY')).toBe('BUSINESS');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test('null / undefined / 非字符串值降级为 BUSINESS', () => {
|
|
78
|
+
expect(normalizeErrorCategory(undefined)).toBe('BUSINESS');
|
|
79
|
+
expect(normalizeErrorCategory(null)).toBe('BUSINESS');
|
|
80
|
+
expect(normalizeErrorCategory(123)).toBe('BUSINESS');
|
|
81
|
+
expect(normalizeErrorCategory({})).toBe('BUSINESS');
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
describe('v1.5.0 ErrorStep ↔ ErrorPhase 归属', () => {
|
|
87
|
+
test('PROGRAM_INIT 仅允许 4 个 step', () => {
|
|
88
|
+
expect(ERROR_STEP_BY_PHASE.PROGRAM_INIT).toEqual([
|
|
89
|
+
'ValidateParameters', 'PrepareResources', 'LoadConfig', 'CheckConcurrency',
|
|
90
|
+
]);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
test('PROGRAM_FETCH 允许 Download / VerifyChecksum', () => {
|
|
94
|
+
expect(ERROR_STEP_BY_PHASE.PROGRAM_FETCH).toEqual(['Download', 'VerifyChecksum']);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test('PROGRAM_COMPLETE 无 step(终态边界)', () => {
|
|
98
|
+
expect(ERROR_STEP_BY_PHASE.PROGRAM_COMPLETE).toEqual([]);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
describe('isValidErrorStepForPhase', () => {
|
|
102
|
+
test('Download 属于 PROGRAM_FETCH', () => {
|
|
103
|
+
expect(isValidErrorStepForPhase('Download', 'PROGRAM_FETCH')).toBe(true);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
test('Download 不属于 PROGRAM_COMPILE', () => {
|
|
107
|
+
expect(isValidErrorStepForPhase('Download', 'PROGRAM_COMPILE')).toBe(false);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
test('DeviceCheck 属于 PROGRAM_UPLOAD', () => {
|
|
111
|
+
expect(isValidErrorStepForPhase('DeviceCheck', 'PROGRAM_UPLOAD')).toBe(true);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
test('未知 phase 拒收', () => {
|
|
115
|
+
expect(isValidErrorStepForPhase('Download', 'UNKNOWN_PHASE')).toBe(false);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
test('未知 step 拒收', () => {
|
|
119
|
+
expect(isValidErrorStepForPhase('Bogus', 'PROGRAM_FETCH')).toBe(false);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
test('非字符串值拒收', () => {
|
|
123
|
+
expect(isValidErrorStepForPhase(null, 'PROGRAM_FETCH')).toBe(false);
|
|
124
|
+
expect(isValidErrorStepForPhase('Download', null)).toBe(false);
|
|
125
|
+
expect(isValidErrorStepForPhase(123, 456)).toBe(false);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
describe('v1.5.0 ErrorInfo 使用场景示例', () => {
|
|
131
|
+
test('PROGRAM_FETCH Download 超时 → TIMEOUT', () => {
|
|
132
|
+
const err: ErrorInfo = {
|
|
133
|
+
phase: 'PROGRAM_FETCH',
|
|
134
|
+
step: 'Download',
|
|
135
|
+
category: 'TIMEOUT',
|
|
136
|
+
detail: 'HTTP 504 from CDN after 30s, 3/3 attempts',
|
|
137
|
+
};
|
|
138
|
+
expect(isValidErrorCategory(err.category)).toBe(true);
|
|
139
|
+
expect(isValidErrorStepForPhase(err.step, err.phase)).toBe(true);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
test('PROGRAM_INIT LoadConfig 配置缺失 → CONFIGURATION', () => {
|
|
143
|
+
const err: ErrorInfo = {
|
|
144
|
+
phase: 'PROGRAM_INIT',
|
|
145
|
+
step: 'LoadConfig',
|
|
146
|
+
category: 'CONFIGURATION',
|
|
147
|
+
detail: 'Line.config missing required field: bargraphResolution',
|
|
148
|
+
};
|
|
149
|
+
expect(isValidErrorCategory(err.category)).toBe(true);
|
|
150
|
+
expect(isValidErrorStepForPhase(err.step, err.phase)).toBe(true);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
test('PROGRAM_UPLOAD DeviceCheck 同步器离线 → TRANSPORT', () => {
|
|
154
|
+
const err: ErrorInfo = {
|
|
155
|
+
phase: 'PROGRAM_UPLOAD',
|
|
156
|
+
step: 'DeviceCheck',
|
|
157
|
+
category: 'TRANSPORT',
|
|
158
|
+
detail: 'Synchronizer offline, switch[1,2,3] unreachable',
|
|
159
|
+
};
|
|
160
|
+
expect(isValidErrorCategory(err.category)).toBe(true);
|
|
161
|
+
expect(isValidErrorStepForPhase(err.step, err.phase)).toBe(true);
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
test('PROGRAM_INIT PrepareResources DAK 失效 → AUTHORIZATION', () => {
|
|
165
|
+
const err: ErrorInfo = {
|
|
166
|
+
phase: 'PROGRAM_INIT',
|
|
167
|
+
step: 'PrepareResources',
|
|
168
|
+
category: 'AUTHORIZATION',
|
|
169
|
+
detail: 'Device access key expired or revoked',
|
|
170
|
+
};
|
|
171
|
+
expect(isValidErrorCategory(err.category)).toBe(true);
|
|
172
|
+
expect(isValidErrorStepForPhase(err.step, err.phase)).toBe(true);
|
|
173
|
+
});
|
|
174
|
+
});
|
package/src/index.ts
CHANGED
|
@@ -401,13 +401,16 @@ export interface ProgramResponseMessage extends BaseMessage {
|
|
|
401
401
|
* 不通过协议消息流转,**不**列在此 enum 中(属于 Backend 内部 audit 字符串)。
|
|
402
402
|
*/
|
|
403
403
|
export enum ProgressPhase {
|
|
404
|
-
// ---- 节目处理 pipeline
|
|
404
|
+
// ---- 节目处理 pipeline(设备端)----
|
|
405
|
+
// v1.5.0: PROGRAM 命令统一生命周期 — 加 INIT 起始 / COMPLETE 终态边界
|
|
406
|
+
PROGRAM_INIT = 'PROGRAM_INIT', // v1.5.0 新增 — 任务初始化(参数校验、资源准备、并发检查)
|
|
405
407
|
PROGRAM_FETCH = 'PROGRAM_FETCH', // 拉取节目源文件(OSS / Edge / 其他)
|
|
406
408
|
PROGRAM_EXTRACT = 'PROGRAM_EXTRACT', // 解压归档(zip/tar/rar)
|
|
407
409
|
PROGRAM_PREPROCESS = 'PROGRAM_PREPROCESS', // 图片预处理(缩放/滤镜等)
|
|
408
410
|
PROGRAM_COMPILE = 'PROGRAM_COMPILE', // 编译为显示帧
|
|
409
411
|
PROGRAM_UPLOAD = 'PROGRAM_UPLOAD', // 上传到底层显示设备
|
|
410
412
|
PROGRAM_STATS = 'PROGRAM_STATS', // 上报统计信息
|
|
413
|
+
PROGRAM_COMPLETE = 'PROGRAM_COMPLETE', // v1.5.0 新增 — 终态边界(决定 ALL_SUCCESS / PARTIAL / FAILED 等)
|
|
411
414
|
|
|
412
415
|
// ---- Edge 缓存可见性(v1.4.11 新增)----
|
|
413
416
|
EDGE_CACHE_FETCH = 'EDGE_CACHE_FETCH', // Edge 从 OSS 拉文件中
|
|
@@ -471,13 +474,101 @@ export enum ReportLevel {
|
|
|
471
474
|
CRITICAL = 'CRITICAL'
|
|
472
475
|
}
|
|
473
476
|
|
|
474
|
-
//
|
|
477
|
+
// v1.5.0: ErrorCategory — 7 类 closed enum(v1.4.14 的 4 档扩展到 7 档)
|
|
478
|
+
// - TRANSPORT: 通讯层失败 — 网络断、CAN 总线告警、HTTP 4xx/5xx、设备离线
|
|
479
|
+
// - TIMEOUT: 等待响应超时 — HTTP 504、设备无应答、命令响应等待超时
|
|
480
|
+
// - RESOURCE: 资源不足/耗尽 — 磁盘满、内存不足、设备槽位耗尽、文件句柄耗尽
|
|
481
|
+
// - BUSINESS: 业务逻辑/状态/异常(兜底)— 业务规则违反、状态机错误、未预期异常
|
|
482
|
+
// - CONFIGURATION: 配置缺失/错误(v1.5.0 新增)— Line.config 字段缺、ParamSet 不完整
|
|
483
|
+
// - PROTOCOL: 协议层错误(v1.5.0 新增)— JSON 解析失败、字段缺失、消息格式错
|
|
484
|
+
// - AUTHORIZATION: 凭证/权限失败(v1.5.0 新增)— DAK 失效、设备未审批、命令权限不足
|
|
485
|
+
export type ErrorCategory =
|
|
486
|
+
| 'TRANSPORT'
|
|
487
|
+
| 'TIMEOUT'
|
|
488
|
+
| 'RESOURCE'
|
|
489
|
+
| 'BUSINESS'
|
|
490
|
+
| 'CONFIGURATION'
|
|
491
|
+
| 'PROTOCOL'
|
|
492
|
+
| 'AUTHORIZATION';
|
|
493
|
+
|
|
494
|
+
// v1.5.0: ErrorPhase — 错误可发生的所有 phase(命令的 ProgressPhase 子集)
|
|
495
|
+
// 与 ProgressPhase enum 完全对齐,只是命名 alias 以表达"用作错误归类"语义
|
|
496
|
+
export type ErrorPhase =
|
|
497
|
+
| 'PROGRAM_INIT'
|
|
498
|
+
| 'PROGRAM_FETCH'
|
|
499
|
+
| 'PROGRAM_EXTRACT'
|
|
500
|
+
| 'PROGRAM_PREPROCESS'
|
|
501
|
+
| 'PROGRAM_COMPILE'
|
|
502
|
+
| 'PROGRAM_UPLOAD'
|
|
503
|
+
| 'PROGRAM_STATS'
|
|
504
|
+
| 'PROGRAM_COMPLETE'
|
|
505
|
+
| 'DETECT_INIT'
|
|
506
|
+
| 'SWITCH_DETECT'
|
|
507
|
+
| 'SWITCH_CONFIG_READ'
|
|
508
|
+
| 'SYNC_DETECT'
|
|
509
|
+
| 'BARGRAPH_DETECT'
|
|
510
|
+
| 'RATER_DETECT'
|
|
511
|
+
| 'SYNC_RECOVER'
|
|
512
|
+
| 'DETECT_COMPLETE'
|
|
513
|
+
| 'SYNC_EXPORT'
|
|
514
|
+
| 'BATCH_EXECUTE';
|
|
515
|
+
|
|
516
|
+
// v1.5.0: ErrorStep — 21 个值,按 phase 归属(详见 message-validator.ts 的 step-phase 映射)
|
|
517
|
+
export type ErrorStep =
|
|
518
|
+
// PROGRAM_INIT
|
|
519
|
+
| 'ValidateParameters'
|
|
520
|
+
| 'PrepareResources'
|
|
521
|
+
| 'LoadConfig'
|
|
522
|
+
| 'CheckConcurrency'
|
|
523
|
+
// PROGRAM_FETCH
|
|
524
|
+
| 'Download'
|
|
525
|
+
| 'VerifyChecksum'
|
|
526
|
+
// PROGRAM_EXTRACT
|
|
527
|
+
| 'ExtractZip'
|
|
528
|
+
// PROGRAM_PREPROCESS
|
|
529
|
+
| 'ResizeImage'
|
|
530
|
+
| 'AdjustColor'
|
|
531
|
+
| 'GammaCorrect'
|
|
532
|
+
| 'Histogram'
|
|
533
|
+
| 'RGBCorrection'
|
|
534
|
+
// PROGRAM_COMPILE
|
|
535
|
+
| 'CompileFrame'
|
|
536
|
+
| 'MoveFrame'
|
|
537
|
+
| 'VerifyFrameCount'
|
|
538
|
+
// PROGRAM_UPLOAD
|
|
539
|
+
| 'DeviceCheck'
|
|
540
|
+
| 'DataTransfer'
|
|
541
|
+
| 'ForbiddenTable'
|
|
542
|
+
| 'StatusRecovery'
|
|
543
|
+
| 'RetryLimitExceeded'
|
|
544
|
+
// PROGRAM_STATS
|
|
545
|
+
| 'CloudReport';
|
|
546
|
+
|
|
547
|
+
// v1.5.0: 统一失败信号 schema — 嵌套在 report.data.error 下,仅 ERROR / 终态失败消息携带
|
|
548
|
+
// 4 字段全部必填,3 个 enum 字段在服务端做 strict 校验(拒收未定义值)
|
|
549
|
+
export interface ErrorInfo {
|
|
550
|
+
phase: ErrorPhase; // 错误发生在哪个 phase
|
|
551
|
+
step: ErrorStep; // 错误发生在 phase 内的哪个具体步骤(必须属于 phase)
|
|
552
|
+
category: ErrorCategory; // 协议级横切分类(7 类)
|
|
553
|
+
detail: string; // 自由文本(英文,grep 友好)
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
// v1.5.0: ReportData — 嵌套结构,error 仅在失败时存在;其余字段按命令业务字段平铺
|
|
557
|
+
export interface ReportData {
|
|
558
|
+
error?: ErrorInfo; // v1.5.0 新增 — 失败信号 schema(level=ERROR / status=FAILED 时必填)
|
|
559
|
+
[key: string]: any; // 业务字段平铺(programNo / fileSize / 等)
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
// v1.5.0: ReportMessage — 移除顶层 category 字段(下沉到 data.error.category)
|
|
563
|
+
// - data.error 仅在错误时出现(level=ERROR / status=FAILED)
|
|
564
|
+
// - 成功/进度消息:data 仍为平铺业务字段,无 error
|
|
565
|
+
// - messageEn 字段为可选,便于 i18n 兼容(默认 = message 英文文本)
|
|
475
566
|
export interface ReportMessage {
|
|
476
567
|
level: ReportLevel;
|
|
477
|
-
message: string; //
|
|
568
|
+
message: string; // 报告消息(推荐英文,作为 i18n 兜底 / 设备日志)
|
|
478
569
|
code?: string; // 标准化的消息代码
|
|
479
|
-
|
|
480
|
-
|
|
570
|
+
messageEn?: string; // v1.5.0 新增 — 英文文本(与 message 同义,兼容现有结构)
|
|
571
|
+
data?: ReportData; // v1.5.0 — 改为 ReportData 嵌套结构(含 error)
|
|
481
572
|
}
|
|
482
573
|
|
|
483
574
|
// 进度更新消息
|
|
@@ -589,6 +680,45 @@ export function isDeviceApprovalResponseMessage(msg: any): msg is DeviceApproval
|
|
|
589
680
|
return msg && msg.type === MessageType.DEVICE_APPROVAL_RESPONSE;
|
|
590
681
|
}
|
|
591
682
|
|
|
683
|
+
// v1.5.0: ErrorCategory 类型守卫(消费方收到未知值时降级到 BUSINESS)
|
|
684
|
+
export const VALID_ERROR_CATEGORIES: readonly ErrorCategory[] = [
|
|
685
|
+
'TRANSPORT',
|
|
686
|
+
'TIMEOUT',
|
|
687
|
+
'RESOURCE',
|
|
688
|
+
'BUSINESS',
|
|
689
|
+
'CONFIGURATION',
|
|
690
|
+
'PROTOCOL',
|
|
691
|
+
'AUTHORIZATION',
|
|
692
|
+
] as const;
|
|
693
|
+
|
|
694
|
+
export function isValidErrorCategory(value: any): value is ErrorCategory {
|
|
695
|
+
return typeof value === 'string' && (VALID_ERROR_CATEGORIES as readonly string[]).includes(value);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
// v1.5.0: normalizeErrorCategory — 未知值降级到 'BUSINESS'(forward-compatibility 标准做法)
|
|
699
|
+
export function normalizeErrorCategory(value: any): ErrorCategory {
|
|
700
|
+
return isValidErrorCategory(value) ? value : 'BUSINESS';
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
// v1.5.0: ErrorStep ↔ ErrorPhase 归属映射(强校验:step 必须属于 phase)
|
|
704
|
+
export const ERROR_STEP_BY_PHASE: Record<string, readonly ErrorStep[]> = {
|
|
705
|
+
PROGRAM_INIT: ['ValidateParameters', 'PrepareResources', 'LoadConfig', 'CheckConcurrency'] as const,
|
|
706
|
+
PROGRAM_FETCH: ['Download', 'VerifyChecksum'] as const,
|
|
707
|
+
PROGRAM_EXTRACT: ['ExtractZip'] as const,
|
|
708
|
+
PROGRAM_PREPROCESS: ['ResizeImage', 'AdjustColor', 'GammaCorrect', 'Histogram', 'RGBCorrection'] as const,
|
|
709
|
+
PROGRAM_COMPILE: ['CompileFrame', 'MoveFrame', 'VerifyFrameCount'] as const,
|
|
710
|
+
PROGRAM_UPLOAD: ['DeviceCheck', 'DataTransfer', 'ForbiddenTable', 'StatusRecovery', 'RetryLimitExceeded'] as const,
|
|
711
|
+
PROGRAM_STATS: ['CloudReport'] as const,
|
|
712
|
+
PROGRAM_COMPLETE: [] as const,
|
|
713
|
+
// QUICKLY_DETECTION / SYNC_MONITORING_TABLE 在 v1.5.x 后续补充 step 归属
|
|
714
|
+
} as const;
|
|
715
|
+
|
|
716
|
+
export function isValidErrorStepForPhase(step: any, phase: any): boolean {
|
|
717
|
+
if (typeof step !== 'string' || typeof phase !== 'string') return false;
|
|
718
|
+
const allowed = ERROR_STEP_BY_PHASE[phase];
|
|
719
|
+
return Array.isArray(allowed) && (allowed as readonly string[]).includes(step);
|
|
720
|
+
}
|
|
721
|
+
|
|
592
722
|
|
|
593
723
|
// 消息工厂类 - 创建符合新协议的消息
|
|
594
724
|
export class MessageFactory {
|
|
@@ -1066,7 +1196,7 @@ export type AnyMessage =
|
|
|
1066
1196
|
| ErrorMessage;
|
|
1067
1197
|
|
|
1068
1198
|
// 导出常量
|
|
1069
|
-
export const PROTOCOL_VERSION = '1.
|
|
1199
|
+
export const PROTOCOL_VERSION = '1.5.0';
|
|
1070
1200
|
export const DEFAULT_TIMEOUT = 10000;
|
|
1071
1201
|
export const DEFAULT_PRIORITY = Priority.NORMAL;
|
|
1072
1202
|
|
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 协议规范测试套件
|
|
3
|
-
* 验证实现是否符合 PROTOCOL_SPECIFICATION.md
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
MessageFactory,
|
|
8
|
-
MessageValidator,
|
|
9
|
-
MessageType,
|
|
10
|
-
ClientType,
|
|
11
|
-
Priority,
|
|
12
|
-
OperationType,
|
|
13
|
-
CommandType,
|
|
14
|
-
GatewayUtils,
|
|
15
|
-
GATEWAY_SITE_ID,
|
|
16
|
-
isRegisterMessage,
|
|
17
|
-
isCommandMessage
|
|
18
|
-
} from '../index';
|
|
19
|
-
|
|
20
|
-
describe('JRSoft Subway Protocol v1.0', () => {
|
|
21
|
-
describe('基础消息格式', () => {
|
|
22
|
-
test('所有消息必须包含 type 字段', () => {
|
|
23
|
-
const message = { type: 'register', clientId: 'test' };
|
|
24
|
-
expect(MessageValidator.validateMessage(message)).toBe(true);
|
|
25
|
-
|
|
26
|
-
const invalidMessage = { clientId: 'test' };
|
|
27
|
-
expect(MessageValidator.validateMessage(invalidMessage)).toBe(false);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test('timestamp 和 version 字段是可选的', () => {
|
|
31
|
-
const minimalMessage = { type: 'register', clientId: 'test' };
|
|
32
|
-
expect(MessageValidator.validateRegisterMessage(minimalMessage)).toBe(true);
|
|
33
|
-
|
|
34
|
-
const fullMessage = {
|
|
35
|
-
type: 'register',
|
|
36
|
-
clientId: 'test',
|
|
37
|
-
timestamp: new Date().toISOString(),
|
|
38
|
-
version: '1.0'
|
|
39
|
-
};
|
|
40
|
-
expect(MessageValidator.validateRegisterMessage(fullMessage)).toBe(true);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
describe('注册消息兼容性', () => {
|
|
45
|
-
test('支持简单注册格式(v1.0)', () => {
|
|
46
|
-
const simpleRegister = {
|
|
47
|
-
type: 'register',
|
|
48
|
-
clientId: 'device001'
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
expect(isRegisterMessage(simpleRegister)).toBe(true);
|
|
52
|
-
expect(MessageValidator.validateRegisterMessage(simpleRegister)).toBe(true);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
test('支持完整注册格式(v1.0)', () => {
|
|
56
|
-
const fullRegister = MessageFactory.createRegisterMessage(
|
|
57
|
-
'backend-server',
|
|
58
|
-
ClientType.BACKEND,
|
|
59
|
-
{
|
|
60
|
-
version: '1.0.0',
|
|
61
|
-
platform: 'nodejs',
|
|
62
|
-
capabilities: ['command', 'program']
|
|
63
|
-
}
|
|
64
|
-
);
|
|
65
|
-
|
|
66
|
-
expect(isRegisterMessage(fullRegister)).toBe(true);
|
|
67
|
-
expect(MessageValidator.validateRegisterMessage(fullRegister)).toBe(true);
|
|
68
|
-
expect(fullRegister.clientType).toBe(ClientType.BACKEND);
|
|
69
|
-
expect(fullRegister.clientInfo?.capabilities).toContain('command');
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
describe('命令消息格式', () => {
|
|
74
|
-
test('标准命令消息', () => {
|
|
75
|
-
const command = MessageFactory.createCommandMessage(
|
|
76
|
-
'req-123',
|
|
77
|
-
'device001',
|
|
78
|
-
{
|
|
79
|
-
commandType: CommandType.SIMPLE,
|
|
80
|
-
commandCode: 'READ_STATUS',
|
|
81
|
-
deviceType: 'controller',
|
|
82
|
-
operationType: OperationType.READ,
|
|
83
|
-
parameters: {}
|
|
84
|
-
},
|
|
85
|
-
'http://callback.example.com/response'
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
expect(isCommandMessage(command)).toBe(true);
|
|
89
|
-
expect(MessageValidator.validateCommandMessage(command)).toBe(true);
|
|
90
|
-
expect(command.priority).toBe(Priority.NORMAL);
|
|
91
|
-
expect(command.timeout).toBe(10000);
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
test('高优先级命令', () => {
|
|
95
|
-
const command = MessageFactory.createCommandMessage(
|
|
96
|
-
'req-urgent',
|
|
97
|
-
'device001',
|
|
98
|
-
{
|
|
99
|
-
commandType: CommandType.SIMPLE,
|
|
100
|
-
commandCode: 'EMERGENCY_STOP',
|
|
101
|
-
deviceType: 'controller',
|
|
102
|
-
operationType: OperationType.WRITE,
|
|
103
|
-
parameters: {}
|
|
104
|
-
},
|
|
105
|
-
'http://callback.example.com/response',
|
|
106
|
-
{
|
|
107
|
-
priority: Priority.CRITICAL,
|
|
108
|
-
timeout: 5000
|
|
109
|
-
}
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
expect(command.priority).toBe(Priority.CRITICAL);
|
|
113
|
-
expect(command.timeout).toBe(5000);
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
describe('Gateway 特殊命令', () => {
|
|
118
|
-
test('查询设备状态命令', () => {
|
|
119
|
-
const query = GatewayUtils.createDeviceStatusQuery('device001', 'query-001');
|
|
120
|
-
|
|
121
|
-
expect(query.targetClientId).toBe(GATEWAY_SITE_ID);
|
|
122
|
-
expect(query.command.commandCode).toBe('GET_DEVICE_STATUS');
|
|
123
|
-
expect(query.command.operationType).toBe('read');
|
|
124
|
-
expect(query.command.parameters.targetClientId).toBe('device001');
|
|
125
|
-
expect(GatewayUtils.isGatewayCommand(query)).toBe(true);
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
test('列出设备命令', () => {
|
|
129
|
-
const listCmd = GatewayUtils.createListDevicesCommand({
|
|
130
|
-
status: 'online',
|
|
131
|
-
clientType: 'device'
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
expect(listCmd.clientId).toBe(GATEWAY_SITE_ID);
|
|
135
|
-
expect(listCmd.command.commandCode).toBe('LIST_DEVICES');
|
|
136
|
-
expect(listCmd.command.parameters.filter).toEqual({
|
|
137
|
-
status: 'online',
|
|
138
|
-
clientType: 'device'
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
test('命令链', () => {
|
|
144
|
-
const chainCmd = GatewayUtils.createCommandChain(
|
|
145
|
-
'device001',
|
|
146
|
-
[
|
|
147
|
-
{ commandCode: 'STOP', parameters: {} },
|
|
148
|
-
{ commandCode: 'RESET', parameters: {}, delay: 1000 },
|
|
149
|
-
{ commandCode: 'START', parameters: {} }
|
|
150
|
-
]
|
|
151
|
-
);
|
|
152
|
-
|
|
153
|
-
expect(chainCmd.commandChain).toHaveLength(3);
|
|
154
|
-
expect(chainCmd.commandChain![1].delay).toBe(1000);
|
|
155
|
-
expect(chainCmd.timeout).toBeGreaterThan(30000); // 默认超时应考虑延迟
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
describe('消息签名', () => {
|
|
160
|
-
test('签名消息', () => {
|
|
161
|
-
const message = { type: 'command', requestRef: 'test', clientId: 'test' };
|
|
162
|
-
const signedMessage = GatewayUtils.signMessage(message, 'secret-key');
|
|
163
|
-
|
|
164
|
-
expect(signedMessage.signature).toBeDefined();
|
|
165
|
-
expect(signedMessage.signatureMethod).toBe('sha256');
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
test('验证签名', () => {
|
|
169
|
-
const message = { type: 'command', requestRef: 'test', clientId: 'test' };
|
|
170
|
-
const signedMessage = GatewayUtils.signMessage(message, 'secret-key');
|
|
171
|
-
|
|
172
|
-
const isValid = GatewayUtils.verifyMessageSignature(signedMessage, 'secret-key');
|
|
173
|
-
expect(isValid).toBe(true);
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
describe('心跳消息', () => {
|
|
178
|
-
test('创建心跳消息', () => {
|
|
179
|
-
const heartbeat = MessageFactory.createHeartbeatMessage('device001', 12345);
|
|
180
|
-
|
|
181
|
-
expect(heartbeat.type).toBe(MessageType.HEARTBEAT);
|
|
182
|
-
expect(heartbeat.clientId).toBe('device001');
|
|
183
|
-
expect(heartbeat.sequence).toBe(12345);
|
|
184
|
-
expect(heartbeat.timestamp).toBeDefined();
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
describe('错误处理', () => {
|
|
189
|
-
test('创建错误消息', () => {
|
|
190
|
-
const error = MessageFactory.createErrorMessage(
|
|
191
|
-
'DEVICE_OFFLINE',
|
|
192
|
-
'Target device is not connected',
|
|
193
|
-
'medium',
|
|
194
|
-
'device',
|
|
195
|
-
{
|
|
196
|
-
context: {
|
|
197
|
-
clientId: 'device001',
|
|
198
|
-
requestRef: 'req-123'
|
|
199
|
-
},
|
|
200
|
-
retryable: true
|
|
201
|
-
}
|
|
202
|
-
);
|
|
203
|
-
|
|
204
|
-
expect(error.type).toBe(MessageType.ERROR);
|
|
205
|
-
expect(error.code).toBe('DEVICE_OFFLINE');
|
|
206
|
-
expect(error.retryable).toBe(true);
|
|
207
|
-
expect(error.context?.clientId).toBe('device001');
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
describe('程序上传', () => {
|
|
212
|
-
test('创建程序上传消息', () => {
|
|
213
|
-
const program = MessageFactory.createProgramMessage(
|
|
214
|
-
'prog-123',
|
|
215
|
-
'device001',
|
|
216
|
-
{
|
|
217
|
-
device_id: 'device001',
|
|
218
|
-
programId: 'prog-v1.0.1',
|
|
219
|
-
downloadUrl: 'https://example.com/program.zip',
|
|
220
|
-
checksum: 'sha256:abcd1234',
|
|
221
|
-
hashAlgorithm: 'sha256'
|
|
222
|
-
}
|
|
223
|
-
);
|
|
224
|
-
|
|
225
|
-
expect(program.type).toBe(MessageType.PROGRAM);
|
|
226
|
-
expect(program.command.commandCode).toBe('UPLOAD_PROGRAM');
|
|
227
|
-
expect(program.command.operationType).toBe('write');
|
|
228
|
-
expect(program.timeout).toBe(1800000); // 30分钟
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
describe('协议版本兼容性', () => {
|
|
233
|
-
test('消息类型支持字符串和枚举', () => {
|
|
234
|
-
const stringType = { type: 'register', clientId: 'test' };
|
|
235
|
-
const enumType = { type: MessageType.REGISTER, clientId: 'test' };
|
|
236
|
-
|
|
237
|
-
expect(isRegisterMessage(stringType)).toBe(true);
|
|
238
|
-
expect(isRegisterMessage(enumType)).toBe(true);
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
test('字段名兼容性(device_id vs deviceId)', () => {
|
|
242
|
-
const oldFormat = {
|
|
243
|
-
device_id: 'device001',
|
|
244
|
-
programId: 'test'
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
const newFormat = {
|
|
248
|
-
deviceId: 'device001',
|
|
249
|
-
programId: 'test'
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
// 两种格式都应该被接受
|
|
253
|
-
expect(oldFormat.device_id || oldFormat.deviceId).toBe('device001');
|
|
254
|
-
expect(newFormat.deviceId || newFormat.device_id).toBe('device001');
|
|
255
|
-
});
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
describe('协议设计原则验证', () => {
|
|
260
|
-
test('简单性优先 - 最小注册消息只需2个字段', () => {
|
|
261
|
-
const minimalRegister = {
|
|
262
|
-
type: 'register',
|
|
263
|
-
clientId: 'device001'
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
const keys = Object.keys(minimalRegister);
|
|
267
|
-
expect(keys).toHaveLength(2);
|
|
268
|
-
expect(MessageValidator.validateRegisterMessage(minimalRegister)).toBe(true);
|
|
269
|
-
});
|
|
270
|
-
|
|
271
|
-
test('渐进增强 - 可选字段不影响基础功能', () => {
|
|
272
|
-
const basic = { type: 'register', clientId: 'test' };
|
|
273
|
-
const enhanced = {
|
|
274
|
-
...basic,
|
|
275
|
-
clientType: 'device',
|
|
276
|
-
clientInfo: { version: '1.0' },
|
|
277
|
-
timestamp: new Date().toISOString(),
|
|
278
|
-
version: '2.0'
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
// 两种格式都有效
|
|
282
|
-
expect(MessageValidator.validateRegisterMessage(basic)).toBe(true);
|
|
283
|
-
expect(MessageValidator.validateRegisterMessage(enhanced)).toBe(true);
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
test('明确语义 - 每个消息类型有唯一用途', () => {
|
|
287
|
-
const messageTypes = Object.values(MessageType);
|
|
288
|
-
const uniqueTypes = new Set(messageTypes);
|
|
289
|
-
|
|
290
|
-
// 没有重复的消息类型
|
|
291
|
-
expect(uniqueTypes.size).toBe(messageTypes.length);
|
|
292
|
-
|
|
293
|
-
// 每个类型都有明确的用途
|
|
294
|
-
expect(MessageType.REGISTER).not.toBe(MessageType.COMMAND);
|
|
295
|
-
expect(MessageType.HEARTBEAT).not.toBe(MessageType.PROGRAM);
|
|
296
|
-
});
|
|
297
|
-
});
|