u8-mqtt 0.6.4 → 0.6.5
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/cjs/basic-v4.cjs +1 -1
- package/cjs/basic-v5.cjs +1 -1
- package/cjs/full-v4.cjs +30 -23
- package/cjs/full-v4.cjs.map +1 -1
- package/cjs/full-v5.cjs +30 -23
- package/cjs/full-v5.cjs.map +1 -1
- package/cjs/index.cjs +30 -23
- package/cjs/index.cjs.map +1 -1
- package/cjs/v4.cjs +30 -23
- package/cjs/v4.cjs.map +1 -1
- package/cjs/v5.cjs +30 -23
- package/cjs/v5.cjs.map +1 -1
- package/code/router_path.jsy +19 -16
- package/esm/basic-v4.js +1 -1
- package/esm/basic-v5.js +1 -1
- package/esm/deno/basic-v4.js +1 -1
- package/esm/deno/basic-v5.js +1 -1
- package/esm/deno/full-v4.js +30 -23
- package/esm/deno/full-v4.js.map +1 -1
- package/esm/deno/full-v5.js +30 -23
- package/esm/deno/full-v5.js.map +1 -1
- package/esm/deno/index.js +30 -23
- package/esm/deno/index.js.map +1 -1
- package/esm/deno/v4.js +30 -23
- package/esm/deno/v4.js.map +1 -1
- package/esm/deno/v5.js +30 -23
- package/esm/deno/v5.js.map +1 -1
- package/esm/full-v4.js +30 -23
- package/esm/full-v4.js.map +1 -1
- package/esm/full-v5.js +30 -23
- package/esm/full-v5.js.map +1 -1
- package/esm/index.js +30 -23
- package/esm/index.js.map +1 -1
- package/esm/node/basic-v4.js +1 -1
- package/esm/node/basic-v4.mjs +1 -1
- package/esm/node/basic-v5.js +1 -1
- package/esm/node/basic-v5.mjs +1 -1
- package/esm/node/full-v4.js +30 -23
- package/esm/node/full-v4.js.map +1 -1
- package/esm/node/full-v4.mjs +30 -23
- package/esm/node/full-v4.mjs.map +1 -1
- package/esm/node/full-v5.js +30 -23
- package/esm/node/full-v5.js.map +1 -1
- package/esm/node/full-v5.mjs +30 -23
- package/esm/node/full-v5.mjs.map +1 -1
- package/esm/node/index.js +30 -23
- package/esm/node/index.js.map +1 -1
- package/esm/node/index.mjs +30 -23
- package/esm/node/index.mjs.map +1 -1
- package/esm/node/v4.js +30 -23
- package/esm/node/v4.js.map +1 -1
- package/esm/node/v4.mjs +30 -23
- package/esm/node/v4.mjs.map +1 -1
- package/esm/node/v5.js +30 -23
- package/esm/node/v5.js.map +1 -1
- package/esm/node/v5.mjs +30 -23
- package/esm/node/v5.mjs.map +1 -1
- package/esm/v4.js +30 -23
- package/esm/v4.js.map +1 -1
- package/esm/v5.js +30 -23
- package/esm/v5.js.map +1 -1
- package/esm/web/basic-v4.js +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 +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/full-v4.js +30 -23
- package/esm/web/full-v4.js.map +1 -1
- package/esm/web/full-v4.min.js +1 -1
- package/esm/web/full-v4.min.js.br +0 -0
- package/esm/web/full-v4.min.js.gz +0 -0
- package/esm/web/full-v5.js +30 -23
- package/esm/web/full-v5.js.map +1 -1
- package/esm/web/full-v5.min.js +1 -1
- package/esm/web/full-v5.min.js.br +0 -0
- package/esm/web/full-v5.min.js.gz +0 -0
- package/esm/web/index.js +30 -23
- 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 +30 -23
- 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 +30 -23
- 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 +2 -2
package/esm/node/full-v5.mjs
CHANGED
|
@@ -844,16 +844,20 @@ const mqtt_opts_v5 =
|
|
|
844
844
|
encode_fns: mqtt_encode_v5,
|
|
845
845
|
mqtt_writer: mqtt_writer_v5, };
|
|
846
846
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
847
|
+
/**
|
|
848
|
+
* @param {string|RegExp} input The route pattern
|
|
849
|
+
* @param {boolean} [loose] Allow open-ended matching. Ignored with `RegExp` input.
|
|
850
|
+
*/
|
|
851
|
+
function parse(input, loose) {
|
|
852
|
+
if (input instanceof RegExp) return { keys:false, pattern:input };
|
|
853
|
+
var c, o, tmp, ext, keys=[], pattern='', arr = input.split('/');
|
|
850
854
|
arr[0] || arr.shift();
|
|
851
855
|
|
|
852
856
|
while (tmp = arr.shift()) {
|
|
853
857
|
c = tmp[0];
|
|
854
858
|
if (c === '*') {
|
|
855
|
-
keys.push(
|
|
856
|
-
pattern += '/(.*)';
|
|
859
|
+
keys.push(c);
|
|
860
|
+
pattern += tmp[1] === '?' ? '(?:/(.*))?' : '/(.*)';
|
|
857
861
|
} else if (c === ':') {
|
|
858
862
|
o = tmp.indexOf('?', 1);
|
|
859
863
|
ext = tmp.indexOf('.', 1);
|
|
@@ -1023,18 +1027,23 @@ function mqtt_topic_path_router() {
|
|
|
1023
1027
|
await ctx.mqtt.puback(pkt);} } } }
|
|
1024
1028
|
|
|
1025
1029
|
|
|
1030
|
+
const _regexparam ={
|
|
1031
|
+
get wild() {return this['*']}
|
|
1032
|
+
, set wild(v) {return this['*']=wild} };
|
|
1033
|
+
|
|
1026
1034
|
function * _routes_iter(all_route_lists, topic) {
|
|
1027
1035
|
topic = topic.replace(/^[\/]*/, '/'); // ensure '/' prefix for regexparam library
|
|
1028
|
-
for (let
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1036
|
+
for (let route of all_route_lists.flat()) {
|
|
1037
|
+
let match = route?.pattern.exec(topic);
|
|
1038
|
+
if (match) {
|
|
1039
|
+
let keys = route.keys;
|
|
1040
|
+
if (keys) {
|
|
1041
|
+
let k, i=0, params={__proto__:_regexparam};
|
|
1042
|
+
for (k of keys) {
|
|
1043
|
+
params[k] = match[++i];}
|
|
1044
|
+
yield [route.tgt, params, route];}
|
|
1045
|
+
else {
|
|
1046
|
+
yield [route.tgt, match.groups ?? match, route];} } } }
|
|
1038
1047
|
|
|
1039
1048
|
|
|
1040
1049
|
function _route_remove(all_route_lists, query) {
|
|
@@ -1043,16 +1052,14 @@ function _route_remove(all_route_lists, query) {
|
|
|
1043
1052
|
let idx_tip = 0;
|
|
1044
1053
|
for (let route of lst) {
|
|
1045
1054
|
// skip matching routes to remove from compacted list
|
|
1046
|
-
|
|
1047
|
-
if (route.topic === query.topic)
|
|
1048
|
-
|
|
1049
|
-
if (route.tgt === query.tgt) continue}
|
|
1055
|
+
let skip = route === query;
|
|
1056
|
+
if (!skip && route.topic === query.topic)
|
|
1057
|
+
skip = (null == query.tgt) || (route.tgt === query.tgt);
|
|
1050
1058
|
|
|
1051
|
-
lst[idx_tip++] = route;}
|
|
1059
|
+
if (!skip) lst[idx_tip++] = route;}
|
|
1052
1060
|
|
|
1053
1061
|
// truncate remaining list
|
|
1054
|
-
|
|
1055
|
-
ans = true;}
|
|
1062
|
+
lst.length = idx_tip;}
|
|
1056
1063
|
|
|
1057
1064
|
return ans}
|
|
1058
1065
|
|
|
@@ -1669,7 +1676,7 @@ class MQTTCore extends MQTTBase {
|
|
|
1669
1676
|
|
|
1670
1677
|
return this} }
|
|
1671
1678
|
|
|
1672
|
-
const version = '0.6.
|
|
1679
|
+
const version = '0.6.5-node';
|
|
1673
1680
|
|
|
1674
1681
|
const MQTTClient_v4 = /* #__PURE__ */
|
|
1675
1682
|
with_topic_path_router(
|