jmri-client 3.5.0 → 3.5.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.
Files changed (101) hide show
  1. package/dist/browser/jmri-client.js +14 -8
  2. package/dist/cjs/client.js +0 -1
  3. package/dist/cjs/core/connection-state-manager.js +0 -1
  4. package/dist/cjs/core/heartbeat-manager.js +0 -1
  5. package/dist/cjs/core/index.js +0 -1
  6. package/dist/cjs/core/message-queue.js +0 -1
  7. package/dist/cjs/core/reconnection-manager.js +0 -1
  8. package/dist/cjs/core/websocket-adapter.js +0 -1
  9. package/dist/cjs/core/websocket-client.js +0 -1
  10. package/dist/cjs/index.js +0 -1
  11. package/dist/cjs/managers/index.js +0 -1
  12. package/dist/cjs/managers/power-manager.js +0 -1
  13. package/dist/cjs/managers/roster-manager.js +16 -10
  14. package/dist/cjs/managers/throttle-manager.js +0 -1
  15. package/dist/cjs/mocks/index.js +0 -1
  16. package/dist/cjs/mocks/mock-data.js +0 -1
  17. package/dist/cjs/mocks/mock-response-manager.js +0 -1
  18. package/dist/cjs/types/client-options.js +0 -1
  19. package/dist/cjs/types/events.js +0 -1
  20. package/dist/cjs/types/index.js +0 -1
  21. package/dist/cjs/types/jmri-messages.js +0 -1
  22. package/dist/cjs/types/throttle.js +0 -1
  23. package/dist/cjs/utils/exponential-backoff.js +0 -1
  24. package/dist/cjs/utils/index.js +0 -1
  25. package/dist/cjs/utils/message-id.js +0 -1
  26. package/dist/esm/client.js +0 -1
  27. package/dist/esm/core/connection-state-manager.js +0 -1
  28. package/dist/esm/core/heartbeat-manager.js +0 -1
  29. package/dist/esm/core/index.js +0 -1
  30. package/dist/esm/core/message-queue.js +0 -1
  31. package/dist/esm/core/reconnection-manager.js +0 -1
  32. package/dist/esm/core/websocket-adapter.js +0 -1
  33. package/dist/esm/core/websocket-client.js +0 -1
  34. package/dist/esm/index.js +0 -1
  35. package/dist/esm/managers/index.js +0 -1
  36. package/dist/esm/managers/power-manager.js +0 -1
  37. package/dist/esm/managers/roster-manager.js +16 -10
  38. package/dist/esm/managers/throttle-manager.js +0 -1
  39. package/dist/esm/mocks/index.js +0 -1
  40. package/dist/esm/mocks/mock-data.js +0 -1
  41. package/dist/esm/mocks/mock-response-manager.js +0 -1
  42. package/dist/esm/types/client-options.js +0 -1
  43. package/dist/esm/types/events.js +0 -1
  44. package/dist/esm/types/index.js +0 -1
  45. package/dist/esm/types/jmri-messages.js +0 -1
  46. package/dist/esm/types/throttle.js +0 -1
  47. package/dist/esm/utils/exponential-backoff.js +0 -1
  48. package/dist/esm/utils/index.js +0 -1
  49. package/dist/esm/utils/message-id.js +0 -1
  50. package/dist/types/client.d.ts +5 -5
  51. package/dist/types/managers/roster-manager.d.ts +6 -6
  52. package/package.json +5 -1
  53. package/dist/browser/jmri-client.js.map +0 -7
  54. package/dist/cjs/client.js.map +0 -1
  55. package/dist/cjs/core/connection-state-manager.js.map +0 -1
  56. package/dist/cjs/core/heartbeat-manager.js.map +0 -1
  57. package/dist/cjs/core/index.js.map +0 -1
  58. package/dist/cjs/core/message-queue.js.map +0 -1
  59. package/dist/cjs/core/reconnection-manager.js.map +0 -1
  60. package/dist/cjs/core/websocket-adapter.js.map +0 -1
  61. package/dist/cjs/core/websocket-client.js.map +0 -1
  62. package/dist/cjs/index.js.map +0 -1
  63. package/dist/cjs/managers/index.js.map +0 -1
  64. package/dist/cjs/managers/power-manager.js.map +0 -1
  65. package/dist/cjs/managers/roster-manager.js.map +0 -1
  66. package/dist/cjs/managers/throttle-manager.js.map +0 -1
  67. package/dist/cjs/mocks/index.js.map +0 -1
  68. package/dist/cjs/mocks/mock-data.js.map +0 -1
  69. package/dist/cjs/mocks/mock-response-manager.js.map +0 -1
  70. package/dist/cjs/types/client-options.js.map +0 -1
  71. package/dist/cjs/types/events.js.map +0 -1
  72. package/dist/cjs/types/index.js.map +0 -1
  73. package/dist/cjs/types/jmri-messages.js.map +0 -1
  74. package/dist/cjs/types/throttle.js.map +0 -1
  75. package/dist/cjs/utils/exponential-backoff.js.map +0 -1
  76. package/dist/cjs/utils/index.js.map +0 -1
  77. package/dist/cjs/utils/message-id.js.map +0 -1
  78. package/dist/esm/client.js.map +0 -1
  79. package/dist/esm/core/connection-state-manager.js.map +0 -1
  80. package/dist/esm/core/heartbeat-manager.js.map +0 -1
  81. package/dist/esm/core/index.js.map +0 -1
  82. package/dist/esm/core/message-queue.js.map +0 -1
  83. package/dist/esm/core/reconnection-manager.js.map +0 -1
  84. package/dist/esm/core/websocket-adapter.js.map +0 -1
  85. package/dist/esm/core/websocket-client.js.map +0 -1
  86. package/dist/esm/index.js.map +0 -1
  87. package/dist/esm/managers/index.js.map +0 -1
  88. package/dist/esm/managers/power-manager.js.map +0 -1
  89. package/dist/esm/managers/roster-manager.js.map +0 -1
  90. package/dist/esm/managers/throttle-manager.js.map +0 -1
  91. package/dist/esm/mocks/index.js.map +0 -1
  92. package/dist/esm/mocks/mock-data.js.map +0 -1
  93. package/dist/esm/mocks/mock-response-manager.js.map +0 -1
  94. package/dist/esm/types/client-options.js.map +0 -1
  95. package/dist/esm/types/events.js.map +0 -1
  96. package/dist/esm/types/index.js.map +0 -1
  97. package/dist/esm/types/jmri-messages.js.map +0 -1
  98. package/dist/esm/types/throttle.js.map +0 -1
  99. package/dist/esm/utils/exponential-backoff.js.map +0 -1
  100. package/dist/esm/utils/index.js.map +0 -1
  101. package/dist/esm/utils/message-id.js.map +0 -1
