@ray-js/robot-data-stream 0.0.14 → 0.0.15-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/lib/api/sweeperP2p.js +1 -1
  2. package/lib/mqtt/createCommonOptions.d.ts +4 -2
  3. package/lib/mqtt/createCommonOptions.js +10 -5
  4. package/lib/mqtt/hooks/useStructuredMessage.d.ts +17 -0
  5. package/lib/mqtt/hooks/useStructuredMessage.js +206 -0
  6. package/lib/mqtt/mqttProvider.d.ts +28 -1
  7. package/lib/mqtt/mqttProvider.js +72 -9
  8. package/lib/mqtt/promise.d.ts +57 -4
  9. package/lib/mqtt/promise.js +115 -36
  10. package/lib/mqtt/type/fun.d.ts +233 -0
  11. package/lib/mqtt/type/fun.js +145 -0
  12. package/lib/mqtt/type/index.d.ts +0 -7
  13. package/lib/mqtt/type/index.js +0 -1
  14. package/lib/mqtt/type/protocols/base.d.ts +21 -0
  15. package/lib/mqtt/type/protocols/base.js +32 -0
  16. package/lib/mqtt/type/protocols/carpetCleanProtocol.d.ts +14 -0
  17. package/lib/mqtt/type/protocols/carpetCleanProtocol.js +14 -0
  18. package/lib/mqtt/type/protocols/carpetProtocol.d.ts +102 -0
  19. package/lib/mqtt/type/protocols/carpetProtocol.js +202 -0
  20. package/lib/mqtt/type/protocols/devInfoProtocol.d.ts +11 -0
  21. package/lib/mqtt/type/protocols/devInfoProtocol.js +10 -0
  22. package/lib/mqtt/type/protocols/deviceModelProtocol.d.ts +31 -0
  23. package/lib/mqtt/type/protocols/deviceModelProtocol.js +32 -0
  24. package/lib/mqtt/type/protocols/furnitureModelProtocol.d.ts +27 -0
  25. package/lib/mqtt/type/protocols/furnitureModelProtocol.js +27 -0
  26. package/lib/mqtt/type/protocols/historyMapProtocol.d.ts +39 -0
  27. package/lib/mqtt/type/protocols/historyMapProtocol.js +37 -0
  28. package/lib/mqtt/type/protocols/index.d.ts +20 -0
  29. package/lib/mqtt/type/protocols/index.js +20 -0
  30. package/lib/mqtt/type/protocols/partDivisionProtocol.d.ts +20 -0
  31. package/lib/mqtt/type/protocols/partDivisionProtocol.js +12 -0
  32. package/lib/mqtt/type/protocols/partMergeProtocol.d.ts +13 -0
  33. package/lib/mqtt/type/protocols/partMergeProtocol.js +12 -0
  34. package/lib/mqtt/type/protocols/passwordProtocol.d.ts +24 -0
  35. package/lib/mqtt/type/protocols/passwordProtocol.js +25 -0
  36. package/lib/mqtt/type/protocols/quietHoursProtocol.d.ts +29 -0
  37. package/lib/mqtt/type/protocols/quietHoursProtocol.js +35 -0
  38. package/lib/mqtt/type/protocols/resetMapProtocol.d.ts +4 -0
  39. package/lib/mqtt/type/protocols/resetMapProtocol.js +1 -0
  40. package/lib/mqtt/type/protocols/roomPropertyProtocol.d.ts +42 -0
  41. package/lib/mqtt/type/protocols/roomPropertyProtocol.js +113 -0
  42. package/lib/mqtt/type/protocols/scheduleProtocol.d.ts +62 -0
  43. package/lib/mqtt/type/protocols/scheduleProtocol.js +100 -0
  44. package/lib/mqtt/type/protocols/selectRoomCleanProtocol.d.ts +27 -0
  45. package/lib/mqtt/type/protocols/selectRoomCleanProtocol.js +40 -0
  46. package/lib/mqtt/type/protocols/spotCleanProtocol.d.ts +38 -0
  47. package/lib/mqtt/type/protocols/spotCleanProtocol.js +72 -0
  48. package/lib/mqtt/type/protocols/virtualAreaProtocol.d.ts +32 -0
  49. package/lib/mqtt/type/protocols/virtualAreaProtocol.js +36 -0
  50. package/lib/mqtt/type/protocols/virtualWallProtocol.d.ts +27 -0
  51. package/lib/mqtt/type/protocols/virtualWallProtocol.js +25 -0
  52. package/lib/mqtt/type/protocols/voiceProtocol.d.ts +21 -0
  53. package/lib/mqtt/type/protocols/voiceProtocol.js +23 -0
  54. package/lib/mqtt/type/protocols/wifiMapProtocol.d.ts +16 -0
  55. package/lib/mqtt/type/protocols/wifiMapProtocol.js +14 -0
  56. package/lib/mqtt/type/protocols/zoneCleanProtocol.d.ts +47 -0
  57. package/lib/mqtt/type/protocols/zoneCleanProtocol.js +49 -0
  58. package/lib/mqtt/useCarpet.d.ts +7 -67
  59. package/lib/mqtt/useCarpet.js +101 -181
  60. package/lib/mqtt/useCarpetClean.d.ts +2 -11
  61. package/lib/mqtt/useCarpetClean.js +26 -50
  62. package/lib/mqtt/useDevInfo.d.ts +8 -6
  63. package/lib/mqtt/useDevInfo.js +44 -36
  64. package/lib/mqtt/useDeviceModel.d.ts +6 -19
  65. package/lib/mqtt/useDeviceModel.js +31 -42
  66. package/lib/mqtt/useFurnitureModel.d.ts +6 -18
  67. package/lib/mqtt/useFurnitureModel.js +31 -43
  68. package/lib/mqtt/useHistoryMap.d.ts +2 -18
  69. package/lib/mqtt/useHistoryMap.js +102 -119
  70. package/lib/mqtt/usePartDivision.d.ts +2 -9
  71. package/lib/mqtt/usePartDivision.js +48 -57
  72. package/lib/mqtt/usePartMerge.d.ts +2 -8
  73. package/lib/mqtt/usePartMerge.js +34 -49
  74. package/lib/mqtt/usePassword.d.ts +6 -13
  75. package/lib/mqtt/usePassword.js +84 -74
  76. package/lib/mqtt/useQuiteHours.d.ts +4 -37
  77. package/lib/mqtt/useQuiteHours.js +66 -100
  78. package/lib/mqtt/useResetMap.d.ts +2 -8
  79. package/lib/mqtt/useResetMap.js +27 -34
  80. package/lib/mqtt/useRoomProperty.d.ts +8 -9
  81. package/lib/mqtt/useRoomProperty.js +67 -65
  82. package/lib/mqtt/useSchedule.d.ts +3 -23
  83. package/lib/mqtt/useSchedule.js +72 -101
  84. package/lib/mqtt/useSelectRoomClean.d.ts +3 -24
  85. package/lib/mqtt/useSelectRoomClean.js +107 -133
  86. package/lib/mqtt/useSpotClean.d.ts +5 -15
  87. package/lib/mqtt/useSpotClean.js +68 -121
  88. package/lib/mqtt/useVirtualArea.d.ts +6 -17
  89. package/lib/mqtt/useVirtualArea.js +109 -119
  90. package/lib/mqtt/useVirtualWall.d.ts +2 -18
  91. package/lib/mqtt/useVirtualWall.js +69 -90
  92. package/lib/mqtt/useVoice.d.ts +2 -16
  93. package/lib/mqtt/useVoice.js +48 -68
  94. package/lib/mqtt/useWifiMap.d.ts +6 -5
  95. package/lib/mqtt/useWifiMap.js +43 -42
  96. package/lib/mqtt/useZoneClean.d.ts +2 -21
  97. package/lib/mqtt/useZoneClean.js +125 -137
  98. package/lib/myLib/zod/mini/index.d.cts +1 -0
  99. package/lib/myLib/zod/mini/index.d.ts +1 -0
  100. package/lib/myLib/zod/mini/index.js +1 -0
  101. package/lib/myLib/zod/mini/package.json +6 -0
  102. package/lib/myLib/zod/src/mini/index.d.ts +1 -0
  103. package/lib/myLib/zod/src/mini/index.js +1 -0
  104. package/lib/myLib/zod/src/v4/core/api.d.ts +306 -0
  105. package/lib/myLib/zod/src/v4/core/api.js +1256 -0
  106. package/lib/myLib/zod/src/v4/core/checks.d.ts +278 -0
  107. package/lib/myLib/zod/src/v4/core/checks.js +816 -0
  108. package/lib/myLib/zod/src/v4/core/config.d.ts +9 -0
  109. package/lib/myLib/zod/src/v4/core/config.js +5 -0
  110. package/lib/myLib/zod/src/v4/core/core.d.ts +70 -0
  111. package/lib/myLib/zod/src/v4/core/core.js +95 -0
  112. package/lib/myLib/zod/src/v4/core/doc.d.ts +14 -0
  113. package/lib/myLib/zod/src/v4/core/doc.js +42 -0
  114. package/lib/myLib/zod/src/v4/core/errors.d.ts +220 -0
  115. package/lib/myLib/zod/src/v4/core/errors.js +232 -0
  116. package/lib/myLib/zod/src/v4/core/index.d.ts +15 -0
  117. package/lib/myLib/zod/src/v4/core/index.js +15 -0
  118. package/lib/myLib/zod/src/v4/core/json-schema-generator.d.ts +65 -0
  119. package/lib/myLib/zod/src/v4/core/json-schema-generator.js +120 -0
  120. package/lib/myLib/zod/src/v4/core/json-schema-processors.d.ts +49 -0
  121. package/lib/myLib/zod/src/v4/core/json-schema-processors.js +593 -0
  122. package/lib/myLib/zod/src/v4/core/json-schema.d.ts +88 -0
  123. package/lib/myLib/zod/src/v4/core/json-schema.js +1 -0
  124. package/lib/myLib/zod/src/v4/core/parse.d.ts +49 -0
  125. package/lib/myLib/zod/src/v4/core/parse.js +147 -0
  126. package/lib/myLib/zod/src/v4/core/regexes.d.ts +78 -0
  127. package/lib/myLib/zod/src/v4/core/regexes.js +146 -0
  128. package/lib/myLib/zod/src/v4/core/registries.d.ts +35 -0
  129. package/lib/myLib/zod/src/v4/core/registries.js +51 -0
  130. package/lib/myLib/zod/src/v4/core/schemas.d.ts +1136 -0
  131. package/lib/myLib/zod/src/v4/core/schemas.js +2745 -0
  132. package/lib/myLib/zod/src/v4/core/standard-schema.d.ts +126 -0
  133. package/lib/myLib/zod/src/v4/core/standard-schema.js +1 -0
  134. package/lib/myLib/zod/src/v4/core/to-json-schema.d.ts +114 -0
  135. package/lib/myLib/zod/src/v4/core/to-json-schema.js +488 -0
  136. package/lib/myLib/zod/src/v4/core/util.d.ts +199 -0
  137. package/lib/myLib/zod/src/v4/core/util.js +656 -0
  138. package/lib/myLib/zod/src/v4/core/versions.d.ts +5 -0
  139. package/lib/myLib/zod/src/v4/core/versions.js +5 -0
  140. package/lib/myLib/zod/src/v4/core/zsf.d.ts +91 -0
  141. package/lib/myLib/zod/src/v4/core/zsf.js +1 -0
  142. package/lib/myLib/zod/src/v4/mini/checks.d.ts +1 -0
  143. package/lib/myLib/zod/src/v4/mini/checks.js +1 -0
  144. package/lib/myLib/zod/src/v4/mini/coerce.d.ts +7 -0
  145. package/lib/myLib/zod/src/v4/mini/coerce.js +27 -0
  146. package/lib/myLib/zod/src/v4/mini/external.d.ts +11 -0
  147. package/lib/myLib/zod/src/v4/mini/external.js +16 -0
  148. package/lib/myLib/zod/src/v4/mini/index.d.ts +530 -0
  149. package/lib/myLib/zod/src/v4/mini/index.js +30 -0
  150. package/lib/myLib/zod/src/v4/mini/iso.d.ts +22 -0
  151. package/lib/myLib/zod/src/v4/mini/iso.js +46 -0
  152. package/lib/myLib/zod/src/v4/mini/parse.d.ts +1 -0
  153. package/lib/myLib/zod/src/v4/mini/parse.js +1 -0
  154. package/lib/myLib/zod/src/v4/mini/schemas.js +1244 -0
  155. package/lib/utils/index.d.ts +1 -0
  156. package/lib/utils/index.js +2 -1
  157. package/package.json +5 -3
