u8-mqtt 0.4.0 → 0.4.1

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 (70) hide show
  1. package/README.md +3 -3
  2. package/cjs/basic-v4.cjs +5 -10
  3. package/cjs/basic-v4.cjs.map +1 -1
  4. package/cjs/basic-v5.cjs +5 -10
  5. package/cjs/basic-v5.cjs.map +1 -1
  6. package/cjs/index.cjs +22 -20
  7. package/cjs/index.cjs.map +1 -1
  8. package/cjs/v4.cjs +22 -20
  9. package/cjs/v4.cjs.map +1 -1
  10. package/cjs/v5.cjs +22 -20
  11. package/cjs/v5.cjs.map +1 -1
  12. package/code/base.jsy +4 -9
  13. package/code/router_path.jsy +15 -9
  14. package/code/with_topic_router.jsy +4 -3
  15. package/esm/deno/basic-v4.js +5 -10
  16. package/esm/deno/basic-v4.js.map +1 -1
  17. package/esm/deno/basic-v5.js +5 -10
  18. package/esm/deno/basic-v5.js.map +1 -1
  19. package/esm/deno/index.js +22 -20
  20. package/esm/deno/index.js.map +1 -1
  21. package/esm/deno/v4.js +22 -20
  22. package/esm/deno/v4.js.map +1 -1
  23. package/esm/deno/v5.js +22 -20
  24. package/esm/deno/v5.js.map +1 -1
  25. package/esm/node/basic-v4.js +5 -10
  26. package/esm/node/basic-v4.js.map +1 -1
  27. package/esm/node/basic-v4.mjs +5 -10
  28. package/esm/node/basic-v4.mjs.map +1 -1
  29. package/esm/node/basic-v5.js +5 -10
  30. package/esm/node/basic-v5.js.map +1 -1
  31. package/esm/node/basic-v5.mjs +5 -10
  32. package/esm/node/basic-v5.mjs.map +1 -1
  33. package/esm/node/index.js +22 -20
  34. package/esm/node/index.js.map +1 -1
  35. package/esm/node/index.mjs +22 -20
  36. package/esm/node/index.mjs.map +1 -1
  37. package/esm/node/v4.js +22 -20
  38. package/esm/node/v4.js.map +1 -1
  39. package/esm/node/v4.mjs +22 -20
  40. package/esm/node/v4.mjs.map +1 -1
  41. package/esm/node/v5.js +22 -20
  42. package/esm/node/v5.js.map +1 -1
  43. package/esm/node/v5.mjs +22 -20
  44. package/esm/node/v5.mjs.map +1 -1
  45. package/esm/web/basic-v4.js +5 -10
  46. package/esm/web/basic-v4.js.map +1 -1
  47. package/esm/web/basic-v4.min.js +1 -1
  48. package/esm/web/basic-v4.min.js.br +0 -0
  49. package/esm/web/basic-v4.min.js.gz +0 -0
  50. package/esm/web/basic-v5.js +5 -10
  51. package/esm/web/basic-v5.js.map +1 -1
  52. package/esm/web/basic-v5.min.js +1 -1
  53. package/esm/web/basic-v5.min.js.br +0 -0
  54. package/esm/web/basic-v5.min.js.gz +0 -0
  55. package/esm/web/index.js +22 -20
  56. package/esm/web/index.js.map +1 -1
  57. package/esm/web/index.min.js +1 -1
  58. package/esm/web/index.min.js.br +0 -0
  59. package/esm/web/index.min.js.gz +0 -0
  60. package/esm/web/v4.js +22 -20
  61. package/esm/web/v4.js.map +1 -1
  62. package/esm/web/v4.min.js +1 -1
  63. package/esm/web/v4.min.js.br +0 -0
  64. package/esm/web/v4.min.js.gz +0 -0
  65. package/esm/web/v5.js +22 -20
  66. package/esm/web/v5.js.map +1 -1
  67. package/esm/web/v5.min.js +1 -1
  68. package/esm/web/v5.min.js.br +0 -0
  69. package/esm/web/v5.min.js.gz +0 -0
  70. package/package.json +1 -1
package/esm/deno/v5.js CHANGED
@@ -812,9 +812,10 @@ const with_topic_router = mqtt_topic_router =>
812
812
  return super._aliases() +
813
813
  ' sub_topic:subscribe_topic unsub_topic:unsubscribe_topic'}
814
814
 
815
- _init_router(opt) {
816
- return mqtt_topic_router(opt, this)}
817
-
815
+ _init_router(opt, client, target) {
816
+ let router = this.router = target.router =
817
+ mqtt_topic_router(opt, this);
818
+ return router?.invoke}
818
819
  get on_topic() {return this.router.add}
819
820
 
820
821
  _sub_chain(topic, ex, topic_prefix) {
@@ -850,14 +851,20 @@ const mqtt_topic = topic_route =>
850
851
  .replace(/[*].*$/, '#')
851
852
  .replace(/:\w+\??/g, '+');
852
853
 
853
- const as_topic_path = topic_route =>(
854
+ /* From the [MQTT v5 Spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Topic_Names_and)
855
+ 4.7.1.2 Multi-level wildcard -- (‘#’ U+0023)
856
+ ... MUST be specified either on its own or following a topic level separator.
857
+ In either case it MUST be the last character specified in the Topic Filter
858
+
859
+ 4.7.1.3 Single-level wildcard -- (‘+’ U+002B)
860
+ ...it MUST occupy an entire level of the filter.
861
+ */
862
+
863
+ const as_topic_path = (topic_route, id) =>(
864
+ id=1,
854
865
  topic_route
855
- .replace(/#$/, '*') // replace MQTT # wildcard at end
856
- .split(/([^\/]*[+][^\/]*)/) // split on MQTT + match tokens
857
- .reduce (( sz, v, idx ) => sz +(
858
- idx & 1 // even entires are body, odd are MQTT + tokens
859
- ? `:$${1 + idx>>1}` // replace with `:$#` sequential ids, using ? for partial entries
860
- : v ) ) );// pass through body
866
+ .replace(/#$/, '*' )// replace MQTT '#' multi-level wildcard at end
867
+ .replace(/\+/g, () => `:$${id++}` ) );// replace MQTT '+' single-level wildcards
861
868
 
862
869
  function _ignore(pkt, params, ctx) {ctx.done = true;}
863
870
 
@@ -1351,15 +1358,10 @@ class MQTTBase {
1351
1358
 
1352
1359
  _init_dispatch(opt) {
1353
1360
  this.constructor?._once_();
1354
- let router = this.router =
1355
- this._init_router?.(opt, this);
1356
-
1357
- let tgt ={
1358
- __proto__: opt.on_mqtt_type || {}
1359
- , router};
1360
-
1361
- tgt.mqtt_publish ||= router?.invoke;
1362
- return _mqtt_dispatch(this, tgt)}
1361
+ let target ={__proto__: opt.on_mqtt_type};
1362
+ target.mqtt_publish ||=
1363
+ this._init_router?.(opt, this, target);
1364
+ return _mqtt_dispatch(this, target)}
1363
1365
 
1364
1366
  static _aliases() {
1365
1367
  return ' pub:publish sub:subscribe unsub:unsubscribe '}
@@ -1622,7 +1624,7 @@ class MQTTCore extends MQTTBase {
1622
1624
 
1623
1625
  return this} }
1624
1626
 
1625
- const version = '0.4.0';
1627
+ const version = '0.4.1';
1626
1628
 
1627
1629
  const MQTTClient_v4 = /* #__PURE__ */
1628
1630
  with_topic_path_router(