@@ -1453,9 +1453,9 @@ var RosterManager = class {
1453
1453
  await this.getRoster();
1454
1454
  }
1455
1455
  const addressStr = address.toString();
1456
- for (const entry of this.rosterCache.values()) {
1457
- if (entry.address === addressStr) {
1458
- return entry;
1456
+ for (const wrapper of this.rosterCache.values()) {
1457
+ if (wrapper.data.address === addressStr) {
1458
+ return wrapper;
1459
1459
  }
1460
1460
  }
1461
1461
  return void 0;
@@ -1469,9 +1469,10 @@ var RosterManager = class {
1469
1469
  }
1470
1470
  const lowerQuery = query.toLowerCase();
1471
1471
  const results = [];
1472
- for (const entry of this.rosterCache.values()) {
1472
+ for (const wrapper of this.rosterCache.values()) {
1473
+ const entry = wrapper.data;
1473
1474
  if (entry.name.toLowerCase().includes(lowerQuery) || entry.address.includes(query) || entry.road?.toLowerCase().includes(lowerQuery) || entry.number?.includes(query)) {
1474
- results.push(entry);
1475
+ results.push(wrapper);
1475
1476
  }
1476
1477
  }
1477
1478
  return results;
@@ -1496,12 +1497,18 @@ var RosterManager = class {
1496
1497
  if (Array.isArray(rosterData)) {
1497
1498
  for (const wrapper of rosterData) {
1498
1499
  if (wrapper.type === "rosterEntry" && wrapper.data) {
1499
- this.rosterCache.set(wrapper.data.name, wrapper.data);
1500
+ this.rosterCache.set(wrapper.data.name, wrapper);
1500
1501
  }
1501
1502
  }
1502
1503
  } else {
1504
+ let id = 1;
1503
1505
  for (const [name, entry] of Object.entries(rosterData)) {
1504
- this.rosterCache.set(name, entry);
1506
+ const wrapper = {
1507
+ type: "rosterEntry",
1508
+ data: entry,
1509
+ id: id++
1510
+ };
1511
+ this.rosterCache.set(name, wrapper);
1505
1512
  }
1506
1513
  }
1507
1514
  }
@@ -2029,4 +2036,3 @@ export {
2029
2036
  mockResponseManager,
2030
2037
  powerStateToString
2031
2038
  };
2032
- //# sourceMappingURL=jmri-client.js.map
@@ -243,4 +243,3 @@ class JmriClient extends eventemitter3_1.EventEmitter {
243
243
  }
244
244
  }
245
245
  exports.JmriClient = JmriClient;
246
- //# sourceMappingURL=client.js.map
@@ -82,4 +82,3 @@ class ConnectionStateManager extends eventemitter3_1.EventEmitter {
82
82
  }
83
83
  }
84
84
  exports.ConnectionStateManager = ConnectionStateManager;
85
- //# sourceMappingURL=connection-state-manager.js.map
@@ -77,4 +77,3 @@ class HeartbeatManager extends eventemitter3_1.EventEmitter {
77
77
  }
78
78
  }
