@soundretouch/api 1.0.1 → 1.1.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/README.md +28 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/client/http.d.ts +2 -0
- package/dist/src/client/http.d.ts.map +1 -1
- package/dist/src/client/http.js +3 -1
- package/dist/src/client/http.js.map +1 -1
- package/dist/src/client/ws.d.ts +1 -0
- package/dist/src/client/ws.d.ts.map +1 -1
- package/dist/src/client/ws.js +2 -1
- package/dist/src/client/ws.js.map +1 -1
- package/package.json +1 -2
- package/docs/SoundTouch-Web-API.pdf +0 -0
package/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# SoundRetouch-API
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
SoundRetouch-API is an unofficial TypeScript library for configuring and managing legacy Bose SoundTouch devices.
|
|
4
4
|
|
|
5
|
-
This
|
|
5
|
+
After Bose announced the deprecation of the SoundTouch product line and the shutdown of its cloud services, I wanted to experiment with ways to keep these speakers useful. This library provides a clean, developer-friendly wrapper around the documented SoundTouch local API, with built-in support for asynchronous notifications and a simple approach to device discovery.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The implementation is based on the official SoundTouch Web API documentation and has been tested and validated with a pair of SoundTouch 10 speakers.
|
|
8
|
+
|
|
9
|
+
This project is independently developed and is not affiliated with Bose.
|
|
8
10
|
|
|
9
11
|
## Installation
|
|
10
12
|
|
|
@@ -14,6 +16,8 @@ npm i @soundretouch/api
|
|
|
14
16
|
|
|
15
17
|
## Usage
|
|
16
18
|
|
|
19
|
+
Below is a basic example demonstrating how to connect to a SoundTouch device and perform common operations.
|
|
20
|
+
|
|
17
21
|
```ts
|
|
18
22
|
import { SoundTouchDevice } from '@soundretouch/api'
|
|
19
23
|
|
|
@@ -29,6 +33,8 @@ await device.keyPressAndRelease('PLAY')
|
|
|
29
33
|
|
|
30
34
|
## WebSocket Asynchronous Notifications
|
|
31
35
|
|
|
36
|
+
The library supports real-time notifications over WebSocket for events such as track changes and volume updates.
|
|
37
|
+
|
|
32
38
|
```ts
|
|
33
39
|
import { SoundTouchDevice } from '@soundretouch/api'
|
|
34
40
|
|
|
@@ -45,6 +51,8 @@ device.onVolumeUpdated((volume) => {
|
|
|
45
51
|
|
|
46
52
|
## Discovery
|
|
47
53
|
|
|
54
|
+
Devices on the local network can be discovered automatically using the built-in discovery service.
|
|
55
|
+
|
|
48
56
|
```ts
|
|
49
57
|
import { SoundTouchDiscovery } from '@soundretouch/api'
|
|
50
58
|
|
|
@@ -57,8 +65,23 @@ const handle = SoundTouchDiscovery.start(async (device) => {
|
|
|
57
65
|
setTimeout(() => handle.stop(), 120000)
|
|
58
66
|
```
|
|
59
67
|
|
|
68
|
+
## Proxy Configuration (Dev)
|
|
69
|
+
|
|
70
|
+
If you need to route HTTP and WebSocket calls through a development proxy, pass proxy URLs to the device options.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { SoundTouchDevice } from '@soundretouch/api'
|
|
74
|
+
|
|
75
|
+
const device = new SoundTouchDevice('192.168.1.67', {
|
|
76
|
+
http: { proxyUrl: 'http://localhost:6767/proxy?url=' },
|
|
77
|
+
ws: { proxyUrl: 'ws://localhost:6767/proxy?url=' },
|
|
78
|
+
})
|
|
79
|
+
```
|
|
80
|
+
|
|
60
81
|
## Implemented Endpoints
|
|
61
82
|
|
|
83
|
+
The following SoundTouch API endpoints are currently implemented:
|
|
84
|
+
|
|
62
85
|
- /info
|
|
63
86
|
- /now_playing
|
|
64
87
|
- /trackInfo
|
|
@@ -81,7 +104,7 @@ setTimeout(() => handle.stop(), 120000)
|
|
|
81
104
|
|
|
82
105
|
## Debug Logging
|
|
83
106
|
|
|
84
|
-
|
|
107
|
+
Debug logging can be enabled using the DEBUG environment variable. Logging can be configured globally or scoped to specific subsystems.
|
|
85
108
|
|
|
86
109
|
```
|
|
87
110
|
DEBUG=soundretouch:*
|
|
@@ -98,10 +121,8 @@ npx tsx scripts/smoke.ts
|
|
|
98
121
|
|
|
99
122
|
## Docs
|
|
100
123
|
|
|
101
|
-
- [`docs/SoundTouch-Web-API.pdf`](
|
|
124
|
+
- [`docs/SoundTouch-Web-API.pdf`](https://assets.bosecreative.com/m/496577402d128874/original/SoundTouch-Web-API.pdf)
|
|
102
125
|
|
|
103
126
|
## Compliance Notice
|
|
104
127
|
|
|
105
|
-
This project uses the Bose SoundTouch Web API. Use of the SoundTouch Materials is subject to Bose's Terms of Use. Refer to the official documentation for the full terms.
|
|
106
|
-
|
|
107
128
|
Trademark attribution: Bose and SoundTouch are trademarks of Bose Corporation.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SoundTouchDevice } from './src/device/SoundTouchDevice';
|
|
2
|
+
export { SoundTouchDiscovery } from './src/discovery/SoundTouchDiscovery';
|
|
2
3
|
export type { DeviceInfo, DeviceInfoComponent, DeviceNetworkInfo } from './src/types/DeviceInfo';
|
|
3
4
|
export type { Bass } from './src/types/Bass';
|
|
4
5
|
export type { BassCapabilities } from './src/types/BassCapabilities';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChG,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrH,YAAY,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AACjI,YAAY,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACrI,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvG,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChG,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrH,YAAY,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AACjI,YAAY,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACrI,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvG,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAqBzE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/client/http.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/client/http.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,GAAG,CAAmC;IAE9C;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAMzD;;;;;OAKG;IACG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAKzC;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAczD;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQxC,OAAO;CAgCxB"}
|
package/dist/src/client/http.js
CHANGED
|
@@ -12,6 +12,7 @@ export class HttpClient {
|
|
|
12
12
|
this.log = createDebug('soundretouch:http');
|
|
13
13
|
this.host = host;
|
|
14
14
|
this.timeoutMs = options.timeoutMs ?? 10000;
|
|
15
|
+
this.proxyUrl = options.proxyUrl;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Sends a GET request and parses the XML response into the expected type.
|
|
@@ -56,7 +57,8 @@ export class HttpClient {
|
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
59
|
async request(path, init) {
|
|
59
|
-
const
|
|
60
|
+
const directUrl = `http://${this.host}:8090${path.startsWith('/') ? path : `/${path}`}`;
|
|
61
|
+
const url = this.proxyUrl ? `${this.proxyUrl}${encodeURIComponent(directUrl)}` : directUrl;
|
|
60
62
|
this.log('request %s %s', init.method, url);
|
|
61
63
|
const controller = new AbortController();
|
|
62
64
|
const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/client/http.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/client/http.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client/ws.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/client/ws.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,sBAAsB,GAAG;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/client/ws.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,sBAAsB,GAAG;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAA;AAC7C,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,qBAAa,eAAe;IACxB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAC,CAAW;IAC1B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,aAAa,CAA0B;IAE/C,OAAO,CAAC,GAAG,CAAwC;gBAEvC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAK9D;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI;IA6Cf;;;;;;OAMG;IACH,KAAK,IAAI,IAAI;IAcb;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAMpD;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAK1C;;;;;;;;;OASG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;OAOG;IACH,eAAe,IAAI,OAAO;IAQ1B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,cAAc;CASzB"}
|
package/dist/src/client/ws.js
CHANGED
|
@@ -25,7 +25,8 @@ export class WebSocketClient {
|
|
|
25
25
|
}
|
|
26
26
|
this.closedByUser = false;
|
|
27
27
|
this.clearReconnect();
|
|
28
|
-
const
|
|
28
|
+
const directUrl = `ws://${this.host}:8080`;
|
|
29
|
+
const url = this.options.proxyUrl ? `${this.options.proxyUrl}${encodeURIComponent(directUrl)}` : directUrl;
|
|
29
30
|
this.log('connect %s', url);
|
|
30
31
|
this.socket = new WebSocket(url, 'gabbo');
|
|
31
32
|
this.socket.addEventListener('message', (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/client/ws.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/client/ws.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soundretouch/api",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Unofficial TypeScript API wrapper for managing Bose SoundTouch devices.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bose",
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
"types": "dist/index.d.ts",
|
|
36
36
|
"files": [
|
|
37
37
|
"dist",
|
|
38
|
-
"docs",
|
|
39
38
|
"README.md"
|
|
40
39
|
],
|
|
41
40
|
"scripts": {
|
|
Binary file
|