matterbridge-roborock-vacuum-plugin 1.1.0-rc16 → 1.1.0-rc17
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/dist/helper.js +23 -20
- package/dist/initialData/getSupportedAreas.js +85 -46
- package/dist/model/ExperimentalFeatureSetting.js +1 -0
- package/dist/model/RoomMap.js +8 -3
- package/dist/model/roomIndexMap.js +17 -0
- package/dist/platform.js +5 -3
- package/dist/platformRunner.js +11 -3
- package/dist/roborockCommunication/Zmodel/mapInfo.js +2 -3
- package/dist/roborockService.js +10 -1
- package/dist/rvc.js +5 -2
- package/matterbridge-roborock-vacuum-plugin.config.json +4 -3
- package/matterbridge-roborock-vacuum-plugin.schema.json +42 -10
- package/package.json +1 -1
- package/src/helper.ts +27 -24
- package/src/initialData/getSupportedAreas.ts +112 -50
- package/src/model/ExperimentalFeatureSetting.ts +2 -0
- package/src/model/RoomMap.ts +17 -3
- package/src/model/roomIndexMap.ts +20 -0
- package/src/platform.ts +6 -3
- package/src/platformRunner.ts +15 -3
- package/src/roborockCommunication/Zmodel/map.ts +1 -1
- package/src/roborockCommunication/Zmodel/mapInfo.ts +11 -10
- package/src/roborockService.ts +16 -1
- package/src/rvc.ts +7 -2
- package/src/tests/helper.test.ts +47 -47
- package/src/tests/initialData/getSupportedAreas.test.ts +80 -7
- package/src/tests/platformRunner2.test.ts +108 -1
- package/src/tests/roborockService.test.ts +11 -0
- package/web-for-testing/package-lock.json +14 -12
- package/web-for-testing/package.json +1 -1
- package/web-for-testing/src/accountStore.ts +0 -10
package/src/tests/helper.test.ts
CHANGED
|
@@ -35,55 +35,55 @@ describe('getRoomMapFromDevice', () => {
|
|
|
35
35
|
jest.clearAllMocks();
|
|
36
36
|
});
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
38
|
+
it('returns RoomMap from getRoomMappings if available', async () => {
|
|
39
|
+
const device = {
|
|
40
|
+
duid: '123',
|
|
41
|
+
rooms: [
|
|
42
|
+
{
|
|
43
|
+
'id': 12461114,
|
|
44
|
+
'name': 'Guest bedroom',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
'id': 12461111,
|
|
48
|
+
'name': 'Balcony',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
'id': 12461109,
|
|
52
|
+
'name': 'Master bedroom',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
'id': 11100849,
|
|
56
|
+
'name': 'Study',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
'id': 11100847,
|
|
60
|
+
'name': 'Bedroom',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
'id': 11100845,
|
|
64
|
+
'name': 'Kitchen',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
'id': 11100842,
|
|
68
|
+
'name': 'Living room',
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
mockRoborockService.getRoomMappings.mockResolvedValue([
|
|
73
|
+
[1, '11100842', 6],
|
|
74
|
+
[2, '12461114', 3],
|
|
75
|
+
[3, '12461109', 2],
|
|
76
|
+
[4, '12461111', 7],
|
|
77
|
+
]);
|
|
78
|
+
mockRoborockService.getMapInformation.mockResolvedValue(undefined);
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
const result = await getRoomMapFromDevice(device as any, mockPlatform as any);
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
// console.log('Result:', result);
|
|
83
|
+
expect(result).toBeInstanceOf(RoomMap);
|
|
84
|
+
expect(mockRoborockService.getRoomMappings).toHaveBeenCalledWith('123');
|
|
85
|
+
expect(result.rooms.length).toBeGreaterThan(0);
|
|
86
|
+
});
|
|
87
87
|
|
|
88
88
|
it('returns RoomMap from getRoomMappings if available', async () => {
|
|
89
89
|
const device = {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { getSupportedAreas } from '../../initialData/getSupportedAreas';
|
|
2
|
-
import RoomMap from '../../model/RoomMap';
|
|
2
|
+
import { RoomMap } from '../../model/RoomMap';
|
|
3
|
+
import { Room } from '../../roborockCommunication/Zmodel/room';
|
|
3
4
|
|
|
4
5
|
const mockLogger = {
|
|
5
6
|
debug: jest.fn(),
|
|
6
7
|
error: jest.fn(),
|
|
8
|
+
notice: jest.fn(),
|
|
7
9
|
};
|
|
8
10
|
|
|
9
11
|
describe('getSupportedAreas', () => {
|
|
@@ -12,7 +14,7 @@ describe('getSupportedAreas', () => {
|
|
|
12
14
|
});
|
|
13
15
|
|
|
14
16
|
it('returns default area when rooms and roomMap are empty', () => {
|
|
15
|
-
const
|
|
17
|
+
const { supportedAreas } = getSupportedAreas(
|
|
16
18
|
[
|
|
17
19
|
{ id: 2775739, name: 'Garage' },
|
|
18
20
|
{ id: 1474466, name: 'Outside' },
|
|
@@ -46,14 +48,15 @@ describe('getSupportedAreas', () => {
|
|
|
46
48
|
{ id: 23, globalId: 1474466, displayName: 'Outside' },
|
|
47
49
|
],
|
|
48
50
|
} as RoomMap,
|
|
51
|
+
false, // enableMultipleMap
|
|
49
52
|
mockLogger as any,
|
|
50
53
|
);
|
|
51
54
|
|
|
52
|
-
expect(
|
|
55
|
+
expect(supportedAreas.length).toEqual(8);
|
|
53
56
|
});
|
|
54
57
|
|
|
55
58
|
it('returns default area when rooms and roomMap are empty', () => {
|
|
56
|
-
const
|
|
59
|
+
const { supportedAreas } = getSupportedAreas(
|
|
57
60
|
[
|
|
58
61
|
{ id: 11453731, name: 'Living room' },
|
|
59
62
|
{ id: 11453727, name: 'Kitchen' },
|
|
@@ -73,14 +76,15 @@ describe('getSupportedAreas', () => {
|
|
|
73
76
|
{ id: 20, globalId: 991190, displayName: undefined },
|
|
74
77
|
],
|
|
75
78
|
} as RoomMap,
|
|
79
|
+
false, // enableMultipleMap
|
|
76
80
|
mockLogger as any,
|
|
77
81
|
);
|
|
78
82
|
|
|
79
|
-
expect(
|
|
83
|
+
expect(supportedAreas.length).toEqual(5);
|
|
80
84
|
});
|
|
81
85
|
|
|
82
86
|
it('returns default area when rooms and roomMap are empty', () => {
|
|
83
|
-
const
|
|
87
|
+
const { supportedAreas } = getSupportedAreas(
|
|
84
88
|
[
|
|
85
89
|
{ id: 11453731, name: 'Living room' },
|
|
86
90
|
{ id: 11453727, name: 'Kitchen' },
|
|
@@ -100,9 +104,78 @@ describe('getSupportedAreas', () => {
|
|
|
100
104
|
{ id: 20, globalId: 991190, displayName: undefined },
|
|
101
105
|
],
|
|
102
106
|
} as RoomMap,
|
|
107
|
+
false, // enableMultipleMap
|
|
103
108
|
mockLogger as any,
|
|
104
109
|
);
|
|
105
110
|
|
|
106
|
-
expect(
|
|
111
|
+
expect(supportedAreas.length).toEqual(5);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it('returns default area when rooms and roomMap are empty', () => {
|
|
115
|
+
const vacuumRooms: Room[] = [
|
|
116
|
+
{ id: 11100845, name: 'Kitchen' },
|
|
117
|
+
{ id: 11100849, name: 'Study' },
|
|
118
|
+
{ id: 11100842, name: 'Living room' },
|
|
119
|
+
{ id: 11100847, name: 'Bedroom' },
|
|
120
|
+
{ id: 12461114, name: 'Guest bedroom' },
|
|
121
|
+
{ id: 12461109, name: 'Master bedroom' },
|
|
122
|
+
{ id: 12461111, name: 'Balcony' },
|
|
123
|
+
];
|
|
124
|
+
const roomMap: RoomMap = {
|
|
125
|
+
rooms: [
|
|
126
|
+
{ id: 16, globalId: 2775739, displayName: undefined, alternativeId: '161' },
|
|
127
|
+
{ id: 17, globalId: 991195, displayName: undefined, alternativeId: '171' },
|
|
128
|
+
{ id: 18, globalId: 991187, displayName: undefined, alternativeId: '181' },
|
|
129
|
+
{ id: 19, globalId: 991185, displayName: undefined, alternativeId: '191' },
|
|
130
|
+
{ id: 20, globalId: 991190, displayName: undefined, alternativeId: '201' },
|
|
131
|
+
],
|
|
132
|
+
};
|
|
133
|
+
const { supportedAreas } = getSupportedAreas(vacuumRooms, roomMap, false, mockLogger as any);
|
|
134
|
+
|
|
135
|
+
expect(supportedAreas.length).toEqual(5);
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('returns default area when rooms and roomMap are empty', () => {
|
|
139
|
+
const vacuumRooms: Room[] = [
|
|
140
|
+
{ id: 11100845, name: 'Kitchen' },
|
|
141
|
+
{ id: 11100849, name: 'Study' },
|
|
142
|
+
{ id: 11100842, name: 'Living room' },
|
|
143
|
+
{ id: 11100847, name: 'Bedroom' },
|
|
144
|
+
{ id: 11100842, name: 'Living room' },
|
|
145
|
+
{ id: 12461114, name: 'Guest bedroom' },
|
|
146
|
+
{ id: 12461109, name: 'Master bedroom' },
|
|
147
|
+
{ id: 12461111, name: 'Balcony' },
|
|
148
|
+
];
|
|
149
|
+
const roomMap: RoomMap = {
|
|
150
|
+
rooms: [
|
|
151
|
+
{ id: 1, globalId: 11100845, displayName: 'Kitchen', alternativeId: '114', mapId: 0 },
|
|
152
|
+
{ id: 2, globalId: 11100849, displayName: 'Study', alternativeId: '29', mapId: 0 },
|
|
153
|
+
{ id: 3, globalId: 11100842, displayName: 'Living room', alternativeId: '36', mapId: 0 },
|
|
154
|
+
{ id: 4, globalId: 11100847, displayName: 'Bedroom', alternativeId: '41', mapId: 0 },
|
|
155
|
+
{ id: 1, globalId: 11100842, displayName: 'Living room', alternativeId: '16', mapId: 1 },
|
|
156
|
+
{ id: 2, globalId: 12461114, displayName: 'Guest bedroom', alternativeId: '23', mapId: 1 },
|
|
157
|
+
{ id: 3, globalId: 12461109, displayName: 'Master bedroom', alternativeId: '32', mapId: 1 },
|
|
158
|
+
{ id: 4, globalId: 12461111, displayName: 'Balcony', alternativeId: '47', mapId: 1 },
|
|
159
|
+
],
|
|
160
|
+
mapInfo: [
|
|
161
|
+
{
|
|
162
|
+
id: 0,
|
|
163
|
+
name: 'First Map',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 1,
|
|
167
|
+
name: 'Second Map',
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const mockLogger1 = {
|
|
173
|
+
debug: jest.fn(),
|
|
174
|
+
notice: jest.fn(),
|
|
175
|
+
error: jest.fn(),
|
|
176
|
+
};
|
|
177
|
+
const { supportedAreas, supportedMaps } = getSupportedAreas(vacuumRooms, roomMap, true, mockLogger1 as any);
|
|
178
|
+
expect(supportedAreas.length).toEqual(8);
|
|
179
|
+
expect(supportedMaps.length).toEqual(2);
|
|
107
180
|
});
|
|
108
181
|
});
|
|
@@ -114,8 +114,115 @@ describe('PlatformRunner.getRoomMapFromDevice', () => {
|
|
|
114
114
|
platform.roborockService.getMapInformation.mockResolvedValue(mapInfo);
|
|
115
115
|
|
|
116
116
|
const result = await getRoomMapFromDevice(device as any, platform);
|
|
117
|
+
expect(result).toBeInstanceOf(RoomMap);
|
|
118
|
+
expect(result.rooms.length).toEqual(4);
|
|
119
|
+
|
|
120
|
+
platform.enableExperimentalFeature = {
|
|
121
|
+
enableExperimentalFeature: true,
|
|
122
|
+
advancedFeature: {
|
|
123
|
+
enableMultipleMap: true,
|
|
124
|
+
},
|
|
125
|
+
};
|
|
117
126
|
|
|
127
|
+
const result1 = await getRoomMapFromDevice(device as any, platform);
|
|
128
|
+
expect(result1).toBeInstanceOf(RoomMap);
|
|
129
|
+
expect(result1.rooms.length).toEqual(8);
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it('returns RoomMap with empty roomData from getMapInformation if available', async () => {
|
|
133
|
+
const device = {
|
|
134
|
+
duid: 'duid1',
|
|
135
|
+
rooms: [
|
|
136
|
+
{ id: 1, name: 'Kitchen' },
|
|
137
|
+
{ id: 2, name: 'Study' },
|
|
138
|
+
{ id: 3, name: 'Living room' },
|
|
139
|
+
{ id: 4, name: 'Bedroom' },
|
|
140
|
+
],
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
const mapInfo = new MapInfo({
|
|
144
|
+
max_multi_map: 4,
|
|
145
|
+
max_bak_map: 0,
|
|
146
|
+
multi_map_count: 1,
|
|
147
|
+
map_info: [
|
|
148
|
+
{
|
|
149
|
+
mapFlag: 0,
|
|
150
|
+
add_time: 1753731408,
|
|
151
|
+
length: 0,
|
|
152
|
+
name: '',
|
|
153
|
+
bak_maps: [],
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
platform.roborockService.getRoomMappings.mockResolvedValue(undefined);
|
|
159
|
+
platform.roborockService.getMapInformation.mockResolvedValue(mapInfo);
|
|
160
|
+
|
|
161
|
+
const result = await getRoomMapFromDevice(device as any, platform);
|
|
118
162
|
expect(result).toBeInstanceOf(RoomMap);
|
|
119
|
-
expect(result.rooms.length).toEqual(
|
|
163
|
+
expect(result.rooms.length).toEqual(0);
|
|
164
|
+
|
|
165
|
+
platform.enableExperimentalFeature = {
|
|
166
|
+
enableExperimentalFeature: true,
|
|
167
|
+
advancedFeature: {
|
|
168
|
+
enableMultipleMap: true,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const result1 = await getRoomMapFromDevice(device as any, platform);
|
|
173
|
+
expect(result1).toBeInstanceOf(RoomMap);
|
|
174
|
+
expect(result1.rooms.length).toEqual(0);
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
it('returns RoomMap with roomData from getMapInformation if available', async () => {
|
|
178
|
+
const device = {
|
|
179
|
+
duid: 'duid1',
|
|
180
|
+
rooms: [
|
|
181
|
+
{ id: 1, name: 'Kitchen' },
|
|
182
|
+
{ id: 2, name: 'Study' },
|
|
183
|
+
{ id: 3, name: 'Living room' },
|
|
184
|
+
{ id: 4, name: 'Bedroom' },
|
|
185
|
+
],
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const mapInfo = new MapInfo({
|
|
189
|
+
max_multi_map: 4,
|
|
190
|
+
max_bak_map: 0,
|
|
191
|
+
multi_map_count: 1,
|
|
192
|
+
map_info: [
|
|
193
|
+
{
|
|
194
|
+
mapFlag: 0,
|
|
195
|
+
add_time: 1753731408,
|
|
196
|
+
length: 0,
|
|
197
|
+
name: '',
|
|
198
|
+
bak_maps: [],
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
const roomData = [
|
|
204
|
+
[1, '11100845', 14],
|
|
205
|
+
[2, '11100849', 9],
|
|
206
|
+
[3, '11100842', 6],
|
|
207
|
+
[4, '11100847', 1],
|
|
208
|
+
];
|
|
209
|
+
|
|
210
|
+
platform.roborockService.getRoomMappings.mockResolvedValue(roomData);
|
|
211
|
+
platform.roborockService.getMapInformation.mockResolvedValue(mapInfo);
|
|
212
|
+
|
|
213
|
+
const result = await getRoomMapFromDevice(device as any, platform);
|
|
214
|
+
expect(result).toBeInstanceOf(RoomMap);
|
|
215
|
+
expect(result.rooms.length).toEqual(4);
|
|
216
|
+
|
|
217
|
+
platform.enableExperimentalFeature = {
|
|
218
|
+
enableExperimentalFeature: true,
|
|
219
|
+
advancedFeature: {
|
|
220
|
+
enableMultipleMap: true,
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
const result1 = await getRoomMapFromDevice(device as any, platform);
|
|
225
|
+
expect(result1).toBeInstanceOf(RoomMap);
|
|
226
|
+
expect(result1.rooms.length).toEqual(4);
|
|
120
227
|
});
|
|
121
228
|
});
|
|
@@ -3,6 +3,7 @@ import { ServiceArea } from 'matterbridge/matter/clusters';
|
|
|
3
3
|
import RoborockService from '../roborockService';
|
|
4
4
|
import { MessageProcessor } from '../roborockCommunication/broadcast/messageProcessor';
|
|
5
5
|
import { Device, MultipleMap, RequestMessage } from '../roborockCommunication';
|
|
6
|
+
import { RoomIndexMap } from '../model/roomIndexMap';
|
|
6
7
|
|
|
7
8
|
describe('RoborockService - startClean', () => {
|
|
8
9
|
let roborockService: RoborockService;
|
|
@@ -282,7 +283,17 @@ describe('RoborockService - basic setters/getters', () => {
|
|
|
282
283
|
});
|
|
283
284
|
|
|
284
285
|
it('setSelectedAreas should set selected areas', () => {
|
|
286
|
+
roborockService.setSupportedAreaIndexMap(
|
|
287
|
+
'duid',
|
|
288
|
+
new RoomIndexMap(
|
|
289
|
+
new Map([
|
|
290
|
+
[1, { roomId: 1, mapId: 0 }],
|
|
291
|
+
[2, { roomId: 2, mapId: 1 }],
|
|
292
|
+
]),
|
|
293
|
+
),
|
|
294
|
+
);
|
|
285
295
|
roborockService.setSelectedAreas('duid', [1, 2]);
|
|
296
|
+
|
|
286
297
|
expect(roborockService['selectedAreas'].get('duid')).toEqual([1, 2]);
|
|
287
298
|
expect(mockLogger.debug).toHaveBeenCalledWith('RoborockService - setSelectedAreas', [1, 2]);
|
|
288
299
|
});
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"binary-parser": "^2.2.1",
|
|
13
13
|
"ejs": "^3.1.10",
|
|
14
14
|
"express": "^5.1.0",
|
|
15
|
-
"matterbridge": "^3.1.
|
|
15
|
+
"matterbridge": "^3.1.8",
|
|
16
16
|
"node-ansi-logger": "^3.0.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
@@ -2351,9 +2351,9 @@
|
|
|
2351
2351
|
"license": "MIT"
|
|
2352
2352
|
},
|
|
2353
2353
|
"node_modules/matterbridge": {
|
|
2354
|
-
"version": "3.1.
|
|
2355
|
-
"resolved": "https://registry.npmjs.org/matterbridge/-/matterbridge-3.1.
|
|
2356
|
-
"integrity": "sha512-
|
|
2354
|
+
"version": "3.1.8",
|
|
2355
|
+
"resolved": "https://registry.npmjs.org/matterbridge/-/matterbridge-3.1.8.tgz",
|
|
2356
|
+
"integrity": "sha512-KYGSw088++v8UBr2+iCewrfuNGbZpr9AzhbNbVpaXGzGkxaonUQ7397ZQ4MRMTmdpsEteOJb4Hcx4IJtXUuZdA==",
|
|
2357
2357
|
"hasShrinkwrap": true,
|
|
2358
2358
|
"license": "Apache-2.0",
|
|
2359
2359
|
"dependencies": {
|
|
@@ -2361,13 +2361,15 @@
|
|
|
2361
2361
|
"archiver": "7.0.1",
|
|
2362
2362
|
"express": "5.1.0",
|
|
2363
2363
|
"glob": "11.0.3",
|
|
2364
|
-
"multer": "2.0.
|
|
2364
|
+
"multer": "2.0.2",
|
|
2365
2365
|
"node-ansi-logger": "3.1.1",
|
|
2366
2366
|
"node-persist-manager": "2.0.0",
|
|
2367
2367
|
"ws": "8.18.3"
|
|
2368
2368
|
},
|
|
2369
2369
|
"bin": {
|
|
2370
|
-
"matterbridge": "bin/matterbridge.js"
|
|
2370
|
+
"matterbridge": "bin/matterbridge.js",
|
|
2371
|
+
"mb_coap": "bin/mb_coap.js",
|
|
2372
|
+
"mb_mdns": "bin/mb_mdns.js"
|
|
2371
2373
|
},
|
|
2372
2374
|
"engines": {
|
|
2373
2375
|
"node": ">=18.0.0 <19.0.0 || >=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
@@ -2499,9 +2501,9 @@
|
|
|
2499
2501
|
}
|
|
2500
2502
|
},
|
|
2501
2503
|
"node_modules/matterbridge/node_modules/@noble/curves": {
|
|
2502
|
-
"version": "1.9.
|
|
2503
|
-
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.
|
|
2504
|
-
"integrity": "sha512-
|
|
2504
|
+
"version": "1.9.4",
|
|
2505
|
+
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.4.tgz",
|
|
2506
|
+
"integrity": "sha512-2bKONnuM53lINoDrSmK8qP8W271ms7pygDhZt4SiLOoLwBtoHqeCFi6RG42V8zd3mLHuJFhU/Bmaqo4nX0/kBw==",
|
|
2505
2507
|
"license": "MIT",
|
|
2506
2508
|
"dependencies": {
|
|
2507
2509
|
"@noble/hashes": "1.8.0"
|
|
@@ -3627,9 +3629,9 @@
|
|
|
3627
3629
|
"license": "MIT"
|
|
3628
3630
|
},
|
|
3629
3631
|
"node_modules/matterbridge/node_modules/multer": {
|
|
3630
|
-
"version": "2.0.
|
|
3631
|
-
"resolved": "https://registry.npmjs.org/multer/-/multer-2.0.
|
|
3632
|
-
"integrity": "sha512-
|
|
3632
|
+
"version": "2.0.2",
|
|
3633
|
+
"resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz",
|
|
3634
|
+
"integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==",
|
|
3633
3635
|
"license": "MIT",
|
|
3634
3636
|
"dependencies": {
|
|
3635
3637
|
"append-field": "^1.0.0",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { UserData } from './ext/roborockCommunication/index.js';
|
|
2
|
-
|
|
3
|
-
export function getAccountStore(): Map<string, UserData> {
|
|
4
|
-
const accountStore = new Map<string, UserData>();
|
|
5
|
-
|
|
6
|
-
// Initialize with a default user data if needed
|
|
7
|
-
// accountStore.set('defaultUser', new UserData());
|
|
8
|
-
|
|
9
|
-
return accountStore;
|
|
10
|
-
}
|