79
79
  exports.HeartbeatManager = HeartbeatManager;
80
- //# sourceMappingURL=heartbeat-manager.js.map
@@ -23,4 +23,3 @@ __exportStar(require("./connection-state-manager.js"), exports);
23
23
  __exportStar(require("./reconnection-manager.js"), exports);
24
24
  __exportStar(require("./heartbeat-manager.js"), exports);
25
25
  __exportStar(require("./message-queue.js"), exports);
26
- //# sourceMappingURL=index.js.map
@@ -57,4 +57,3 @@ class MessageQueue {
57
57
  }
58
58
  }
59
59
  exports.MessageQueue = MessageQueue;
60
- //# sourceMappingURL=message-queue.js.map
@@ -95,4 +95,3 @@ class ReconnectionManager extends eventemitter3_1.EventEmitter {
95
95
  }
96
96
  }
97
97
  exports.ReconnectionManager = ReconnectionManager;
98
- //# sourceMappingURL=reconnection-manager.js.map
@@ -133,4 +133,3 @@ class NodeWebSocketAdapter extends eventemitter3_1.EventEmitter {
133
133
  return this.ws.readyState;
134
134
  }
135
135
  }
136
- //# sourceMappingURL=websocket-adapter.js.map
@@ -386,4 +386,3 @@ class WebSocketClient extends eventemitter3_1.EventEmitter {
386
386
  }
387
387
  }
388
388
  exports.WebSocketClient = WebSocketClient;
389
- //# sourceMappingURL=websocket-client.js.map
package/dist/cjs/index.js CHANGED
@@ -24,4 +24,3 @@ var index_js_2 = require("./mocks/index.js");
24
24
  Object.defineProperty(exports, "MockResponseManager", { enumerable: true, get: function () { return index_js_2.MockResponseManager; } });
25
25
  Object.defineProperty(exports, "mockResponseManager", { enumerable: true, get: function () { return index_js_2.mockResponseManager; } });
26
26
  Object.defineProperty(exports, "mockData", { enumerable: true, get: function () { return index_js_2.mockData; } });
27
- //# sourceMappingURL=index.js.map
@@ -20,4 +20,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  __exportStar(require("./power-manager.js"), exports);
21
21
  __exportStar(require("./roster-manager.js"), exports);
22
22
  __exportStar(require("./throttle-manager.js"), exports);
23
- //# sourceMappingURL=index.js.map
@@ -82,4 +82,3 @@ class PowerManager extends eventemitter3_1.EventEmitter {
82
82
  }
83
83
  }
84
84
  exports.PowerManager = PowerManager;
85
- //# sourceMappingURL=power-manager.js.map
@@ -48,9 +48,9 @@ class RosterManager {
48
48
  await this.getRoster();
49
49
  }
50
50
  const addressStr = address.toString();
