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.
- package/README.md +3 -3
- package/cjs/basic-v4.cjs +5 -10
- package/cjs/basic-v4.cjs.map +1 -1
- package/cjs/basic-v5.cjs +5 -10
- package/cjs/basic-v5.cjs.map +1 -1
- package/cjs/index.cjs +22 -20
- package/cjs/index.cjs.map +1 -1
- package/cjs/v4.cjs +22 -20
- package/cjs/v4.cjs.map +1 -1
- package/cjs/v5.cjs +22 -20
- package/cjs/v5.cjs.map +1 -1
- package/code/base.jsy +4 -9
- package/code/router_path.jsy +15 -9
- package/code/with_topic_router.jsy +4 -3
- package/esm/deno/basic-v4.js +5 -10
- package/esm/deno/basic-v4.js.map +1 -1
- package/esm/deno/basic-v5.js +5 -10
- package/esm/deno/basic-v5.js.map +1 -1
- package/esm/deno/index.js +22 -20
- package/esm/deno/index.js.map +1 -1
- package/esm/deno/v4.js +22 -20
- package/esm/deno/v4.js.map +1 -1
- package/esm/deno/v5.js +22 -20
- package/esm/deno/v5.js.map +1 -1
- package/esm/node/basic-v4.js +5 -10
- package/esm/node/basic-v4.js.map +1 -1
- package/esm/node/basic-v4.mjs +5 -10
- package/esm/node/basic-v4.mjs.map +1 -1
- package/esm/node/basic-v5.js +5 -10
- package/esm/node/basic-v5.js.map +1 -1
- package/esm/node/basic-v5.mjs +5 -10
- package/esm/node/basic-v5.mjs.map +1 -1
- package/esm/node/index.js +22 -20
- package/esm/node/index.js.map +1 -1
- package/esm/node/index.mjs +22 -20
- package/esm/node/index.mjs.map +1 -1
- package/esm/node/v4.js +22 -20
- package/esm/node/v4.js.map +1 -1
- package/esm/node/v4.mjs +22 -20
- package/esm/node/v4.mjs.map +1 -1
- package/esm/node/v5.js +22 -20
- package/esm/node/v5.js.map +1 -1
- package/esm/node/v5.mjs +22 -20
- package/esm/node/v5.mjs.map +1 -1
- package/esm/web/basic-v4.js +5 -10
- package/esm/web/basic-v4.js.map +1 -1
- package/esm/web/basic-v4.min.js +1 -1
- package/esm/web/basic-v4.min.js.br +0 -0
- package/esm/web/basic-v4.min.js.gz +0 -0
- package/esm/web/basic-v5.js +5 -10
- package/esm/web/basic-v5.js.map +1 -1
- package/esm/web/basic-v5.min.js +1 -1
- package/esm/web/basic-v5.min.js.br +0 -0
- package/esm/web/basic-v5.min.js.gz +0 -0
- package/esm/web/index.js +22 -20
- package/esm/web/index.js.map +1 -1
- package/esm/web/index.min.js +1 -1
- package/esm/web/index.min.js.br +0 -0
- package/esm/web/index.min.js.gz +0 -0
- package/esm/web/v4.js +22 -20
- package/esm/web/v4.js.map +1 -1
- package/esm/web/v4.min.js +1 -1
- package/esm/web/v4.min.js.br +0 -0
- package/esm/web/v4.min.js.gz +0 -0
- package/esm/web/v5.js +22 -20
- package/esm/web/v5.js.map +1 -1
- package/esm/web/v5.min.js +1 -1
- package/esm/web/v5.min.js.br +0 -0
- package/esm/web/v5.min.js.gz +0 -0
- package/package.json +1 -1
package/esm/node/index.mjs
CHANGED
|
@@ -815,9 +815,10 @@ const with_topic_router = mqtt_topic_router =>
|
|
|
815
815
|
return super._aliases() +
|
|
816
816
|
' sub_topic:subscribe_topic unsub_topic:unsubscribe_topic'}
|
|
817
817
|
|
|
818
|
-
_init_router(opt) {
|
|
819
|
-
|
|
820
|
-
|
|
818
|
+
_init_router(opt, client, target) {
|
|
819
|
+
let router = this.router = target.router =
|
|
820
|
+
mqtt_topic_router(opt, this);
|
|
821
|
+
return router?.invoke}
|
|
821
822
|
get on_topic() {return this.router.add}
|
|
822
823
|
|
|
823
824
|
_sub_chain(topic, ex, topic_prefix) {
|
|
@@ -853,14 +854,20 @@ const mqtt_topic = topic_route =>
|
|
|
853
854
|
.replace(/[*].*$/, '#')
|
|
854
855
|
.replace(/:\w+\??/g, '+');
|
|
855
856
|
|
|
856
|
-
|
|
857
|
+
/* From the [MQTT v5 Spec](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Topic_Names_and)
|
|
858
|
+
4.7.1.2 Multi-level wildcard -- (‘#’ U+0023)
|
|
859
|
+
... MUST be specified either on its own or following a topic level separator.
|
|
860
|
+
In either case it MUST be the last character specified in the Topic Filter
|
|
861
|
+
|
|
862
|
+
4.7.1.3 Single-level wildcard -- (‘+’ U+002B)
|
|
863
|
+
...it MUST occupy an entire level of the filter.
|
|
864
|
+
*/
|
|
865
|
+
|
|
866
|
+
const as_topic_path = (topic_route, id) =>(
|
|
867
|
+
id=1,
|
|
857
868
|
topic_route
|
|
858
|
-
.replace(/#$/, '*')
|
|
859
|
-
.
|
|
860
|
-
.reduce (( sz, v, idx ) => sz +(
|
|
861
|
-
idx & 1 // even entires are body, odd are MQTT + tokens
|
|
862
|
-
? `:$${1 + idx>>1}` // replace with `:$#` sequential ids, using ? for partial entries
|
|
863
|
-
: v ) ) );// pass through body
|
|
869
|
+
.replace(/#$/, '*' )// replace MQTT '#' multi-level wildcard at end
|
|
870
|
+
.replace(/\+/g, () => `:$${id++}` ) );// replace MQTT '+' single-level wildcards
|
|
864
871
|
|
|
865
872
|
function _ignore(pkt, params, ctx) {ctx.done = true;}
|
|
866
873
|
|
|
@@ -1354,15 +1361,10 @@ class MQTTBase {
|
|
|
1354
1361
|
|
|
1355
1362
|
_init_dispatch(opt) {
|
|
1356
1363
|
this.constructor?._once_();
|
|
1357
|
-
let
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
__proto__: opt.on_mqtt_type || {}
|
|
1362
|
-
, router};
|
|
1363
|
-
|
|
1364
|
-
tgt.mqtt_publish ||= router?.invoke;
|
|
1365
|
-
return _mqtt_dispatch(this, tgt)}
|
|
1364
|
+
let target ={__proto__: opt.on_mqtt_type};
|
|
1365
|
+
target.mqtt_publish ||=
|
|
1366
|
+
this._init_router?.(opt, this, target);
|
|
1367
|
+
return _mqtt_dispatch(this, target)}
|
|
1366
1368
|
|
|
1367
1369
|
static _aliases() {
|
|
1368
1370
|
return ' pub:publish sub:subscribe unsub:unsubscribe '}
|
|
@@ -1625,7 +1627,7 @@ class MQTTCore extends MQTTBase {
|
|
|
1625
1627
|
|
|
1626
1628
|
return this} }
|
|
1627
1629
|
|
|
1628
|
-
const version = '0.4.
|
|
1630
|
+
const version = '0.4.1';
|
|
1629
1631
|
|
|
1630
1632
|
const MQTTClient_v4 = /* #__PURE__ */
|
|
1631
1633
|
with_topic_path_router(
|