mqtt-plus 1.4.16 → 1.4.17

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 (68) 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 +26 -0
  5. package/README.md +1 -1
  6. package/doc/mqtt-plus-api.md +21 -12
  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.js +2 -13
  12. package/dst-stage1/mqtt-plus-auth.js.map +1 -1
  13. package/dst-stage1/mqtt-plus-base.d.ts +2 -1
  14. package/dst-stage1/mqtt-plus-base.js +14 -3
  15. package/dst-stage1/mqtt-plus-base.js.map +1 -1
  16. package/dst-stage1/mqtt-plus-error.d.ts +1 -0
  17. package/dst-stage1/mqtt-plus-error.js +62 -38
  18. package/dst-stage1/mqtt-plus-error.js.map +1 -1
  19. package/dst-stage1/mqtt-plus-event.d.ts +2 -0
  20. package/dst-stage1/mqtt-plus-event.js +52 -10
  21. package/dst-stage1/mqtt-plus-event.js.map +1 -1
  22. package/dst-stage1/mqtt-plus-info.d.ts +2 -0
  23. package/dst-stage1/mqtt-plus-msg.d.ts +3 -2
  24. package/dst-stage1/mqtt-plus-msg.js +10 -8
  25. package/dst-stage1/mqtt-plus-msg.js.map +1 -1
  26. package/dst-stage1/mqtt-plus-service.d.ts +2 -0
  27. package/dst-stage1/mqtt-plus-service.js +120 -19
  28. package/dst-stage1/mqtt-plus-service.js.map +1 -1
  29. package/dst-stage1/mqtt-plus-sink.js +104 -39
  30. package/dst-stage1/mqtt-plus-sink.js.map +1 -1
  31. package/dst-stage1/mqtt-plus-source.d.ts +1 -0
  32. package/dst-stage1/mqtt-plus-source.js +81 -59
  33. package/dst-stage1/mqtt-plus-source.js.map +1 -1
  34. package/dst-stage1/mqtt-plus-subscription.js +14 -8
  35. package/dst-stage1/mqtt-plus-subscription.js.map +1 -1
  36. package/dst-stage1/mqtt-plus-timer.d.ts +2 -0
  37. package/dst-stage1/mqtt-plus-timer.js +48 -0
  38. package/dst-stage1/mqtt-plus-timer.js.map +1 -1
  39. package/dst-stage1/mqtt-plus-trace.js +3 -1
  40. package/dst-stage1/mqtt-plus-trace.js.map +1 -1
  41. package/dst-stage1/mqtt-plus-util.js +10 -2
  42. package/dst-stage1/mqtt-plus-util.js.map +1 -1
  43. package/dst-stage1/mqtt-plus-version.d.ts +2 -0
  44. package/dst-stage1/mqtt-plus-version.js +3 -0
  45. package/dst-stage1/mqtt-plus-version.js.map +1 -1
  46. package/dst-stage2/mqtt-plus.cjs.cjs +415 -162
  47. package/dst-stage2/mqtt-plus.esm.js +415 -162
  48. package/dst-stage2/mqtt-plus.umd.js +2 -2
  49. package/etc/d2.mts +19 -13
  50. package/etc/stx.conf +8 -6
  51. package/etc/vite.mts +1 -1
  52. package/package.json +4 -4
  53. package/src/mqtt-plus-auth.ts +2 -14
  54. package/src/mqtt-plus-base.ts +16 -3
  55. package/src/mqtt-plus-error.ts +68 -40
  56. package/src/mqtt-plus-event.ts +56 -11
  57. package/src/mqtt-plus-info.ts +6 -2
  58. package/src/mqtt-plus-msg.ts +9 -6
  59. package/src/mqtt-plus-service.ts +125 -19
  60. package/src/mqtt-plus-sink.ts +109 -39
  61. package/src/mqtt-plus-source.ts +87 -59
  62. package/src/mqtt-plus-subscription.ts +17 -9
  63. package/src/mqtt-plus-timer.ts +52 -0
  64. package/src/mqtt-plus-trace.ts +3 -1
  65. package/src/mqtt-plus-util.ts +11 -2
  66. package/src/mqtt-plus-version.ts +5 -1
  67. package/tst/mqtt-plus-0-broker-mosquitto.ts +2 -2
  68. package/tst/mqtt-plus-7-spool.spec.ts +65 -0