51
- for (const entry of this.rosterCache.values()) {
52
- if (entry.address === addressStr) {
53
- return entry;
51
+ for (const wrapper of this.rosterCache.values()) {
52
+ if (wrapper.data.address === addressStr) {
53
+ return wrapper;
54
54
  }
55
55
  }
56
56
  return undefined;
@@ -65,12 +65,13 @@ class RosterManager {
65
65
  }
66
66
  const lowerQuery = query.toLowerCase();
67
67
  const results = [];
68
- for (const entry of this.rosterCache.values()) {
68
+ for (const wrapper of this.rosterCache.values()) {
69
+ const entry = wrapper.data;
69
70
  if (entry.name.toLowerCase().includes(lowerQuery) ||
70
71
  entry.address.includes(query) ||
71
72
  entry.road?.toLowerCase().includes(lowerQuery) ||
72
73
  entry.number?.includes(query)) {
73
- results.push(entry);
74
+ results.push(wrapper);
74
75
  }
75
76
  }
76
77
  return results;
@@ -92,21 +93,26 @@ class RosterManager {
92
93
  */
93
94
  updateCache(rosterData) {
94
95
  this.rosterCache.clear();
95
- // Handle array format (real JMRI server)
96
+ // Handle array format (real JMRI server) - store wrapped entries
96
97
  if (Array.isArray(rosterData)) {
97
98
  for (const wrapper of rosterData) {
98
99
  if (wrapper.type === 'rosterEntry' && wrapper.data) {
99
- this.rosterCache.set(wrapper.data.name, wrapper.data);
100
+ this.rosterCache.set(wrapper.data.name, wrapper);
100
101
  }
101
102
  }
102
103
  }
103
- // Handle legacy keyed object format (for backward compatibility)
104
+ // Handle legacy keyed object format (for backward compatibility) - wrap entries
104
105
  else {
106
+ let id = 1;
105
107
  for (const [name, entry] of Object.entries(rosterData)) {
106
- this.rosterCache.set(name, entry);
108
+ const wrapper = {
109
+ type: 'rosterEntry',
110
+ data: entry,
111
+ id: id++
112
+ };
113
+ this.rosterCache.set(name, wrapper);
107
114
  }
108
115
  }
109
116
  }
110
117
  }
111
118
  exports.RosterManager = RosterManager;
112
- //# sourceMappingURL=roster-manager.js.map
@@ -230,4 +230,3 @@ class ThrottleManager extends eventemitter3_1.EventEmitter {
230
230
  }
231
231
  }
232
232
  exports.ThrottleManager = ThrottleManager;
233
- //# sourceMappingURL=throttle-manager.js.map
@@ -10,4 +10,3 @@ Object.defineProperty(exports, "mockResponseManager", { enumerable: true, get: f
10
10
  // Re-export mock data for direct access if needed
11
11
  var mock_data_js_1 = require("./mock-data.js");
12
12
  Object.defineProperty(exports, "mockData", { enumerable: true, get: function () { return mock_data_js_1.mockData; } });
13
- //# sourceMappingURL=index.js.map
@@ -221,4 +221,3 @@ exports.mockData = {
221
221
  }
222
222
  }
223
223
  };
224
- //# sourceMappingURL=mock-data.js.map
@@ -209,4 +209,3 @@ exports.MockResponseManager = MockResponseManager;
209
209
  * Singleton instance for shared use across tests
210
210
  */
211
211
  exports.mockResponseManager = new MockResponseManager({ responseDelay: 0 });
212
- //# sourceMappingURL=mock-response-manager.js.map
@@ -64,4 +64,3 @@ function mergeOptions(userOptions) {
64
64
  }
65
65
  return options;
66
66
  }
67
- //# sourceMappingURL=client-options.js.map
@@ -14,4 +14,3 @@ var ConnectionState;
14
14
  ConnectionState["CONNECTED"] = "connected";
15
15
  ConnectionState["RECONNECTING"] = "reconnecting";
16
16
  })(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
17
- //# sourceMappingURL=events.js.map
@@ -21,4 +21,3 @@ __exportStar(require("./jmri-messages.js"), exports);
21
21
  __exportStar(require("./events.js"), exports);
22
22
  __exportStar(require("./throttle.js"), exports);
23
23
  __exportStar(require("./client-options.js"), exports);
24
- //# sourceMappingURL=index.js.map
@@ -35,4 +35,3 @@ function powerStateToString(state) {
35
35
  return 'UNKNOWN';
36
36
  }
37
37
  }
