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.
Files changed (69) hide show
  1. package/README.md +2 -1
  2. package/dist/Databases/Databases.d.ts +3 -1
  3. package/dist/Databases/Databases.js +9 -8
  4. package/dist/Databases/Databases.js.map +1 -1
  5. package/dist/Databases/DbConnection.d.ts +3 -1
  6. package/dist/Databases/DbConnection.js +6 -4
  7. package/dist/Databases/DbConnection.js.map +1 -1
  8. package/dist/StageLinq/index.d.ts +1 -1
  9. package/dist/StageLinq/index.js +8 -8
  10. package/dist/StageLinq/index.js.map +1 -1
  11. package/dist/devices/Player.d.ts +3 -0
  12. package/dist/devices/Player.js +15 -6
  13. package/dist/devices/Player.js.map +1 -1
  14. package/dist/eaas/beacon.d.ts +3 -1
  15. package/dist/eaas/beacon.js +10 -9
  16. package/dist/eaas/beacon.js.map +1 -1
  17. package/dist/eaas/discoverer.d.ts +3 -1
  18. package/dist/eaas/discoverer.js +16 -12
  19. package/dist/eaas/discoverer.js.map +1 -1
  20. package/dist/eaas/engine-library-client.d.ts +3 -1
  21. package/dist/eaas/engine-library-client.js +7 -6
  22. package/dist/eaas/engine-library-client.js.map +1 -1
  23. package/dist/eaas/http-client.d.ts +3 -1
  24. package/dist/eaas/http-client.js +5 -4
  25. package/dist/eaas/http-client.js.map +1 -1
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.js +4 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/metadata/index.d.ts +26 -0
  30. package/dist/metadata/index.js +53 -0
  31. package/dist/metadata/index.js.map +1 -0
  32. package/dist/metadata/reader.d.ts +11 -0
  33. package/dist/metadata/reader.js +20 -0
  34. package/dist/metadata/reader.js.map +1 -0
  35. package/dist/network/ConnectionHealth.d.ts +3 -1
  36. package/dist/network/ConnectionHealth.js +13 -12
  37. package/dist/network/ConnectionHealth.js.map +1 -1
  38. package/dist/network/NetworkDevice.d.ts +4 -2
  39. package/dist/network/NetworkDevice.js +9 -8
  40. package/dist/network/NetworkDevice.js.map +1 -1
  41. package/dist/network/StageLinqDevices.d.ts +12 -2
  42. package/dist/network/StageLinqDevices.js +59 -25
  43. package/dist/network/StageLinqDevices.js.map +1 -1
  44. package/dist/network/announce.d.ts +3 -2
  45. package/dist/network/announce.js +40 -15
  46. package/dist/network/announce.js.map +1 -1
  47. package/dist/services/FileTransfer.d.ts +14 -0
  48. package/dist/services/FileTransfer.js +86 -6
  49. package/dist/services/FileTransfer.js.map +1 -1
  50. package/dist/services/Service.d.ts +3 -1
  51. package/dist/services/Service.js +7 -6
  52. package/dist/services/Service.js.map +1 -1
  53. package/dist/services/StateMap.js +0 -1
  54. package/dist/services/StateMap.js.map +1 -1
  55. package/dist/services/TimeSync.js +2 -3
  56. package/dist/services/TimeSync.js.map +1 -1
  57. package/dist/types/index.d.ts +4 -0
  58. package/dist/types/index.js +1 -0
  59. package/dist/types/index.js.map +1 -1
  60. package/dist/types/logger.d.ts +13 -0
  61. package/dist/types/logger.js +11 -0
  62. package/dist/types/logger.js.map +1 -0
  63. package/dist/utils/tcp.d.ts +2 -1
  64. package/dist/utils/tcp.js +3 -3
  65. package/dist/utils/tcp.js.map +1 -1
  66. package/package.json +5 -1
  67. package/dist/LogEmitter/index.d.ts +0 -20
  68. package/dist/LogEmitter/index.js +0 -35
  69. 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
- constructor(info: ConnectionInfo);
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 LogEmitter_1 = require("../LogEmitter");
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
- LogEmitter_1.Logger.debug(`Attempting to connect to ${info.address}:${info.port}`);
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
- LogEmitter_1.Logger.info(`dumped ${result.length} albums arts in '${path}'`);
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
- LogEmitter_1.Logger.debug(`Discovered the following services on ${this.address}:${this.port}`);
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
- LogEmitter_1.Logger.debug(`\tport: ${port} => ${name}`);
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":"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"}
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 LogEmitter_1 = require("../LogEmitter");
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
- // This time needs to be just long enough for discovery messages from all to
20
- // come through.
21
- const WAIT_FOR_DEVICES_TIMEOUT_MS = 3000;
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._databases = new Databases_1.Databases();
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
- LogEmitter_1.Logger.silly(this.showDiscoveryStatus(connectionInfo));
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
- LogEmitter_1.Logger.error(err);
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
- LogEmitter_1.Logger.log('Start watching for devices ...');
109
- this.deviceWatchTimeout = setInterval(async () => {
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
- LogEmitter_1.Logger.log('All devices found!');
118
- LogEmitter_1.Logger.debug(`Devices found: ${values.length} ${JSON.stringify(entries)}`);
119
- if (this.deviceWatchTimeout)
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
- LogEmitter_1.Logger.log(`Waiting for devices ...`);
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
- }, WAIT_FOR_DEVICES_TIMEOUT_MS);
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
- LogEmitter_1.Logger.info(`Connecting to ${this.deviceId(connectionInfo)}. ` +
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
- LogEmitter_1.Logger.warn(`Could not connect to ${this.deviceId(connectionInfo)} ` +
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
- LogEmitter_1.Logger.info(`Starting file transfer for ${this.deviceId(connectionInfo)}`);
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
- LogEmitter_1.Logger.debug(`Database sources: ${sources.join(', ')}`);
204
- LogEmitter_1.Logger.debug(`Database download complete for ${connectionInfo.source}`);
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
- LogEmitter_1.Logger.debug(`Setting up stateMap for ${connectionInfo.address}`);
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":"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"}
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;
@@ -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 LogEmitter_1 = require("../LogEmitter");
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
- LogEmitter_1.Logger.error(`UDP socket error: ${err}`);
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
- LogEmitter_1.Logger.error(`Failed to create UDP socket for announcing: ${err}`);
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
- LogEmitter_1.Logger.debug(`Created broadcast socket for interface ${target.localIP}`);
121
+ moduleLogger.debug(`Created broadcast socket for interface ${target.localIP}`);
114
122
  }
115
123
  catch (err) {
116
- LogEmitter_1.Logger.warn(`Failed to create socket for interface ${target.localIP}: ${err}`);
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
- LogEmitter_1.Logger.warn(`Error closing socket for ${ip}: ${err}`);
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
- LogEmitter_1.Logger.warn(`No socket available for interface ${target.localIP}`);
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
- LogEmitter_1.Logger.warn(`Failed to send to ${target.broadcastIP}: ${err}`);
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
- LogEmitter_1.Logger.warn(`Failed to send to ${broadcastIP}: ${err}`);
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
- LogEmitter_1.Logger.warn('Announce timer has not started.');
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
- LogEmitter_1.Logger.info("Unannounced myself");
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
- LogEmitter_1.Logger.log('Already has an announce timer.');
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
- LogEmitter_1.Logger.info("Announced myself");
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":"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"}
1
+ {"version":3,"file":"announce.js","sourceRoot":"","sources":["../../network/announce.ts"],"names":[],"mappings":"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"}