@@ -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,68 @@ 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
+ }
58
67
  /* NOTICE: we operate synchronously until the first
59
68
  cleanup procedure returns a Promise. Then we continue
60
69
  asynchronously, regardless of whether the following
61
70
  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);
71
+ const errors = [];
72
+ let promise;
73
+ while (this.resources.length > 0) {
74
+ const entry = this.resources.pop();
75
+ const resource = entry.resource;
76
+ const cleanup = entry.cleanup;
77
+ if (promise) {
78
+ /* async continuation: isolate each cleanup so one rejection
79
+ does not prevent remaining cleanups from executing */
80
+ promise = promise.then(() => cleanup(resource))
81
+ .catch((err) => { errors.push(err); });
82
+ }
83
+ else {
84
+ /* sync start: wrap individually so a throw
85
+ does not exit the while loop */
86
+ try {
87
+ const result = cleanup(resource);
80
88
  if (result instanceof Promise)
81
- promise = result;
89
+ promise = result.catch((err) => { errors.push(err); });
90
+ }
91
+ catch (err) {
92
+ errors.push(err);
82
93
  }
83
94
  }
84
- if (promise)
85
- return suppress ? promise.catch(() => { }) : promise;
86
- else
87
- return;
88
95
  }
89
- catch (error) {
96
+ if (promise) {
97
+ /* store the pending promise for concurrent-caller guard */
98
+ this.pending = promise.then(() => {
99
+ if (errors.length === 1)
100
+ throw errors[0];
101
+ else if (errors.length > 1)
102
+ throw new AggregateError(errors, "multiple cleanup failures");
103
+ });
104
+ this.pending.then(() => { this.pending = null; }, () => { this.pending = null; });
90
105
  if (suppress)
91
- return;
92
- throw error;
106
+ return this.pending.catch(() => { });
107
+ return this.pending;
108
+ }
109
+ else {
110
+ if (!suppress && errors.length === 1)
111
+ throw errors[0];
112
+ else if (!suppress && errors.length > 1)
113
+ throw new AggregateError(errors, "multiple cleanup failures");
114
+ return;
93
115
  }
94
116
  }
95
117
  }
@@ -112,7 +134,7 @@ export function ensureError(error, prefix, debug = false) {
112
134
  else
113
135
  return new Error(msg);
114
136
  }