38
- //# sourceMappingURL=jmri-messages.js.map
@@ -17,4 +17,3 @@ function isThrottleFunctionKey(key) {
17
17
  function isValidSpeed(speed) {
18
18
  return typeof speed === 'number' && speed >= 0 && speed <= 1;
19
19
  }
20
- //# sourceMappingURL=throttle.js.map
@@ -38,4 +38,3 @@ function shouldReconnect(attempt, maxAttempts) {
38
38
  }
39
39
  return attempt <= maxAttempts;
40
40
  }
41
- //# sourceMappingURL=exponential-backoff.js.map
@@ -19,4 +19,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  __exportStar(require("./message-id.js"), exports);
21
21
  __exportStar(require("./exponential-backoff.js"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -38,4 +38,3 @@ class MessageIdGenerator {
38
38
  }
39
39
  }
40
40
  exports.MessageIdGenerator = MessageIdGenerator;
41
- //# sourceMappingURL=message-id.js.map
@@ -239,4 +239,3 @@ export class JmriClient extends EventEmitter {
239
239
  return this.throttleManager.releaseAllThrottles();
240
240
  }
241
241
  }
242
- //# sourceMappingURL=client.js.map
@@ -78,4 +78,3 @@ export class ConnectionStateManager extends EventEmitter {
78
78
  this.forceState(ConnectionState.DISCONNECTED);
79
79
  }
80
80
  }
81
- //# sourceMappingURL=connection-state-manager.js.map
@@ -73,4 +73,3 @@ export class HeartbeatManager extends EventEmitter {
73
73
  // Note: Caller must call start() again if needed
74
74
  }
75
75
  }
76
- //# sourceMappingURL=heartbeat-manager.js.map
@@ -7,4 +7,3 @@ export * from './connection-state-manager.js';
7
7
  export * from './reconnection-manager.js';
8
8
  export * from './heartbeat-manager.js';
9
9
  export * from './message-queue.js';
10
- //# sourceMappingURL=index.js.map
@@ -53,4 +53,3 @@ export class MessageQueue {
53
53
  return this.queue.length >= this.maxSize;
54
54
  }
55
55
  }
56
- //# sourceMappingURL=message-queue.js.map
@@ -91,4 +91,3 @@ export class ReconnectionManager extends EventEmitter {
91
91
  this.options = { ...this.options, ...options };
92
92
  }
93
93
  }
94
- //# sourceMappingURL=reconnection-manager.js.map
@@ -96,4 +96,3 @@ class NodeWebSocketAdapter extends EventEmitter {
96
96
  return this.ws.readyState;
97
97
  }
98
98
  }
99
- //# sourceMappingURL=websocket-adapter.js.map
@@ -382,4 +382,3 @@ export class WebSocketClient extends EventEmitter {
382
382
  return new Promise(resolve => setTimeout(resolve, ms));
383
383
  }
384
384
  }
385
- //# sourceMappingURL=websocket-client.js.map
package/dist/esm/index.js CHANGED
@@ -14,4 +14,3 @@ export { isThrottleFunctionKey, isValidSpeed } from './types/throttle.js';
14
14
  export { powerStateToString } from './types/jmri-messages.js';
15
15
  // Export mock system for testing and demo purposes
16
16
  export { MockResponseManager, mockResponseManager, mockData } from './mocks/index.js';
17
- //# sourceMappingURL=index.js.map
@@ -4,4 +4,3 @@
4
4
  export * from './power-manager.js';
5
5
  export * from './roster-manager.js';
6
6
  export * from './throttle-manager.js';
7
- //# sourceMappingURL=index.js.map
@@ -78,4 +78,3 @@ export class PowerManager extends EventEmitter {
78
78
  }
79
79
  }
80
80
  }
81
- //# sourceMappingURL=power-manager.js.map
@@ -45,9 +45,9 @@ export class RosterManager {
45
45
  await this.getRoster();
46
46
  }
47
47
  const addressStr = address.toString();
