mqtt-plus 1.4.16 → 1.4.18

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 (77) hide show
  1. package/.claude/CLAUDE.md +1 -0
  2. package/.gemini/settings.json +5 -0
  3. package/AGENTS.md +86 -97
  4. package/CHANGELOG.md +41 -0
  5. package/README.md +1 -1
  6. package/doc/mqtt-plus-api.md +24 -15
  7. package/doc/mqtt-plus-architecture.md +1 -1
  8. package/doc/mqtt-plus-broker-setup.md +2 -2
  9. package/doc/mqtt-plus-comm.md +3 -2
  10. package/doc/mqtt-plus-internals.md +11 -1
  11. package/dst-stage1/mqtt-plus-auth.d.ts +1 -1
  12. package/dst-stage1/mqtt-plus-auth.js +18 -17
  13. package/dst-stage1/mqtt-plus-auth.js.map +1 -1
  14. package/dst-stage1/mqtt-plus-base.d.ts +2 -1
  15. package/dst-stage1/mqtt-plus-base.js +32 -7
  16. package/dst-stage1/mqtt-plus-base.js.map +1 -1
  17. package/dst-stage1/mqtt-plus-error.d.ts +1 -0
  18. package/dst-stage1/mqtt-plus-error.js +69 -39
  19. package/dst-stage1/mqtt-plus-error.js.map +1 -1
  20. package/dst-stage1/mqtt-plus-event.d.ts +4 -2
  21. package/dst-stage1/mqtt-plus-event.js +61 -13
  22. package/dst-stage1/mqtt-plus-event.js.map +1 -1
  23. package/dst-stage1/mqtt-plus-info.d.ts +2 -0
  24. package/dst-stage1/mqtt-plus-msg.d.ts +12 -8
  25. package/dst-stage1/mqtt-plus-msg.js +31 -23
  26. package/dst-stage1/mqtt-plus-msg.js.map +1 -1
  27. package/dst-stage1/mqtt-plus-options.d.ts +1 -1
  28. package/dst-stage1/mqtt-plus-service.d.ts +3 -0
  29. package/dst-stage1/mqtt-plus-service.js +146 -24
  30. package/dst-stage1/mqtt-plus-service.js.map +1 -1
  31. package/dst-stage1/mqtt-plus-sink.js +210 -92
  32. package/dst-stage1/mqtt-plus-sink.js.map +1 -1
  33. package/dst-stage1/mqtt-plus-source.d.ts +1 -0
  34. package/dst-stage1/mqtt-plus-source.js +186 -123
  35. package/dst-stage1/mqtt-plus-source.js.map +1 -1
  36. package/dst-stage1/mqtt-plus-subscription.d.ts +1 -0
  37. package/dst-stage1/mqtt-plus-subscription.js +23 -18
  38. package/dst-stage1/mqtt-plus-subscription.js.map +1 -1
  39. package/dst-stage1/mqtt-plus-timer.d.ts +2 -0
  40. package/dst-stage1/mqtt-plus-timer.js +52 -0
  41. package/dst-stage1/mqtt-plus-timer.js.map +1 -1
  42. package/dst-stage1/mqtt-plus-trace.js +10 -3
  43. package/dst-stage1/mqtt-plus-trace.js.map +1 -1
  44. package/dst-stage1/mqtt-plus-util.js +18 -10
  45. package/dst-stage1/mqtt-plus-util.js.map +1 -1
  46. package/dst-stage1/mqtt-plus-version.d.ts +2 -0
  47. package/dst-stage1/mqtt-plus-version.js +3 -0
  48. package/dst-stage1/mqtt-plus-version.js.map +1 -1
  49. package/dst-stage2/mqtt-plus.cjs.cjs +692 -323
  50. package/dst-stage2/mqtt-plus.esm.js +687 -318
  51. package/dst-stage2/mqtt-plus.umd.js +11 -11
  52. package/etc/d2.mts +47 -13
  53. package/etc/eslint.mts +6 -2
  54. package/etc/stx.conf +8 -6
  55. package/etc/vite.mts +14 -5
  56. package/package.d/{@typescript-eslint+typescript-estree+8.57.2.patch → @typescript-eslint+typescript-estree+8.58.1.patch} +1 -1
  57. package/package.d/{vite+8.0.3.patch → vite+8.0.8.patch} +2 -2
  58. package/package.json +16 -16
  59. package/src/mqtt-plus-auth.ts +18 -17
  60. package/src/mqtt-plus-base.ts +38 -7
  61. package/src/mqtt-plus-error.ts +73 -41
  62. package/src/mqtt-plus-event.ts +71 -17
  63. package/src/mqtt-plus-info.ts +6 -2
  64. package/src/mqtt-plus-msg.ts +35 -21
  65. package/src/mqtt-plus-options.ts +1 -1
  66. package/src/mqtt-plus-service.ts +157 -26
  67. package/src/mqtt-plus-sink.ts +227 -94
  68. package/src/mqtt-plus-source.ts +205 -126
  69. package/src/mqtt-plus-subscription.ts +26 -19
  70. package/src/mqtt-plus-timer.ts +56 -0
  71. package/src/mqtt-plus-trace.ts +10 -3
  72. package/src/mqtt-plus-util.ts +19 -10
  73. package/src/mqtt-plus-version.ts +5 -1
  74. package/tst/mqtt-plus-0-broker-mosquitto.ts +2 -2
  75. package/tst/mqtt-plus-3-service.spec.ts +3 -3
  76. package/tst/mqtt-plus-4-sink.spec.ts +3 -3
  77. package/tst/mqtt-plus-7-spool.spec.ts +65 -0