115
- function runFinally(isAsync, onfinally) {
137
+ function runFinally(isAsync, onfinally, description) {
116
138
  if (!onfinally) {
117
139
  if (isAsync)
118
140
  return Promise.resolve();
@@ -125,14 +147,16 @@ function runFinally(isAsync, onfinally) {
125
147
  }
126
148
  catch (error) {
127
149
  if (isAsync)
128
- return Promise.reject(error);
150
+ return Promise.reject(ensureError(error, description));
129
151
  else
130
- throw error;
152
+ throw ensureError(error, description);
131
153
  }
132
154
  if (!isAsync && result instanceof Promise)
133
155
  throw new Error("onfinally callback returned Promise in non-async context");
134
156
  if (isAsync && !(result instanceof Promise))
135
157
  result = Promise.resolve(result);
158
+ if (isAsync && result instanceof Promise)
159
+ return result.catch((error) => { throw ensureError(error, description); });
136
160
  return result;
137
161
  }
138
162
  function runUnroll(isAsync, spool) {
@@ -213,21 +237,21 @@ export function run(...args) {
213
237
  }
214
238
  catch (arg) {
215
239
  error = ensureError(arg, description);
216
- runFinally(false, onfinally);
240
+ runFinally(false, onfinally, description);
217
241
  runUnroll(false, spool);
218
242
  throw error;
219
243
  }
220
- runFinally(false, onfinally);
244
+ runFinally(false, onfinally, description);
221
245
  return result;
222
246
  }
223
- runFinally(false, onfinally);
247
+ runFinally(false, onfinally, description);
224
248
  runUnroll(false, spool);
225
249
  throw error;
226
250
  }
227
251
  if (result instanceof Promise) {
228
252
  /* asynchronous case (result or error branch) */
229
253
  return result.then(async (result) => {
230
- await runFinally(true, onfinally);
254
+ await runFinally(true, onfinally, description);
231
255
  if (spool && oncleanup)
232
256
  spool.roll(result, oncleanup);
233
257
  return result;
@@ -237,24 +261,24 @@ export function run(...args) {
237
261
  if (oncatch) {
238
262
  try {
239
263
  const result = oncatch(error);
240
- await runFinally(true, onfinally);
264
+ await runFinally(true, onfinally, description);
241
265
  return result;
242
266
  }
243
267
  catch (arg) {
244
268
  error = ensureError(arg, description);
245
- await runFinally(true, onfinally);
269
+ await runFinally(true, onfinally, description);
246
270
  await runUnroll(true, spool);
247
271
  throw error;
248
272
  }
249
273
  }
250
- await runFinally(true, onfinally);
274
+ await runFinally(true, onfinally, description);
251
275
  await runUnroll(true, spool);
252
276
  throw error;
253
277
  });
254
278
  }
255
279
  else {
256
280
  /* synchronous case (result branch) */
257
- runFinally(false, onfinally);
281
+ runFinally(false, onfinally, description);
258
282
  if (spool && oncleanup)
259
283
  spool.roll(result, oncleanup);
260
284
  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;
@@ -26,7 +26,22 @@ import { AuthTrait } from "./mqtt-plus-auth";
26
26
  import { Spool, ensureError } 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,12 +88,23 @@ 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
+ }
70
97
  const params = request.params ?? [];
98
+ /* define abort controller and signal */
99
+ const abortController = new AbortController();
100
+ const abortSignal = abortController.signal;
101
+ requestIds.add(requestId);
102
+ this.eventControllers.set(requestId, abortController);
71
103
  /* create information object */
72
- const info = { sender: senderId };
104
+ const info = {
105
+ sender: senderId,
106
+ signal: abortSignal
107
+ };
73
108
  if (request.receiver)
74
109
  info.receiver = request.receiver;
75
110
  if (request.meta)
@@ -78,25 +113,34 @@ export class EventTrait extends AuthTrait {
78
113
  try {
79
114
  if (topicName !== request.name)
80
115
  throw new Error(`event name mismatch (topic: "${topicName}", payload: "${request.name}")`);
81
- if (auth)
116
+ if (auth) {
82
117
  info.authenticated = await this.authenticated(senderId, request.auth, auth);
83
- if (info.authenticated !== undefined && !info.authenticated)
84
- throw new Error(`event "${name}" failed authentication`);
118
+ if (!info.authenticated && (typeof auth === "string" || auth.mode === "require"))
119
+ throw new Error(`event "${name}" failed authentication`);
120
+ }
85
121
  await callback(...params, info);
86
122
  }
87
123
  catch (result) {
88
124
  const error = ensureError(result);
89
125
  this.error(error, `handler for event "${name}" failed`);
90
126
  }
127
+ finally {
128
+ abortController.abort();
129
+ requestIds.delete(requestId);
130
+ this.eventControllers.delete(requestId);
131
+ }
91
132
  });
92
133
  spool.roll(() => { this.onRequest.delete(`event-emission:${name}`); });
93
134
  /* subscribe to MQTT topics */
94
135
  await this.subscribeTopicAndSpool(spool, topicB, options);
95
136
  await this.subscribeTopicAndSpool(spool, topicD, options);
96
137
  /* provide a registration for subsequent destruction */
97
- return this.makeRegistration(spool, "event", name, `event-emission:${name}`);
138
+ return this.makeRegistration(spool, "event", name);
98
139
  }
99
140
  emit(nameOrConfig, ...args) {
141
+ /* sanity check lifecycle */
142
+ if (this.destroyed)
143
+ throw new Error("emit: instance already destroyed");
100
144
  /* determine actual parameters */
101
145
  let name;
102
146
  let params;
@@ -133,9 +177,7 @@ export class EventTrait extends AuthTrait {
133
177
  return { topic, payload: message, options: { qos: 2, ...options } };
134
178
  else
135
179
  /* publish message to MQTT topic */
136
- this.publishToTopic(topic, message, { qos: 2, ...options }).catch((err) => {
137
- this.error(err, `emitting event "${name}" failed`);
138
- });
180
+ this.publishToTopic(topic, message, { qos: 2, ...options }).catch(() => { });
139
181
  }
140
182
  }