48
- for (const entry of this.rosterCache.values()) {
49
- if (entry.address === addressStr) {
50
- return entry;
48
+ for (const wrapper of this.rosterCache.values()) {
49
+ if (wrapper.data.address === addressStr) {
50
+ return wrapper;
51
51
  }
52
52
  }
53
53
  return undefined;
@@ -62,12 +62,13 @@ export class RosterManager {
62
62
  }
63
63
  const lowerQuery = query.toLowerCase();
64
64
  const results = [];
65
- for (const entry of this.rosterCache.values()) {
65
+ for (const wrapper of this.rosterCache.values()) {
66
+ const entry = wrapper.data;
66
67
  if (entry.name.toLowerCase().includes(lowerQuery) ||
67
68
  entry.address.includes(query) ||
68
69
  entry.road?.toLowerCase().includes(lowerQuery) ||
69
70
  entry.number?.includes(query)) {
70
- results.push(entry);
71
+ results.push(wrapper);
71
72
  }
72
73
  }
73
74
  return results;
@@ -89,20 +90,25 @@ export class RosterManager {
89
90
  */
90
91
  updateCache(rosterData) {
91
92
  this.rosterCache.clear();
92
- // Handle array format (real JMRI server)
93
+ // Handle array format (real JMRI server) - store wrapped entries
93
94
  if (Array.isArray(rosterData)) {
94
95
  for (const wrapper of rosterData) {
95
96
  if (wrapper.type === 'rosterEntry' && wrapper.data) {
96
- this.rosterCache.set(wrapper.data.name, wrapper.data);
97
+ this.rosterCache.set(wrapper.data.name, wrapper);
97
98
  }
98
99
  }
99
100
  }
100
- // Handle legacy keyed object format (for backward compatibility)
101
+ // Handle legacy keyed object format (for backward compatibility) - wrap entries
101
102
  else {
103
+ let id = 1;
102
104
  for (const [name, entry] of Object.entries(rosterData)) {
103
- this.rosterCache.set(name, entry);
105
+ const wrapper = {
106
+ type: 'rosterEntry',
107
+ data: entry,
108
+ id: id++
109
+ };
110
+ this.rosterCache.set(name, wrapper);
104
111
  }
105
112
  }
106
113
  }
107
114
  }
108
- //# sourceMappingURL=roster-manager.js.map
@@ -226,4 +226,3 @@ export class ThrottleManager extends EventEmitter {
226
226
  }
227
227
  }
228
228
  }
229
- //# sourceMappingURL=throttle-manager.js.map
@@ -4,4 +4,3 @@
4
4
  export { MockResponseManager, mockResponseManager } from './mock-response-manager.js';
5
5
  // Re-export mock data for direct access if needed
6
6
  export { mockData } from './mock-data.js';
7
- //# sourceMappingURL=index.js.map
@@ -218,4 +218,3 @@ export const mockData = {
218
218
  }
219
219
  }
220
220
  };
221
- //# sourceMappingURL=mock-data.js.map
@@ -205,4 +205,3 @@ export class MockResponseManager {
205
205
  * Singleton instance for shared use across tests
206
206
  */
207
207
  export const mockResponseManager = new MockResponseManager({ responseDelay: 0 });
208
- //# sourceMappingURL=mock-response-manager.js.map
@@ -60,4 +60,3 @@ export function mergeOptions(userOptions) {
60
60
  }
61
61
  return options;
62
62
  }
63
- //# sourceMappingURL=client-options.js.map
@@ -11,4 +11,3 @@ export var ConnectionState;
11
11
  ConnectionState["CONNECTED"] = "connected";
12
12
  ConnectionState["RECONNECTING"] = "reconnecting";
13
13
  })(ConnectionState || (ConnectionState = {}));
14
- //# sourceMappingURL=events.js.map
@@ -5,4 +5,3 @@ export * from './jmri-messages.js';
5
5
  export * from './events.js';
6
6
  export * from './throttle.js';
7
7
  export * from './client-options.js';
8
- //# sourceMappingURL=index.js.map
@@ -31,4 +31,3 @@ export function powerStateToString(state) {
31
31
  return 'UNKNOWN';
32
32
  }
33
33
  }
34
- //# sourceMappingURL=jmri-messages.js.map
@@ -13,4 +13,3 @@ export function isThrottleFunctionKey(key) {
13
13
  export function isValidSpeed(speed) {
14
14
  return typeof speed === 'number' && speed >= 0 && speed <= 1;
15
15
  }
16
- //# sourceMappingURL=throttle.js.map
@@ -34,4 +34,3 @@ export function shouldReconnect(attempt, maxAttempts) {
34
34
  }
35
35
  return attempt <= maxAttempts;
36
36
  }
37
- //# sourceMappingURL=exponential-backoff.js.map
@@ -3,4 +3,3 @@
3
3
  */
