@photon-os/sdk 1.0.0-alpha.2 → 1.0.0-alpha.3

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.d.mts CHANGED
@@ -139,7 +139,7 @@ declare class DeviceManager {
139
139
  /** Unregister a device */
140
140
  unregisterDevice(deviceId: string): Promise<void>;
141
141
  /** Subscribe to messages from all registered devices */
142
- subscribeToMessages(callback: DeviceMessageCallback): Unsubscribe;
142
+ subscribeToMessages(deviceId: string, callback: DeviceMessageCallback): Unsubscribe;
143
143
  /** Internal: Start the message subscription via RPC */
144
144
  private startSubscription;
145
145
  /** Internal: Stop the message subscription */
package/dist/index.d.ts CHANGED
@@ -139,7 +139,7 @@ declare class DeviceManager {
139
139
  /** Unregister a device */
140
140
  unregisterDevice(deviceId: string): Promise<void>;
141
141
  /** Subscribe to messages from all registered devices */
142
- subscribeToMessages(callback: DeviceMessageCallback): Unsubscribe;
142
+ subscribeToMessages(deviceId: string, callback: DeviceMessageCallback): Unsubscribe;
143
143
  /** Internal: Start the message subscription via RPC */
144
144
  private startSubscription;
145
145
  /** Internal: Stop the message subscription */
package/dist/index.js CHANGED
@@ -1236,7 +1236,7 @@ var AppManager = class {
1236
1236
  // src/framework/DeviceManager.ts
1237
1237
  var DeviceManager = class {
1238
1238
  constructor(os) {
1239
- this.messageCallbacks = /* @__PURE__ */ new Set();
1239
+ this.messageCallbacks = {};
1240
1240
  this.subscribed = false;
1241
1241
  this.os = os;
1242
1242
  }
@@ -1256,14 +1256,21 @@ var DeviceManager = class {
1256
1256
  await api2.devices_unregister(deviceId);
1257
1257
  }
1258
1258
  /** Subscribe to messages from all registered devices */
1259
- subscribeToMessages(callback) {
1260
- this.messageCallbacks.add(callback);
1259
+ subscribeToMessages(deviceId, callback) {
1260
+ this.messageCallbacks[deviceId] = this.messageCallbacks[deviceId] ?? [];
1261
+ this.messageCallbacks[deviceId].add(callback);
1261
1262
  if (!this.subscribed) {
1262
1263
  this.startSubscription();
1263
1264
  }
1264
1265
  return () => {
1265
- this.messageCallbacks.delete(callback);
1266
- if (this.messageCallbacks.size === 0 && this.subscribed) {
1266
+ if (this.messageCallbacks[deviceId]) {
1267
+ this.messageCallbacks[deviceId].delete(callback);
1268
+ }
1269
+ const totalSubscriptions = Object.values(this.messageCallbacks).reduce(
1270
+ (acc, cv) => acc + cv.size,
1271
+ 0
1272
+ );
1273
+ if (totalSubscriptions === 0 && this.subscribed) {
1267
1274
  this.stopSubscription();
1268
1275
  }
1269
1276
  };
@@ -1272,7 +1279,8 @@ var DeviceManager = class {
1272
1279
  async startSubscription() {
1273
1280
  const api2 = await this.os.getRPCAPI();
1274
1281
  await api2.devices_subscribe((message) => {
1275
- for (const callback of this.messageCallbacks) {
1282
+ const callbacks = this.messageCallbacks[message.deviceId] ?? [];
1283
+ for (const callback of callbacks) {
1276
1284
  try {
1277
1285
  callback(message);
1278
1286
  } catch (error) {