@soundretouch/api 1.3.0 → 1.4.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/dist/index.device.d.ts +1 -1
- package/dist/index.device.d.ts.map +1 -1
- package/dist/src/device/SoundTouchDevice.d.ts +14 -0
- package/dist/src/device/SoundTouchDevice.d.ts.map +1 -1
- package/dist/src/device/SoundTouchDevice.js +39 -107
- package/dist/src/device/SoundTouchDevice.js.map +1 -1
- package/dist/src/endpoints/bass.d.ts +9 -0
- package/dist/src/endpoints/bass.d.ts.map +1 -1
- package/dist/src/endpoints/bass.js +15 -0
- package/dist/src/endpoints/bass.js.map +1 -1
- package/dist/src/endpoints/info.d.ts +9 -0
- package/dist/src/endpoints/info.d.ts.map +1 -1
- package/dist/src/endpoints/info.js +15 -0
- package/dist/src/endpoints/info.js.map +1 -1
- package/dist/src/endpoints/nowPlaying.d.ts +9 -0
- package/dist/src/endpoints/nowPlaying.d.ts.map +1 -1
- package/dist/src/endpoints/nowPlaying.js +20 -2
- package/dist/src/endpoints/nowPlaying.js.map +1 -1
- package/dist/src/endpoints/presets.d.ts +18 -1
- package/dist/src/endpoints/presets.d.ts.map +1 -1
- package/dist/src/endpoints/presets.js +42 -2
- package/dist/src/endpoints/presets.js.map +1 -1
- package/dist/src/endpoints/sources.d.ts +9 -0
- package/dist/src/endpoints/sources.d.ts.map +1 -1
- package/dist/src/endpoints/sources.js +19 -2
- package/dist/src/endpoints/sources.js.map +1 -1
- package/dist/src/endpoints/trackInfo.d.ts.map +1 -1
- package/dist/src/endpoints/trackInfo.js +4 -2
- package/dist/src/endpoints/trackInfo.js.map +1 -1
- package/dist/src/endpoints/updates.d.ts +59 -0
- package/dist/src/endpoints/updates.d.ts.map +1 -0
- package/dist/src/endpoints/updates.js +107 -0
- package/dist/src/endpoints/updates.js.map +1 -0
- package/dist/src/endpoints/userTrackControl.d.ts +16 -0
- package/dist/src/endpoints/userTrackControl.d.ts.map +1 -0
- package/dist/src/endpoints/userTrackControl.js +25 -0
- package/dist/src/endpoints/userTrackControl.js.map +1 -0
- package/dist/src/endpoints/volume.d.ts +9 -0
- package/dist/src/endpoints/volume.d.ts.map +1 -1
- package/dist/src/endpoints/volume.js +17 -0
- package/dist/src/endpoints/volume.js.map +1 -1
- package/dist/src/endpoints/zone.d.ts +9 -0
- package/dist/src/endpoints/zone.d.ts.map +1 -1
- package/dist/src/endpoints/zone.js +19 -2
- package/dist/src/endpoints/zone.js.map +1 -1
- package/dist/src/types/Enums.d.ts +1 -0
- package/dist/src/types/Enums.d.ts.map +1 -1
- package/dist/src/types/NowPlaying.d.ts +22 -2
- package/dist/src/types/NowPlaying.d.ts.map +1 -1
- package/dist/src/types/NowPlaying.js +26 -1
- package/dist/src/types/NowPlaying.js.map +1 -1
- package/dist/src/types/Presets.d.ts +3 -3
- package/dist/src/types/Presets.d.ts.map +1 -1
- package/dist/src/types/Sources.d.ts +20 -2
- package/dist/src/types/Sources.d.ts.map +1 -1
- package/dist/src/types/Sources.js +29 -1
- package/dist/src/types/Sources.js.map +1 -1
- package/dist/src/types/Updates.d.ts +2 -2
- package/dist/src/types/Updates.d.ts.map +1 -1
- package/dist/src/types/Zone.d.ts +17 -1
- package/dist/src/types/Zone.d.ts.map +1 -1
- package/dist/src/types/Zone.js +25 -1
- package/dist/src/types/Zone.js.map +1 -1
- package/package.json +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/endpoints/presets.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/endpoints/presets.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAO/B,MAAM,GAAG,GAAG,WAAW,CAAC,gCAAgC,CAAC,CAAA;AAQzD,MAAM,eAAe,GAAG,CAAC,MAAc,EAAU,EAAE;IAC/C,MAAM,EAAE,GAAG,MAAM,CAAE,MAA2B,CAAC,EAAE,CAAC,CAAA;IAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;AAC3D,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB;IACjD,GAAG,CAAC,cAAc,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAkB,UAAU,CAAC,CAAA;IAC7D,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAA;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAyB,EAAE,OAAiC;IACrG,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAA;QACjD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,OAAmC;IAClG,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAA;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;YACpC,OAAM;QACV,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '../client/http';
|
|
2
|
+
import { WebSocketClient } from '../client/ws';
|
|
2
3
|
import { Sources } from '../types/Sources';
|
|
3
4
|
/**
|
|
4
5
|
* Fetches the list of available content sources from the device.
|
|
@@ -8,4 +9,12 @@ import { Sources } from '../types/Sources';
|
|
|
8
9
|
* @returns Promise<Sources> A promise that resolves to the sources payload as returned by the device.
|
|
9
10
|
*/
|
|
10
11
|
export declare function fetchSources(client: HttpClient): Promise<Sources>;
|
|
12
|
+
/**
|
|
13
|
+
* Subscribes to sources update notifications from the websocket connection.
|
|
14
|
+
*
|
|
15
|
+
* @param wsClient WebSocket client used for async updates.
|
|
16
|
+
* @param handler Callback invoked when sources change.
|
|
17
|
+
* @returns Unsubscribe function.
|
|
18
|
+
*/
|
|
19
|
+
export declare function subscribeSourcesUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
|
|
11
20
|
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/endpoints/sources.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/endpoints/sources.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAoB,OAAO,EAAsB,MAAM,kBAAkB,CAAA;AAShF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQlG"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import createDebug from 'debug';
|
|
2
|
+
import { normalizeSources } from '../types/Sources';
|
|
2
3
|
const log = createDebug('soundretouch:endpoints:sources');
|
|
3
4
|
/**
|
|
4
5
|
* Fetches the list of available content sources from the device.
|
|
@@ -10,7 +11,23 @@ const log = createDebug('soundretouch:endpoints:sources');
|
|
|
10
11
|
export async function fetchSources(client) {
|
|
11
12
|
log('GET /sources');
|
|
12
13
|
const data = await client.getXml('/sources');
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const sources = normalizeSources(data.sources);
|
|
15
|
+
log('response %O', sources);
|
|
16
|
+
return sources;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Subscribes to sources update notifications from the websocket connection.
|
|
20
|
+
*
|
|
21
|
+
* @param wsClient WebSocket client used for async updates.
|
|
22
|
+
* @param handler Callback invoked when sources change.
|
|
23
|
+
* @returns Unsubscribe function.
|
|
24
|
+
*/
|
|
25
|
+
export function subscribeSourcesUpdated(wsClient, handler) {
|
|
26
|
+
wsClient.ensureConnected();
|
|
27
|
+
return wsClient.onMessage((update) => {
|
|
28
|
+
if (update.sourcesUpdated) {
|
|
29
|
+
handler();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
15
32
|
}
|
|
16
33
|
//# sourceMappingURL=sources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/endpoints/sources.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/endpoints/sources.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAI/B,OAAO,EAAE,gBAAgB,EAA+B,MAAM,kBAAkB,CAAA;AAGhF,MAAM,GAAG,GAAG,WAAW,CAAC,gCAAgC,CAAC,CAAA;AAMzD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB;IACjD,GAAG,CAAC,cAAc,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAkB,UAAU,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE9C,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAE3B,OAAO,OAAO,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,OAAmB;IAClF,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackInfo.d.ts","sourceRoot":"","sources":["../../../src/endpoints/trackInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"trackInfo.d.ts","sourceRoot":"","sources":["../../../src/endpoints/trackInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAuB,UAAU,EAAyB,MAAM,qBAAqB,CAAA;AAQ5F;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAO5E"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import createDebug from 'debug';
|
|
2
|
+
import { normalizeNowPlaying } from '../types/NowPlaying';
|
|
2
3
|
const log = createDebug('soundretouch:endpoints:trackinfo');
|
|
3
4
|
/**
|
|
4
5
|
* Gets track information for the currently playing media.
|
|
@@ -10,7 +11,8 @@ const log = createDebug('soundretouch:endpoints:trackinfo');
|
|
|
10
11
|
export async function fetchTrackInfo(client) {
|
|
11
12
|
log('GET /trackInfo');
|
|
12
13
|
const data = await client.getXml('/trackInfo');
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const nowPlaying = normalizeNowPlaying(data.nowPlaying);
|
|
15
|
+
log('response %O', nowPlaying);
|
|
16
|
+
return nowPlaying;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=trackInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackInfo.js","sourceRoot":"","sources":["../../../src/endpoints/trackInfo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"trackInfo.js","sourceRoot":"","sources":["../../../src/endpoints/trackInfo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAG/B,OAAO,EAAE,mBAAmB,EAAqC,MAAM,qBAAqB,CAAA;AAE5F,MAAM,GAAG,GAAG,WAAW,CAAC,kCAAkC,CAAC,CAAA;AAM3D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB;IACnD,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAErB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAoB,YAAY,CAAC,CAAA;IACjE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACvD,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;IAC9B,OAAO,UAAU,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { WebSocketClient } from '../client/ws';
|
|
2
|
+
import { Recents } from '../types/Recents';
|
|
3
|
+
/**
|
|
4
|
+
* Subscribes to software update status notifications from the websocket connection.
|
|
5
|
+
*
|
|
6
|
+
* @param wsClient WebSocket client used for async updates.
|
|
7
|
+
* @param handler Callback invoked when update status changes.
|
|
8
|
+
* @returns Unsubscribe function.
|
|
9
|
+
*/
|
|
10
|
+
export declare function subscribeSwUpdateStatusUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
|
|
11
|
+
/**
|
|
12
|
+
* Subscribes to site survey results update notifications from the websocket connection.
|
|
13
|
+
*
|
|
14
|
+
* @param wsClient WebSocket client used for async updates.
|
|
15
|
+
* @param handler Callback invoked when site survey results change.
|
|
16
|
+
* @returns Unsubscribe function.
|
|
17
|
+
*/
|
|
18
|
+
export declare function subscribeSiteSurveyResultsUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Subscribes to network connection state notifications from the websocket connection.
|
|
21
|
+
*
|
|
22
|
+
* @param wsClient WebSocket client used for async updates.
|
|
23
|
+
* @param handler Callback invoked when connection state changes.
|
|
24
|
+
* @returns Unsubscribe function.
|
|
25
|
+
*/
|
|
26
|
+
export declare function subscribeConnectionStateUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
|
|
27
|
+
/**
|
|
28
|
+
* Subscribes to account mode update notifications from the websocket connection.
|
|
29
|
+
*
|
|
30
|
+
* @param wsClient WebSocket client used for async updates.
|
|
31
|
+
* @param handler Callback invoked when account mode changes.
|
|
32
|
+
* @returns Unsubscribe function.
|
|
33
|
+
*/
|
|
34
|
+
export declare function subscribeAcctModeUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
|
|
35
|
+
/**
|
|
36
|
+
* Subscribes to error notifications from the websocket connection.
|
|
37
|
+
*
|
|
38
|
+
* @param wsClient WebSocket client used for async updates.
|
|
39
|
+
* @param handler Callback invoked when an error notification is received.
|
|
40
|
+
* @returns Unsubscribe function.
|
|
41
|
+
*/
|
|
42
|
+
export declare function subscribeErrorNotification(wsClient: WebSocketClient, handler: (error: Record<string, unknown>) => void): () => void;
|
|
43
|
+
/**
|
|
44
|
+
* Subscribes to recents update notifications from the websocket connection.
|
|
45
|
+
*
|
|
46
|
+
* @param wsClient WebSocket client used for async updates.
|
|
47
|
+
* @param handler Callback invoked with the parsed recents payload.
|
|
48
|
+
* @returns Unsubscribe function.
|
|
49
|
+
*/
|
|
50
|
+
export declare function subscribeRecentsUpdated(wsClient: WebSocketClient, handler: (recents: Recents) => void): () => void;
|
|
51
|
+
/**
|
|
52
|
+
* Subscribes to websocket errors.
|
|
53
|
+
*
|
|
54
|
+
* @param wsClient WebSocket client used for async updates.
|
|
55
|
+
* @param handler Callback invoked when a WebSocket error is raised.
|
|
56
|
+
* @returns Unsubscribe function.
|
|
57
|
+
*/
|
|
58
|
+
export declare function subscribeWebSocketError(wsClient: WebSocketClient, handler: (error: unknown) => void): () => void;
|
|
59
|
+
//# sourceMappingURL=updates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../../src/endpoints/updates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG1C;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQzG;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQ5G;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQ1G;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQnG;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAQnI;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAclH;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAIhH"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscribes to software update status notifications from the websocket connection.
|
|
3
|
+
*
|
|
4
|
+
* @param wsClient WebSocket client used for async updates.
|
|
5
|
+
* @param handler Callback invoked when update status changes.
|
|
6
|
+
* @returns Unsubscribe function.
|
|
7
|
+
*/
|
|
8
|
+
export function subscribeSwUpdateStatusUpdated(wsClient, handler) {
|
|
9
|
+
wsClient.ensureConnected();
|
|
10
|
+
return wsClient.onMessage((update) => {
|
|
11
|
+
if (update.swUpdateStatusUpdated) {
|
|
12
|
+
handler();
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Subscribes to site survey results update notifications from the websocket connection.
|
|
18
|
+
*
|
|
19
|
+
* @param wsClient WebSocket client used for async updates.
|
|
20
|
+
* @param handler Callback invoked when site survey results change.
|
|
21
|
+
* @returns Unsubscribe function.
|
|
22
|
+
*/
|
|
23
|
+
export function subscribeSiteSurveyResultsUpdated(wsClient, handler) {
|
|
24
|
+
wsClient.ensureConnected();
|
|
25
|
+
return wsClient.onMessage((update) => {
|
|
26
|
+
if (update.siteSurveyResultsUpdated) {
|
|
27
|
+
handler();
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Subscribes to network connection state notifications from the websocket connection.
|
|
33
|
+
*
|
|
34
|
+
* @param wsClient WebSocket client used for async updates.
|
|
35
|
+
* @param handler Callback invoked when connection state changes.
|
|
36
|
+
* @returns Unsubscribe function.
|
|
37
|
+
*/
|
|
38
|
+
export function subscribeConnectionStateUpdated(wsClient, handler) {
|
|
39
|
+
wsClient.ensureConnected();
|
|
40
|
+
return wsClient.onMessage((update) => {
|
|
41
|
+
if (update.connectionStateUpdated) {
|
|
42
|
+
handler();
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Subscribes to account mode update notifications from the websocket connection.
|
|
48
|
+
*
|
|
49
|
+
* @param wsClient WebSocket client used for async updates.
|
|
50
|
+
* @param handler Callback invoked when account mode changes.
|
|
51
|
+
* @returns Unsubscribe function.
|
|
52
|
+
*/
|
|
53
|
+
export function subscribeAcctModeUpdated(wsClient, handler) {
|
|
54
|
+
wsClient.ensureConnected();
|
|
55
|
+
return wsClient.onMessage((update) => {
|
|
56
|
+
if (update.acctModeUpdated) {
|
|
57
|
+
handler();
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Subscribes to error notifications from the websocket connection.
|
|
63
|
+
*
|
|
64
|
+
* @param wsClient WebSocket client used for async updates.
|
|
65
|
+
* @param handler Callback invoked when an error notification is received.
|
|
66
|
+
* @returns Unsubscribe function.
|
|
67
|
+
*/
|
|
68
|
+
export function subscribeErrorNotification(wsClient, handler) {
|
|
69
|
+
wsClient.ensureConnected();
|
|
70
|
+
return wsClient.onMessage((update) => {
|
|
71
|
+
if (update.errorNotification) {
|
|
72
|
+
handler(update.errorNotification);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Subscribes to recents update notifications from the websocket connection.
|
|
78
|
+
*
|
|
79
|
+
* @param wsClient WebSocket client used for async updates.
|
|
80
|
+
* @param handler Callback invoked with the parsed recents payload.
|
|
81
|
+
* @returns Unsubscribe function.
|
|
82
|
+
*/
|
|
83
|
+
export function subscribeRecentsUpdated(wsClient, handler) {
|
|
84
|
+
wsClient.ensureConnected();
|
|
85
|
+
return wsClient.onMessage((update) => {
|
|
86
|
+
const recent = update.recentsUpdated?.recents?.recent;
|
|
87
|
+
if (Array.isArray(recent)) {
|
|
88
|
+
handler(recent);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (recent) {
|
|
92
|
+
handler([recent]);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Subscribes to websocket errors.
|
|
98
|
+
*
|
|
99
|
+
* @param wsClient WebSocket client used for async updates.
|
|
100
|
+
* @param handler Callback invoked when a WebSocket error is raised.
|
|
101
|
+
* @returns Unsubscribe function.
|
|
102
|
+
*/
|
|
103
|
+
export function subscribeWebSocketError(wsClient, handler) {
|
|
104
|
+
wsClient.ensureConnected();
|
|
105
|
+
return wsClient.onError(handler);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=updates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../src/endpoints/updates.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAyB,EAAE,OAAmB;IACzF,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAAC,QAAyB,EAAE,OAAmB;IAC5F,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;YAClC,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAyB,EAAE,OAAmB;IAC1F,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAyB,EAAE,OAAmB;IACnF,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAyB,EAAE,OAAiD;IACnH,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACrC,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,OAAmC;IAClG,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAA;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,CAAA;YACf,OAAM;QACV,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QACrB,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,OAAiC;IAChG,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HttpClient } from '../client/http';
|
|
2
|
+
import { UserTrackControlTypes } from '../types/Enums';
|
|
3
|
+
/**
|
|
4
|
+
* Sends a track control command to the device.
|
|
5
|
+
*
|
|
6
|
+
* POST /userTrackControl
|
|
7
|
+
*
|
|
8
|
+
* @param userTrackControlType Track control command to execute.
|
|
9
|
+
* @param startSecond Optional start time in seconds, used for seek commands.
|
|
10
|
+
* @returns A promise that resolves when the device accepts the control command.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* await setUserTrackControl(client, 'SEEK_TO_TIME', 42)
|
|
14
|
+
*/
|
|
15
|
+
export declare function setUserTrackControl(client: HttpClient, userTrackControlType: UserTrackControlTypes, startSecond?: number): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=userTrackControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userTrackControl.d.ts","sourceRoot":"","sources":["../../../src/endpoints/userTrackControl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAItD;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9I"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import createDebug from 'debug';
|
|
2
|
+
const log = createDebug('soundretouch:endpoints:usertrackcontrol');
|
|
3
|
+
/**
|
|
4
|
+
* Sends a track control command to the device.
|
|
5
|
+
*
|
|
6
|
+
* POST /userTrackControl
|
|
7
|
+
*
|
|
8
|
+
* @param userTrackControlType Track control command to execute.
|
|
9
|
+
* @param startSecond Optional start time in seconds, used for seek commands.
|
|
10
|
+
* @returns A promise that resolves when the device accepts the control command.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* await setUserTrackControl(client, 'SEEK_TO_TIME', 42)
|
|
14
|
+
*/
|
|
15
|
+
export async function setUserTrackControl(client, userTrackControlType, startSecond) {
|
|
16
|
+
let startSecondAttr = '';
|
|
17
|
+
if (userTrackControlType === 'SEEK_TO_TIME' && typeof startSecond === 'number') {
|
|
18
|
+
startSecondAttr = ` startSecond="${Math.max(0, Math.round(startSecond))}"`;
|
|
19
|
+
}
|
|
20
|
+
const body = `<TrackControl${startSecondAttr}>${userTrackControlType}</TrackControl>`;
|
|
21
|
+
log('POST /userTrackControl');
|
|
22
|
+
log('payload %s', body);
|
|
23
|
+
await client.post('/userTrackControl', body);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=userTrackControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userTrackControl.js","sourceRoot":"","sources":["../../../src/endpoints/userTrackControl.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAK/B,MAAM,GAAG,GAAG,WAAW,CAAC,yCAAyC,CAAC,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAkB,EAAE,oBAA2C,EAAE,WAAoB;IAC3H,IAAI,eAAe,GAAG,EAAE,CAAA;IACxB,IAAI,oBAAoB,KAAK,cAAc,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7E,eAAe,GAAG,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAA;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,eAAe,IAAI,oBAAoB,iBAAiB,CAAA;IAErF,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAC7B,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '../client/http';
|
|
2
|
+
import { WebSocketClient } from '../client/ws';
|
|
2
3
|
import { Volume } from '../types/Volume';
|
|
3
4
|
export declare function fetchVolume(client: HttpClient): Promise<Volume>;
|
|
4
5
|
/**
|
|
@@ -18,4 +19,12 @@ export declare function fetchVolume(client: HttpClient): Promise<Volume>;
|
|
|
18
19
|
* await device.setVolume(10, true)
|
|
19
20
|
*/
|
|
20
21
|
export declare function setVolume(client: HttpClient, value: number, muteenabled?: boolean): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Subscribes to volume update notifications from the websocket connection.
|
|
24
|
+
*
|
|
25
|
+
* @param wsClient WebSocket client used for async updates.
|
|
26
|
+
* @param handler Callback invoked with the parsed volume payload.
|
|
27
|
+
* @returns Unsubscribe function.
|
|
28
|
+
*/
|
|
29
|
+
export declare function subscribeVolume(wsClient: WebSocketClient, handler: (volume: Volume) => void): () => void;
|
|
21
30
|
//# sourceMappingURL=volume.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../../src/endpoints/volume.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAQxC,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASvG"}
|
|
1
|
+
{"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../../src/endpoints/volume.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAQxC,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASvG;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAWxG"}
|
|
@@ -30,4 +30,21 @@ export async function setVolume(client, value, muteenabled) {
|
|
|
30
30
|
log('payload %s', body);
|
|
31
31
|
await client.post('/volume', body);
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Subscribes to volume update notifications from the websocket connection.
|
|
35
|
+
*
|
|
36
|
+
* @param wsClient WebSocket client used for async updates.
|
|
37
|
+
* @param handler Callback invoked with the parsed volume payload.
|
|
38
|
+
* @returns Unsubscribe function.
|
|
39
|
+
*/
|
|
40
|
+
export function subscribeVolume(wsClient, handler) {
|
|
41
|
+
wsClient.ensureConnected();
|
|
42
|
+
return wsClient.onMessage((update) => {
|
|
43
|
+
const volumeUpdated = update.volumeUpdated;
|
|
44
|
+
if (!volumeUpdated) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
handler(volumeUpdated.volume ?? {});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
33
50
|
//# sourceMappingURL=volume.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"volume.js","sourceRoot":"","sources":["../../../src/endpoints/volume.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"volume.js","sourceRoot":"","sources":["../../../src/endpoints/volume.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAO/B,MAAM,GAAG,GAAG,WAAW,CAAC,+BAA+B,CAAC,CAAA;AAMxD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAkB;IAChD,GAAG,CAAC,aAAa,CAAC,CAAA;IAElB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAiB,SAAS,CAAC,CAAA;IAC3D,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IAErC,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB,EAAE,KAAa,EAAE,WAAqB;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,WAAW,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;IACnG,MAAM,IAAI,GAAG,WAAW,UAAU,GAAG,OAAO,WAAW,CAAA;IAEvD,GAAG,CAAC,cAAc,CAAC,CAAA;IACnB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB,EAAE,OAAiC;IACxF,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAM;QACV,CAAC;QAED,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HttpClient } from '../client/http';
|
|
2
|
+
import { WebSocketClient } from '../client/ws';
|
|
2
3
|
import { Zone, ZoneConfig, ZoneSlaveConfig } from '../types/Zone';
|
|
3
4
|
/**
|
|
4
5
|
* Gets the current multi-room zone state from the device.
|
|
@@ -54,4 +55,12 @@ export declare function addZoneSlave(client: HttpClient, config: ZoneSlaveConfig
|
|
|
54
55
|
* })
|
|
55
56
|
*/
|
|
56
57
|
export declare function removeZoneSlave(client: HttpClient, config: ZoneSlaveConfig): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Subscribes to zone map update notifications from the websocket connection.
|
|
60
|
+
*
|
|
61
|
+
* @param wsClient WebSocket client used for async updates.
|
|
62
|
+
* @param handler Callback invoked when the zone map changes.
|
|
63
|
+
* @returns Unsubscribe function.
|
|
64
|
+
*/
|
|
65
|
+
export declare function subscribeZoneUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
|
|
57
66
|
//# sourceMappingURL=zone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zone.d.ts","sourceRoot":"","sources":["../../../src/endpoints/zone.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"zone.d.ts","sourceRoot":"","sources":["../../../src/endpoints/zone.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAiB,IAAI,EAAE,UAAU,EAAqC,eAAe,EAAE,MAAM,eAAe,CAAA;AAYnH;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASjE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQ/F"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import createDebug from 'debug';
|
|
2
|
+
import { normalizeZone } from '../types/Zone';
|
|
2
3
|
const log = createDebug('soundretouch:endpoints:zone');
|
|
3
4
|
function buildZoneMembersXml(members) {
|
|
4
5
|
return members.map((member) => `<member ipaddress="${member.ipaddress}">${member.macAddress}</member>`).join('');
|
|
@@ -13,8 +14,9 @@ function buildZoneMembersXml(members) {
|
|
|
13
14
|
export async function fetchZone(client) {
|
|
14
15
|
log('GET /getZone');
|
|
15
16
|
const data = await client.getXml('/getZone');
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
const zone = normalizeZone(data.zone);
|
|
18
|
+
log('response %O', zone);
|
|
19
|
+
return zone;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
22
|
* Creates or updates a multi-room zone.
|
|
@@ -80,4 +82,19 @@ export async function removeZoneSlave(client, config) {
|
|
|
80
82
|
log('payload %s', body);
|
|
81
83
|
await client.post('/removeZoneSlave', body);
|
|
82
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Subscribes to zone map update notifications from the websocket connection.
|
|
87
|
+
*
|
|
88
|
+
* @param wsClient WebSocket client used for async updates.
|
|
89
|
+
* @param handler Callback invoked when the zone map changes.
|
|
90
|
+
* @returns Unsubscribe function.
|
|
91
|
+
*/
|
|
92
|
+
export function subscribeZoneUpdated(wsClient, handler) {
|
|
93
|
+
wsClient.ensureConnected();
|
|
94
|
+
return wsClient.onMessage((update) => {
|
|
95
|
+
if (update.zoneUpdated) {
|
|
96
|
+
handler();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
83
100
|
//# sourceMappingURL=zone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../src/endpoints/zone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAK/B,MAAM,GAAG,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;AAMtD,SAAS,mBAAmB,CAAC,OAA2B;IACpD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,UAAU,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAC9C,GAAG,CAAC,cAAc,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAe,UAAU,CAAC,CAAA;IAC1D,GAAG,
|
|
1
|
+
{"version":3,"file":"zone.js","sourceRoot":"","sources":["../../../src/endpoints/zone.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAK/B,OAAO,EAAE,aAAa,EAAwE,MAAM,eAAe,CAAA;AAEnH,MAAM,GAAG,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;AAMtD,SAAS,mBAAmB,CAAC,OAA2B;IACpD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,UAAU,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAC9C,GAAG,CAAC,cAAc,CAAC,CAAA;IAEnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAe,UAAU,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAErC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IAExB,OAAO,IAAI,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAkB,EAAE,MAAkB;IAChE,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,iBAAiB,MAAM,CAAC,MAAM,sBAAsB,MAAM,CAAC,eAAe,KAAK,UAAU,SAAS,CAAA;IAE/G,GAAG,CAAC,eAAe,CAAC,CAAA;IACpB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB,EAAE,MAAuB;IAC1E,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,iBAAiB,MAAM,CAAC,MAAM,KAAK,UAAU,SAAS,CAAA;IAEnE,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACzB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB,EAAE,MAAuB;IAC7E,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,iBAAiB,MAAM,CAAC,MAAM,KAAK,UAAU,SAAS,CAAA;IAEnE,GAAG,CAAC,uBAAuB,CAAC,CAAA;IAC5B,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAyB,EAAE,OAAmB;IAC/E,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -7,4 +7,5 @@ export type RepeatSetting = 'REPEAT_OFF' | 'REPEAT_ONE' | 'REPEAT_ALL';
|
|
|
7
7
|
export type PresetId = 1 | 2 | 3 | 4 | 5 | 6;
|
|
8
8
|
export type SourceStatus = 'UNAVAILABLE' | 'READY';
|
|
9
9
|
export type AudioMode = 'AUDIO_MODE_DIRECT' | 'AUDIO_MODE_NORMAL' | 'AUDIO_MODE_DIALOG' | 'AUDIO_MODE_NIGHT';
|
|
10
|
+
export type UserTrackControlTypes = 'NEXT_TRACK' | 'PREV_TRACK' | 'PREV_TRACK_FORCE' | 'REPEAT_ONE_TRACK' | 'REPEAT_ALL_TRACKS' | 'REPEAT_TRACKS_OFF' | 'SHUFFLE_TRACKS_ON' | 'SHUFFLE_TRACKS_OFF' | 'SEEK_TO_TIME';
|
|
10
11
|
//# sourceMappingURL=Enums.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enums.d.ts","sourceRoot":"","sources":["../../../src/types/Enums.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,oBAAoB,GAAG,aAAa,GAAG,eAAe,CAAA;AAE1F,MAAM,MAAM,QAAQ,GACd,MAAM,GACN,OAAO,GACP,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,aAAa,GACb,UAAU,GACV,OAAO,GACP,MAAM,GACN,WAAW,GACX,aAAa,GACb,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,aAAa,CAAA;AAEnB,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,GAAG,qBAAqB,CAAA;AAEhH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAA;AAEzD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAA;AAEtE,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE5C,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAA;AAElD,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"Enums.d.ts","sourceRoot":"","sources":["../../../src/types/Enums.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,oBAAoB,GAAG,aAAa,GAAG,eAAe,CAAA;AAE1F,MAAM,MAAM,QAAQ,GACd,MAAM,GACN,OAAO,GACP,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,aAAa,GACb,UAAU,GACV,OAAO,GACP,MAAM,GACN,WAAW,GACX,aAAa,GACb,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,aAAa,CAAA;AAEnB,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;AAE1C,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,GAAG,qBAAqB,CAAA;AAEhH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAA;AAEzD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAA;AAEtE,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE5C,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAA;AAElD,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,CAAA;AAE5G,MAAM,MAAM,qBAAqB,GAC3B,YAAY,GACZ,YAAY,GACZ,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CAAA"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ArtStatus, PlayStatus, RepeatSetting, ShuffleSetting } from './Enums';
|
|
2
|
+
/**
|
|
3
|
+
* Normalized types.
|
|
4
|
+
*/
|
|
2
5
|
export type NowPlayingContentItem = {
|
|
3
6
|
source?: string;
|
|
4
7
|
location?: string;
|
|
@@ -19,10 +22,10 @@ export type NowPlaying = {
|
|
|
19
22
|
stationName?: string;
|
|
20
23
|
art?: {
|
|
21
24
|
artImageStatus?: ArtStatus;
|
|
22
|
-
|
|
25
|
+
url?: string;
|
|
23
26
|
};
|
|
24
27
|
time?: {
|
|
25
|
-
|
|
28
|
+
elapsed?: number;
|
|
26
29
|
total?: number;
|
|
27
30
|
};
|
|
28
31
|
playStatus?: PlayStatus;
|
|
@@ -39,4 +42,21 @@ export type NowPlaying = {
|
|
|
39
42
|
value?: boolean;
|
|
40
43
|
};
|
|
41
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Raw response types.
|
|
47
|
+
*/
|
|
48
|
+
export type NowPlayingRawResponse = Omit<NowPlaying, 'art' | 'time'> & {
|
|
49
|
+
art?: {
|
|
50
|
+
artImageStatus?: ArtStatus;
|
|
51
|
+
'#text'?: string;
|
|
52
|
+
};
|
|
53
|
+
time?: {
|
|
54
|
+
'#text'?: number;
|
|
55
|
+
total?: number;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Converts a raw XML response shape to the normalized NowPlaying shape.
|
|
60
|
+
*/
|
|
61
|
+
export declare function normalizeNowPlaying(nowPlaying?: NowPlayingRawResponse): NowPlaying;
|
|
42
62
|
//# sourceMappingURL=NowPlaying.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NowPlaying.d.ts","sourceRoot":"","sources":["../../../src/types/NowPlaying.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE;QACF,cAAc,CAAC,EAAE,SAAS,CAAA;QAC1B,
|
|
1
|
+
{"version":3,"file":"NowPlaying.d.ts","sourceRoot":"","sources":["../../../src/types/NowPlaying.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE;QACF,cAAc,CAAC,EAAE,SAAS,CAAA;QAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,IAAI,CAAC,EAAE;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;CACJ,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG;IACnE,GAAG,CAAC,EAAE;QACF,cAAc,CAAC,EAAE,SAAS,CAAA;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,IAAI,CAAC,EAAE;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;CACJ,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,UAAU,CAsBlF"}
|
|
@@ -1,2 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Converts a raw XML response shape to the normalized NowPlaying shape.
|
|
3
|
+
*/
|
|
4
|
+
export function normalizeNowPlaying(nowPlaying) {
|
|
5
|
+
if (!nowPlaying)
|
|
6
|
+
return {};
|
|
7
|
+
return {
|
|
8
|
+
...nowPlaying,
|
|
9
|
+
...(nowPlaying.art
|
|
10
|
+
? {
|
|
11
|
+
art: {
|
|
12
|
+
artImageStatus: nowPlaying.art.artImageStatus,
|
|
13
|
+
url: nowPlaying.art['#text'],
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
: {}),
|
|
17
|
+
...(nowPlaying.time
|
|
18
|
+
? {
|
|
19
|
+
time: {
|
|
20
|
+
elapsed: nowPlaying.time['#text'],
|
|
21
|
+
total: nowPlaying.time.total,
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
: {}),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
2
27
|
//# sourceMappingURL=NowPlaying.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NowPlaying.js","sourceRoot":"","sources":["../../../src/types/NowPlaying.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"NowPlaying.js","sourceRoot":"","sources":["../../../src/types/NowPlaying.ts"],"names":[],"mappings":"AA6DA;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkC;IAClE,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAA;IAE1B,OAAO;QACH,GAAG,UAAU;QACb,GAAG,CAAC,UAAU,CAAC,GAAG;YACd,CAAC,CAAC;gBACI,GAAG,EAAE;oBACD,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc;oBAC7C,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;iBAC/B;aACJ;YACH,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,UAAU,CAAC,IAAI;YACf,CAAC,CAAC;gBACI,IAAI,EAAE;oBACF,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;oBACjC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK;iBAC/B;aACJ;YACH,CAAC,CAAC,EAAE,CAAC;KACZ,CAAA;AACL,CAAC"}
|
|
@@ -6,9 +6,9 @@ export type PresetContentItem = {
|
|
|
6
6
|
itemName?: string;
|
|
7
7
|
};
|
|
8
8
|
export type Preset = {
|
|
9
|
-
id
|
|
10
|
-
createdOn
|
|
11
|
-
updateOn
|
|
9
|
+
id: number;
|
|
10
|
+
createdOn: string;
|
|
11
|
+
updateOn: string;
|
|
12
12
|
ContentItem?: PresetContentItem;
|
|
13
13
|
};
|
|
14
14
|
export type Presets = Preset[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Presets.d.ts","sourceRoot":"","sources":["../../../src/types/Presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,EAAE,
|
|
1
|
+
{"version":3,"file":"Presets.d.ts","sourceRoot":"","sources":["../../../src/types/Presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA"}
|
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
import { SourceStatus } from './Enums';
|
|
2
|
+
/**
|
|
3
|
+
* Normalized types.
|
|
4
|
+
*/
|
|
2
5
|
export type SourceItem = {
|
|
3
6
|
source?: string;
|
|
4
|
-
sourceAccount?:
|
|
7
|
+
sourceAccount?: number;
|
|
5
8
|
status?: SourceStatus;
|
|
6
|
-
|
|
9
|
+
isLocal?: boolean;
|
|
10
|
+
multiroomallowed?: boolean;
|
|
11
|
+
name?: string;
|
|
7
12
|
};
|
|
8
13
|
export type Sources = {
|
|
9
14
|
deviceID?: string;
|
|
10
15
|
sourceItem?: SourceItem | SourceItem[];
|
|
11
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Raw response types.
|
|
19
|
+
*/
|
|
20
|
+
export type SourceItemRawResponse = Omit<SourceItem, 'name'> & {
|
|
21
|
+
'#text'?: string;
|
|
22
|
+
};
|
|
23
|
+
export type SourcesRawResponse = Omit<Sources, 'sourceItem'> & {
|
|
24
|
+
sourceItem?: SourceItemRawResponse | SourceItemRawResponse[];
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Converts a raw XML response shape to the normalized Sources shape.
|
|
28
|
+
*/
|
|
29
|
+
export declare function normalizeSources(sources?: SourcesRawResponse): Sources;
|
|
12
30
|
//# sourceMappingURL=Sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sources.d.ts","sourceRoot":"","sources":["../../../src/types/Sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Sources.d.ts","sourceRoot":"","sources":["../../../src/types/Sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;CACzC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG;IAC3D,UAAU,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAA;CAC/D,CAAA;AAgBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAatE"}
|