4
4
  export * from './message-id.js';
5
5
  export * from './exponential-backoff.js';
6
- //# sourceMappingURL=index.js.map
@@ -34,4 +34,3 @@ export class MessageIdGenerator {
34
34
  return this.currentId;
35
35
  }
36
36
  }
37
- //# sourceMappingURL=message-id.js.map
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { EventEmitter } from 'eventemitter3';
5
5
  import { PartialClientOptions } from './types/client-options.js';
6
- import { PowerState, RosterEntry } from './types/jmri-messages.js';
6
+ import { PowerState, RosterEntryWrapper } from './types/jmri-messages.js';
7
7
  import { ConnectionState } from './types/events.js';
8
8
  import { ThrottleAcquireOptions, ThrottleFunctionKey, ThrottleState } from './types/throttle.js';
9
9
  /**
@@ -69,19 +69,19 @@ export declare class JmriClient extends EventEmitter {
69
69
  /**
70
70
  * Get all roster entries
71
71
  */
72
- getRoster(): Promise<RosterEntry[]>;
72
+ getRoster(): Promise<RosterEntryWrapper[]>;
73
73
  /**
74
74
  * Get roster entry by name
75
75
  */
76
- getRosterEntryByName(name: string): Promise<RosterEntry | undefined>;
76
+ getRosterEntryByName(name: string): Promise<RosterEntryWrapper | undefined>;
77
77
  /**
78
78
  * Get roster entry by address
79
79
  */
80
- getRosterEntryByAddress(address: string | number): Promise<RosterEntry | undefined>;
80
+ getRosterEntryByAddress(address: string | number): Promise<RosterEntryWrapper | undefined>;
81
81
  /**
82
82
  * Search roster by partial name match
83
83
  */
84
- searchRoster(query: string): Promise<RosterEntry[]>;
84
+ searchRoster(query: string): Promise<RosterEntryWrapper[]>;
85
85
  /**
86
86
  * Acquire a throttle for a locomotive
87
87
  *
@@ -2,7 +2,7 @@
2
2
  * Roster management
3
3
  */
4
4
  import { WebSocketClient } from '../core/websocket-client.js';
5
- import { RosterEntry } from '../types/jmri-messages.js';
5
+ import { RosterEntryWrapper } from '../types/jmri-messages.js';
6
6
  /**
7
7
  * Manages locomotive roster
8
8
  */
@@ -13,23 +13,23 @@ export declare class RosterManager {
13
13
  /**
14
14
  * Get all roster entries
15
15
  */
16
- getRoster(): Promise<RosterEntry[]>;
16
+ getRoster(): Promise<RosterEntryWrapper[]>;
17
17
  /**
18
18
  * Get roster entry by name
19
19
  */
20
- getRosterEntryByName(name: string): Promise<RosterEntry | undefined>;
20
+ getRosterEntryByName(name: string): Promise<RosterEntryWrapper | undefined>;
21
21
  /**
22
22
  * Get roster entry by address
23
23
  */
24
- getRosterEntryByAddress(address: string | number): Promise<RosterEntry | undefined>;
24
+ getRosterEntryByAddress(address: string | number): Promise<RosterEntryWrapper | undefined>;
25
25
  /**
26
26
  * Search roster by partial name match
27
27
  */
28
- searchRoster(query: string): Promise<RosterEntry[]>;
28
+ searchRoster(query: string): Promise<RosterEntryWrapper[]>;
29
29
  /**
30
30
  * Get cached roster (no network request)
31
31
  */
32
- getCachedRoster(): RosterEntry[];
32
+ getCachedRoster(): RosterEntryWrapper[];
33
33
  /**
34
34
  * Clear roster cache
35
35
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jmri-client",
3
- "version": "3.5.0",
3
+ "version": "3.5.3",
4
4
  "description": "WebSocket client for JMRI with real-time updates and throttle control - works in both Node.js and browsers",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -47,6 +47,10 @@
47
47
  "private": false,
48
48
  "readmeFilename": "README.md",
49
49
  "license": "MIT",
50
+ "publishConfig": {
51
+ "access": "public",
52
+ "provenance": true
53
+ },
50
54
  "repository": {
51
55
  "type": "git",
52
56
  "url": "git://github.com/yamanote1138/jmri-client.git"