141
183
  //# 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;EAsBE;AAKF,OAAO,EAAE,MAAM,EAAE,MAA0B,QAAQ,CAAA;AAOnD,OAAO,EAAE,SAAS,EAAmB,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAc,mBAAmB,CAAA;AAE9D,4BAA4B;AAC5B,MAAM,OAAO,UAA4C,SAAQ,SAAY;IAA7E;;QACI,mBAAmB;QACX,qBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAA;IAoOjE,CAAC;IAlOG,qBAAqB;IACZ,KAAK,CAAC,OAAO;QAClB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YACnD,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;QAC7B,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;IAgBD,KAAK,CAAC,KAAK,CACP,YAMC,EACD,GAAG,IAAiB;QAEpB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,SAAS;YACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAExD,mCAAmC;QACnC,IAAI,IAAW,CAAA;QACf,IAAI,QAAmC,CAAA;QACvC,IAAI,OAAO,GAAsC,EAAE,CAAA;QACnD,IAAI,KAAK,GAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;QAClC,IAAI,IAAgC,CAAA;QACpC,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;YACtF,wBAAwB;YACxB,IAAI,GAAO,YAAY,CAAC,IAAI,CAAA;YAC5B,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;YAChC,OAAO,GAAI,YAAY,CAAC,OAAO,IAAI,EAAE,CAAA;YACrC,KAAK,GAAM,YAAY,CAAC,KAAK,IAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;YACrD,IAAI,GAAO,YAAY,CAAC,IAAI,CAAA;QAChC,CAAC;aACI,CAAC;YACF,sBAAsB;YACtB,IAAI,GAAO,YAAY,CAAA;YACvB,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,QAAQ,KAAK,UAAU;YAC9B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAElF,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;QAEzB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,sBAAsB,CAAC,CAAA;QAEhE,4CAA4C;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACZ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC,CAAA;gBACnF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,2EAA2E;QAC3E,MAAM,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAI,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEhF,iCAAiC;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,EAAE,KAAK,EAAE,OAAsB,EAAE,SAAiB,EAAE,EAAE;YAC7F,sBAAsB;YACtB,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE;gBACxD,OAAM;YAEV,mCAAmC;YACnC,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;YAC5B,MAAM,QAAQ,GAAI,OAAO,CAAC,MAAM,CAAA;YAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;gBACxD,OAAM;YACV,CAAC;YACD,MAAM,MAAM,GAAK,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;YAErC,0CAA0C;YAC1C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;YAC7C,MAAM,WAAW,GAAO,eAAe,CAAC,MAAM,CAAA;YAC9C,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;YAErD,iCAAiC;YACjC,MAAM,IAAI,GAAc;gBACpB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,WAAW;aACtB,CAAA;YACD,IAAI,OAAO,CAAC,QAAQ;gBAChB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YACpC,IAAI,OAAO,CAAC,IAAI;gBACZ,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YAE5B,sCAAsC;YACtC,IAAI,CAAC;gBACD,IAAI,SAAS,KAAK,OAAO,CAAC,IAAI;oBAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,gBAAgB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAA;gBAC9F,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;oBAC3E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;wBAC5E,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,yBAAyB,CAAC,CAAA;gBAChE,CAAC;gBACD,MAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;YACnC,CAAC;YACD,OAAO,MAAe,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;gBACjC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,sBAAsB,IAAI,UAAU,CAAC,CAAA;YAC3D,CAAC;oBACO,CAAC;gBACL,eAAe,CAAC,KAAK,EAAE,CAAA;gBACvB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;QACL,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAErE,gCAAgC;QAChC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACzD,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzD,yDAAyD;QACzD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,CAAC;IA0BD,IAAI,CACA,YAOC,EACD,GAAG,IAAiB;QAEpB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,SAAS;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAEvD,mCAAmC;QACnC,IAAI,IAAY,CAAA;QAChB,IAAI,MAA2B,CAAA;QAC/B,IAAI,QAA6B,CAAA;QACjC,IAAI,OAAO,GAA4B,EAAE,CAAA;QACzC,IAAI,IAA0C,CAAA;QAC9C,IAAI,GAA8B,CAAA;QAClC,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;YACtF,wBAAwB;YACxB,IAAI,GAAO,YAAY,CAAC,IAAI,CAAA;YAC5B,MAAM,GAAK,YAAY,CAAC,MAAM,CAAA;YAC9B,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;YAChC,OAAO,GAAI,YAAY,CAAC,OAAO,IAAI,EAAE,CAAA;YACrC,IAAI,GAAO,YAAY,CAAC,IAAI,CAAA;YAC5B,GAAG,GAAQ,YAAY,CAAC,GAAG,CAAA;QAC/B,CAAC;aACI,CAAC;YACF,sBAAsB;YACtB,IAAI,GAAO,YAAY,CAAA;YACvB,MAAM,GAAK,IAAwB,CAAA;QACvC,CAAC;QAED,kCAAkC;QAClC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAA;QAE1B,gCAAgC;QAChC,MAAM,IAAI,GAAQ,IAAI,CAAC,YAAY,EAAE,CAAA;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,OAAO,GAAK,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAChE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE5C,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAA;QAEtE,sBAAsB;QACtB,IAAI,GAAG;YACH,kCAAkC;YAClC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,CAAA;;YAEnE,qCAAqC;YACrC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACnF,CAAC;CACJ"}