@@ -1,54 +1,133 @@
1
- import { emitter } from '../utils';
1
+ import { emitter, logger } from '../utils';
2
2
 
3
- // 1. 定义 MyError 类型
4
- class MyError extends Error {
3
+ /**
4
+ * MQTT 请求超时时间(毫秒)
5
+ * 默认 10 秒
6
+ */
7
+ const DEFAULT_TIMEOUT = 10 * 1000;
8
+
9
+ /**
10
+ * 全局未处理的 rejection 处理器
11
+ * 当 Promise 被 reject 但没有被 catch 时调用
12
+ */
13
+ let globalUnhandledRejectionHandler = null;
14
+
15
+ /**
16
+ * 设置全局未处理的 rejection 处理器
17
+ *
18
+ * @param handler 处理函数,接收 MqttError 作为参数
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * setUnhandledRejectionHandler((error) => {
23
+ * console.error('Unhandled MQTT error:', error);
24
+ * // 可以发送到错误监控服务
25
+ * });
26
+ * ```
27
+ */
28
+ export function setUnhandledRejectionHandler(handler) {
29
+ globalUnhandledRejectionHandler = handler;
30
+ }
31
+
32
+ /**
33
+ * MQTT 请求错误类
34
+ * 包含错误代码和请求类型信息
35
+ */
36
+ export class MqttError extends Error {
5
37
  constructor(message, _ref) {
6
38
  let {
7
39
  errCode,
8
40
  reqType
9
41
  } = _ref;
10
42
  super(message);
43
+ this.name = 'MqttError';
11
44
  this.errCode = errCode;
12
45
  this.reqType = reqType;
46
+
47
+ // 确保错误堆栈正确
48
+ if (Error.captureStackTrace) {
49
+ Error.captureStackTrace(this, MqttError);
50
+ }
13
51
  }
14
52
  }
15
53
 
16
- // 2. 定义 Message 类型(兼容 MQTT 响应格式)
54
+ /**
55
+ * MQTT 响应消息类型(兼容 MQTT 响应格式)
56
+ */
57
+
58
+ /**
59
+ * Promise 扩展类型,支持手动拒绝
60
+ */
17
61
 
18
- // 3. 定义 PromiseWithRejection 类型
62
+ /**
63
+ * 创建 MQTT 请求的 Promise,监听响应消息
64
+ *
65
+ * ⚠️ 注意:此函数不再使用 taskId 进行匹配,只要接收到对应 reqType 的响应就认为匹配
66
+ * ⚠️ 风险:如果同时发起多个相同 reqType 的请求,可能会匹配到错误的响应
67
+ * ⚠️ 建议:确保业务上不会同时发起多个相同类型的请求
68
+ *
69
+ * @param reqType 请求类型,用于匹配响应消息
70
+ * @param taskId 任务ID(已废弃,保留参数以保持向后兼容)
71
+ * @param resolve Promise 的 resolve 回调
72
+ * @param reject Promise 的 reject 回调
73
+ * @param timeout 超时时间(毫秒),默认 10 秒
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * return new Promise((resolve, reject) => {
78
+ * normalResolve('carpetQry', '', resolve, reject);
79
+ * });
80
+ * ```
81
+ */
82
+ export function normalResolve(reqType, resolve, reject) {
83
+ let timeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_TIMEOUT;
84
+ let isResolved = false;
19
85
 
20
- // 4. 定义 normalResolve 函数
21
- export function normalResolve(reqType, taskId) {
22
- return new Promise((resolve, reject) => {
23
- // 设置超时定时器
24
- const timer = setTimeout(() => {
25
- reject(new MyError(`${taskId} ${reqType} Request timed out `, {
86
+ // 设置超时定时器
87
+ const timer = setTimeout(() => {
88
+ if (!isResolved) {
89
+ isResolved = true;
90
+ // 确保在超时时也移除监听器
91
+ emitter.off(reqType, handle);
92
+ reject(new MqttError(`${reqType} Request timed out`, {
26
93
  errCode: -1,
27
94
  reqType
28
95
  }));
29
- }, 10 * 1000);
30
- const handle = message => {
31
- var _message$errCode;
32
- // 通过 taskId 匹配响应
33
- if (`${message.taskId}` !== `${taskId}`) {
34
- return;
35
- }
36
- clearTimeout(timer);
37
-
38
- // 优先使用 errCode,如果没有则使用 success 字段判断
39
- const errCode = (_message$errCode = message.errCode) !== null && _message$errCode !== void 0 ? _message$errCode : message.success === false ? -1 : 0;
40
- if (errCode === 0) {
41
- resolve(message);
42
- } else {
43
- reject(new MyError('Request failed', {
44
- errCode,
45
- reqType
46
- }));
47
- }
48
- emitter.off(reqType, handle);
49
- };
96
+ }
97
+ }, timeout);
98
+ const handle = message => {
99
+ var _response$errCode;
100
+ const response = typeof message.data === 'object' ? message.data : message;
101
+
102
+ // 如果已经处理过,直接返回(避免重复处理)
103
+ if (isResolved) {
104
+ return;
105
+ }
106
+
107
+ // 标记为已处理(防止其他监听器处理)
108
+ isResolved = true;
109
+ clearTimeout(timer);
110
+ logger('info', {
111
+ msg: `${reqType} normalResolve: response ==>${JSON.stringify(response)}`
112
+ });
113
+
114
+ // 移除监听器(使用函数引用确保移除正确的监听器)
115
+ emitter.off(reqType, handle);
116
+
117
+ // 优先使用 errCode,如果没有则使用 success 字段判断
118
+ const errCode = (_response$errCode = response.errCode) !== null && _response$errCode !== void 0 ? _response$errCode : response.success === false ? -1 : 0;
119
+ if (errCode === 0) {
120
+ resolve(response);
121
+ } else {
122
+ reject(new MqttError('Request failed', {
123
+ errCode,
124
+ reqType
125
+ }));
126
+ }
127
+ };
128
+
129
+ // 监听指定类型的消息
130
+ emitter.on(reqType, handle);
131
+ }
50
132
 
51
- // 监听指定类型的消息
52
- emitter.on(reqType, handle);
53
- });
54
- }
133
+ // 为了向后兼容,导出旧的类型别名
@@ -0,0 +1,233 @@
1
+ import * as z from '../../myLib/zod/mini';
2
+ import { pointsSchema, roomIdSchema, originSchema } from './protocols/partDivisionProtocol';
3
+ export declare const ProtocolSchemas: {
4
+ query_carpet: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{}, z.core.$strip>;
5
+ add_carpet: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
6
+ shape: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>;
7
+ polygons: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
8
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
9
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
10
+ }, z.core.$strip>>>;
11
+ num: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
12
+ type: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
13
+ cleanMode: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
14
+ autoBoost: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
15
+ fineCleaning: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
16
+ sideBrushRotating: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
17
+ }, z.core.$strip>;
18
+ update_carpet: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
19
+ ids: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
20
+ shape: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
21
+ type: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
22
+ cleanMode: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
23
+ autoBoost: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
24
+ fineCleaning: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
25
+ sideBrushRotating: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>>;
26
+ polygons: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
27
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
28
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
29
+ }, z.core.$strip>>>>;
30
+ }, z.core.$strip>;
31
+ delete_carpet: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
32
+ ids: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
33
+ }, z.core.$strip>;
34
+ set_carpet: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
35
+ num: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
36
+ polygons: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
37
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
38
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
39
+ }, z.core.$strip>>>;
40
+ cleanMode: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
41
+ shape: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>;
42
+ ids: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
43
+ type: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
44
+ autoBoost: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
45
+ fineCleaning: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
46
+ sideBrushRotating: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
47
+ }, z.core.$strip>;
48
+ set_schedule: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
49
+ list: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
50
+ suctions: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
51
+ cisterns: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
52
+ cleanCounts: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
53
+ yMops: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
54
+ sweepMopModes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
55
+ ids: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
56
+ active: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
57
+ cycle: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
58
+ time: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
59
+ }, z.core.$strip>>;
60
+ num: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
61
+ version: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
62
+ }, z.core.$strip>;
63
+ request_schedule: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
64
+ version: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
65
+ }, z.core.$strip>;
66
+ set_zone_clean: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
67
+ zones: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
68
+ points: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
69
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
70
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
71
+ }, z.core.$strip>>;
72
+ name: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
73
+ advanced: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
74
+ id: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
75
+ localSave: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
76
+ cleanMode: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
77
+ order: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
78
+ cleanTimes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
79
+ suction: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
80
+ cistern: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
81
+ }, z.core.$strip>>;
82
+ }, z.core.$strip>>;
83
+ origin: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
84
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
85
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
86
+ }, z.core.$strip>;
87
+ suctions: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
88
+ cisterns: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
89
+ cleanCounts: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
90
+ yMops: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
91
+ sweepMopModes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
92
+ }, z.core.$strip>;
93
+ set_wifi_map: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
94
+ taskId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
95
+ }, z.core.$strip>;
96
+ set_voice: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
97
+ id: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
98
+ url: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
99
+ md5: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
100
+ }, z.core.$strip>;
101
+ set_virtual_wall: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
102
+ data: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
103
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
104
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
105
+ }, z.core.$strip>>>;
106
+ origin: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
107
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
108
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
109
+ }, z.core.$strip>;
110
+ }, z.core.$strip>;
111
+ set_virtual_area: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
112
+ data: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
113
+ points: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
114
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
115
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
116
+ }, z.core.$strip>>;
117
+ name: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
118
+ mode: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
119
+ }, z.core.$strip>>;
120
+ origin: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
121
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
122
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
123
+ }, z.core.$strip>;
124
+ }, z.core.$strip>;
125
+ set_spot_clean: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
126
+ suctions: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
127
+ cisterns: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
128
+ cleanCounts: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
129
+ yMops: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
130
+ sweepMopModes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
131
+ ids: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
132
+ spots: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
133
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
134
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
135
+ }, z.core.$strip>>;
136
+ origin: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
137
+ x: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
138
+ y: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
139
+ }, z.core.$strip>>;
140
+ }, z.core.$strip>;
141
+ set_select_room_clean: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
142
+ roomId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
143
+ suction: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
144
+ cistern: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
145
+ cleanTimes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
146
+ yMop: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
147
+ sweepMopMode: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
148
+ }, z.core.$strip>>;
149
+ set_quiet_hours: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
150
+ startTime: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
151
+ hour: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
152
+ minute: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
153
+ }, z.core.$strip>;
154
+ endTime: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
155
+ hour: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
156
+ minute: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
157
+ }, z.core.$strip>;
158
+ active: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
159
+ day: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
160
+ version: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
161
+ }, z.core.$strip>;
162
+ set_password: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
163
+ password: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
164
+ oldPassword: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
165
+ taskId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
166
+ }, z.core.$strip>;
167
+ check_password: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
168
+ password: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
169
+ taskId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
170
+ }, z.core.$strip>;
171
+ set_part_merge: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>;
172
+ delete_history_map: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
173
+ mapId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
174
+ }, z.core.$strip>;
175
+ save_map: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
176
+ oper: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
177
+ }, z.core.$strip>;
178
+ change_current_map: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
179
+ mapId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
180
+ url: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
181
+ urlLen: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
182
+ }, z.core.$strip>;
183
+ request_furniture_list: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{}, z.core.$strip>;
184
+ set_furniture_model: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
185
+ id: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
186
+ modelType: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
187
+ scale: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
188
+ size: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
189
+ rotation: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
190
+ position: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
191
+ }, z.core.$strip>>;
192
+ set_device_model: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
193
+ id: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
194
+ modelType: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
195
+ scale: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
196
+ size: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
197
+ rotation: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
198
+ position: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
199
+ subDevId: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
200
+ }, z.core.$strip>>;
201
+ set_carpet_clean: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>>;
202
+ set_room_property: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
203
+ num: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
204
+ ids: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
205
+ suctions: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
206
+ cisterns: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
207
+ cleanCounts: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
208
+ yMops: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
209
+ sweepMopModes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
210
+ floorTypes: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
211
+ names: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
212
+ orders: import("../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
213
+ }, z.core.$strip>;
214
+ };
215
+ export type ProtocolTypes = {
216
+ [K in keyof typeof ProtocolSchemas]: z.infer<(typeof ProtocolSchemas)[K]>;
217
+ };
218
+ export declare class MiniProtocolValidator {
219
+ validate<T extends keyof ProtocolTypes>(protocol: T, data: unknown): ProtocolTypes[T];
220
+ /**
221
+ * 验证 set_part_division 的三个独立参数
222
+ * @param points 分隔点数组
223
+ * @param roomId 房间ID(可以是 int 或 string)
224
+ * @param origin 地图原点坐标
225
+ * @returns 验证后的数据对象
226
+ */
227
+ validateSetPartDivision(points: unknown, roomId: unknown, origin: unknown): {
228
+ points: z.infer<typeof pointsSchema>;
229
+ roomId: z.infer<typeof roomIdSchema>;
230
+ origin: z.infer<typeof originSchema>;
231
+ };
232
+ }
233
+ export declare const validator: MiniProtocolValidator;
@@ -0,0 +1,145 @@
1
+ import "core-js/modules/esnext.iterator.map.js";
2
+ // protocol-validator.ts
3
+
4
+ import { MqttError } from '../promise';
5
+
6
+ // 导入各个协议的 schema 和验证函数
7
+ import { setCarpetCleanSchema } from './protocols/carpetCleanProtocol';
8
+ import { addCarpetSchema, deleteCarpetSchema, queryCarpetSchema, setCarpetSchema, updateCarpetSchema, validateAddCarpet, validateSetCarpet, validateUpdateCarpet } from './protocols/carpetProtocol';
9
+ import { setDeviceModelSchema } from './protocols/deviceModelProtocol';
10
+ import { requestFurnitureListSchema, setFurnitureModelSchema } from './protocols/furnitureModelProtocol';
11
+ import { changeCurrentMapSchema, deleteHistoryMapSchema, saveMapSchema } from './protocols/historyMapProtocol';
12
+ import { pointsSchema, roomIdSchema, originSchema } from './protocols/partDivisionProtocol';
13
+ import { setPartMergeSchema } from './protocols/partMergeProtocol';
14
+ import { checkPasswordSchema, setPasswordSchema } from './protocols/passwordProtocol';
15
+ import { setQuietHoursSchema } from './protocols/quietHoursProtocol';
16
+ import { setRoomPropertySchema, validateSetRoomProperty } from './protocols/roomPropertyProtocol';
17
+ import { requestScheduleSchema, setScheduleSchema, validateSetSchedule } from './protocols/scheduleProtocol';
18
+ import { setSelectRoomCleanSchema } from './protocols/selectRoomCleanProtocol';
19
+ import { setSpotCleanSchema, validateSetSpotClean } from './protocols/spotCleanProtocol';
20
+ import { setVirtualAreaSchema } from './protocols/virtualAreaProtocol';
21
+ import { setVirtualWallSchema } from './protocols/virtualWallProtocol';
22
+ import { setVoiceSchema } from './protocols/voiceProtocol';
23
+ import { setWifiMapSchema } from './protocols/wifiMapProtocol';
24
+ import { setZoneCleanSchema } from './protocols/zoneCleanProtocol';
25
+
26
+ /**
27
+ * 验证失败错误代码
28
+ * -2 表示数据验证失败
29
+ */
30
+ const VALIDATION_ERROR_CODE = -2;
31
+
32
+ // 协议定义 - 从各个协议文件导入
33
+ export const ProtocolSchemas = {
34
+ query_carpet: queryCarpetSchema,
35
+ add_carpet: addCarpetSchema,
36
+ update_carpet: updateCarpetSchema,
37
+ delete_carpet: deleteCarpetSchema,
38
+ set_carpet: setCarpetSchema,
39
+ set_schedule: setScheduleSchema,
40
+ request_schedule: requestScheduleSchema,
41
+ set_zone_clean: setZoneCleanSchema,
42
+ set_wifi_map: setWifiMapSchema,
43
+ set_voice: setVoiceSchema,
44
+ set_virtual_wall: setVirtualWallSchema,
45
+ set_virtual_area: setVirtualAreaSchema,
46
+ set_spot_clean: setSpotCleanSchema,
47
+ set_select_room_clean: setSelectRoomCleanSchema,
48
+ set_quiet_hours: setQuietHoursSchema,
49
+ set_password: setPasswordSchema,
50
+ check_password: checkPasswordSchema,
51
+ set_part_merge: setPartMergeSchema,
52
+ delete_history_map: deleteHistoryMapSchema,
53
+ save_map: saveMapSchema,
54
+ change_current_map: changeCurrentMapSchema,
55
+ request_furniture_list: requestFurnitureListSchema,
56
+ set_furniture_model: setFurnitureModelSchema,
57
+ set_device_model: setDeviceModelSchema,
58
+ set_carpet_clean: setCarpetCleanSchema,
59
+ set_room_property: setRoomPropertySchema
60
+ };
61
+
62
+ // 协议验证函数类型
63
+
64
+ // 协议注册表 - 将协议名称映射到验证函数
65
+ const protocolValidators = {
66
+ add_carpet: validateAddCarpet,
67
+ update_carpet: validateUpdateCarpet,
68
+ set_carpet: validateSetCarpet,
69
+ set_schedule: validateSetSchedule,
70
+ set_spot_clean: validateSetSpotClean,
71
+ set_room_property: validateSetRoomProperty
72
+ // query_carpet 没有自定义验证逻辑,不需要注册
73
+ // delete_carpet 没有自定义验证逻辑,不需要注册
74
+ // request_schedule 没有自定义验证逻辑,不需要注册
75
+ };
76
+
77
+ // 类型导出
78
+
79
+ // 验证器类
80
+ export class MiniProtocolValidator {
81
+ validate(protocol, data) {
82
+ const schema = ProtocolSchemas[protocol];
83
+
84
+ // 使用 zod/mini 的 safeParse 进行基础验证
85
+ const result = schema.safeParse(data);
86
+ if (!result.success) {
87
+ // 验证失败,抛出 MqttError
88
+ throw new MqttError(`协议 ${protocol} ${JSON.stringify(data)} 验证失败:\n` + result.error.issues.map(e => ` ${e.path.join('.')}: ${e.message}`).join('\n'), {
89
+ errCode: VALIDATION_ERROR_CODE,
90
+ reqType: protocol
91
+ });
92
+ }
93
+ const validatedData = result.data;
94
+
95
+ // 自定义逻辑验证 - 根据协议名称调用对应的验证函数
96
+ const validator = protocolValidators[protocol];
97
+ if (validator) {
98
+ validator(validatedData);
99
+ }
100
+ return validatedData;
101
+ }
102
+
103
+ /**
104
+ * 验证 set_part_division 的三个独立参数
105
+ * @param points 分隔点数组
106
+ * @param roomId 房间ID(可以是 int 或 string)
107
+ * @param origin 地图原点坐标
108
+ * @returns 验证后的数据对象
109
+ */
110
+ validateSetPartDivision(points, roomId, origin) {
111
+ // 分别验证三个参数
112
+ const pointsResult = pointsSchema.safeParse(points);
113
+ if (!pointsResult.success) {
114
+ throw new MqttError(`协议 set_part_division points 参数验证失败:\n` + pointsResult.error.issues.map(e => ` ${e.path.join('.')}: ${e.message}`).join('\n'), {
115
+ errCode: VALIDATION_ERROR_CODE,
116
+ reqType: 'set_part_division'
117
+ });
118
+ }
119
+ const roomIdResult = roomIdSchema.safeParse(roomId);
120
+ if (!roomIdResult.success) {
121
+ throw new MqttError(`协议 set_part_division roomId 参数验证失败:\n` + roomIdResult.error.issues.map(e => ` ${e.path.join('.')}: ${e.message}`).join('\n'), {
122
+ errCode: VALIDATION_ERROR_CODE,
123
+ reqType: 'set_part_division'
124
+ });
125
+ }
126
+ const originResult = originSchema.safeParse(origin);
127
+ if (!originResult.success) {
128
+ throw new MqttError(`协议 set_part_division origin 参数验证失败:\n` + originResult.error.issues.map(e => ` ${e.path.join('.')}: ${e.message}`).join('\n'), {
129
+ errCode: VALIDATION_ERROR_CODE,
130
+ reqType: 'set_part_division'
131
+ });
132
+ }
133
+
134
+ // 组合成对象并验证整体结构
135
+ const data = {
136
+ points: pointsResult.data,
137
+ roomId: roomIdResult.data,
138
+ origin: originResult.data
139
+ };
140
+ return data;
141
+ }
142
+ }
143
+
144
+ // 导出验证器实例
145
+ export const validator = new MiniProtocolValidator();
@@ -1,11 +1,4 @@
1
1
  export * from './requestType';
2
- export interface BaseResponse {
3
- success: boolean;
4
- errCode: number;
5
- reqType: string;
6
- version: string;
7
- taskId: string;
8
- }
9
2
  /**
10
3
  * MQTT 协议号枚举
11
4
  */
@@ -1,5 +1,4 @@
1
1
  export * from './requestType';
2
- // 设备接口响应的统一标准结构
3
2
 
4
3
  /**
5
4
  * MQTT 协议号枚举
@@ -0,0 +1,21 @@
1
+ import * as z from '../../../myLib/zod/mini';
2
+ export declare const Point: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
3
+ x: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
4
+ y: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
5
+ }, z.core.$strip>;
6
+ export declare const RoomPreferenceFieldsSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
7
+ suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
8
+ cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
9
+ cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
10
+ yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
11
+ sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
12
+ ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
13
+ }, z.core.$strip>;
14
+ export declare const BaseResponseSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
15
+ success: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniBoolean<boolean>;
16
+ errCode: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
17
+ reqType: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
18
+ version: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
19
+ taskId: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
20
+ }, z.core.$strip>;
21
+ export type BaseResponse = z.infer<typeof BaseResponseSchema>;