@thejrsoft/subway-protocol 1.4.14 → 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 CHANGED
@@ -1,5 +1,110 @@
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
+
3
108
  ## [1.4.14] - 2026-05-11
4
109
 
5
110
  ### Added (零破坏 / minor bump)
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,13 +360,25 @@ export declare enum ReportLevel {
358
360
  ERROR = "ERROR",
359
361
  CRITICAL = "CRITICAL"
360
362
  }
361
- export type ReportCategory = 'TRANSPORT' | 'TIMEOUT' | 'RESOURCE' | 'BUSINESS';
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
+ }
362
376
  export interface ReportMessage {
363
377
  level: ReportLevel;
364
378
  message: string;
365
379
  code?: string;
366
- data?: Record<string, any>;
367
- category?: ReportCategory;
380
+ messageEn?: string;
381
+ data?: ReportData;
368
382
  }
369
383
  export interface ProgressUpdateMessage extends BaseMessage {
370
384
  type: MessageType.PROGRESS_UPDATE;
@@ -411,9 +425,11 @@ export declare function isAuthorizationGrantedMessage(msg: any): msg is Authoriz
411
425
  export declare function isAuthorizationRejectedMessage(msg: any): msg is AuthorizationRejectedMessage;
412
426
  export declare function isDeviceApprovalRequestMessage(msg: any): msg is DeviceApprovalRequestMessage;
413
427
  export declare function isDeviceApprovalResponseMessage(msg: any): msg is DeviceApprovalResponseMessage;
414
- export declare const VALID_REPORT_CATEGORIES: readonly ReportCategory[];
415
- export declare function isValidReportCategory(value: any): value is ReportCategory;
416
- export declare function normalizeReportCategory(value: any): ReportCategory;
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;
417
433
  export declare class MessageFactory {
418
434
  /**
419
435
  * 创建注册消息
@@ -528,7 +544,7 @@ export declare class MessageFactory {
528
544
  success: boolean, message?: string, routeCount?: number): UpdateRoutesAckMessage;
529
545
  }
530
546
  export type AnyMessage = RegisterMessage | RegisterAckMessage | UnregisterMessage | UnregisterAckMessage | CommandMessage | CommandResponseMessage | ProgramMessage | ProgramResponseMessage | HeartbeatMessage | HeartbeatAckMessage | ProgressUpdateMessage | UpdateRoutesMessage | UpdateRoutesAckMessage | RegisterPendingMessage | AuthorizationGrantedMessage | AuthorizationRejectedMessage | DeviceApprovalRequestMessage | DeviceApprovalResponseMessage | ErrorMessage;
531
- export declare const PROTOCOL_VERSION = "1.4.14";
547
+ export declare const PROTOCOL_VERSION = "1.5.0";
532
548
  export declare const DEFAULT_TIMEOUT = 10000;
533
549
  export declare const DEFAULT_PRIORITY = Priority.NORMAL;
534
550
  export * from './command-types';
@@ -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.VALID_REPORT_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;
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,8 +43,9 @@ exports.isAuthorizationGrantedMessage = isAuthorizationGrantedMessage;
43
43
  exports.isAuthorizationRejectedMessage = isAuthorizationRejectedMessage;
44
44
  exports.isDeviceApprovalRequestMessage = isDeviceApprovalRequestMessage;
45
45
  exports.isDeviceApprovalResponseMessage = isDeviceApprovalResponseMessage;
46
- exports.isValidReportCategory = isValidReportCategory;
47
- exports.normalizeReportCategory = normalizeReportCategory;
46
+ exports.isValidErrorCategory = isValidErrorCategory;
47
+ exports.normalizeErrorCategory = normalizeErrorCategory;
48
+ exports.isValidErrorStepForPhase = isValidErrorStepForPhase;
48
49
  // 消息类型枚举
49
50
  var MessageType;
50
51
  (function (MessageType) {
@@ -146,13 +147,16 @@ var ProgramDirection;
146
147
  */
147
148
  var ProgressPhase;
148
149
  (function (ProgressPhase) {
149
- // ---- 节目处理 pipeline(设备端,实施中)----
150
+ // ---- 节目处理 pipeline(设备端)----
151
+ // v1.5.0: PROGRAM 命令统一生命周期 — 加 INIT 起始 / COMPLETE 终态边界
152
+ ProgressPhase["PROGRAM_INIT"] = "PROGRAM_INIT";
150
153
  ProgressPhase["PROGRAM_FETCH"] = "PROGRAM_FETCH";
151
154
  ProgressPhase["PROGRAM_EXTRACT"] = "PROGRAM_EXTRACT";
152
155
  ProgressPhase["PROGRAM_PREPROCESS"] = "PROGRAM_PREPROCESS";
153
156
  ProgressPhase["PROGRAM_COMPILE"] = "PROGRAM_COMPILE";
154
157
  ProgressPhase["PROGRAM_UPLOAD"] = "PROGRAM_UPLOAD";
155
158
  ProgressPhase["PROGRAM_STATS"] = "PROGRAM_STATS";
159
+ ProgressPhase["PROGRAM_COMPLETE"] = "PROGRAM_COMPLETE";
156
160
  // ---- Edge 缓存可见性(v1.4.11 新增)----
157
161
  ProgressPhase["EDGE_CACHE_FETCH"] = "EDGE_CACHE_FETCH";
158
162
  ProgressPhase["EDGE_CACHE_READY"] = "EDGE_CACHE_READY";
@@ -247,19 +251,40 @@ function isDeviceApprovalRequestMessage(msg) {
247
251
  function isDeviceApprovalResponseMessage(msg) {
248
252
  return msg && msg.type === MessageType.DEVICE_APPROVAL_RESPONSE;
249
253
  }
250
- // v1.4.14: ReportCategory 类型守卫(消费方收到未知值时降级到 BUSINESS)
251
- exports.VALID_REPORT_CATEGORIES = [
254
+ // v1.5.0: ErrorCategory 类型守卫(消费方收到未知值时降级到 BUSINESS)
255
+ exports.VALID_ERROR_CATEGORIES = [
252
256
  'TRANSPORT',
253
257
  'TIMEOUT',
254
258
  'RESOURCE',
255
259
  'BUSINESS',
260
+ 'CONFIGURATION',
261
+ 'PROTOCOL',
262
+ 'AUTHORIZATION',
256
263
  ];
257
- function isValidReportCategory(value) {
258
- return typeof value === 'string' && exports.VALID_REPORT_CATEGORIES.includes(value);
264
+ function isValidErrorCategory(value) {
265
+ return typeof value === 'string' && exports.VALID_ERROR_CATEGORIES.includes(value);
259
266
  }
260
- // v1.4.14: normalizeReportCategory — 未知值降级到 'BUSINESS'(forward-compatibility 标准做法)
261
- function normalizeReportCategory(value) {
262
- return isValidReportCategory(value) ? value : 'BUSINESS';
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);
263
288
  }
264
289
  // 消息工厂类 - 创建符合新协议的消息
265
290
  class MessageFactory {
@@ -579,7 +604,7 @@ class MessageFactory {
579
604
  }
580
605
  exports.MessageFactory = MessageFactory;
581
606
  // 导出常量
582
- exports.PROTOCOL_VERSION = '1.4.14';
607
+ exports.PROTOCOL_VERSION = '1.5.0';
583
608
  exports.DEFAULT_TIMEOUT = 10000;
584
609
  exports.DEFAULT_PRIORITY = Priority.NORMAL;
585
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.14",
4
- "description": "Shared WebSocket protocol definitions for JRSoft Subway - Enhanced with clientId fields for response tracking",
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": {
@@ -1,39 +1,51 @@
1
1
  /**
2
- * v1.4.14: ReportCategory 4 + helper 校验
2
+ * v1.5.0: ErrorCategory (7 类) + ErrorInfo + step-phase 归属强校验
3
3
  */
4
4
 
5
5
  import {
6
- ReportCategory,
7
- VALID_REPORT_CATEGORIES,
8
- isValidReportCategory,
9
- normalizeReportCategory,
6
+ ErrorCategory,
7
+ ErrorInfo,
8
+ VALID_ERROR_CATEGORIES,
9
+ isValidErrorCategory,
10
+ normalizeErrorCategory,
11
+ ERROR_STEP_BY_PHASE,
12
+ isValidErrorStepForPhase,
10
13
  } from '../index';
11
14
 
12
- describe('v1.4.14 ReportCategory (4 )', () => {
13
- describe('VALID_REPORT_CATEGORIES', () => {
14
- test('包含完整 4 档', () => {
15
- expect(VALID_REPORT_CATEGORIES).toEqual([
15
+ describe('v1.5.0 ErrorCategory (7 类 closed enum)', () => {
16
+ describe('VALID_ERROR_CATEGORIES', () => {
17
+ test('包含完整 7 档', () => {
18
+ expect(VALID_ERROR_CATEGORIES).toEqual([
16
19
  'TRANSPORT',
17
20
  'TIMEOUT',
18
21
  'RESOURCE',
19
22
  'BUSINESS',
23
+ 'CONFIGURATION',
24
+ 'PROTOCOL',
25
+ 'AUTHORIZATION',
20
26
  ]);
21
27
  });
22
28
 
23
- test('RESOURCE v1.4.14 新增值', () => {
24
- expect(VALID_REPORT_CATEGORIES).toContain('RESOURCE');
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');
25
34
  });
26
35
 
27
- test('保留 v1.4.13 3 档', () => {
28
- expect(VALID_REPORT_CATEGORIES).toContain('TRANSPORT');
29
- expect(VALID_REPORT_CATEGORIES).toContain('TIMEOUT');
30
- expect(VALID_REPORT_CATEGORIES).toContain('BUSINESS');
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');
31
40
  });
32
41
  });
33
42
 
34
- describe('isValidReportCategory', () => {
35
- test.each(['TRANSPORT', 'TIMEOUT', 'RESOURCE', 'BUSINESS'])('合法值 %s 通过', (v) => {
36
- expect(isValidReportCategory(v)).toBe(true);
43
+ describe('isValidErrorCategory', () => {
44
+ test.each([
45
+ 'TRANSPORT', 'TIMEOUT', 'RESOURCE', 'BUSINESS',
46
+ 'CONFIGURATION', 'PROTOCOL', 'AUTHORIZATION',
47
+ ])('合法值 %s 通过', (v) => {
48
+ expect(isValidErrorCategory(v)).toBe(true);
37
49
  });
38
50
 
39
51
  test.each([
@@ -45,55 +57,118 @@ describe('v1.4.14 ReportCategory (4 档)', () => {
45
57
  123,
46
58
  {},
47
59
  ])('非法值 %p 拒收', (v) => {
48
- expect(isValidReportCategory(v)).toBe(false);
60
+ expect(isValidErrorCategory(v)).toBe(false);
49
61
  });
50
62
  });
51
63
 
52
- describe('normalizeReportCategory (forward-compatibility 降级)', () => {
53
- test.each(['TRANSPORT', 'TIMEOUT', 'RESOURCE', 'BUSINESS'])(
54
- '合法值 %s 原样返回',
55
- (v) => {
56
- expect(normalizeReportCategory(v)).toBe(v);
57
- },
58
- );
59
-
60
- test('未知值降级为 BUSINESS(如客户端不识别 RESOURCE 或新枚举值)', () => {
61
- expect(normalizeReportCategory('HARDWARE')).toBe('BUSINESS');
62
- expect(normalizeReportCategory('UNKNOWN_FUTURE_CATEGORY')).toBe('BUSINESS');
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');
63
75
  });
64
76
 
65
77
  test('null / undefined / 非字符串值降级为 BUSINESS', () => {
66
- expect(normalizeReportCategory(undefined)).toBe('BUSINESS');
67
- expect(normalizeReportCategory(null)).toBe('BUSINESS');
68
- expect(normalizeReportCategory(123)).toBe('BUSINESS');
69
- expect(normalizeReportCategory({})).toBe('BUSINESS');
78
+ expect(normalizeErrorCategory(undefined)).toBe('BUSINESS');
79
+ expect(normalizeErrorCategory(null)).toBe('BUSINESS');
80
+ expect(normalizeErrorCategory(123)).toBe('BUSINESS');
81
+ expect(normalizeErrorCategory({})).toBe('BUSINESS');
70
82
  });
71
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
+ });
72
113
 
73
- describe('RESOURCE 使用场景示例', () => {
74
- test('备份目录磁盘满 PROGRESS_UPDATE 携带 RESOURCE category', () => {
75
- const report = {
76
- level: 'ERROR' as const,
77
- code: 'PROGRAM_UPLOAD_BACKUP_FAILED',
78
- category: 'RESOURCE' as ReportCategory,
79
- message: 'Backup failed: disk full at /cache/backup',
80
- data: {
81
- failedReason: 'disk_full',
82
- diskAvailableBytes: 524288,
83
- },
84
- };
85
- expect(isValidReportCategory(report.category)).toBe(true);
114
+ test('未知 phase 拒收', () => {
115
+ expect(isValidErrorStepForPhase('Download', 'UNKNOWN_PHASE')).toBe(false);
86
116
  });
87
117
 
88
- test('OOM 编译失败 PROGRESS_UPDATE 携带 RESOURCE category', () => {
89
- const report = {
90
- level: 'ERROR' as const,
91
- code: 'PROGRAM_COMPILE_FAILED',
92
- category: 'RESOURCE' as ReportCategory,
93
- message: 'Out of memory during frame compilation',
94
- data: { failedReason: 'out_of_memory' },
95
- };
96
- expect(isValidReportCategory(report.category)).toBe(true);
118
+ test('未知 step 拒收', () => {
119
+ expect(isValidErrorStepForPhase('Bogus', 'PROGRAM_FETCH')).toBe(false);
97
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);
98
173
  });
99
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,23 +474,101 @@ export enum ReportLevel {
471
474
  CRITICAL = 'CRITICAL'
472
475
  }
473
476
 
474
- // v1.4.14: 故障分类枚举(4 档,从 v1.4.123 档扩展)
475
- // - TRANSPORT: 网络层故障(TCP 连不上、HTTP 5xx、DNS 失败、CAN 总线告警)
476
- // - TIMEOUT: 等待对端响应超时(设备无应答、节目重试超限、心跳丢失)
477
- // - RESOURCE: 设备端本地资源耗尽(磁盘满 / 内存不足 / 文件句柄耗尽 / cache 写入失败)
478
- // - BUSINESS: 业务逻辑结果(用户参数错、节目数据格式错、forbidden 节点)— 缺省值
479
- export type ReportCategory = 'TRANSPORT' | 'TIMEOUT' | 'RESOURCE' | 'BUSINESS';
480
-
481
- // v1.4.14: 解除 v1.4.13 的"仅 SIMPLE/BATCH 使用 category"文档限制;现允许 COMPLEX
482
- // 命令(PROGRAM / QUICKLY_DETECTION / SYNC_MONITORING_TABLE 等)所有 PROGRESS_UPDATE
483
- // 与终态响应使用 category。BATCH 聚合 COMMAND_RESPONSE 仍是唯一例外
484
- // 报告信息
477
+ // v1.5.0: ErrorCategory 7 类 closed enum(v1.4.144 档扩展到 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 英文文本)
485
566
  export interface ReportMessage {
486
567
  level: ReportLevel;
487
- message: string; // 报告消息
568
+ message: string; // 报告消息(推荐英文,作为 i18n 兜底 / 设备日志)
488
569
  code?: string; // 标准化的消息代码
489
- data?: Record<string, any>; // 额外的数据对象
490
- category?: ReportCategory; // v1.4.12 引入 / v1.4.14 4 档(缺省=BUSINESS
570
+ messageEn?: string; // v1.5.0 新增 — 英文文本(与 message 同义,兼容现有结构)
571
+ data?: ReportData; // v1.5.0 改为 ReportData 嵌套结构(含 error
491
572
  }
492
573
 
493
574
  // 进度更新消息
@@ -599,21 +680,43 @@ export function isDeviceApprovalResponseMessage(msg: any): msg is DeviceApproval
599
680
  return msg && msg.type === MessageType.DEVICE_APPROVAL_RESPONSE;
600
681
  }
601
682
 
602
- // v1.4.14: ReportCategory 类型守卫(消费方收到未知值时降级到 BUSINESS)
603
- export const VALID_REPORT_CATEGORIES: readonly ReportCategory[] = [
683
+ // v1.5.0: ErrorCategory 类型守卫(消费方收到未知值时降级到 BUSINESS)
684
+ export const VALID_ERROR_CATEGORIES: readonly ErrorCategory[] = [
604
685
  'TRANSPORT',
605
686
  'TIMEOUT',
606
687
  'RESOURCE',
607
688
  'BUSINESS',
689
+ 'CONFIGURATION',
690
+ 'PROTOCOL',
691
+ 'AUTHORIZATION',
608
692
  ] as const;
609
693
 
610
- export function isValidReportCategory(value: any): value is ReportCategory {
611
- return typeof value === 'string' && (VALID_REPORT_CATEGORIES as readonly string[]).includes(value);
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';
612
701
  }
613
702
 
614
- // v1.4.14: normalizeReportCategory 未知值降级到 'BUSINESS'(forward-compatibility 标准做法)
615
- export function normalizeReportCategory(value: any): ReportCategory {
616
- return isValidReportCategory(value) ? value : 'BUSINESS';
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);
617
720
  }
618
721
 
619
722
 
@@ -1093,7 +1196,7 @@ export type AnyMessage =
1093
1196
  | ErrorMessage;
1094
1197
 
1095
1198
  // 导出常量
1096
- export const PROTOCOL_VERSION = '1.4.14';
1199
+ export const PROTOCOL_VERSION = '1.5.0';
1097
1200
  export const DEFAULT_TIMEOUT = 10000;
1098
1201
  export const DEFAULT_PRIORITY = Priority.NORMAL;
1099
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
- });