@@ -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;
@@ -24,9 +24,10 @@ export declare class ServiceCallRequest extends Base {
24
24
  constructor(id: string, name: string, params?: any[] | undefined, sender?: string, receiver?: string, auth?: string[] | undefined, meta?: Record<string, any> | undefined);
25
25
  }
26
26
  export declare class ServiceCallResponse extends Base {
27
+ name: string;
27
28
  result?: any | undefined;
28
29
  error?: string | undefined;
29
- constructor(id: string, result?: any | undefined, error?: string | undefined, sender?: string, receiver?: string);
30
+ constructor(id: string, name: string, result?: any | undefined, error?: string | undefined, sender?: string, receiver?: string);
30
31
  }
31
32
  export declare class SinkPushRequest extends Base {
32
33
  name: string;
@@ -83,7 +84,7 @@ export type Message = EventEmission | ServiceCallRequest | ServiceCallResponse |
83
84
  declare class Msg {
84
85
  makeEventEmission(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>): EventEmission;
85
86
  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
+ makeServiceCallResponse(id: string, name: string, result?: any, error?: string, sender?: string, receiver?: string): ServiceCallResponse;
87
88
  makeSinkPushRequest(id: string, name: string, params?: any[], sender?: string, receiver?: string, auth?: string[], meta?: Record<string, any>): SinkPushRequest;
88
89
  makeSinkPushResponse(id: string, name: string, error?: string, sender?: string, receiver?: string, credit?: number): SinkPushResponse;
89
90
  makeSinkPushChunk(id: string, name: string, chunk?: Uint8Array, error?: string, final?: boolean, sender?: string, receiver?: string): SinkPushChunk;
@@ -24,7 +24,7 @@
24
24
  /* external requirements */
25
25
  import * as v from "valibot";
26
26
  import { EncodeTrait } from "./mqtt-plus-encode";
27
- import { version, VERSION, versionToNum } from "./mqtt-plus-version";
27
+ import { version, VERSION, minVersion, MIN_VERSION, versionToNum } from "./mqtt-plus-version";
28
28
  /* meta validation schema (non-array plain object) */
29
29
  const MetaSchema = v.pipe(v.record(v.string(), v.unknown()), v.check((data) => !Array.isArray(data)));
30
30
  /* reusable auth validation schema (max 8 tokens, max 8192 chars each) */
@@ -84,8 +84,9 @@ const ServiceCallRequestSchema = v.strictObject({
84
84
  });
85
85
  /* service response */
86
86
  export class ServiceCallResponse extends Base {
87
- constructor(id, result, error, sender, receiver) {
87
+ constructor(id, name, result, error, sender, receiver) {
88
88
  super("service-call-response", id, sender, receiver);
89
+ this.name = name;
89
90
  this.result = result;
90
91
  this.error = error;
91
92
  }
@@ -93,6 +94,7 @@ export class ServiceCallResponse extends Base {
93
94
  const ServiceCallResponseSchema = v.strictObject({
94
95
  ...BaseSchema,
95
96
  type: v.literal("service-call-response"),
97
+ name: v.string(),
96
98
  result: v.optional(v.unknown()),
97
99
  error: v.optional(v.string())
98
100
  });
@@ -160,7 +162,7 @@ const SinkPushCreditSchema = v.strictObject({
160
162
  ...BaseSchema,
161
163
  type: v.literal("sink-push-credit"),
162
164
  name: v.string(),
163
- credit: v.pipe(v.number(), v.integer(), v.minValue(1))
165
+ credit: v.pipe(v.number(), v.integer(), v.minValue(0))
164
166
  });
165
167
  /* source fetch request */
166
168
  export class SourceFetchRequest extends Base {
@@ -239,8 +241,8 @@ class Msg {
239
241
  makeServiceCallRequest(id, name, params, sender, receiver, auth, meta) {
240
242
  return new ServiceCallRequest(id, name, params, sender, receiver, auth, meta);
241
243
  }
242
- makeServiceCallResponse(id, result, error, sender, receiver) {
243
- return new ServiceCallResponse(id, result, error, sender, receiver);
244
+ makeServiceCallResponse(id, name, result, error, sender, receiver) {
245
+ return new ServiceCallResponse(id, name, result, error, sender, receiver);
244
246
  }
245
247
  makeSinkPushRequest(id, name, params, sender, receiver, auth, meta) {
246
248
  return new SinkPushRequest(id, name, params, sender, receiver, auth, meta);
@@ -276,8 +278,8 @@ class Msg {
276
278
  throw new Error("invalid object: missing or invalid \"version\" field");
277
279
  const match = obj.version.match(/^MQTT\+\/(\d+\.\d+)$/);
278
280
  const versionNum = match !== null ? versionToNum(match[1]) : 0;
279
- if (versionNum !== version)
280
- throw new Error(`protocol version mismatch (expected version ${VERSION}, got version ${obj.version})`);
281
+ if (Math.floor(versionNum / 100) !== Math.floor(version / 100) || versionNum < minVersion)
282
+ throw new Error(`protocol version mismatch (expected version ${MIN_VERSION}...${VERSION}, got version ${obj.version})`);
281
283
  /* helper function for Valibot-based validation */
282
284
  const parseObject = (obj, name, schema) => {
283
285
  const res = v.safeParse(schema, obj);
@@ -300,7 +302,7 @@ class Msg {
300
302
  }
301
303
  else if (obj.type === "service-call-response") {
302
304
  const out = parseObject(obj, "ServiceCallResponse", ServiceCallResponseSchema);
303
- return this.makeServiceCallResponse(out.id, out.result, out.error, out.sender, out.receiver);
305
+ return this.makeServiceCallResponse(out.id, out.name, out.result, out.error, out.sender, out.receiver);
304
306
  }
305
307
  else if (obj.type === "sink-push-request") {
306
308
  const out = parseObject(obj, "SinkPushRequest", SinkPushRequestSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-plus-msg.js","sourceRoot":"","sources":["../src/mqtt-plus-msg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-plus-msg.js","sourceRoot":"","sources":["../src/mqtt-plus-msg.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import type { WithInfo, InfoService } from "./mqtt-plus-info";
4
4
  import { EventTrait } from "./mqtt-plus-event";
5
5
  import type { AuthOption } from "./mqtt-plus-auth";
6
6
  export declare class ServiceTrait<T extends APISchema = APISchema> extends EventTrait<T> {
7
+ private serviceControllers;
8
+ destroy(): Promise<void>;
7
9
  service<K extends ServiceKeys<T> & string>(name: K, callback: WithInfo<T[K], InfoService>): Promise<Registration>;
8
10
  service<K extends ServiceKeys<T> & string>(config: {
9
11
  name: K;