@@ -29,6 +29,8 @@ export class BaseTrait extends TraceTrait {
29
29
  /* construct API class */
30
30
  constructor(mqtt, options = {}) {
31
31
  super(options);
32
+ /* lifecycle state */
33
+ this.destroyed = false;
32
34
  /* central message callback registries */
33
35
  this.onRequest = new Map();
34
36
  this.onResponse = new Map();
@@ -56,6 +58,8 @@ export class BaseTrait extends TraceTrait {
56
58
  /* hook into the MQTT message processing */
57
59
  this.log("info", "hooking into MQTT client");
58
60
  this.messageHandler = (topic, message, packet) => {
61
+ if (this.destroyed)
62
+ return;
59
63
  /* convert message to codec-specific input format
60
64
  (NOTICE: MQTT.js uses Buffer in its handler signature only,
61
65
  but internally supports string or Buffer, while we are
@@ -75,17 +79,20 @@ export class BaseTrait extends TraceTrait {
75
79
  }
76
80
  /* destroy API class */
77
81
  async destroy() {
82
+ this.destroyed = true;
78
83
  this.log("info", "un-hooking from MQTT client");
79
84
  this.mqtt.off("message", this.messageHandler);
80
85
  this.onRequest.clear();
81
86
  this.onResponse.clear();
82
87
  }
83
88
  /* create a registration for subsequent destruction */
84
- makeRegistration(spool, kind, name, key) {
89
+ makeRegistration(spool, kind, name) {
90
+ let destroyed = false;
85
91
  return {
86
92
  destroy: async () => {
87
- if (!this.onRequest.has(key))
88
- throw new Error(`destroy: ${kind} "${name}" not registered`);
93
+ if (destroyed)
94
+ return;
95
+ destroyed = true;
89
96
  await spool.unroll(false)?.catch((err) => {
90
97
  const error = ensureError(err, `destroy: ${kind} "${name}" failed to cleanup`);
91
98
  this.error(error);
@@ -160,6 +167,8 @@ export class BaseTrait extends TraceTrait {
160
167
  }
161
168
  /* handle incoming MQTT message */
162
169
  _onMessage(topic, data, _packet) {
170
+ if (this.destroyed)
171
+ return;
163
172
  /* parse MQTT topic */
164
173
  const topicMatch = this.options.topicMatch(topic);
165
174
  if (topicMatch === null)
@@ -187,13 +196,24 @@ export class BaseTrait extends TraceTrait {
187
196
  return;
188
197
  }
189
198
  this.log("debug", `received from MQTT topic "${topic}"`, { message });
199
+ /* warn on receiver mismatch on direct topics */
200
+ if (topicMatch.peerId !== undefined
201
+ && message.receiver !== undefined
202
+ && message.receiver !== topicMatch.peerId)
203
+ this.log("warning", `receiver mismatch on direct topic "${topic}"` +
204
+ ` (expected "${topicMatch.peerId}", got "${message.receiver}")`);
190
205
  /* dispatch MQTT+ message */
191
206
  if (this.msg.isRequest(message)) {
192
207
  /* dispatch request message */
193
208
  const handler = this.onRequest.get(`${message.type}:${message.name}`);
194
209
  if (handler !== undefined) {
195
- Promise.resolve().then(() => handler(message, topicMatch.name)).catch((err) => {
196
- this.error(ensureError(err, `dispatching request message from MQTT topic "${topic}" failed`));
210
+ Promise.resolve().then(() => {
211
+ if (this.destroyed)
212
+ return;
213
+ return handler(message, topicMatch.name);
214
+ }).catch((err) => {
215
+ this.error(ensureError(err, `dispatching request message from MQTT topic "${topic}" ` +
216
+ `(type: ${message.type}, id: ${message.id}, name: ${message.name}) failed`));
197
217
  });
198
218
  }
199
219
  }
@@ -201,8 +221,13 @@ export class BaseTrait extends TraceTrait {
201
221
  /* dispatch response message */
202
222
  const handler = this.onResponse.get(`${message.type}:${message.id}`);
203
223
  if (handler !== undefined) {
204
- Promise.resolve().then(() => handler(message, topicMatch.name)).catch((err) => {
205
- this.error(ensureError(err, `dispatching response message from MQTT topic "${topic}" failed`));
224
+ Promise.resolve().then(() => {
225
+ if (this.destroyed)
226
+ return;
227
+ return handler(message, topicMatch.name);
228
+ }).catch((err) => {
229
+ this.error(ensureError(err, `dispatching response message from MQTT topic "${topic}" ` +
230
+ `(type: ${message.type}, id: ${message.id}, name: ${message.name}) failed`));
206
231
  });
207
232
  }
208
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-plus-base.js","sourceRoot":"","sources":["../src/mqtt-plus-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-plus-base.js","sourceRoot":"","sources":["../src/mqtt-plus-base.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  type SpoolCleanup<T = unknown> = (resource: T) => void | Promise<void>;
2
2
  export declare class Spool {
3
3
  private resources;
4
+ private pending;
4
5
  roll(cleanup: SpoolCleanup): void;
5
6
  roll<T>(resource: T, cleanup: SpoolCleanup<T>): void;
6
7
  sub(): Spool;
@@ -26,6 +26,7 @@ export class Spool {
26
26
  constructor() {
27
27
  /* internal state */
28
28
  this.resources = [];
29
+ this.pending = null;
29
30
  }
30
31
  roll(...args) {
31
32
  /* determine parameters */
@@ -49,47 +50,74 @@ export class Spool {
49
50
  /* create new spool */
50
51
  const spool = new Spool();
51
52
  /* roll sub-spool onto spool */
52
- this.roll(spool, () => { });
53
+ this.roll(spool, (s) => s.unroll());
53
54
  /* return new spool */
54
55
  return spool;
55
56
  }
56
57
  /* unroll all cleanup procedures from spool */
57
58
  unroll(suppress = true) {
59
+ /* guard against concurrent unroll: if an unroll is already
60
+ in progress, return the existing promise so all callers
61
+ wait for the same completion */
62
+ if (this.pending !== null) {
63
+ if (suppress)
64
+ return this.pending.catch(() => { });
65
+ return this.pending;
66
+ }
67
+ /* atomically take ownership of the currently rolled
68
+ resources so re-entrant unroll() calls from within
69
+ a synchronous cleanup observe an empty spool */
70
+ const resources = this.resources;
71
+ this.resources = [];
58
72
  /* NOTICE: we operate synchronously until the first
59
73
  cleanup procedure returns a Promise. Then we continue
60
74
  asynchronously, regardless of whether the following
61
75
  cleanup procedures return a Promise or not! */
62
- try {
63
- let promise;
64
- while (this.resources.length > 0) {
65
- const entry = this.resources.pop();
66
- const resource = entry.resource;
67
- const cleanup = entry.cleanup;
68
- if (promise) {
69
- if (resource instanceof Spool)
70
- promise = promise.then(() => resource.unroll() /* RECURSION */);
71
- else
72
- promise = promise.then(() => cleanup(resource));
73
- }
74
- else {
75
- let result;
76
- if (resource instanceof Spool)
77
- result = resource.unroll(); /* RECURSION */
78
- else
79
- result = cleanup(resource);
76
+ const errors = [];
77
+ let promise;
78
+ while (resources.length > 0) {
79
+ const entry = resources.pop();
80
+ const resource = entry.resource;
81
+ const cleanup = entry.cleanup;
82
+ if (promise) {
83
+ /* async continuation: isolate each cleanup so one rejection
84
+ does not prevent remaining cleanups from executing */
85
+ promise = promise.then(() => cleanup(resource))
86
+ .catch((err) => { errors.push(err); });
87
+ }
88
+ else {
89
+ /* sync start: wrap individually so a throw
90
+ does not exit the while loop */
91
+ try {
92
+ const result = cleanup(resource);
80
93
  if (result instanceof Promise)
81
- promise = result;
94
+ promise = result.catch((err) => { errors.push(err); });
95
+ }
96
+ catch (err) {
97
+ errors.push(err);
82
98
  }
83
99
  }
84
- if (promise)
85
- return suppress ? promise.catch(() => { }) : promise;
86
- else
87
- return;
88
100
  }
89
- catch (error) {
101
+ if (promise) {
102
+ /* store the pending promise for concurrent-caller guard */
103
+ this.pending = promise.then(() => {
104
+ if (errors.length === 1)
105
+ throw errors[0];
106
+ else if (errors.length > 1)
107
+ throw new AggregateError(errors, "multiple cleanup failures");
108
+ }).finally(() => {
109
+ this.pending = null;
110
+ });
90
111
  if (suppress)
91
- return;
92
- throw error;
112
+ return this.pending.catch(() => { });
113
+ return this.pending;
114
+ }
115
+ else {
116
+ if (!suppress && errors.length === 1)
117
+ throw errors[0];
118
+ else if (!suppress && errors.length > 1)
119
+ throw new AggregateError(errors, "multiple cleanup failures");
120
+ return;
93
121
  }
94
122
  }
95
123
  }
@@ -112,7 +140,7 @@ export function ensureError(error, prefix, debug = false) {
112
140
  else
113
141
  return new Error(msg);
114
142
  }
115
- function runFinally(isAsync, onfinally) {
143
+ function runFinally(isAsync, onfinally, description) {
116
144
  if (!onfinally) {
117
145
  if (isAsync)
118
146
  return Promise.resolve();
@@ -125,14 +153,16 @@ function runFinally(isAsync, onfinally) {
125
153
  }
126
154
  catch (error) {
127
155
  if (isAsync)
128
- return Promise.reject(error);
156
+ return Promise.reject(ensureError(error, description));
129
157
  else
130
- throw error;
158
+ throw ensureError(error, description);
131
159
  }
132
160
  if (!isAsync && result instanceof Promise)
133
161
  throw new Error("onfinally callback returned Promise in non-async context");
134
162
  if (isAsync && !(result instanceof Promise))
135
163
  result = Promise.resolve(result);
164
+ if (isAsync && result instanceof Promise)
165
+ return result.catch((error) => { throw ensureError(error, description); });
136
166
  return result;
137
167
  }
138
168
  function runUnroll(isAsync, spool) {
@@ -213,21 +243,21 @@ export function run(...args) {
213
243
  }
214
244
  catch (arg) {
215
245
  error = ensureError(arg, description);
216
- runFinally(false, onfinally);
246
+ runFinally(false, onfinally, description);
217
247
  runUnroll(false, spool);
218
248
  throw error;
219
249
  }
220
- runFinally(false, onfinally);
250
+ runFinally(false, onfinally, description);
221
251
  return result;
222
252
  }
223
- runFinally(false, onfinally);
253
+ runFinally(false, onfinally, description);
224
254
  runUnroll(false, spool);
225
255
  throw error;
226
256
  }
227
257
  if (result instanceof Promise) {
228
258
  /* asynchronous case (result or error branch) */
229
259
  return result.then(async (result) => {
230
- await runFinally(true, onfinally);
260
+ await runFinally(true, onfinally, description);
231
261
  if (spool && oncleanup)
232
262
  spool.roll(result, oncleanup);
233
263
  return result;
@@ -236,25 +266,25 @@ export function run(...args) {
236
266
  let error = ensureError(arg, description);
237
267
  if (oncatch) {
238
268
  try {
239
- const result = oncatch(error);
240
- await runFinally(true, onfinally);
269
+ const result = await oncatch(error);
270
+ await runFinally(true, onfinally, description);
241
271
  return result;
242
272
  }
243
273
  catch (arg) {
244
274
  error = ensureError(arg, description);
245
- await runFinally(true, onfinally);
275
+ await runFinally(true, onfinally, description);
246
276
  await runUnroll(true, spool);
247
277
  throw error;
248
278
  }
249
279
  }
250
- await runFinally(true, onfinally);
280
+ await runFinally(true, onfinally, description);
251
281
  await runUnroll(true, spool);
252
282
  throw error;
253
283
  });
254
284
  }
255
285
  else {
256
286
  /* synchronous case (result branch) */
257
- runFinally(false, onfinally);
287
+ runFinally(false, onfinally, description);
258
288
  if (spool && oncleanup)
259
289
  spool.roll(result, oncleanup);
260
290
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-plus-error.js","sourceRoot":"","sources":["../src/mqtt-plus-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-plus-error.js","sourceRoot":"","sources":["../src/mqtt-plus-error.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { APISchema, EventKeys, Registration } from "./mqtt-plus-api";
3
3
  import type { WithInfo, InfoEvent } from "./mqtt-plus-info";
4
4
  import { AuthTrait, type AuthOption } from "./mqtt-plus-auth";
5
5
  export declare class EventTrait<T extends APISchema = APISchema> extends AuthTrait<T> {
6
+ private eventControllers;
7
+ destroy(): Promise<void>;
6
8
  event<K extends EventKeys<T> & string>(name: K, callback: WithInfo<T[K], InfoEvent>): Promise<Registration>;
7
9
  event<K extends EventKeys<T> & string>(config: {
8
10
  name: K;
@@ -11,14 +13,14 @@ export declare class EventTrait<T extends APISchema = APISchema> extends AuthTra
11
13
  share?: string;
12
14
  auth?: AuthOption;
13
15
  }): Promise<Registration>;
14
- emit<K extends EventKeys<T> & string>(name: K, ...params: Parameters<T[K]>): void;
16
+ emit<K extends EventKeys<T> & string>(name: K, ...params: Parameters<T[K]>): Promise<void>;
15
17
  emit<K extends EventKeys<T> & string>(config: {
16
18
  name: K;
17
19
  params: Parameters<T[K]>;
18
20
  receiver?: string;
19
21
  options?: IClientPublishOptions;
20
22
  meta?: Record<string, any>;
21
- }): void;
23
+ }): Promise<void>;
22
24
  emit<K extends EventKeys<T> & string>(config: {
23
25
  name: K;
24
26
  params: Parameters<T[K]>;
@@ -23,10 +23,25 @@
23
23
  */
24
24
  import { nanoid } from "nanoid";
25
25
  import { AuthTrait } from "./mqtt-plus-auth";
26
- import { Spool, ensureError } from "./mqtt-plus-error";
26
+ import { Spool, ensureError, run } from "./mqtt-plus-error";
27
27
  /* Event Emission Trait */
28
28
  export class EventTrait extends AuthTrait {
29
+ constructor() {
30
+ super(...arguments);
31
+ /* event state */
32
+ this.eventControllers = new Map();
33
+ }
34
+ /* destroy trait */
35
+ async destroy() {
36
+ for (const controller of this.eventControllers.values())
37
+ controller.abort(new Error("event destroyed"));
38
+ this.eventControllers.clear();
39
+ await super.destroy();
40
+ }
29
41
  async event(nameOrConfig, ...args) {
42
+ /* sanity check lifecycle */
43
+ if (this.destroyed)
44
+ throw new Error("event: instance already destroyed");
30
45
  /* determine actual parameters */
31
46
  let name;
32
47
  let callback;
@@ -54,6 +69,15 @@ export class EventTrait extends AuthTrait {
54
69
  /* sanity check situation */
55
70
  if (this.onRequest.has(`event-emission:${name}`))
56
71
  throw new Error(`event: event "${name}" already registered`);
72
+ /* create per-event controller tracking */
73
+ const requestIds = new Set();
74
+ spool.roll(() => {
75
+ for (const requestId of requestIds) {
76
+ this.eventControllers.get(requestId)?.abort(new Error(`event "${name}" destroyed`));
77
+ this.eventControllers.delete(requestId);
78
+ }
79
+ requestIds.clear();
80
+ });
57
81
  /* generate the corresponding MQTT topics for broadcast and direct use */
58
82
  const topicS = share !== "" ? `$share/${share}/${name}` : name;
59
83
  const topicB = this.options.topicMake(topicS, "event-emission");
@@ -64,39 +88,65 @@ export class EventTrait extends AuthTrait {
64
88
  if (request.receiver && request.receiver !== this.options.id)
65
89
  return;
66
90
  /* determine event information */
91
+ const requestId = request.id;
67
92
  const senderId = request.sender;
68
- if (senderId === undefined || senderId === "")
69
- throw new Error("invalid request: missing sender");
93
+ if (senderId === undefined || senderId === "") {
94
+ this.error(new Error("invalid request: missing sender"));
95
+ return;
96
+ }
97
+ /* sanity check topic/payload name */
98
+ if (topicName !== request.name) {
99
+ this.log("warning", `event name mismatch -- dropped request for "${name}"` +
100
+ ` (topic: "${topicName}", payload: "${request.name}")`, { requestId });
101
+ return;
102
+ }
70
103
  const params = request.params ?? [];
104
+ /* sanity check request id */
105
+ if (this.eventControllers.has(requestId)) {
106
+ this.log("warning", `duplicate event request id -- dropped request for event "${name}"`, { requestId });
107
+ return;
108
+ }
109
+ /* define abort controller and signal */
110
+ const abortController = new AbortController();
111
+ const abortSignal = abortController.signal;
112
+ requestIds.add(requestId);
113
+ this.eventControllers.set(requestId, abortController);
71
114
  /* create information object */
72
- const info = { sender: senderId };
115
+ const info = {
116
+ sender: senderId,
117
+ signal: abortSignal
118
+ };
73
119
  if (request.receiver)
74
120
  info.receiver = request.receiver;
75
121
  if (request.meta)
76
122
  info.meta = request.meta;
77
123
  /* asynchronously execute handler */
78
124
  try {
79
- if (topicName !== request.name)
80
- throw new Error(`event name mismatch (topic: "${topicName}", payload: "${request.name}")`);
81
125
  if (auth)
82
- info.authenticated = await this.authenticated(senderId, request.auth, auth);
83
- if (info.authenticated !== undefined && !info.authenticated)
84
- throw new Error(`event "${name}" failed authentication`);
126
+ info.authenticated = await this.authenticated(senderId, request.auth, auth, `event "${name}"`);
85
127
  await callback(...params, info);
86
128
  }
87
129
  catch (result) {
88
130
  const error = ensureError(result);
89
131
  this.error(error, `handler for event "${name}" failed`);
90
132
  }
133
+ finally {
134
+ abortController.abort();
135
+ requestIds.delete(requestId);
136
+ this.eventControllers.delete(requestId);
137
+ }
91
138
  });
92
139
  spool.roll(() => { this.onRequest.delete(`event-emission:${name}`); });
93
140
  /* subscribe to MQTT topics */
94
141
  await this.subscribeTopicAndSpool(spool, topicB, options);
95
142
  await this.subscribeTopicAndSpool(spool, topicD, options);
96
143
  /* provide a registration for subsequent destruction */
97
- return this.makeRegistration(spool, "event", name, `event-emission:${name}`);
144
+ return this.makeRegistration(spool, "event", name);
98
145
  }
99
146
  emit(nameOrConfig, ...args) {
147
+ /* sanity check lifecycle */
148
+ if (this.destroyed)
149
+ throw new Error("emit: instance already destroyed");
100
150
  /* determine actual parameters */
101
151
  let name;
102
152
  let params;
@@ -133,9 +183,7 @@ export class EventTrait extends AuthTrait {
133
183
  return { topic, payload: message, options: { qos: 2, ...options } };
134
184
  else
135
185
  /* publish message to MQTT topic */
136
- this.publishToTopic(topic, message, { qos: 2, ...options }).catch((err) => {
137
- this.error(err, `emitting event "${name}" failed`);
138
- });
186
+ return run(`publish event as MQTT message to topic "${topic}"`, () => this.publishToTopic(topic, message, { qos: 2, ...options }));
139
187
  }
140
188
  }
141
189
  //# sourceMappingURL=mqtt-plus-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-plus-event.js","sourceRoot":"","sources":["../src/mqtt-plus-event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-plus-event.js","sourceRoot":"","sources":["../src/mqtt-plus-event.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,10 @@ export interface InfoBase {
6
6
  meta?: Record<string, any>;
7
7
  }
8
8
  export interface InfoEvent extends InfoBase {
9
+ signal: AbortSignal;
9
10
  }
10
11
  export interface InfoService extends InfoBase {
12
+ signal: AbortSignal;
11
13
  }
12
14
  export interface InfoSource extends InfoBase {
13
15
  signal: AbortSignal;
@@ -21,19 +21,22 @@ export declare class ServiceCallRequest extends Base {
21
21
  params?: any[] | undefined;
22
22
  auth?: string[] | undefined;
23
23
  meta?: Record<string, any> | undefined;
24
- constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined);
24
+ qos?: 0 | 1 | 2 | undefined;
25
+ constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined, qos?: 0 | 1 | 2 | undefined);
25
26
  }
26
27
  export declare class ServiceCallResponse extends Base {
28
+ name: string;
27
29
  result?: any | undefined;
28
30
  error?: string | undefined;
29
- constructor(id: string, result?: any | undefined, error?: string | undefined, sender?: string, receiver?: string);
31
+ constructor(id: string, name: string, result?: any | undefined, error?: string | undefined, sender?: string, receiver?: string);
30
32
  }
31
33
  export declare class SinkPushRequest extends Base {
32
34
  name: string;
33
35
  params?: any[] | undefined;
34
36
  auth?: string[] | undefined;
35
37
  meta?: Record<string, any> | undefined;
36
- constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined);
38
+ qos?: 0 | 1 | 2 | undefined;
39
+ constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined, qos?: 0 | 1 | 2 | undefined);
37
40
  }
38
41
  export declare class SinkPushResponse extends Base {
39
42
  name: string;
@@ -59,7 +62,8 @@ export declare class SourceFetchRequest extends Base {
59
62
  auth?: string[] | undefined;
60
63
  meta?: Record<string, any> | undefined;
61
64
  credit?: number | undefined;
62
- constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined, credit?: number | undefined);
65
+ qos?: 0 | 1 | 2 | undefined;
66
+ constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined, credit?: number | undefined, qos?: 0 | 1 | 2 | undefined);
63
67
  }
64
68
  export declare class SourceFetchResponse extends Base {
65
69
  name: string;
@@ -82,13 +86,13 @@ export declare class SourceFetchCredit extends Base {
82
86
  export type Message = EventEmission | ServiceCallRequest | ServiceCallResponse | SinkPushRequest | SinkPushResponse | SinkPushChunk | SinkPushCredit | SourceFetchRequest | SourceFetchResponse | SourceFetchChunk | SourceFetchCredit;
83
87
  declare class Msg {
84
88
  makeEventEmission(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>): EventEmission;
85
- makeServiceCallRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>): ServiceCallRequest;
86
- makeServiceCallResponse(id: string, result?: any, error?: string, sender?: string, receiver?: string): ServiceCallResponse;
87
- makeSinkPushRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>): SinkPushRequest;
89
+ makeServiceCallRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>, qos?: 0 | 1 | 2): ServiceCallRequest;
90
+ makeServiceCallResponse(id: string, name: string, result?: any, error?: string, sender?: string, receiver?: string): ServiceCallResponse;
91
+ makeSinkPushRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>, qos?: 0 | 1 | 2): SinkPushRequest;
88
92
  makeSinkPushResponse(id: string, name: string, error?: string, sender?: string, receiver?: string, credit?: number): SinkPushResponse;
89
93
  makeSinkPushChunk(id: string, name: string, chunk?: Uint8Array, error?: string, final?: boolean, sender?: string, receiver?: string): SinkPushChunk;
90
94
  makeSinkPushCredit(id: string, name: string, credit: number, sender?: string, receiver?: string): SinkPushCredit;
91
- makeSourceFetchRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>, credit?: number): SourceFetchRequest;
95
+ makeSourceFetchRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>, credit?: number, qos?: 0 | 1 | 2): SourceFetchRequest;
92
96
  makeSourceFetchResponse(id: string, name: string, error?: string, sender?: string, receiver?: string, meta?: Record<string, any>): SourceFetchResponse;
93
97
  makeSourceFetchChunk(id: string, name: string, chunk?: Uint8Array, error?: string, final?: boolean, sender?: string, receiver?: string): SourceFetchChunk;
94
98
  makeSourceFetchCredit(id: string, name: string, credit: number, sender?: string, receiver?: string): SourceFetchCredit;