stagelinq 3.0.4 → 3.1.2
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 +2 -1
- package/dist/Databases/Databases.d.ts +3 -1
- package/dist/Databases/Databases.js +9 -8
- package/dist/Databases/Databases.js.map +1 -1
- package/dist/Databases/DbConnection.d.ts +3 -1
- package/dist/Databases/DbConnection.js +6 -4
- package/dist/Databases/DbConnection.js.map +1 -1
- package/dist/StageLinq/index.d.ts +1 -1
- package/dist/StageLinq/index.js +8 -8
- package/dist/StageLinq/index.js.map +1 -1
- package/dist/devices/Player.d.ts +3 -0
- package/dist/devices/Player.js +15 -6
- package/dist/devices/Player.js.map +1 -1
- package/dist/eaas/beacon.d.ts +3 -1
- package/dist/eaas/beacon.js +10 -9
- package/dist/eaas/beacon.js.map +1 -1
- package/dist/eaas/discoverer.d.ts +3 -1
- package/dist/eaas/discoverer.js +16 -12
- package/dist/eaas/discoverer.js.map +1 -1
- package/dist/eaas/engine-library-client.d.ts +3 -1
- package/dist/eaas/engine-library-client.js +7 -6
- package/dist/eaas/engine-library-client.js.map +1 -1
- package/dist/eaas/http-client.d.ts +3 -1
- package/dist/eaas/http-client.js +5 -4
- package/dist/eaas/http-client.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata/index.d.ts +26 -0
- package/dist/metadata/index.js +53 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/reader.d.ts +11 -0
- package/dist/metadata/reader.js +20 -0
- package/dist/metadata/reader.js.map +1 -0
- package/dist/network/ConnectionHealth.d.ts +3 -1
- package/dist/network/ConnectionHealth.js +13 -12
- package/dist/network/ConnectionHealth.js.map +1 -1
- package/dist/network/NetworkDevice.d.ts +4 -2
- package/dist/network/NetworkDevice.js +9 -8
- package/dist/network/NetworkDevice.js.map +1 -1
- package/dist/network/StageLinqDevices.d.ts +12 -2
- package/dist/network/StageLinqDevices.js +59 -25
- package/dist/network/StageLinqDevices.js.map +1 -1
- package/dist/network/announce.d.ts +3 -2
- package/dist/network/announce.js +40 -15
- package/dist/network/announce.js.map +1 -1
- package/dist/services/FileTransfer.d.ts +14 -0
- package/dist/services/FileTransfer.js +86 -6
- package/dist/services/FileTransfer.js.map +1 -1
- package/dist/services/Service.d.ts +3 -1
- package/dist/services/Service.js +7 -6
- package/dist/services/Service.js.map +1 -1
- package/dist/services/StateMap.js +0 -1
- package/dist/services/StateMap.js.map +1 -1
- package/dist/services/TimeSync.js +2 -3
- package/dist/services/TimeSync.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/logger.d.ts +13 -0
- package/dist/types/logger.js +11 -0
- package/dist/types/logger.js.map +1 -0
- package/dist/utils/tcp.d.ts +2 -1
- package/dist/utils/tcp.js +3 -3
- package/dist/utils/tcp.js.map +1 -1
- package/package.json +5 -1
- package/dist/LogEmitter/index.d.ts +0 -20
- package/dist/LogEmitter/index.js +0 -35
- package/dist/LogEmitter/index.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Logger } from '../types/logger';
|
|
1
2
|
import { ConnectionInfo } from '../types';
|
|
2
3
|
import * as services from '../services';
|
|
3
4
|
export declare class NetworkDevice {
|
|
@@ -8,7 +9,8 @@ export declare class NetworkDevice {
|
|
|
8
9
|
private timeAlive;
|
|
9
10
|
private connectedSources;
|
|
10
11
|
private connectionInfo;
|
|
11
|
-
|
|
12
|
+
private logger;
|
|
13
|
+
constructor(info: ConnectionInfo, logger?: Logger);
|
|
12
14
|
private get address();
|
|
13
15
|
private get port();
|
|
14
16
|
connect(): Promise<void>;
|
|
@@ -17,7 +19,7 @@ export declare class NetworkDevice {
|
|
|
17
19
|
getPort(): number;
|
|
18
20
|
getTimeAlive(): number;
|
|
19
21
|
connectToService<T extends InstanceType<typeof services.Service>>(ctor: {
|
|
20
|
-
new (p_address: string, p_port: number, p_controller: NetworkDevice): T;
|
|
22
|
+
new (p_address: string, p_port: number, p_controller: NetworkDevice, logger?: Logger): T;
|
|
21
23
|
}): Promise<T>;
|
|
22
24
|
addSource(p_sourceName: string, p_localDbPath: string, p_localAlbumArtPath: string): Promise<void>;
|
|
23
25
|
dumpAlbumArt(p_sourceName: string): Promise<void>;
|
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.NetworkDevice = void 0;
|
|
40
|
-
const
|
|
40
|
+
const logger_1 = require("../types/logger");
|
|
41
41
|
const ReadContext_1 = require("../utils/ReadContext");
|
|
42
42
|
const types_1 = require("../types");
|
|
43
43
|
const sleep_1 = require("../utils/sleep");
|
|
@@ -49,7 +49,7 @@ const fs = __importStar(require("fs"));
|
|
|
49
49
|
const tcp = __importStar(require("../utils/tcp"));
|
|
50
50
|
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
51
51
|
class NetworkDevice {
|
|
52
|
-
constructor(info) {
|
|
52
|
+
constructor(info, logger = logger_1.noopLogger) {
|
|
53
53
|
this.connection = null;
|
|
54
54
|
//private source: string = null;
|
|
55
55
|
this.serviceRequestAllowed = false;
|
|
@@ -58,6 +58,7 @@ class NetworkDevice {
|
|
|
58
58
|
this.timeAlive = 0;
|
|
59
59
|
this.connectedSources = {};
|
|
60
60
|
this.connectionInfo = info;
|
|
61
|
+
this.logger = logger;
|
|
61
62
|
}
|
|
62
63
|
get address() {
|
|
63
64
|
return this.connectionInfo.address;
|
|
@@ -69,8 +70,8 @@ class NetworkDevice {
|
|
|
69
70
|
// Connect / Disconnect
|
|
70
71
|
async connect() {
|
|
71
72
|
const info = this.connectionInfo;
|
|
72
|
-
|
|
73
|
-
this.connection = await tcp.connect(info.address, info.port);
|
|
73
|
+
this.logger.debug(`Attempting to connect to ${info.address}:${info.port}`);
|
|
74
|
+
this.connection = await tcp.connect(info.address, info.port, this.logger);
|
|
74
75
|
this.connection.socket.on('data', (p_message) => {
|
|
75
76
|
this.messageHandler(p_message);
|
|
76
77
|
});
|
|
@@ -137,7 +138,7 @@ class NetworkDevice {
|
|
|
137
138
|
(0, assert_1.strict)(this.servicePorts.hasOwnProperty(serviceName));
|
|
138
139
|
(0, assert_1.strict)(this.servicePorts[serviceName] > 0);
|
|
139
140
|
const port = this.servicePorts[serviceName];
|
|
140
|
-
const service = new ctor(this.address, port, this);
|
|
141
|
+
const service = new ctor(this.address, port, this, this.logger);
|
|
141
142
|
await service.connect();
|
|
142
143
|
this.services[serviceName] = service;
|
|
143
144
|
return service;
|
|
@@ -184,7 +185,7 @@ class NetworkDevice {
|
|
|
184
185
|
const filepath = `${path}/${entry.id}${ext}`;
|
|
185
186
|
fs.writeFileSync(filepath, entry.albumArt);
|
|
186
187
|
}
|
|
187
|
-
|
|
188
|
+
this.logger.info(`dumped ${result.length} albums arts in '${path}'`);
|
|
188
189
|
}
|
|
189
190
|
// Database helpers
|
|
190
191
|
querySource(p_sourceName, p_query, ...p_params) {
|
|
@@ -262,9 +263,9 @@ class NetworkDevice {
|
|
|
262
263
|
while (true) {
|
|
263
264
|
// FIXME: How to determine when all services have been announced?
|
|
264
265
|
if (Object.keys(this.servicePorts).length > 3) {
|
|
265
|
-
|
|
266
|
+
this.logger.debug(`Discovered the following services on ${this.address}:${this.port}`);
|
|
266
267
|
for (const [name, port] of Object.entries(this.servicePorts)) {
|
|
267
|
-
|
|
268
|
+
this.logger.debug(`\tport: ${port} => ${name}`);
|
|
268
269
|
}
|
|
269
270
|
resolve();
|
|
270
271
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkDevice.js","sourceRoot":"","sources":["../../network/NetworkDevice.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"NetworkDevice.js","sourceRoot":"","sources":["../../network/NetworkDevice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ConnectionInfo, PlayerStatus, ServiceMessage, StageLinqOptions } from '../types';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import { StateData } from '../services';
|
|
3
|
+
import { FileTransfer, StateData } from '../services';
|
|
4
|
+
import type { Logger } from '../types/logger';
|
|
4
5
|
import { Databases } from '../Databases';
|
|
5
6
|
export declare interface StageLinqDevices {
|
|
6
7
|
on(event: 'trackLoaded', listener: (status: PlayerStatus) => void): this;
|
|
@@ -19,9 +20,11 @@ export declare class StageLinqDevices extends EventEmitter {
|
|
|
19
20
|
private devices;
|
|
20
21
|
private discoveryStatus;
|
|
21
22
|
private options;
|
|
23
|
+
private logger;
|
|
22
24
|
private deviceWatchTimeout;
|
|
25
|
+
private deviceWatchInterval;
|
|
23
26
|
private stateMapCallback;
|
|
24
|
-
constructor(options: StageLinqOptions);
|
|
27
|
+
constructor(options: StageLinqOptions, logger?: Logger);
|
|
25
28
|
/**
|
|
26
29
|
* Handle incoming discovery messages from the StageLinq network
|
|
27
30
|
*
|
|
@@ -33,6 +36,12 @@ export declare class StageLinqDevices extends EventEmitter {
|
|
|
33
36
|
*/
|
|
34
37
|
disconnectAll(): void;
|
|
35
38
|
get databases(): Databases;
|
|
39
|
+
/**
|
|
40
|
+
* Get the FileTransfer service for a specific device.
|
|
41
|
+
* @param deviceId Device ID (e.g., "net://uuid-token")
|
|
42
|
+
* @returns FileTransfer service or null if not available
|
|
43
|
+
*/
|
|
44
|
+
getFileTransferService(deviceId: string): FileTransfer | null;
|
|
36
45
|
downloadFile(deviceId: string, path: string): Promise<Uint8Array<ArrayBufferLike>>;
|
|
37
46
|
/**
|
|
38
47
|
* Waits for all devices to be connected with databases downloaded
|
|
@@ -58,6 +67,7 @@ export declare class StageLinqDevices extends EventEmitter {
|
|
|
58
67
|
*
|
|
59
68
|
*/
|
|
60
69
|
private waitForAllDevices;
|
|
70
|
+
private scheduleDeviceWatch;
|
|
61
71
|
/**
|
|
62
72
|
* Attempt to connect to a device. Retry if necessary.
|
|
63
73
|
*
|
|
@@ -6,7 +6,7 @@ const _1 = require(".");
|
|
|
6
6
|
const Player_1 = require("../devices/Player");
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
8
|
const services_1 = require("../services");
|
|
9
|
-
const
|
|
9
|
+
const logger_1 = require("../types/logger");
|
|
10
10
|
const Databases_1 = require("../Databases");
|
|
11
11
|
var ConnectionStatus;
|
|
12
12
|
(function (ConnectionStatus) {
|
|
@@ -16,23 +16,27 @@ var ConnectionStatus;
|
|
|
16
16
|
})(ConnectionStatus || (ConnectionStatus = {}));
|
|
17
17
|
;
|
|
18
18
|
;
|
|
19
|
-
//
|
|
20
|
-
// come through.
|
|
21
|
-
const
|
|
19
|
+
// Initial poll interval for device discovery — just long enough for discovery
|
|
20
|
+
// messages from all devices to come through.
|
|
21
|
+
const WAIT_FOR_DEVICES_INITIAL_MS = 3000;
|
|
22
|
+
// Max poll interval after backoff when no devices are found
|
|
23
|
+
const WAIT_FOR_DEVICES_MAX_MS = 30000;
|
|
22
24
|
//////////////////////////////////////////////////////////////////////////////
|
|
23
25
|
/**
|
|
24
26
|
* Handle connecting and disconnecting from discovered devices on the
|
|
25
27
|
* StageLinq network.
|
|
26
28
|
*/
|
|
27
29
|
class StageLinqDevices extends events_1.EventEmitter {
|
|
28
|
-
constructor(options) {
|
|
30
|
+
constructor(options, logger = logger_1.noopLogger) {
|
|
29
31
|
super();
|
|
30
32
|
this.devices = new Map();
|
|
31
33
|
this.discoveryStatus = new Map();
|
|
32
34
|
this.deviceWatchTimeout = null;
|
|
35
|
+
this.deviceWatchInterval = WAIT_FOR_DEVICES_INITIAL_MS;
|
|
33
36
|
this.stateMapCallback = [];
|
|
34
37
|
this.options = options;
|
|
35
|
-
this.
|
|
38
|
+
this.logger = logger;
|
|
39
|
+
this._databases = new Databases_1.Databases(logger);
|
|
36
40
|
this.waitForAllDevices = this.waitForAllDevices.bind(this);
|
|
37
41
|
this.waitForAllDevices();
|
|
38
42
|
}
|
|
@@ -42,7 +46,7 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
42
46
|
* @param connectionInfo Connection info.
|
|
43
47
|
*/
|
|
44
48
|
async handleDevice(connectionInfo) {
|
|
45
|
-
|
|
49
|
+
this.logger.trace(this.showDiscoveryStatus(connectionInfo));
|
|
46
50
|
// Ignore this discovery message if we've already connected to it,
|
|
47
51
|
// are still connecting, if it has failed, or if it's blacklisted.
|
|
48
52
|
if (this.isConnected(connectionInfo)
|
|
@@ -56,6 +60,10 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
56
60
|
* Disconnect from all connected devices
|
|
57
61
|
*/
|
|
58
62
|
disconnectAll() {
|
|
63
|
+
if (this.deviceWatchTimeout) {
|
|
64
|
+
clearTimeout(this.deviceWatchTimeout);
|
|
65
|
+
this.deviceWatchTimeout = null;
|
|
66
|
+
}
|
|
59
67
|
for (const device of this.devices.values()) {
|
|
60
68
|
device.networkDevice.disconnect();
|
|
61
69
|
}
|
|
@@ -63,6 +71,15 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
63
71
|
get databases() {
|
|
64
72
|
return this._databases;
|
|
65
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Get the FileTransfer service for a specific device.
|
|
76
|
+
* @param deviceId Device ID (e.g., "net://uuid-token")
|
|
77
|
+
* @returns FileTransfer service or null if not available
|
|
78
|
+
*/
|
|
79
|
+
getFileTransferService(deviceId) {
|
|
80
|
+
const device = this.devices.get(deviceId);
|
|
81
|
+
return device?.fileTransferService ?? null;
|
|
82
|
+
}
|
|
66
83
|
async downloadFile(deviceId, path) {
|
|
67
84
|
if (this.options.enableFileTranfer) {
|
|
68
85
|
const device = this.devices.get(deviceId);
|
|
@@ -76,7 +93,7 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
76
93
|
}
|
|
77
94
|
else {
|
|
78
95
|
const err = `File transfer service is not enabled. Cannot download ${path}`;
|
|
79
|
-
|
|
96
|
+
this.logger.error(err);
|
|
80
97
|
throw new Error(err);
|
|
81
98
|
}
|
|
82
99
|
}
|
|
@@ -105,28 +122,44 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
105
122
|
*
|
|
106
123
|
*/
|
|
107
124
|
waitForAllDevices() {
|
|
108
|
-
|
|
109
|
-
this.
|
|
125
|
+
this.logger.debug('Start watching for devices ...');
|
|
126
|
+
this.scheduleDeviceWatch();
|
|
127
|
+
}
|
|
128
|
+
scheduleDeviceWatch() {
|
|
129
|
+
this.deviceWatchTimeout = setTimeout(async () => {
|
|
110
130
|
// Check if any devices are still connecting.
|
|
111
131
|
const values = Array.from(this.discoveryStatus.values());
|
|
112
132
|
const foundDevices = values.length >= 1;
|
|
113
133
|
const allConnected = !values.includes(ConnectionStatus.CONNECTING);
|
|
114
134
|
const entries = Array.from(this.discoveryStatus.entries());
|
|
115
|
-
LogEmitter_1.Logger.debug(`Waiting devices: ${JSON.stringify(entries)}`);
|
|
116
135
|
if (foundDevices && allConnected) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
clearInterval(this.deviceWatchTimeout);
|
|
136
|
+
this.logger.debug('All devices found!');
|
|
137
|
+
this.logger.debug(`Devices found: ${values.length} ${JSON.stringify(entries)}`);
|
|
138
|
+
this.deviceWatchTimeout = null;
|
|
121
139
|
for (const cb of this.stateMapCallback) {
|
|
122
140
|
this.setupStateMap(cb.connectionInfo, cb.networkDevice);
|
|
123
141
|
}
|
|
124
142
|
this.emit('ready');
|
|
125
143
|
}
|
|
126
144
|
else {
|
|
127
|
-
|
|
145
|
+
// Log at trace when idle (no devices), debug when devices are connecting
|
|
146
|
+
if (foundDevices) {
|
|
147
|
+
this.logger.debug(`Waiting devices: ${JSON.stringify(entries)}`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.logger.trace('Waiting for devices ...');
|
|
151
|
+
}
|
|
152
|
+
// Backoff: increase interval up to max when no devices are found
|
|
153
|
+
if (!foundDevices && this.deviceWatchInterval < WAIT_FOR_DEVICES_MAX_MS) {
|
|
154
|
+
this.deviceWatchInterval = Math.min(this.deviceWatchInterval * 2, WAIT_FOR_DEVICES_MAX_MS);
|
|
155
|
+
}
|
|
156
|
+
else if (foundDevices) {
|
|
157
|
+
// Reset to fast polling when devices are actively connecting
|
|
158
|
+
this.deviceWatchInterval = WAIT_FOR_DEVICES_INITIAL_MS;
|
|
159
|
+
}
|
|
160
|
+
this.scheduleDeviceWatch();
|
|
128
161
|
}
|
|
129
|
-
},
|
|
162
|
+
}, this.deviceWatchInterval);
|
|
130
163
|
}
|
|
131
164
|
/**
|
|
132
165
|
* Attempt to connect to a device. Retry if necessary.
|
|
@@ -141,9 +174,9 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
141
174
|
while (attempt < (this.options.maxRetries ?? 3)) {
|
|
142
175
|
try {
|
|
143
176
|
// Connect to the device.
|
|
144
|
-
|
|
177
|
+
this.logger.info(`Connecting to ${this.deviceId(connectionInfo)}. ` +
|
|
145
178
|
`Attempt ${attempt}/${this.options.maxRetries}`);
|
|
146
|
-
const networkDevice = new _1.NetworkDevice(connectionInfo);
|
|
179
|
+
const networkDevice = new _1.NetworkDevice(connectionInfo, this.logger);
|
|
147
180
|
await networkDevice.connect();
|
|
148
181
|
// Setup file transfer service
|
|
149
182
|
await this.setupFileTransferService(networkDevice, connectionInfo);
|
|
@@ -165,7 +198,7 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
165
198
|
}
|
|
166
199
|
catch (e) {
|
|
167
200
|
// Failed connection. Sleep then retry.
|
|
168
|
-
|
|
201
|
+
this.logger.warn(`Could not connect to ${this.deviceId(connectionInfo)} ` +
|
|
169
202
|
`(${attempt}/${this.options.maxRetries}): ${e}`);
|
|
170
203
|
attempt += 1;
|
|
171
204
|
(0, utils_1.sleep)(500);
|
|
@@ -178,7 +211,7 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
178
211
|
async setupFileTransferService(networkDevice, connectionInfo) {
|
|
179
212
|
const sourceId = this.sourceId(connectionInfo);
|
|
180
213
|
if (this.options.enableFileTranfer) {
|
|
181
|
-
|
|
214
|
+
this.logger.info(`Starting file transfer for ${this.deviceId(connectionInfo)}`);
|
|
182
215
|
const fileTransferService = await networkDevice.connectToService(services_1.FileTransfer);
|
|
183
216
|
this.devices.set(`net://${sourceId}`, {
|
|
184
217
|
networkDevice: networkDevice,
|
|
@@ -200,8 +233,8 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
200
233
|
*/
|
|
201
234
|
async downloadDatabase(networkDevice, connectionInfo) {
|
|
202
235
|
const sources = await this.databases.downloadSourcesFromDevice(connectionInfo, networkDevice);
|
|
203
|
-
|
|
204
|
-
|
|
236
|
+
this.logger.debug(`Database sources: ${sources.join(', ')}`);
|
|
237
|
+
this.logger.debug(`Database download complete for ${connectionInfo.source}`);
|
|
205
238
|
}
|
|
206
239
|
sourceId(connectionInfo) {
|
|
207
240
|
return (0, utils_1.formatToken)(connectionInfo.token);
|
|
@@ -214,7 +247,7 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
214
247
|
*/
|
|
215
248
|
async setupStateMap(connectionInfo, networkDevice) {
|
|
216
249
|
// Setup StateMap
|
|
217
|
-
|
|
250
|
+
this.logger.debug(`Setting up stateMap for ${connectionInfo.address}`);
|
|
218
251
|
const stateMap = await networkDevice.connectToService(services_1.StateMap);
|
|
219
252
|
stateMap.on('message', (data) => {
|
|
220
253
|
this.emit('message', connectionInfo, data);
|
|
@@ -224,7 +257,8 @@ class StageLinqDevices extends events_1.EventEmitter {
|
|
|
224
257
|
stateMap: stateMap,
|
|
225
258
|
address: connectionInfo.address,
|
|
226
259
|
port: connectionInfo.port,
|
|
227
|
-
deviceId: this.sourceId(connectionInfo)
|
|
260
|
+
deviceId: this.sourceId(connectionInfo),
|
|
261
|
+
logger: this.logger,
|
|
228
262
|
});
|
|
229
263
|
player.on('trackLoaded', (status) => {
|
|
230
264
|
this.emit('trackLoaded', status);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageLinqDevices.js","sourceRoot":"","sources":["../../network/StageLinqDevices.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AACtC,wBAAkC;AAClC,8CAA2C;AAC3C,oCAA8C;AAC9C,0CAAgE;
|
|
1
|
+
{"version":3,"file":"StageLinqDevices.js","sourceRoot":"","sources":["../../network/StageLinqDevices.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,16 @@
|
|
|
7
7
|
* Windows broadcast fix ported from go-stagelinq (icedream)
|
|
8
8
|
* https://github.com/icedream/go-stagelinq
|
|
9
9
|
*/
|
|
10
|
+
import type { Logger } from '../types/logger';
|
|
10
11
|
import type { DiscoveryMessage } from '../types';
|
|
11
12
|
/**
|
|
12
13
|
* Stop announcing and send logout message
|
|
13
14
|
*/
|
|
14
|
-
export declare function unannounce(message: DiscoveryMessage): Promise<void>;
|
|
15
|
+
export declare function unannounce(message: DiscoveryMessage, logger?: Logger): Promise<void>;
|
|
15
16
|
/**
|
|
16
17
|
* Start announcing presence on the StageLinq network
|
|
17
18
|
*/
|
|
18
|
-
export declare function announce(message: DiscoveryMessage): Promise<void>;
|
|
19
|
+
export declare function announce(message: DiscoveryMessage, logger?: Logger): Promise<void>;
|
|
19
20
|
export interface DiscoveryMessageOptions {
|
|
20
21
|
name: string;
|
|
21
22
|
version: string;
|
package/dist/network/announce.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.announce = announce;
|
|
|
14
14
|
exports.createDiscoveryMessage = createDiscoveryMessage;
|
|
15
15
|
const types_1 = require("../types");
|
|
16
16
|
const dgram_1 = require("dgram");
|
|
17
|
-
const
|
|
17
|
+
const logger_1 = require("../types/logger");
|
|
18
18
|
const os_1 = require("os");
|
|
19
19
|
const assert_1 = require("assert");
|
|
20
20
|
const ip_1 = require("ip");
|
|
@@ -36,6 +36,10 @@ function findBroadcastTargets() {
|
|
|
36
36
|
continue;
|
|
37
37
|
for (const entry of i) {
|
|
38
38
|
if (entry.family === 'IPv4' && entry.internal === false) {
|
|
39
|
+
// Skip link-local addresses (169.254.x.x) — these are auto-configured
|
|
40
|
+
// interfaces that rarely host StageLinq devices
|
|
41
|
+
if (entry.address.startsWith('169.254.'))
|
|
42
|
+
continue;
|
|
39
43
|
const info = (0, ip_1.subnet)(entry.address, entry.netmask);
|
|
40
44
|
targets.push({
|
|
41
45
|
broadcastIP: info.broadcastAddress,
|
|
@@ -53,6 +57,10 @@ let windowsSockets = new Map();
|
|
|
53
57
|
let announceTimer = null;
|
|
54
58
|
/** Check if running on Windows */
|
|
55
59
|
const isWindows = (0, os_1.platform)() === 'win32';
|
|
60
|
+
/** Module-level logger, set by announce/unannounce */
|
|
61
|
+
let moduleLogger = logger_1.noopLogger;
|
|
62
|
+
/** Track targets that have already warned about send failures */
|
|
63
|
+
const warnedTargets = new Set();
|
|
56
64
|
function writeDiscoveryMessage(p_ctx, p_message) {
|
|
57
65
|
let written = 0;
|
|
58
66
|
written += p_ctx.writeFixedSizedString(types_1.DISCOVERY_MESSAGE_MARKER);
|
|
@@ -75,7 +83,7 @@ async function initUdpSocket(localIP) {
|
|
|
75
83
|
try {
|
|
76
84
|
const client = (0, dgram_1.createSocket)({ type: 'udp4', reuseAddr: true });
|
|
77
85
|
client.on('error', (err) => {
|
|
78
|
-
|
|
86
|
+
moduleLogger.error(`UDP socket error: ${err}`);
|
|
79
87
|
reject(err);
|
|
80
88
|
});
|
|
81
89
|
client.on('listening', () => {
|
|
@@ -91,7 +99,7 @@ async function initUdpSocket(localIP) {
|
|
|
91
99
|
}
|
|
92
100
|
}
|
|
93
101
|
catch (err) {
|
|
94
|
-
|
|
102
|
+
moduleLogger.error(`Failed to create UDP socket for announcing: ${err}`);
|
|
95
103
|
reject(err);
|
|
96
104
|
}
|
|
97
105
|
});
|
|
@@ -110,10 +118,10 @@ async function initWindowsSockets() {
|
|
|
110
118
|
try {
|
|
111
119
|
const socket = await initUdpSocket(target.localIP);
|
|
112
120
|
windowsSockets.set(target.localIP, socket);
|
|
113
|
-
|
|
121
|
+
moduleLogger.debug(`Created broadcast socket for interface ${target.localIP}`);
|
|
114
122
|
}
|
|
115
123
|
catch (err) {
|
|
116
|
-
|
|
124
|
+
moduleLogger.warn(`Failed to create socket for interface ${target.localIP}: ${err}`);
|
|
117
125
|
}
|
|
118
126
|
}
|
|
119
127
|
}
|
|
@@ -127,7 +135,7 @@ function closeWindowsSockets() {
|
|
|
127
135
|
socket.close();
|
|
128
136
|
}
|
|
129
137
|
catch (err) {
|
|
130
|
-
|
|
138
|
+
moduleLogger.warn(`Error closing socket for ${ip}: ${err}`);
|
|
131
139
|
}
|
|
132
140
|
}
|
|
133
141
|
windowsSockets.clear();
|
|
@@ -148,7 +156,7 @@ async function broadcastMessage(p_message) {
|
|
|
148
156
|
const promises = targets.map(async (target) => {
|
|
149
157
|
const socket = windowsSockets.get(target.localIP);
|
|
150
158
|
if (!socket) {
|
|
151
|
-
|
|
159
|
+
moduleLogger.warn(`No socket available for interface ${target.localIP}`);
|
|
152
160
|
return;
|
|
153
161
|
}
|
|
154
162
|
return new Promise((resolve, reject) => {
|
|
@@ -158,10 +166,17 @@ async function broadcastMessage(p_message) {
|
|
|
158
166
|
socket.send(p_message, types_1.LISTEN_PORT, target.broadcastIP, (err) => {
|
|
159
167
|
clearTimeout(timeout);
|
|
160
168
|
if (err) {
|
|
161
|
-
|
|
169
|
+
if (!warnedTargets.has(target.broadcastIP)) {
|
|
170
|
+
moduleLogger.warn(`Failed to send to ${target.broadcastIP}: ${err}`);
|
|
171
|
+
warnedTargets.add(target.broadcastIP);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
moduleLogger.debug(`Failed to send to ${target.broadcastIP}: ${err}`);
|
|
175
|
+
}
|
|
162
176
|
resolve(); // Don't reject, just log and continue
|
|
163
177
|
}
|
|
164
178
|
else {
|
|
179
|
+
warnedTargets.delete(target.broadcastIP);
|
|
165
180
|
resolve();
|
|
166
181
|
}
|
|
167
182
|
});
|
|
@@ -179,10 +194,18 @@ async function broadcastMessage(p_message) {
|
|
|
179
194
|
announceClient.send(p_message, types_1.LISTEN_PORT, broadcastIP, (err) => {
|
|
180
195
|
clearTimeout(timeout);
|
|
181
196
|
if (err) {
|
|
182
|
-
|
|
197
|
+
if (!warnedTargets.has(broadcastIP)) {
|
|
198
|
+
moduleLogger.warn(`Failed to send to ${broadcastIP}: ${err}`);
|
|
199
|
+
warnedTargets.add(broadcastIP);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
moduleLogger.debug(`Failed to send to ${broadcastIP}: ${err}`);
|
|
203
|
+
}
|
|
183
204
|
resolve();
|
|
184
205
|
}
|
|
185
206
|
else {
|
|
207
|
+
// Clear warned state if a previously failing target recovers
|
|
208
|
+
warnedTargets.delete(broadcastIP);
|
|
186
209
|
resolve();
|
|
187
210
|
}
|
|
188
211
|
});
|
|
@@ -195,9 +218,10 @@ async function broadcastMessage(p_message) {
|
|
|
195
218
|
/**
|
|
196
219
|
* Stop announcing and send logout message
|
|
197
220
|
*/
|
|
198
|
-
async function unannounce(message) {
|
|
221
|
+
async function unannounce(message, logger = logger_1.noopLogger) {
|
|
222
|
+
moduleLogger = logger;
|
|
199
223
|
if (!announceTimer) {
|
|
200
|
-
|
|
224
|
+
moduleLogger.warn('Announce timer has not started.');
|
|
201
225
|
return;
|
|
202
226
|
}
|
|
203
227
|
// Note: assertion removed to fix freezing issues on disconnect
|
|
@@ -216,14 +240,15 @@ async function unannounce(message) {
|
|
|
216
240
|
announceClient.close();
|
|
217
241
|
announceClient = null;
|
|
218
242
|
}
|
|
219
|
-
|
|
243
|
+
moduleLogger.info("Unannounced myself");
|
|
220
244
|
}
|
|
221
245
|
/**
|
|
222
246
|
* Start announcing presence on the StageLinq network
|
|
223
247
|
*/
|
|
224
|
-
async function announce(message) {
|
|
248
|
+
async function announce(message, logger = logger_1.noopLogger) {
|
|
249
|
+
moduleLogger = logger;
|
|
225
250
|
if (announceTimer) {
|
|
226
|
-
|
|
251
|
+
moduleLogger.debug('Already has an announce timer.');
|
|
227
252
|
return;
|
|
228
253
|
}
|
|
229
254
|
// Initialize sockets based on platform
|
|
@@ -241,7 +266,7 @@ async function announce(message) {
|
|
|
241
266
|
// Immediately announce myself
|
|
242
267
|
await broadcastMessage(msg);
|
|
243
268
|
announceTimer = setInterval(broadcastMessage, types_1.ANNOUNCEMENT_INTERVAL, msg);
|
|
244
|
-
|
|
269
|
+
moduleLogger.info("Announced myself");
|
|
245
270
|
}
|
|
246
271
|
;
|
|
247
272
|
function createDiscoveryMessage(action, discoveryMessageOptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announce.js","sourceRoot":"","sources":["../../network/announce.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"announce.js","sourceRoot":"","sources":["../../network/announce.ts"],"names":[],"mappings":"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"}
|