u8-mqtt 0.6.6 → 0.6.7

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 (109) hide show
  1. package/cjs/basic-v4.cjs +16 -11
  2. package/cjs/basic-v4.cjs.map +1 -1
  3. package/cjs/basic-v5.cjs +16 -11
  4. package/cjs/basic-v5.cjs.map +1 -1
  5. package/cjs/full-v4.cjs +17 -12
  6. package/cjs/full-v4.cjs.map +1 -1
  7. package/cjs/full-v5.cjs +17 -12
  8. package/cjs/full-v5.cjs.map +1 -1
  9. package/cjs/index.cjs +17 -12
  10. package/cjs/index.cjs.map +1 -1
  11. package/cjs/v4.cjs +17 -12
  12. package/cjs/v4.cjs.map +1 -1
  13. package/cjs/v5.cjs +17 -12
  14. package/cjs/v5.cjs.map +1 -1
  15. package/code/_conn.jsy +5 -4
  16. package/code/base.jsy +3 -2
  17. package/code/core.jsy +7 -4
  18. package/esm/basic-v4.js +16 -11
  19. package/esm/basic-v4.js.map +1 -1
  20. package/esm/basic-v5.js +16 -11
  21. package/esm/basic-v5.js.map +1 -1
  22. package/esm/deno/basic-v4.js +16 -11
  23. package/esm/deno/basic-v4.js.map +1 -1
  24. package/esm/deno/basic-v5.js +16 -11
  25. package/esm/deno/basic-v5.js.map +1 -1
  26. package/esm/deno/full-v4.js +17 -12
  27. package/esm/deno/full-v4.js.map +1 -1
  28. package/esm/deno/full-v5.js +17 -12
  29. package/esm/deno/full-v5.js.map +1 -1
  30. package/esm/deno/index.js +17 -12
  31. package/esm/deno/index.js.map +1 -1
  32. package/esm/deno/v4.js +17 -12
  33. package/esm/deno/v4.js.map +1 -1
  34. package/esm/deno/v5.js +17 -12
  35. package/esm/deno/v5.js.map +1 -1
  36. package/esm/full-v4.js +17 -12
  37. package/esm/full-v4.js.map +1 -1
  38. package/esm/full-v5.js +17 -12
  39. package/esm/full-v5.js.map +1 -1
  40. package/esm/index.js +17 -12
  41. package/esm/index.js.map +1 -1
  42. package/esm/node/basic-v4.js +16 -11
  43. package/esm/node/basic-v4.js.map +1 -1
  44. package/esm/node/basic-v4.mjs +16 -11
  45. package/esm/node/basic-v4.mjs.map +1 -1
  46. package/esm/node/basic-v5.js +16 -11
  47. package/esm/node/basic-v5.js.map +1 -1
  48. package/esm/node/basic-v5.mjs +16 -11
  49. package/esm/node/basic-v5.mjs.map +1 -1
  50. package/esm/node/full-v4.js +17 -12
  51. package/esm/node/full-v4.js.map +1 -1
  52. package/esm/node/full-v4.mjs +17 -12
  53. package/esm/node/full-v4.mjs.map +1 -1
  54. package/esm/node/full-v5.js +17 -12
  55. package/esm/node/full-v5.js.map +1 -1
  56. package/esm/node/full-v5.mjs +17 -12
  57. package/esm/node/full-v5.mjs.map +1 -1
  58. package/esm/node/index.js +17 -12
  59. package/esm/node/index.js.map +1 -1
  60. package/esm/node/index.mjs +17 -12
  61. package/esm/node/index.mjs.map +1 -1
  62. package/esm/node/v4.js +17 -12
  63. package/esm/node/v4.js.map +1 -1
  64. package/esm/node/v4.mjs +17 -12
  65. package/esm/node/v4.mjs.map +1 -1
  66. package/esm/node/v5.js +17 -12
  67. package/esm/node/v5.js.map +1 -1
  68. package/esm/node/v5.mjs +17 -12
  69. package/esm/node/v5.mjs.map +1 -1
  70. package/esm/v4.js +17 -12
  71. package/esm/v4.js.map +1 -1
  72. package/esm/v5.js +17 -12
  73. package/esm/v5.js.map +1 -1
  74. package/esm/web/basic-v4.js +16 -11
  75. package/esm/web/basic-v4.js.map +1 -1
  76. package/esm/web/basic-v4.min.js +1 -1
  77. package/esm/web/basic-v4.min.js.br +0 -0
  78. package/esm/web/basic-v4.min.js.gz +0 -0
  79. package/esm/web/basic-v5.js +16 -11
  80. package/esm/web/basic-v5.js.map +1 -1
  81. package/esm/web/basic-v5.min.js +1 -1
  82. package/esm/web/basic-v5.min.js.br +0 -0
  83. package/esm/web/basic-v5.min.js.gz +0 -0
  84. package/esm/web/full-v4.js +17 -12
  85. package/esm/web/full-v4.js.map +1 -1
  86. package/esm/web/full-v4.min.js +1 -1
  87. package/esm/web/full-v4.min.js.br +0 -0
  88. package/esm/web/full-v4.min.js.gz +0 -0
  89. package/esm/web/full-v5.js +17 -12
  90. package/esm/web/full-v5.js.map +1 -1
  91. package/esm/web/full-v5.min.js +1 -1
  92. package/esm/web/full-v5.min.js.br +0 -0
  93. package/esm/web/full-v5.min.js.gz +0 -0
  94. package/esm/web/index.js +17 -12
  95. package/esm/web/index.js.map +1 -1
  96. package/esm/web/index.min.js +1 -1
  97. package/esm/web/index.min.js.br +0 -0
  98. package/esm/web/index.min.js.gz +0 -0
  99. package/esm/web/v4.js +17 -12
  100. package/esm/web/v4.js.map +1 -1
  101. package/esm/web/v4.min.js +1 -1
  102. package/esm/web/v4.min.js.br +0 -0
  103. package/esm/web/v4.min.js.gz +0 -0
  104. package/esm/web/v5.js +17 -12
  105. package/esm/web/v5.js.map +1 -1
  106. package/esm/web/v5.min.js +1 -1
  107. package/esm/web/v5.min.js.br +0 -0
  108. package/esm/web/v5.min.js.gz +0 -0
  109. package/package.json +16 -17
package/cjs/basic-v4.cjs CHANGED
@@ -704,8 +704,9 @@ class MQTTBase {
704
704
  return this.conn.on_conn(pkt, response)}
705
705
 
706
706
  async disconnect(pkt={}) {
707
- let response = await this._send0('disconnect', pkt);
708
- return this.conn.on_dis(pkt, response)}
707
+ let response = this._send0('disconnect', pkt);
708
+ await this.conn.on_dis(pkt, response);
709
+ return await response}
709
710
 
710
711
  async auth(pkt={}) {
711
712
  let response = await this._send0('auth', pkt, 'auth');
@@ -870,11 +871,12 @@ function _mqtt_conn(opt, client, [on_mqtt, pkt_future]) {
870
871
  _dfn_send0.e(err); }// send error to uses of _send0 (connect, auth)
871
872
  _abort.e(err); // abort in-progress connections
872
873
 
873
- delete conn.is_set;
874
- conn.ready = handshake();
875
- client.conn_emit('on_disconnect', false===err, err);}
874
+ if (conn.is_set) {
875
+ delete conn.is_set;
876
+ conn.ready = handshake();
877
+ client.conn_emit('on_disconnect', false===err, err);} }
876
878
 
877
- , abort() {
879
+ , abort(err) {
878
880
  _dfn_ready.e(err); // abort all messages awaiting ready state
879
881
  return conn.reset(err)}
880
882
 
@@ -988,7 +990,7 @@ class MQTTCore extends MQTTBase {
988
990
 
989
991
  // on_ready(client) ::
990
992
  // on_reconnect(client) ::
991
- on_disconnect(client, intentional) {
993
+ on_disconnect(client, intentional, err) {
992
994
  if (! intentional) {
993
995
  return client.on_reconnect?.()} }
994
996
 
@@ -998,12 +1000,12 @@ class MQTTCore extends MQTTBase {
998
1000
  if (opt.toFixed) {opt ={delay: opt};}
999
1001
  return this.with({
1000
1002
  on_reconnect() {
1001
- this.delay(opt.delay || 2000)
1003
+ this.delay(opt.delay || 2000, opt.jitter)
1002
1004
  .then(this.reconnect)
1003
1005
  .then(opt.reconnect, opt.error);} }) }
1004
1006
 
1005
- delay(ms) {
1006
- return new Promise(done => setTimeout(done, ms)) }
1007
+ delay(ms, ms_jitter=0.2*ms) {
1008
+ return new Promise(done => setTimeout(done, 0 | (ms + ms_jitter*Math.random()))) }
1007
1009
 
1008
1010
  with_async_iter(async_iter, write_u8_pkt) {
1009
1011
  this.conn.setup(async_iter,
@@ -1099,6 +1101,9 @@ class MQTTCore extends MQTTBase {
1099
1101
  websock.onmessage = evt =>(
1100
1102
  on_mqtt_chunk(new Uint8Array(evt.data)) );
1101
1103
 
1104
+ websock.onerror = evt => {
1105
+ conn.reset(new Error('websocket error'));};
1106
+
1102
1107
  websock.onclose = evt => {
1103
1108
  if (! evt.wasClean) {
1104
1109
  var err = new Error('websocket close');
@@ -1109,7 +1114,7 @@ class MQTTCore extends MQTTBase {
1109
1114
 
1110
1115
  return this} }
1111
1116
 
1112
- const version = '0.6.6-node';
1117
+ const version = '0.6.7-node';
1113
1118
 
1114
1119
  const MQTTClient_v4 = /* #__PURE__ */
1115
1120
  MQTTCore.mqtt_ctx(4, mqtt_opts_v4);
@@ -1 +1 @@
1
- {"version":3,"file":"basic-v4.cjs","sources":["../node_modules/u8-mqtt-packet/esm/codec_v4_client.js","../node_modules/u8-mqtt-packet/esm/codec_bind.js","../code/_utils.jsy","../code/_cmdid_dispatch.jsy","../code/_dispatch.jsy","../code/base.jsy","../code/_conn.jsy","../code/core.jsy","../code/basic-v4.js"],"sourcesContent":["function encode_varint(n, a=[]) {\n a.push((n<0x80 ? 0 : 0x80) | (n & 0x7f));\n for(; ( n>>>=7 ) > 0 ;)\n a.push((n<0x80 ? 0 : 0x80) | (n & 0x7f));\n return a\n}\n\nfunction decode_varint(u8, i0=0, invalid) {\n let shift=0, i=i0, b=u8[i++], n=(b & 0x7f);\n for(; b & 0x80;)\n n |= ((b=u8[i++]) & 0x7f) << (shift += 7);\n\n return (u8.length < i)\n ? [invalid, i0, i0] // fail: insuffecient u8 bytes to decode\n : [n, i, i0] // successful value\n}\n\nclass mqtt_reason extends Number {\n constructor(v, reason) {\n super(v);\n this.reason = `:${(this.ok = v<0x80) ? 'ok' : 'fail'}:${reason}`;\n }\n}\n\nlet mqtt_reader_v4$1 = class mqtt_reader_v4 {\n static for(pkt, u8_body) { return new this().of(u8_body, {pkt}) }\n of(buf, opt) {\n let step = (width, k) => (k=0|step.k, step.k=k+width, k);\n return {__proto__: this, buf, step, ...opt}\n }\n\n has_more() {\n return this.buf.byteLength > (this.step.k|0)\n }\n\n u8() {\n return this.buf[this.step(1)]\n }\n\n u16() {\n let {buf, step} = this, i = step(2);\n return (buf[i]<<8) | buf[i+1]\n }\n\n u32() {\n let {buf, step} = this, i = step(4);\n return (buf[i]<<24) | (buf[i+1]<<16) | (buf[i+2]<<8) | buf[i+3]\n }\n\n vint() {\n let {buf, step} = this;\n let [n, vi, vi0] = decode_varint(buf, step.k|0);\n step(vi - vi0);\n return n\n }\n\n bin() {\n let {buf, step} = this, i = step(2);\n let len = (buf[i]<<8) | buf[i+1];\n i = step(len);\n return buf.subarray(i, i+len)\n }\n\n utf8() { return new TextDecoder('utf-8').decode(this.bin()) }\n pair() { return [ this.utf8(), this.utf8() ] }\n\n flags(FlagsType) { return new FlagsType(this.buf[this.step(1)]) }\n\n reason(pkt_kind) {\n let v = this.buf[this.step(1)];\n if (null != v)\n return new mqtt_reason(v, this._reason_for?.(v, pkt_kind))\n }\n\n flush() {\n let {buf, step} = this;\n this.step = this.buf = null;\n return buf.subarray(step.k|0)\n }\n\n};\n\nfunction with_reasons(mqtt_reader, by_kind) {\n for (let [k,lut] of Object.entries(by_kind))\n by_kind[k] = new Map(lut);\n\n return class extends mqtt_reader {\n _reason_for(v, pkt_kind) {\n return by_kind[pkt_kind]?.get(v) || by_kind.all.get(v)\n }\n warn(msg) {\n let pkt = this.pkt;\n pkt.warn ? pkt.warn(msg, pkt)\n : console.warn('[u8-mqtt-packet] '+msg);\n }\n }\n}\n\n\nconst reasons_v4 = {\n connack: [\n [ 0x01, 'conn refused: unacceptable protocol version'],\n [ 0x02, 'conn refused: identifier rejected'],\n [ 0x03, 'conn refused: server unavailable'],\n [ 0x04, 'conn refused: bad user name or password'],\n [ 0x05, 'conn refused: not authorized'],\n ],\n suback: [\n [ 0x00, 'qos=0'],\n [ 0x01, 'qos=1'],\n [ 0x02, 'qos=2'],\n ],\n unsuback: [\n [ 0x11, 'no subscription existed'],\n ],\n puback: [\n [ 0x10, 'no matching subscribers'],\n ],\n all: [\n [ 0, ''], // Success\n [ 0x80, 'unspecified error'], // disconnect puback suback unsuback\n [ 0x83, 'implementation specific error'], // connack disconnect puback suback unsuback\n [ 0x87, 'not authorized'], // connack disconnect puback suback unsuback\n [ 0x8F, 'topic filter invalid'], // disconnect suback unsuback\n [ 0x91, 'packet identifier in use'], // puback suback unsuback\n [ 0x92, 'packet identifier not found' ], // pubxxx\n ]};\n\nconst mqtt_reader_v4 = /* #__PURE__ */\n with_reasons(mqtt_reader_v4$1, reasons_v4);\n\nclass mqtt_writer_v4 {\n static for(pkt) { return new this().of() }\n of() { return {__proto__: this, $:[]} }\n\n static init() { return this }\n\n as_pkt(pkt_id) { return this.pack([pkt_id]) }\n\n push(...z) { this.$.push(...z); }\n pack(hdr) {\n let z, i, n=0, parts = this.$;\n this.$ = false;\n for (z of parts) n += z.length;\n\n hdr = encode_varint(n, hdr);\n i = hdr.length;\n\n let pkt = new Uint8Array(i + n);\n pkt.set(hdr, 0);\n for (z of parts) {\n pkt.set(z, i);\n i += z.length;\n }\n return pkt\n }\n\n u8(v) { this.push([ v & 0xff ]); }\n u16(v) { this.push([ (v>>>8) & 0xff, v & 0xff ]); }\n u32(v) { this.push([ (v>>>24) & 0xff, (v>>>16) & 0xff, (v>>>8) & 0xff, v & 0xff ]); }\n vint(v) { this.push( encode_varint(v) );}\n\n bin(u8_buf) {\n if (! u8_buf) return this.u16(0)\n if ('string' === typeof u8_buf)\n return this.utf8(u8_buf)\n\n if (u8_buf.length !== u8_buf.byteLength)\n u8_buf = new Uint8Array(u8_buf);\n\n this.u16(u8_buf.byteLength);\n this.push(u8_buf);\n }\n\n utf8(v) {\n let u8_buf = new TextEncoder('utf-8').encode(v);\n this.u16(u8_buf.byteLength);\n this.push(u8_buf);\n }\n pair(k,v) { this.utf8(k); this.utf8(v); }\n\n flags(v, enc_flags, b0=0) {\n if (undefined !== v && isNaN(+v))\n v = enc_flags(v, 0);\n\n v |= b0;\n this.push([v]);\n return v\n }\n\n reason(v) { this.push([v | 0]); }\n\n flush(buf) {\n if (null != buf)\n this.push(\n 'string' === typeof buf\n ? new TextEncoder('utf-8').encode(buf)\n : buf );\n\n this.push = false;\n }\n}\n\nfunction mqtt_encode_connect(ns, mqtt_writer) {\n const _c_mqtt_proto = new Uint8Array([\n 0, 4, 0x4d, 0x51, 0x54, 0x54 ]);\n\n const _enc_flags_connect = flags => 0\n | ( flags.reserved ? 0x01 : 0 )\n | ( (flags.will_qos & 0x3) << 3 )\n | ( flags.clean_start ? 0x02 : 0 )\n | ( flags.will_flag ? 0x04 : 0 )\n | ( flags.will_retain ? 0x20 : 0 )\n | ( flags.password ? 0x40 : 0 )\n | ( flags.username ? 0x80 : 0 );\n\n const _enc_flags_will = will => 0x4\n | ( (will.qos & 0x3) << 3 )\n | ( will.retain ? 0x20 : 0 );\n\n return ns.connect = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.push(_c_mqtt_proto);\n wrt.u8( mqtt_level );\n\n let {will, username, password} = pkt;\n let flags = wrt.flags(\n pkt.flags,\n _enc_flags_connect,\n 0 | (username ? 0x80 : 0)\n | (password ? 0x40 : 0)\n | (will ? _enc_flags_will(will) : 0) );\n\n wrt.u16(pkt.keep_alive);\n\n if (5 <= mqtt_level)\n wrt.props(pkt.props);\n\n\n wrt.utf8(pkt.client_id);\n if (flags & 0x04) { // .will_flag\n if (5 <= mqtt_level)\n wrt.props(will.props);\n\n wrt.utf8(will.topic);\n wrt.bin(will.payload);\n }\n\n if (flags & 0x80) // .username\n wrt.utf8(username);\n\n if (flags & 0x40) // .password\n wrt.bin(password);\n\n return wrt.as_pkt(0x10)\n }\n}\n\nfunction mqtt_decode_connack(ns, mqtt_reader) {\n class _connack_flags_ extends Number {\n get session_present() { return this & 0x01 !== 0 }\n }\n\n return ns[0x2] = (pkt, u8_body) => {\n let rdr = mqtt_reader.for(pkt, u8_body);\n\n pkt.flags =\n rdr.flags(_connack_flags_);\n\n pkt.reason = rdr.reason(pkt.type);\n if (5 <= pkt.mqtt_level)\n pkt.props = rdr.props();\n return pkt }\n}\n\nfunction mqtt_encode_publish(ns, mqtt_writer) {\n return ns.publish = ( mqtt_level, pkt ) => {\n let qos = (pkt.qos & 0x3) << 1;\n let wrt = mqtt_writer.for(pkt);\n\n wrt.utf8(pkt.topic);\n if (0 !== qos)\n wrt.u16(pkt.pkt_id);\n\n if ( 5 <= mqtt_level) {\n wrt.props(pkt.props);\n wrt.flush(pkt.payload);\n } else {\n wrt.flush(pkt.payload);\n }\n\n return wrt.as_pkt(\n 0x30 | qos | (pkt.dup ? 0x8 : 0) | (pkt.retain ? 0x1 : 0) )\n }\n}\n\nfunction mqtt_decode_publish(ns, mqtt_reader) {\n return ns[0x3] = (pkt, u8_body) => {\n let {hdr} = pkt;\n pkt.dup = Boolean(hdr & 0x8);\n pkt.retain = Boolean(hdr & 0x1);\n let qos = pkt.qos = (hdr>>1) & 0x3;\n\n let rdr = mqtt_reader.for(pkt, u8_body);\n pkt.topic = rdr.utf8();\n if (0 !== qos)\n pkt.pkt_id = rdr.u16();\n\n if (5 <= pkt.mqtt_level)\n pkt.props = rdr.props();\n\n pkt.payload = rdr.flush();\n return pkt }\n}\n\nfunction mqtt_encode_puback(ns, mqtt_writer) {\n return ns.puback = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.u16(pkt.pkt_id);\n if (5 <= mqtt_level) {\n wrt.reason(pkt.reason);\n wrt.props(pkt.props);\n }\n\n return wrt.as_pkt(0x40)\n }\n}\n\n\nfunction mqtt_decode_puback(ns, mqtt_reader) {\n return ns[0x4] = (pkt, u8_body) => {\n let rdr = mqtt_reader.for(pkt, u8_body);\n\n pkt.pkt_id = rdr.u16();\n if (5 <= pkt.mqtt_level) {\n pkt.reason = rdr.reason(pkt.type);\n pkt.props = rdr.props();\n }\n\n return pkt }\n}\n\nfunction mqtt_encode_subscribe(ns, mqtt_writer) {\n const _enc_subscribe_flags = opts => 0\n | ( opts.qos & 0x3 )\n | ( opts.retain ? 0x4 : 0 )\n | ( (opts.retain_handling & 0x3) << 2 );\n\n return ns.subscribe = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.u16(pkt.pkt_id);\n if (5 <= mqtt_level)\n wrt.props(pkt.props);\n\n let f0 = _enc_subscribe_flags(pkt);\n for (let each of pkt.topics) {\n if ('string' === typeof each) {\n wrt.utf8(each);\n wrt.u8(f0);\n } else {\n let [topic, opts] =\n Array.isArray(each) ? each\n : [each.topic, each.opts];\n\n wrt.utf8(topic);\n if (undefined === opts) wrt.u8(f0);\n else wrt.flags(opts, _enc_subscribe_flags);\n }\n }\n\n return wrt.as_pkt(0x82)\n }\n}\n\nfunction mqtt_decode_xxsuback(ns, mqtt_reader) {\n return ns[0x9] = ns[0xb] = (pkt, u8_body) => {\n let rdr = mqtt_reader.for(pkt, u8_body);\n\n pkt.pkt_id = rdr.u16();\n if (5 <= pkt.mqtt_level)\n pkt.props = rdr.props();\n\n let answers = pkt.answers = [];\n while (rdr.has_more())\n answers.push(\n rdr.reason(pkt.type) );\n\n return pkt }\n}\n\nfunction mqtt_encode_unsubscribe(ns, mqtt_writer) {\n return ns.unsubscribe = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.u16(pkt.pkt_id);\n if (5 <= mqtt_level)\n wrt.props(pkt.props);\n\n for (let topic of pkt.topics)\n wrt.utf8(topic);\n\n return wrt.as_pkt(0xa2)\n }\n}\n\nfunction mqtt_encode_pingxxx(ns) {\n ns.pingreq = () => new Uint8Array([ 0xc0, 0 ]);\n ns.pingresp = () => new Uint8Array([ 0xd0, 0 ]);\n}\n\n\nfunction mqtt_decode_pingxxx(ns) {\n return ns[0xc] = ns[0xd] = pkt => pkt\n}\n\nfunction mqtt_encode_disconnect(ns, mqtt_writer) {\n return ns.disconnect = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n if (pkt && 5 <= mqtt_level) {\n if (pkt.reason || pkt.props) {\n wrt.reason(pkt.reason);\n wrt.props(pkt.props);\n }\n }\n\n return wrt.as_pkt(0xe0)\n }\n}\n\n\nfunction mqtt_decode_disconnect(ns, mqtt_reader) {\n return ns[0xe] = (pkt, u8_body) => {\n if (u8_body && 5 <= pkt.mqtt_level) {\n let rdr = mqtt_reader.for(pkt, u8_body);\n pkt.reason = rdr.reason(pkt.type);\n pkt.props = rdr.props();\n }\n return pkt }\n}\n\nconst version = '0.4.1';\n\n// not a v4 packet: import { mqtt_encode_auth, mqtt_decode_auth } from './pkt/auth.js'\n\n\nconst mqtt_decode_v4 = [\n mqtt_decode_connack,\n mqtt_decode_publish,\n mqtt_decode_puback,\n mqtt_decode_xxsuback,\n mqtt_decode_pingxxx,\n mqtt_decode_disconnect,\n];\n\n\nconst mqtt_encode_v4 = [\n mqtt_encode_connect,\n mqtt_encode_puback,\n mqtt_encode_publish,\n mqtt_encode_subscribe,\n mqtt_encode_unsubscribe,\n mqtt_encode_pingxxx,\n mqtt_encode_disconnect,\n];\n\n\nconst mqtt_opts_v4 = \n { decode_fns: mqtt_decode_v4,\n mqtt_reader: mqtt_reader_v4,\n encode_fns: mqtt_encode_v4,\n mqtt_writer: mqtt_writer_v4, };\n\nexport { mqtt_opts_v4 as default, mqtt_decode_v4, mqtt_encode_v4, mqtt_opts_v4, mqtt_reader_v4, mqtt_writer_v4, version };\n//# sourceMappingURL=codec_v4_client.js.map\n","function decode_varint(u8, i0=0, invalid) {\n let shift=0, i=i0, b=u8[i++], n=(b & 0x7f);\n for(; b & 0x80;)\n n |= ((b=u8[i++]) & 0x7f) << (shift += 7);\n\n return (u8.length < i)\n ? [invalid, i0, i0] // fail: insuffecient u8 bytes to decode\n : [n, i, i0] // successful value\n}\n\nfunction mqtt_raw_dispatch(opt) {\n let u8 = new Uint8Array(0), len_tip=0;\n return u8_buf => {\n u8 = 0 === u8.byteLength\n ? u8_buf : _u8_join(u8, u8_buf);\n\n let res = [];\n\n // wait for at least len_tip bytes for next (tip) message\n while ( u8.byteLength >= len_tip ) {\n\n // if varint is incomplete, return len_body=NaN\n let [len_body, len_vh] = decode_varint(u8, 1, NaN);\n let len_pkt = len_body + len_vh; // may be NaN\n\n if (!( len_pkt <= u8.byteLength )) {\n // incomplete packet cases:\n // - len_pkt is less than available bytes\n // - len_pkt is NaN from decode_varint() due to lack of data\n len_tip = len_pkt || 0; // 0 when NaN\n break\n }\n\n let b0 = u8[0];\n let u8_body = 0 === len_body ? null\n : u8.subarray(len_vh, len_pkt);\n\n u8 = u8.subarray(len_pkt);\n\n let pkt = opt.decode_pkt(b0, u8_body, opt);\n if (null != pkt)\n res.push( pkt );\n }\n\n return res\n }\n}\n\nfunction _u8_join(a, b) {\n let alen = a.byteLength, r = new Uint8Array(alen + b.byteLength);\n r.set(a, 0);\n r.set(b, alen);\n return r\n}\n\nconst version = '0.4.1';\n\nconst _pkt_types = ['~', 'connect', 'connack', 'publish', 'puback', 'pubrec', 'pubrel', 'pubcomp', 'subscribe', 'suback', 'unsubscribe', 'unsuback', 'pingreq', 'pingresp', 'disconnect', 'auth'];\n\n\nfunction mqtt_pkt_ctx(mqtt_level, opts, pkt_api=opts.pkt_ctx) {\n let _as_pkt_ctx = pkt_api => ({\n __proto__: pkt_api,\n get hdr() { return this.b0 & 0xf },\n get id() { return this.b0 >>> 4 },\n get type() { return _pkt_types[this.b0 >>> 4] },\n mqtt_level });\n\n\n let op, _decode_by_id=[], _encode_by_type={};\n for (op of opts.encode_fns)\n op(_encode_by_type, opts.mqtt_writer);\n for (op of opts.decode_fns)\n op(_decode_by_id, opts.mqtt_reader);\n\n return {\n pkt_api, pkt_ctx: _as_pkt_ctx(pkt_api),\n\n encode_pkt: (type, pkt) =>\n _encode_by_type[type]( mqtt_level, pkt ),\n\n decode_pkt(b0, u8_body) {\n if (b0.map) // Uint8Array in first arg\n return mqtt_raw_dispatch(this)(b0)[0]\n\n let fn_decode = _decode_by_id[b0>>>4] || _decode_by_id[0];\n return fn_decode?.({__proto__: this.pkt_ctx, b0}, u8_body) },\n\n mqtt_stream(pkt_api=this.pkt_api) {\n let self = { __proto__: this, pkt_ctx: _as_pkt_ctx(pkt_api) };\n self.decode = mqtt_raw_dispatch(self);\n return self },\n }\n}\n\nexport { mqtt_pkt_ctx as default, mqtt_pkt_ctx, version };\n//# sourceMappingURL=codec_bind.js.map\n","export const _isfn = v => typeof v === 'function'\nexport const _isstr = v => typeof v === 'string'\n\nexport function _interval(fn_callback) ::\n let tid\n return @\\ td ::\n tid = clearInterval(tid)\n if td ::\n tid = setInterval(fn_callback, 1000 * td)\n #IF PLAT_DENO\n // ensure the interval allows the Deno event loop to exit\n Deno.unrefTimer(tid)\n #ELSE\n // ensure the interval allows the NodeJS event loop to exit\n tid.unref?.()\n return true\n\n","\nasync function _mqtt_cmd_evt(target, answer, pkt, ctx) ::\n /* target : on_mqtt_type = {\n mqtt_pkt(pkt, ctx) {}, // generic\n\n mqtt_auth(pkt, ctx) {},\n mqtt_connect(pkt, ctx) {},\n mqtt_connack(pkt, ctx) {},\n mqtt_disconnect(pkt, ctx) {},\n\n mqtt_publish(pkt, ctx) {},\n mqtt_subscribe(pkt, ctx) {},\n mqtt_unsubscribe(pkt, ctx) {},\n\n mqtt_pingreq(pkt, ctx) {},\n mqtt_pingresp(pkt, ctx) {},\n } */\n\n let pkt_fn = target[`mqtt_${pkt.type}`] || target.mqtt_pkt\n await pkt_fn?.call(target, pkt, ctx)\n\nfunction _mqtt_cmd_type(target, answer, pkt, ctx) ::\n answer(pkt.type, pkt)\n _mqtt_cmd_evt(target, answer, pkt, ctx)\n\nfunction _mqtt_cmd_id(target, answer, pkt) ::\n answer(pkt.pkt_id, pkt)\n\n\nexport const _mqtt_cmdids = @[]\n _ => {} // 0x0 reserved\n _mqtt_cmd_evt // 0x1 connect\n _mqtt_cmd_type // 0x2 connack\n _mqtt_cmd_evt // 0x3 publish\n _mqtt_cmd_id // 0x4 puback\n _mqtt_cmd_id // 0x5 pubrec\n _mqtt_cmd_id // 0x6 pubrel\n _mqtt_cmd_id // 0x7 pubcomp\n _mqtt_cmd_evt // 0x8 subscribe\n _mqtt_cmd_id // 0x9 suback\n _mqtt_cmd_evt // 0xa unsubscribe\n _mqtt_cmd_id // 0xb unsuback\n _mqtt_cmd_type // 0xc pingreq\n _mqtt_cmd_type // 0xd pingresp\n _mqtt_cmd_evt // 0xe disconnect\n _mqtt_cmd_type // 0xf auth\n\n","import { _isstr } from './_utils.jsy'\nimport {_mqtt_cmdids} from './_cmdid_dispatch.jsy'\n\nexport function _mqtt_dispatch(opt, target) ::\n let hashbelt=[], rotate_ts=0\n // default rotate at 1s across 5 buckets\n let { td: rotate_td=1000, n: rotate_n=5 } = opt?.rotate || {}\n\n // Promise / future scaffolding\n let _pkt_id=100, _ftr_key // use _ftr_key to reuse _by_key closure\n let _ftr_by_key = fn_answer => hashbelt[0].set(_ftr_key, fn_answer)\n\n on_mqtt([]) // init hashbelt and rotate_ts\n return [on_mqtt, pkt_future]\n\n\n function pkt_future(pkt_or_key) ::\n if ! _isstr(pkt_or_key) ::\n _pkt_id = (_pkt_id + 1) & 0xffff // 16-bit unsigned short\n _ftr_key = pkt_or_key.pkt_id = _pkt_id\n else _ftr_key = pkt_or_key\n\n return new Promise(_ftr_by_key)\n\n function answer(key, pkt) ::\n for let map of hashbelt ::\n let fn_answer = map.get(key)\n if fn_answer ::\n map.delete(key)\n\n fn_answer([pkt, /*err*/]) // option/maybe monad\n return true\n return false\n\n function on_mqtt(pkt_list, ctx) ::\n for let pkt of pkt_list ::\n _mqtt_cmdids[pkt.id](target, answer, pkt, ctx)\n\n // rotate after rotate_ts\n let now = Date.now()\n if now > rotate_ts ::\n rotate_ts = rotate_td + now\n hashbelt.unshift(new Map())\n while hashbelt.length > rotate_n ::\n for let fn_answer of hashbelt.pop().values() ::\n fn_answer([/*pkt*/, 'expired']) // option/maybe monad\n\n","import { _isfn, _isstr } from './_utils.jsy'\nimport { _mqtt_dispatch } from './_dispatch.jsy'\n\nexport class MQTTError extends Error ::\n constructor(mqtt_pkt, reason=mqtt_pkt.reason) ::\n // use hex-encoded reasons to match MQTT spec documentation\n super(`[0x${reason.toString(16)}] ${reason.reason}`)\n this.mqtt_pkt = mqtt_pkt\n this.reason = reason\n\nexport class MQTTBase ::\n // Handshaking Packets\n async connect(pkt={}) ::\n let cid = pkt.client_id\n if ! _isstr(cid) ::\n // see init_client_id implementation in core.jsy\n pkt.client_id = cid = this.client_id || this.init_client_id(cid)\n this.client_id = cid\n\n if null == pkt.keep_alive ::\n pkt.keep_alive = 60\n\n let response = await this._send0('connect', pkt, 'connack')\n if 0 != response[0].reason :: // compare to 0 to coerce to number\n throw new this.MQTTError(response[0])\n return this.conn.on_conn(pkt, response)\n\n async disconnect(pkt={}) ::\n let response = await this._send0('disconnect', pkt)\n return this.conn.on_dis(pkt, response)\n\n async auth(pkt={}) ::\n let response = await this._send0('auth', pkt, 'auth')\n if response[0].reason ::\n throw new this.MQTTError(response[0])\n return this.conn.on_auth(pkt, response)\n\n ping() :: return this._send('pingreq', null, 'pingresp')\n puback({pkt_id}) :: return this._send('puback', {pkt_id})\n\n // alias: sub\n subscribe(pkt, ex, topic_prefix) ::\n pkt = _as_topics(pkt, ex, topic_prefix)\n let suback = this._send('subscribe', pkt, pkt)\n return this.on_sub?.(suback, pkt) ?? suback\n\n // alias: unsub\n unsubscribe(pkt, ex, topic_prefix) ::\n pkt = _as_topics(pkt, ex, topic_prefix)\n return this._send('unsubscribe', pkt, pkt)\n\n\n post(topic, payload, pub_opt) :: // qos:0\n return this.pub({topic, payload, qos:0}, pub_opt)\n send(topic, payload, pub_opt) :: // qos:1\n return this.pub({topic, payload, qos:1}, pub_opt)\n store(topic, payload, pub_opt) :: // qos:1, retain: 1\n return this.pub({topic, payload, qos:1, retain: 1}, pub_opt)\n\n // alias: json_post\n obj_post(topic, msg, pub_opt) :: // qos:0\n return this.pub({topic, msg, arg: 'msg', qos:0}, pub_opt)\n // alias: json_send\n obj_send(topic, msg, pub_opt) :: // qos:1\n return this.pub({topic, msg, arg: 'msg', qos:1}, pub_opt)\n // alias: json_store\n obj_store(topic, msg, pub_opt) :: // qos:1, retain: 1\n return this.pub({topic, msg, arg: 'msg', qos:1, retain: 1}, pub_opt)\n\n // alias: publish -- because 'pub' is shorter for semantic aliases above\n async pub(pkt, pub_opt) ::\n if undefined === pkt.payload ::\n if _isfn(pub_opt) ::\n // pub_opt as a function is fn_encode value\n pub_opt = {fn_encode: pub_opt}\n\n let msg = pkt.msg, fn_encode = pub_opt?.fn_encode\n if null == msg || _isfn(msg) ::\n // when msg is a function, return closure using fn_encode\n if msg :: pub_opt = {...pub_opt, fn_encode: msg}\n // return a single-value closure to publish packets\n return v => this.pub({...pkt, [pkt.arg || 'payload']: v}, pub_opt)\n\n // Encode payload from msg; fn_encode allows alternative to JSON.stringify\n pkt.payload = fn_encode\n ? await fn_encode(msg)\n : JSON.stringify(msg)\n\n if pub_opt ::\n if pub_opt.props ::\n pkt.props = pub_opt.props\n if pub_opt.xform ::\n pkt = pub_opt.xform(pkt) || pkt\n\n return this._send @ 'publish', pkt,\n pkt.qos ? pkt : null // key\n\n\n // Internal API\n\n /* async _send0(type, pkt) -- provided by conn and transport */\n /* async _send(type, pkt) -- provided by conn and transport */\n\n _init_dispatch(opt) ::\n this.constructor?._once_()\n let target = @{} __proto__: opt.on_mqtt_type\n target.mqtt_publish ||=\n this._init_router?.(opt, this, target)\n return _mqtt_dispatch(opt, target)\n\n static _aliases() ::\n return ' publish:pub sub:subscribe unsub:unsubscribe json_post:obj_post json_send:obj_send json_store:obj_store'\n\n static _once_(klass=this) ::\n klass._once_ = _=>0\n var alias, name, p = klass.prototype\n p.MQTTError = MQTTError\n for alias of klass._aliases().split(/\\s+/) ::\n [alias, name] = alias.split(':')\n p[alias] = p[name]\n\n\nfunction _as_topics(pkt, ex, topic_prefix) ::\n if ex?.trim :: // string\n topic_prefix = ex\n ex = null\n\n pkt = @\n pkt.trim // string\n ? {topics:[pkt], ... ex}\n : pkt[Symbol.iterator]\n ? {topics:[... pkt], ... ex}\n : ex ? {...pkt, ...ex}\n : pkt\n\n if topic_prefix ::\n // particularly useful with shared queues, e.g.\n // topic_prefix = '$share/some-queue-name/'\n let _prefix_topics = v =>\n v.trim ? topic_prefix+v : v.map(_prefix_topics)\n\n pkt.topics = pkt.topics.map(_prefix_topics)\n return pkt\n\n","import { _interval } from './_utils.jsy'\n\nconst _defer_obj = o => @\n o.p = new Promise @ (a,e) => { o.a=a; o.e=e }\n , o\n\nfunction _dfn_reset(client, attr, fn_after) ::\n // a resetable deferred for a function\n let self = {set}, afn = async (...args) => (await self.p)(...args)\n return set()\n\n function set() ::\n if afn !== client[attr] ::\n _defer_obj(self).p.then(fn_after, _=>0)\n client[attr] = afn\n return self\n\nexport function _mqtt_conn(opt, client, [on_mqtt, pkt_future]) ::\n let _abort\n let _dfn_send0 = _dfn_reset @ client, '_send0', // client._send0 getter/setter\n _=> client.conn_emit('on_live', conn.has_connected)\n let _dfn_ready = _dfn_reset @ client, '_send', // client._send getter/setter\n _=> client.conn_emit('on_ready')\n let _keep_alive_ival = _interval @=> client._send0('pingreq') // resettable interval for keep_alive ping\n\n let conn = Object.create @:\n ping: (td=conn.keep_alive) => _keep_alive_ival(td)\n\n on_conn(pkt, response) ::\n conn.has_connected = true\n conn.keep_alive = opt.keep_alive || response[0].props?.server_keep_alive || pkt.keep_alive\n client.conn_emit('on_conn')\n return opt.use_auth\n ? response // wait on enhanced authentication step\n : conn.on_auth(null, response) // otherwise, connect is also auth\n\n on_auth(pkt, response) ::\n _dfn_ready.a(_dfn_send0.p)\n if 0 != opt.keep_alive ::\n conn.ping()\n client.conn_emit('on_auth', !pkt)\n return response\n\n on_dis(pkt, response) ::\n conn.reset(false)\n return response\n\n reset(err) ::\n if err ::\n _dfn_send0.e(err) // send error to uses of _send0 (connect, auth)\n _abort.e(err) // abort in-progress connections\n\n delete conn.is_set\n conn.ready = handshake()\n client.conn_emit('on_disconnect', false===err, err)\n\n abort() ::\n _dfn_ready.e(err) // abort all messages awaiting ready state\n return conn.reset(err)\n\n async setup(gate, send_u8_pkt, init_msg_loop) ::\n if conn.is_set ::\n throw new Error() // already in-progress\n\n conn.is_set = true\n await gate\n\n // setup send/recv MQTT parsing context\n let mqtt_ctx = client.mqtt_ctx.mqtt_stream()\n\n :: // setup inbound message loop\n let sess_ctx = {mqtt: client} // mutable session context\n let on_mqtt_chunk = u8 => on_mqtt(mqtt_ctx.decode(u8), sess_ctx)\n init_msg_loop(on_mqtt_chunk, conn)\n\n // setup outbound message path and transport connection\n send_u8_pkt = await send_u8_pkt\n _dfn_send0.a @\n async (type, pkt, key) => ::\n let res = undefined !== key\n ? pkt_future(key) : true\n\n await send_u8_pkt @\n mqtt_ctx.encode_pkt(type, pkt)\n return res\n\n conn.ready = handshake()\n return conn\n\n async function handshake() ::\n _abort = _defer_obj({})\n\n _keep_alive_ival(0) // clearInterval on keep alive ping\n _dfn_send0.set() // reset client._send0 if necessary\n _dfn_ready.set() // reset client._send if necessary\n\n try ::\n // set client._send0 as passtrhough after transport connection\n client._send0 = await Promise.race @# _dfn_send0.p, _abort.p\n\n // set client._send as passtrhough after ready\n client._send = await Promise.race @# _dfn_ready.p, _abort.p\n return true\n catch err ::\n return false\n\n","import mqtt_pkt_ctx from 'u8-mqtt-packet/esm/codec_bind.js'\nimport { _isfn } from './_utils.jsy'\nimport { MQTTBase } from './base.jsy'\nimport { _mqtt_conn } from './_conn.jsy'\n\n#IF PLAT_NODEJS\n import {connect as tcp_connect} from 'node:net'\n import {connect as tls_connect} from 'node:tls'\n\nconst pkt_api = @{}\n utf8(u8) :: return new TextDecoder('utf-8').decode(u8 || this.payload )\n json(u8) :: return JSON.parse( this.utf8(u8) || null )\n text(u8) :: return this.utf8(u8)\n\nconst opt_default = @{}\n sess_stg: globalThis.sessionStorage\n\nexport class MQTTCore extends MQTTBase ::\n constructor(opt) ::\n opt = {...opt_default, ...opt}\n super()\n this.with(opt)\n // settings for MQTTCore\n this.sess_stg = opt.sess_stg\n // setup connection and dispatch\n this.conn = _mqtt_conn @ opt, this,\n this._init_dispatch(opt)\n\n with(fns_ns) ::\n for let [k,v] of Object.entries(fns_ns) ::\n if _isfn(v) :: this[k] = v\n return this\n\n\n static mqtt_ctx(mqtt_level, mqtt_opts, pkt_ctx=pkt_api) ::\n let klass = class extends this {}\n klass.prototype.mqtt_ctx =\n mqtt_pkt_ctx(mqtt_level, mqtt_opts, pkt_ctx)\n return klass\n\n\n async conn_emit(evt, arg, err_arg) ::\n this.log_conn?.(evt, arg, err_arg)\n try ::\n let fn_evt = this[await evt] // microtask break using `await evt`\n if fn_evt ::\n await fn_evt.call(this, this, arg, err_arg)\n else if err_arg :: throw err_arg\n catch err ::\n this.on_error(err, evt)\n\n on_error(err, evt) ::\n console.warn @ '[[u8-mqtt error: %s]]', evt, err\n log_conn(evt, arg, err_arg) ::\n console.info @ '[[u8-mqtt conn: %s]]', evt, arg, err_arg\n\n\n // automatic Client Id for connect()\n init_client_id(parts=['u8-mqtt--','']) ::\n let sess_stg = this.sess_stg\n let key, cid = sess_stg?.getItem(key=parts.join(' '))\n if ! cid ::\n cid = parts.join @ Math.random().toString(36).slice(2)\n sess_stg?.setItem(key, cid)\n return cid\n\n\n on_live(client, is_reconnect) ::\n if is_reconnect ::\n return client.connect()\n\n // on_ready(client) ::\n // on_reconnect(client) ::\n on_disconnect(client, intentional) ::\n if ! intentional ::\n return client.on_reconnect?.()\n\n _use_conn(fn_reconnect) ::\n return (this.reconnect = fn_reconnect)?.()\n with_autoreconnect(opt=2000) ::\n if opt.toFixed :: opt = @{} delay: opt\n return this.with @:\n on_reconnect() ::\n this.delay(opt.delay || 2000)\n .then(this.reconnect)\n .then(opt.reconnect, opt.error)\n\n delay(ms) ::\n return new Promise @ done => setTimeout(done, ms)\n\n with_async_iter(async_iter, write_u8_pkt) ::\n this.conn.setup @ async_iter,\n write_u8_pkt,\n async (on_mqtt_chunk, conn) => ::\n try ::\n async_iter = await async_iter\n for await (let chunk of async_iter)\n on_mqtt_chunk(chunk)\n conn.reset()\n catch err ::\n conn.reset(err)\n return this\n\n\n\n #IF PLAT_DENO\n with_tcp(...opt) ::\n opt = this._conn_opt(opt)\n opt.transport = 'tcp'\n return this._use_conn @=>\n this.with_deno_iter @\n Deno.connect(opt)\n\n with_tls(...opt) ::\n opt = this._conn_opt(opt)\n return this._use_conn @=>\n this.with_deno_iter @\n Deno.connectTls(opt)\n\n with_deno_iter(transport) ::\n return this.with_async_iter @\n transport.then(Deno.iter),\n transport.then @ write_stream =>\n u8_pkt => write_stream.write(u8_pkt)\n\n _conn_opt([a0, a1, a2]) ::\n // (port, hostname, options) or (url, options)\n if Number.isFinite(a0) ::\n return {...a2, port: a0, hostname: a1}\n\n a0 = new URL(a0)\n return {...a1, port: a0.port, hostname: a0.hostname}\n\n #IF PLAT_NODEJS\n with_tcp(...opt) ::\n opt = this._conn_opt(opt)\n return this._use_conn @=>\n this.with_stream @\n tcp_connect(opt)\n\n with_tls(...opt) ::\n opt = this._conn_opt(opt)\n return this._use_conn @=>\n this.with_stream @\n tls_connect(opt)\n\n _conn_opt([a0, a1, a2]) ::\n // (port, hostname, options) or (url, options)\n if Number.isFinite(a0) ::\n return {...a2, port: a0, host: a1}\n a0 = new URL(a0)\n return {...a1, port: a0.port, host: a0.hostname}\n\n\n with_stream(read_stream, write_stream) ::\n if undefined === write_stream ::\n write_stream = read_stream\n\n return this.with_async_iter @ read_stream,\n u8_pkt => write_stream.write(u8_pkt)\n\n\n with_websock(websock) ::\n if ! websock?.send ::\n websock = new URL(websock || 'ws://127.0.0.1:9001')\n return this._use_conn @=>\n this.with_websock @\n new WebSocket(websock, ['mqtt'])\n\n websock.binaryType = 'arraybuffer'\n\n let ws_ready, readyState = websock.readyState\n if 1 !== readyState ::\n if 0 !== readyState ::\n throw new Error @ 'WS readyState'\n\n ws_ready = new Promise @ ready => websock.onopen = ready\n\n this.conn.setup @ ws_ready,\n u8_pkt => websock.send(u8_pkt),\n (on_mqtt_chunk, conn) => ::\n websock.onmessage = evt => @\n on_mqtt_chunk @ new Uint8Array(evt.data)\n\n websock.onclose = evt => ::\n if ! evt.wasClean ::\n var err = new Error('websocket close')\n err.code = evt.code\n err.reason = evt.reason\n\n conn.reset(err)\n\n return this\n\nexport { MQTTCore as default }\n","import mqtt_opts_v4 from 'u8-mqtt-packet/esm/codec_v4_client.js'\nimport MQTTCore from './core.jsy'\nexport * from './version.js'\n\nconst MQTTClient_v4 = /* #__PURE__ */\n MQTTCore.mqtt_ctx(4, mqtt_opts_v4)\n\nconst mqtt_v4 = opt =>\n new MQTTClient_v4(opt)\n\nexport {\n MQTTClient_v4,\n MQTTClient_v4 as MQTTClient,\n\n mqtt_v4,\n mqtt_v4 as mqtt,\n mqtt_v4 as default,\n}\n"],"names":["decode_varint","tcp_connect","tls_connect"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"basic-v4.cjs","sources":["../node_modules/u8-mqtt-packet/esm/codec_v4_client.js","../node_modules/u8-mqtt-packet/esm/codec_bind.js","../code/_utils.jsy","../code/_cmdid_dispatch.jsy","../code/_dispatch.jsy","../code/base.jsy","../code/_conn.jsy","../code/core.jsy","../code/basic-v4.js"],"sourcesContent":["function encode_varint(n, a=[]) {\n a.push((n<0x80 ? 0 : 0x80) | (n & 0x7f));\n for(; ( n>>>=7 ) > 0 ;)\n a.push((n<0x80 ? 0 : 0x80) | (n & 0x7f));\n return a\n}\n\nfunction decode_varint(u8, i0=0, invalid) {\n let shift=0, i=i0, b=u8[i++], n=(b & 0x7f);\n for(; b & 0x80;)\n n |= ((b=u8[i++]) & 0x7f) << (shift += 7);\n\n return (u8.length < i)\n ? [invalid, i0, i0] // fail: insuffecient u8 bytes to decode\n : [n, i, i0] // successful value\n}\n\nclass mqtt_reason extends Number {\n constructor(v, reason) {\n super(v);\n this.reason = `:${(this.ok = v<0x80) ? 'ok' : 'fail'}:${reason}`;\n }\n}\n\nlet mqtt_reader_v4$1 = class mqtt_reader_v4 {\n static for(pkt, u8_body) { return new this().of(u8_body, {pkt}) }\n of(buf, opt) {\n let step = (width, k) => (k=0|step.k, step.k=k+width, k);\n return {__proto__: this, buf, step, ...opt}\n }\n\n has_more() {\n return this.buf.byteLength > (this.step.k|0)\n }\n\n u8() {\n return this.buf[this.step(1)]\n }\n\n u16() {\n let {buf, step} = this, i = step(2);\n return (buf[i]<<8) | buf[i+1]\n }\n\n u32() {\n let {buf, step} = this, i = step(4);\n return (buf[i]<<24) | (buf[i+1]<<16) | (buf[i+2]<<8) | buf[i+3]\n }\n\n vint() {\n let {buf, step} = this;\n let [n, vi, vi0] = decode_varint(buf, step.k|0);\n step(vi - vi0);\n return n\n }\n\n bin() {\n let {buf, step} = this, i = step(2);\n let len = (buf[i]<<8) | buf[i+1];\n i = step(len);\n return buf.subarray(i, i+len)\n }\n\n utf8() { return new TextDecoder('utf-8').decode(this.bin()) }\n pair() { return [ this.utf8(), this.utf8() ] }\n\n flags(FlagsType) { return new FlagsType(this.buf[this.step(1)]) }\n\n reason(pkt_kind) {\n let v = this.buf[this.step(1)];\n if (null != v)\n return new mqtt_reason(v, this._reason_for?.(v, pkt_kind))\n }\n\n flush() {\n let {buf, step} = this;\n this.step = this.buf = null;\n return buf.subarray(step.k|0)\n }\n\n};\n\nfunction with_reasons(mqtt_reader, by_kind) {\n for (let [k,lut] of Object.entries(by_kind))\n by_kind[k] = new Map(lut);\n\n return class extends mqtt_reader {\n _reason_for(v, pkt_kind) {\n return by_kind[pkt_kind]?.get(v) || by_kind.all.get(v)\n }\n warn(msg) {\n let pkt = this.pkt;\n pkt.warn ? pkt.warn(msg, pkt)\n : console.warn('[u8-mqtt-packet] '+msg);\n }\n }\n}\n\n\nconst reasons_v4 = {\n connack: [\n [ 0x01, 'conn refused: unacceptable protocol version'],\n [ 0x02, 'conn refused: identifier rejected'],\n [ 0x03, 'conn refused: server unavailable'],\n [ 0x04, 'conn refused: bad user name or password'],\n [ 0x05, 'conn refused: not authorized'],\n ],\n suback: [\n [ 0x00, 'qos=0'],\n [ 0x01, 'qos=1'],\n [ 0x02, 'qos=2'],\n ],\n unsuback: [\n [ 0x11, 'no subscription existed'],\n ],\n puback: [\n [ 0x10, 'no matching subscribers'],\n ],\n all: [\n [ 0, ''], // Success\n [ 0x80, 'unspecified error'], // disconnect puback suback unsuback\n [ 0x83, 'implementation specific error'], // connack disconnect puback suback unsuback\n [ 0x87, 'not authorized'], // connack disconnect puback suback unsuback\n [ 0x8F, 'topic filter invalid'], // disconnect suback unsuback\n [ 0x91, 'packet identifier in use'], // puback suback unsuback\n [ 0x92, 'packet identifier not found' ], // pubxxx\n ]};\n\nconst mqtt_reader_v4 = /* #__PURE__ */\n with_reasons(mqtt_reader_v4$1, reasons_v4);\n\nclass mqtt_writer_v4 {\n static for(pkt) { return new this().of() }\n of() { return {__proto__: this, $:[]} }\n\n static init() { return this }\n\n as_pkt(pkt_id) { return this.pack([pkt_id]) }\n\n push(...z) { this.$.push(...z); }\n pack(hdr) {\n let z, i, n=0, parts = this.$;\n this.$ = false;\n for (z of parts) n += z.length;\n\n hdr = encode_varint(n, hdr);\n i = hdr.length;\n\n let pkt = new Uint8Array(i + n);\n pkt.set(hdr, 0);\n for (z of parts) {\n pkt.set(z, i);\n i += z.length;\n }\n return pkt\n }\n\n u8(v) { this.push([ v & 0xff ]); }\n u16(v) { this.push([ (v>>>8) & 0xff, v & 0xff ]); }\n u32(v) { this.push([ (v>>>24) & 0xff, (v>>>16) & 0xff, (v>>>8) & 0xff, v & 0xff ]); }\n vint(v) { this.push( encode_varint(v) );}\n\n bin(u8_buf) {\n if (! u8_buf) return this.u16(0)\n if ('string' === typeof u8_buf)\n return this.utf8(u8_buf)\n\n if (u8_buf.length !== u8_buf.byteLength)\n u8_buf = new Uint8Array(u8_buf);\n\n this.u16(u8_buf.byteLength);\n this.push(u8_buf);\n }\n\n utf8(v) {\n let u8_buf = new TextEncoder('utf-8').encode(v);\n this.u16(u8_buf.byteLength);\n this.push(u8_buf);\n }\n pair(k,v) { this.utf8(k); this.utf8(v); }\n\n flags(v, enc_flags, b0=0) {\n if (undefined !== v && isNaN(+v))\n v = enc_flags(v, 0);\n\n v |= b0;\n this.push([v]);\n return v\n }\n\n reason(v) { this.push([v | 0]); }\n\n flush(buf) {\n if (null != buf)\n this.push(\n 'string' === typeof buf\n ? new TextEncoder('utf-8').encode(buf)\n : buf );\n\n this.push = false;\n }\n}\n\nfunction mqtt_encode_connect(ns, mqtt_writer) {\n const _c_mqtt_proto = new Uint8Array([\n 0, 4, 0x4d, 0x51, 0x54, 0x54 ]);\n\n const _enc_flags_connect = flags => 0\n | ( flags.reserved ? 0x01 : 0 )\n | ( (flags.will_qos & 0x3) << 3 )\n | ( flags.clean_start ? 0x02 : 0 )\n | ( flags.will_flag ? 0x04 : 0 )\n | ( flags.will_retain ? 0x20 : 0 )\n | ( flags.password ? 0x40 : 0 )\n | ( flags.username ? 0x80 : 0 );\n\n const _enc_flags_will = will => 0x4\n | ( (will.qos & 0x3) << 3 )\n | ( will.retain ? 0x20 : 0 );\n\n return ns.connect = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.push(_c_mqtt_proto);\n wrt.u8( mqtt_level );\n\n let {will, username, password} = pkt;\n let flags = wrt.flags(\n pkt.flags,\n _enc_flags_connect,\n 0 | (username ? 0x80 : 0)\n | (password ? 0x40 : 0)\n | (will ? _enc_flags_will(will) : 0) );\n\n wrt.u16(pkt.keep_alive);\n\n if (5 <= mqtt_level)\n wrt.props(pkt.props);\n\n\n wrt.utf8(pkt.client_id);\n if (flags & 0x04) { // .will_flag\n if (5 <= mqtt_level)\n wrt.props(will.props);\n\n wrt.utf8(will.topic);\n wrt.bin(will.payload);\n }\n\n if (flags & 0x80) // .username\n wrt.utf8(username);\n\n if (flags & 0x40) // .password\n wrt.bin(password);\n\n return wrt.as_pkt(0x10)\n }\n}\n\nfunction mqtt_decode_connack(ns, mqtt_reader) {\n class _connack_flags_ extends Number {\n get session_present() { return this & 0x01 !== 0 }\n }\n\n return ns[0x2] = (pkt, u8_body) => {\n let rdr = mqtt_reader.for(pkt, u8_body);\n\n pkt.flags =\n rdr.flags(_connack_flags_);\n\n pkt.reason = rdr.reason(pkt.type);\n if (5 <= pkt.mqtt_level)\n pkt.props = rdr.props();\n return pkt }\n}\n\nfunction mqtt_encode_publish(ns, mqtt_writer) {\n return ns.publish = ( mqtt_level, pkt ) => {\n let qos = (pkt.qos & 0x3) << 1;\n let wrt = mqtt_writer.for(pkt);\n\n wrt.utf8(pkt.topic);\n if (0 !== qos)\n wrt.u16(pkt.pkt_id);\n\n if ( 5 <= mqtt_level) {\n wrt.props(pkt.props);\n wrt.flush(pkt.payload);\n } else {\n wrt.flush(pkt.payload);\n }\n\n return wrt.as_pkt(\n 0x30 | qos | (pkt.dup ? 0x8 : 0) | (pkt.retain ? 0x1 : 0) )\n }\n}\n\nfunction mqtt_decode_publish(ns, mqtt_reader) {\n return ns[0x3] = (pkt, u8_body) => {\n let {hdr} = pkt;\n pkt.dup = Boolean(hdr & 0x8);\n pkt.retain = Boolean(hdr & 0x1);\n let qos = pkt.qos = (hdr>>1) & 0x3;\n\n let rdr = mqtt_reader.for(pkt, u8_body);\n pkt.topic = rdr.utf8();\n if (0 !== qos)\n pkt.pkt_id = rdr.u16();\n\n if (5 <= pkt.mqtt_level)\n pkt.props = rdr.props();\n\n pkt.payload = rdr.flush();\n return pkt }\n}\n\nfunction mqtt_encode_puback(ns, mqtt_writer) {\n return ns.puback = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.u16(pkt.pkt_id);\n if (5 <= mqtt_level) {\n wrt.reason(pkt.reason);\n wrt.props(pkt.props);\n }\n\n return wrt.as_pkt(0x40)\n }\n}\n\n\nfunction mqtt_decode_puback(ns, mqtt_reader) {\n return ns[0x4] = (pkt, u8_body) => {\n let rdr = mqtt_reader.for(pkt, u8_body);\n\n pkt.pkt_id = rdr.u16();\n if (5 <= pkt.mqtt_level) {\n pkt.reason = rdr.reason(pkt.type);\n pkt.props = rdr.props();\n }\n\n return pkt }\n}\n\nfunction mqtt_encode_subscribe(ns, mqtt_writer) {\n const _enc_subscribe_flags = opts => 0\n | ( opts.qos & 0x3 )\n | ( opts.retain ? 0x4 : 0 )\n | ( (opts.retain_handling & 0x3) << 2 );\n\n return ns.subscribe = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.u16(pkt.pkt_id);\n if (5 <= mqtt_level)\n wrt.props(pkt.props);\n\n let f0 = _enc_subscribe_flags(pkt);\n for (let each of pkt.topics) {\n if ('string' === typeof each) {\n wrt.utf8(each);\n wrt.u8(f0);\n } else {\n let [topic, opts] =\n Array.isArray(each) ? each\n : [each.topic, each.opts];\n\n wrt.utf8(topic);\n if (undefined === opts) wrt.u8(f0);\n else wrt.flags(opts, _enc_subscribe_flags);\n }\n }\n\n return wrt.as_pkt(0x82)\n }\n}\n\nfunction mqtt_decode_xxsuback(ns, mqtt_reader) {\n return ns[0x9] = ns[0xb] = (pkt, u8_body) => {\n let rdr = mqtt_reader.for(pkt, u8_body);\n\n pkt.pkt_id = rdr.u16();\n if (5 <= pkt.mqtt_level)\n pkt.props = rdr.props();\n\n let answers = pkt.answers = [];\n while (rdr.has_more())\n answers.push(\n rdr.reason(pkt.type) );\n\n return pkt }\n}\n\nfunction mqtt_encode_unsubscribe(ns, mqtt_writer) {\n return ns.unsubscribe = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n wrt.u16(pkt.pkt_id);\n if (5 <= mqtt_level)\n wrt.props(pkt.props);\n\n for (let topic of pkt.topics)\n wrt.utf8(topic);\n\n return wrt.as_pkt(0xa2)\n }\n}\n\nfunction mqtt_encode_pingxxx(ns) {\n ns.pingreq = () => new Uint8Array([ 0xc0, 0 ]);\n ns.pingresp = () => new Uint8Array([ 0xd0, 0 ]);\n}\n\n\nfunction mqtt_decode_pingxxx(ns) {\n return ns[0xc] = ns[0xd] = pkt => pkt\n}\n\nfunction mqtt_encode_disconnect(ns, mqtt_writer) {\n return ns.disconnect = ( mqtt_level, pkt ) => {\n let wrt = mqtt_writer.for(pkt);\n\n if (pkt && 5 <= mqtt_level) {\n if (pkt.reason || pkt.props) {\n wrt.reason(pkt.reason);\n wrt.props(pkt.props);\n }\n }\n\n return wrt.as_pkt(0xe0)\n }\n}\n\n\nfunction mqtt_decode_disconnect(ns, mqtt_reader) {\n return ns[0xe] = (pkt, u8_body) => {\n if (u8_body && 5 <= pkt.mqtt_level) {\n let rdr = mqtt_reader.for(pkt, u8_body);\n pkt.reason = rdr.reason(pkt.type);\n pkt.props = rdr.props();\n }\n return pkt }\n}\n\nconst version = '0.4.1';\n\n// not a v4 packet: import { mqtt_encode_auth, mqtt_decode_auth } from './pkt/auth.js'\n\n\nconst mqtt_decode_v4 = [\n mqtt_decode_connack,\n mqtt_decode_publish,\n mqtt_decode_puback,\n mqtt_decode_xxsuback,\n mqtt_decode_pingxxx,\n mqtt_decode_disconnect,\n];\n\n\nconst mqtt_encode_v4 = [\n mqtt_encode_connect,\n mqtt_encode_puback,\n mqtt_encode_publish,\n mqtt_encode_subscribe,\n mqtt_encode_unsubscribe,\n mqtt_encode_pingxxx,\n mqtt_encode_disconnect,\n];\n\n\nconst mqtt_opts_v4 = \n { decode_fns: mqtt_decode_v4,\n mqtt_reader: mqtt_reader_v4,\n encode_fns: mqtt_encode_v4,\n mqtt_writer: mqtt_writer_v4, };\n\nexport { mqtt_opts_v4 as default, mqtt_decode_v4, mqtt_encode_v4, mqtt_opts_v4, mqtt_reader_v4, mqtt_writer_v4, version };\n//# sourceMappingURL=codec_v4_client.js.map\n","function decode_varint(u8, i0=0, invalid) {\n let shift=0, i=i0, b=u8[i++], n=(b & 0x7f);\n for(; b & 0x80;)\n n |= ((b=u8[i++]) & 0x7f) << (shift += 7);\n\n return (u8.length < i)\n ? [invalid, i0, i0] // fail: insuffecient u8 bytes to decode\n : [n, i, i0] // successful value\n}\n\nfunction mqtt_raw_dispatch(opt) {\n let u8 = new Uint8Array(0), len_tip=0;\n return u8_buf => {\n u8 = 0 === u8.byteLength\n ? u8_buf : _u8_join(u8, u8_buf);\n\n let res = [];\n\n // wait for at least len_tip bytes for next (tip) message\n while ( u8.byteLength >= len_tip ) {\n\n // if varint is incomplete, return len_body=NaN\n let [len_body, len_vh] = decode_varint(u8, 1, NaN);\n let len_pkt = len_body + len_vh; // may be NaN\n\n if (!( len_pkt <= u8.byteLength )) {\n // incomplete packet cases:\n // - len_pkt is less than available bytes\n // - len_pkt is NaN from decode_varint() due to lack of data\n len_tip = len_pkt || 0; // 0 when NaN\n break\n }\n\n let b0 = u8[0];\n let u8_body = 0 === len_body ? null\n : u8.subarray(len_vh, len_pkt);\n\n u8 = u8.subarray(len_pkt);\n\n let pkt = opt.decode_pkt(b0, u8_body, opt);\n if (null != pkt)\n res.push( pkt );\n }\n\n return res\n }\n}\n\nfunction _u8_join(a, b) {\n let alen = a.byteLength, r = new Uint8Array(alen + b.byteLength);\n r.set(a, 0);\n r.set(b, alen);\n return r\n}\n\nconst version = '0.4.1';\n\nconst _pkt_types = ['~', 'connect', 'connack', 'publish', 'puback', 'pubrec', 'pubrel', 'pubcomp', 'subscribe', 'suback', 'unsubscribe', 'unsuback', 'pingreq', 'pingresp', 'disconnect', 'auth'];\n\n\nfunction mqtt_pkt_ctx(mqtt_level, opts, pkt_api=opts.pkt_ctx) {\n let _as_pkt_ctx = pkt_api => ({\n __proto__: pkt_api,\n get hdr() { return this.b0 & 0xf },\n get id() { return this.b0 >>> 4 },\n get type() { return _pkt_types[this.b0 >>> 4] },\n mqtt_level });\n\n\n let op, _decode_by_id=[], _encode_by_type={};\n for (op of opts.encode_fns)\n op(_encode_by_type, opts.mqtt_writer);\n for (op of opts.decode_fns)\n op(_decode_by_id, opts.mqtt_reader);\n\n return {\n pkt_api, pkt_ctx: _as_pkt_ctx(pkt_api),\n\n encode_pkt: (type, pkt) =>\n _encode_by_type[type]( mqtt_level, pkt ),\n\n decode_pkt(b0, u8_body) {\n if (b0.map) // Uint8Array in first arg\n return mqtt_raw_dispatch(this)(b0)[0]\n\n let fn_decode = _decode_by_id[b0>>>4] || _decode_by_id[0];\n return fn_decode?.({__proto__: this.pkt_ctx, b0}, u8_body) },\n\n mqtt_stream(pkt_api=this.pkt_api) {\n let self = { __proto__: this, pkt_ctx: _as_pkt_ctx(pkt_api) };\n self.decode = mqtt_raw_dispatch(self);\n return self },\n }\n}\n\nexport { mqtt_pkt_ctx as default, mqtt_pkt_ctx, version };\n//# sourceMappingURL=codec_bind.js.map\n","export const _isfn = v => typeof v === 'function'\nexport const _isstr = v => typeof v === 'string'\n\nexport function _interval(fn_callback) ::\n let tid\n return @\\ td ::\n tid = clearInterval(tid)\n if td ::\n tid = setInterval(fn_callback, 1000 * td)\n #IF PLAT_DENO\n // ensure the interval allows the Deno event loop to exit\n Deno.unrefTimer(tid)\n #ELSE\n // ensure the interval allows the NodeJS event loop to exit\n tid.unref?.()\n return true\n\n","\nasync function _mqtt_cmd_evt(target, answer, pkt, ctx) ::\n /* target : on_mqtt_type = {\n mqtt_pkt(pkt, ctx) {}, // generic\n\n mqtt_auth(pkt, ctx) {},\n mqtt_connect(pkt, ctx) {},\n mqtt_connack(pkt, ctx) {},\n mqtt_disconnect(pkt, ctx) {},\n\n mqtt_publish(pkt, ctx) {},\n mqtt_subscribe(pkt, ctx) {},\n mqtt_unsubscribe(pkt, ctx) {},\n\n mqtt_pingreq(pkt, ctx) {},\n mqtt_pingresp(pkt, ctx) {},\n } */\n\n let pkt_fn = target[`mqtt_${pkt.type}`] || target.mqtt_pkt\n await pkt_fn?.call(target, pkt, ctx)\n\nfunction _mqtt_cmd_type(target, answer, pkt, ctx) ::\n answer(pkt.type, pkt)\n _mqtt_cmd_evt(target, answer, pkt, ctx)\n\nfunction _mqtt_cmd_id(target, answer, pkt) ::\n answer(pkt.pkt_id, pkt)\n\n\nexport const _mqtt_cmdids = @[]\n _ => {} // 0x0 reserved\n _mqtt_cmd_evt // 0x1 connect\n _mqtt_cmd_type // 0x2 connack\n _mqtt_cmd_evt // 0x3 publish\n _mqtt_cmd_id // 0x4 puback\n _mqtt_cmd_id // 0x5 pubrec\n _mqtt_cmd_id // 0x6 pubrel\n _mqtt_cmd_id // 0x7 pubcomp\n _mqtt_cmd_evt // 0x8 subscribe\n _mqtt_cmd_id // 0x9 suback\n _mqtt_cmd_evt // 0xa unsubscribe\n _mqtt_cmd_id // 0xb unsuback\n _mqtt_cmd_type // 0xc pingreq\n _mqtt_cmd_type // 0xd pingresp\n _mqtt_cmd_evt // 0xe disconnect\n _mqtt_cmd_type // 0xf auth\n\n","import { _isstr } from './_utils.jsy'\nimport {_mqtt_cmdids} from './_cmdid_dispatch.jsy'\n\nexport function _mqtt_dispatch(opt, target) ::\n let hashbelt=[], rotate_ts=0\n // default rotate at 1s across 5 buckets\n let { td: rotate_td=1000, n: rotate_n=5 } = opt?.rotate || {}\n\n // Promise / future scaffolding\n let _pkt_id=100, _ftr_key // use _ftr_key to reuse _by_key closure\n let _ftr_by_key = fn_answer => hashbelt[0].set(_ftr_key, fn_answer)\n\n on_mqtt([]) // init hashbelt and rotate_ts\n return [on_mqtt, pkt_future]\n\n\n function pkt_future(pkt_or_key) ::\n if ! _isstr(pkt_or_key) ::\n _pkt_id = (_pkt_id + 1) & 0xffff // 16-bit unsigned short\n _ftr_key = pkt_or_key.pkt_id = _pkt_id\n else _ftr_key = pkt_or_key\n\n return new Promise(_ftr_by_key)\n\n function answer(key, pkt) ::\n for let map of hashbelt ::\n let fn_answer = map.get(key)\n if fn_answer ::\n map.delete(key)\n\n fn_answer([pkt, /*err*/]) // option/maybe monad\n return true\n return false\n\n function on_mqtt(pkt_list, ctx) ::\n for let pkt of pkt_list ::\n _mqtt_cmdids[pkt.id](target, answer, pkt, ctx)\n\n // rotate after rotate_ts\n let now = Date.now()\n if now > rotate_ts ::\n rotate_ts = rotate_td + now\n hashbelt.unshift(new Map())\n while hashbelt.length > rotate_n ::\n for let fn_answer of hashbelt.pop().values() ::\n fn_answer([/*pkt*/, 'expired']) // option/maybe monad\n\n","import { _isfn, _isstr } from './_utils.jsy'\nimport { _mqtt_dispatch } from './_dispatch.jsy'\n\nexport class MQTTError extends Error ::\n constructor(mqtt_pkt, reason=mqtt_pkt.reason) ::\n // use hex-encoded reasons to match MQTT spec documentation\n super(`[0x${reason.toString(16)}] ${reason.reason}`)\n this.mqtt_pkt = mqtt_pkt\n this.reason = reason\n\nexport class MQTTBase ::\n // Handshaking Packets\n async connect(pkt={}) ::\n let cid = pkt.client_id\n if ! _isstr(cid) ::\n // see init_client_id implementation in core.jsy\n pkt.client_id = cid = this.client_id || this.init_client_id(cid)\n this.client_id = cid\n\n if null == pkt.keep_alive ::\n pkt.keep_alive = 60\n\n let response = await this._send0('connect', pkt, 'connack')\n if 0 != response[0].reason :: // compare to 0 to coerce to number\n throw new this.MQTTError(response[0])\n return this.conn.on_conn(pkt, response)\n\n async disconnect(pkt={}) ::\n let response = this._send0('disconnect', pkt)\n await this.conn.on_dis(pkt, response)\n return await response\n\n async auth(pkt={}) ::\n let response = await this._send0('auth', pkt, 'auth')\n if response[0].reason ::\n throw new this.MQTTError(response[0])\n return this.conn.on_auth(pkt, response)\n\n ping() :: return this._send('pingreq', null, 'pingresp')\n puback({pkt_id}) :: return this._send('puback', {pkt_id})\n\n // alias: sub\n subscribe(pkt, ex, topic_prefix) ::\n pkt = _as_topics(pkt, ex, topic_prefix)\n let suback = this._send('subscribe', pkt, pkt)\n return this.on_sub?.(suback, pkt) ?? suback\n\n // alias: unsub\n unsubscribe(pkt, ex, topic_prefix) ::\n pkt = _as_topics(pkt, ex, topic_prefix)\n return this._send('unsubscribe', pkt, pkt)\n\n\n post(topic, payload, pub_opt) :: // qos:0\n return this.pub({topic, payload, qos:0}, pub_opt)\n send(topic, payload, pub_opt) :: // qos:1\n return this.pub({topic, payload, qos:1}, pub_opt)\n store(topic, payload, pub_opt) :: // qos:1, retain: 1\n return this.pub({topic, payload, qos:1, retain: 1}, pub_opt)\n\n // alias: json_post\n obj_post(topic, msg, pub_opt) :: // qos:0\n return this.pub({topic, msg, arg: 'msg', qos:0}, pub_opt)\n // alias: json_send\n obj_send(topic, msg, pub_opt) :: // qos:1\n return this.pub({topic, msg, arg: 'msg', qos:1}, pub_opt)\n // alias: json_store\n obj_store(topic, msg, pub_opt) :: // qos:1, retain: 1\n return this.pub({topic, msg, arg: 'msg', qos:1, retain: 1}, pub_opt)\n\n // alias: publish -- because 'pub' is shorter for semantic aliases above\n async pub(pkt, pub_opt) ::\n if undefined === pkt.payload ::\n if _isfn(pub_opt) ::\n // pub_opt as a function is fn_encode value\n pub_opt = {fn_encode: pub_opt}\n\n let msg = pkt.msg, fn_encode = pub_opt?.fn_encode\n if null == msg || _isfn(msg) ::\n // when msg is a function, return closure using fn_encode\n if msg :: pub_opt = {...pub_opt, fn_encode: msg}\n // return a single-value closure to publish packets\n return v => this.pub({...pkt, [pkt.arg || 'payload']: v}, pub_opt)\n\n // Encode payload from msg; fn_encode allows alternative to JSON.stringify\n pkt.payload = fn_encode\n ? await fn_encode(msg)\n : JSON.stringify(msg)\n\n if pub_opt ::\n if pub_opt.props ::\n pkt.props = pub_opt.props\n if pub_opt.xform ::\n pkt = pub_opt.xform(pkt) || pkt\n\n return this._send @ 'publish', pkt,\n pkt.qos ? pkt : null // key\n\n\n // Internal API\n\n /* async _send0(type, pkt) -- provided by conn and transport */\n /* async _send(type, pkt) -- provided by conn and transport */\n\n _init_dispatch(opt) ::\n this.constructor?._once_()\n let target = @{} __proto__: opt.on_mqtt_type\n target.mqtt_publish ||=\n this._init_router?.(opt, this, target)\n return _mqtt_dispatch(opt, target)\n\n static _aliases() ::\n return ' publish:pub sub:subscribe unsub:unsubscribe json_post:obj_post json_send:obj_send json_store:obj_store'\n\n static _once_(klass=this) ::\n klass._once_ = _=>0\n var alias, name, p = klass.prototype\n p.MQTTError = MQTTError\n for alias of klass._aliases().split(/\\s+/) ::\n [alias, name] = alias.split(':')\n p[alias] = p[name]\n\n\nfunction _as_topics(pkt, ex, topic_prefix) ::\n if ex?.trim :: // string\n topic_prefix = ex\n ex = null\n\n pkt = @\n pkt.trim // string\n ? {topics:[pkt], ... ex}\n : pkt[Symbol.iterator]\n ? {topics:[... pkt], ... ex}\n : ex ? {...pkt, ...ex}\n : pkt\n\n if topic_prefix ::\n // particularly useful with shared queues, e.g.\n // topic_prefix = '$share/some-queue-name/'\n let _prefix_topics = v =>\n v.trim ? topic_prefix+v : v.map(_prefix_topics)\n\n pkt.topics = pkt.topics.map(_prefix_topics)\n return pkt\n\n","import { _interval } from './_utils.jsy'\n\nconst _defer_obj = o => @\n o.p = new Promise @ (a,e) => { o.a=a; o.e=e }\n , o\n\nfunction _dfn_reset(client, attr, fn_after) ::\n // a resetable deferred for a function\n let self = {set}, afn = async (...args) => (await self.p)(...args)\n return set()\n\n function set() ::\n if afn !== client[attr] ::\n _defer_obj(self).p.then(fn_after, _=>0)\n client[attr] = afn\n return self\n\nexport function _mqtt_conn(opt, client, [on_mqtt, pkt_future]) ::\n let _abort\n let _dfn_send0 = _dfn_reset @ client, '_send0', // client._send0 getter/setter\n _=> client.conn_emit('on_live', conn.has_connected)\n let _dfn_ready = _dfn_reset @ client, '_send', // client._send getter/setter\n _=> client.conn_emit('on_ready')\n let _keep_alive_ival = _interval @=> client._send0('pingreq') // resettable interval for keep_alive ping\n\n let conn = Object.create @:\n ping: (td=conn.keep_alive) => _keep_alive_ival(td)\n\n on_conn(pkt, response) ::\n conn.has_connected = true\n conn.keep_alive = opt.keep_alive || response[0].props?.server_keep_alive || pkt.keep_alive\n client.conn_emit('on_conn')\n return opt.use_auth\n ? response // wait on enhanced authentication step\n : conn.on_auth(null, response) // otherwise, connect is also auth\n\n on_auth(pkt, response) ::\n _dfn_ready.a(_dfn_send0.p)\n if 0 != opt.keep_alive ::\n conn.ping()\n client.conn_emit('on_auth', !pkt)\n return response\n\n on_dis(pkt, response) ::\n conn.reset(false)\n return response\n\n reset(err) ::\n if err ::\n _dfn_send0.e(err) // send error to uses of _send0 (connect, auth)\n _abort.e(err) // abort in-progress connections\n\n if conn.is_set ::\n delete conn.is_set\n conn.ready = handshake()\n client.conn_emit('on_disconnect', false===err, err)\n\n abort(err) ::\n _dfn_ready.e(err) // abort all messages awaiting ready state\n return conn.reset(err)\n\n async setup(gate, send_u8_pkt, init_msg_loop) ::\n if conn.is_set ::\n throw new Error() // already in-progress\n\n conn.is_set = true\n await gate\n\n // setup send/recv MQTT parsing context\n let mqtt_ctx = client.mqtt_ctx.mqtt_stream()\n\n :: // setup inbound message loop\n let sess_ctx = {mqtt: client} // mutable session context\n let on_mqtt_chunk = u8 => on_mqtt(mqtt_ctx.decode(u8), sess_ctx)\n init_msg_loop(on_mqtt_chunk, conn)\n\n // setup outbound message path and transport connection\n send_u8_pkt = await send_u8_pkt\n _dfn_send0.a @\n async (type, pkt, key) => ::\n let res = undefined !== key\n ? pkt_future(key) : true\n\n await send_u8_pkt @\n mqtt_ctx.encode_pkt(type, pkt)\n return res\n\n conn.ready = handshake()\n return conn\n\n async function handshake() ::\n _abort = _defer_obj({})\n\n _keep_alive_ival(0) // clearInterval on keep alive ping\n _dfn_send0.set() // reset client._send0 if necessary\n _dfn_ready.set() // reset client._send if necessary\n\n try ::\n // set client._send0 as passtrhough after transport connection\n client._send0 = await Promise.race @# _dfn_send0.p, _abort.p\n\n // set client._send as passtrhough after ready\n client._send = await Promise.race @# _dfn_ready.p, _abort.p\n return true\n catch err ::\n return false\n\n","import mqtt_pkt_ctx from 'u8-mqtt-packet/esm/codec_bind.js'\nimport { _isfn } from './_utils.jsy'\nimport { MQTTBase } from './base.jsy'\nimport { _mqtt_conn } from './_conn.jsy'\n\n#IF PLAT_NODEJS\n import {connect as tcp_connect} from 'node:net'\n import {connect as tls_connect} from 'node:tls'\n\nconst pkt_api = @{}\n utf8(u8) :: return new TextDecoder('utf-8').decode(u8 || this.payload )\n json(u8) :: return JSON.parse( this.utf8(u8) || null )\n text(u8) :: return this.utf8(u8)\n\nconst opt_default = @{}\n sess_stg: globalThis.sessionStorage\n\nexport class MQTTCore extends MQTTBase ::\n constructor(opt) ::\n opt = {...opt_default, ...opt}\n super()\n this.with(opt)\n // settings for MQTTCore\n this.sess_stg = opt.sess_stg\n // setup connection and dispatch\n this.conn = _mqtt_conn @ opt, this,\n this._init_dispatch(opt)\n\n with(fns_ns) ::\n for let [k,v] of Object.entries(fns_ns) ::\n if _isfn(v) :: this[k] = v\n return this\n\n\n static mqtt_ctx(mqtt_level, mqtt_opts, pkt_ctx=pkt_api) ::\n let klass = class extends this {}\n klass.prototype.mqtt_ctx =\n mqtt_pkt_ctx(mqtt_level, mqtt_opts, pkt_ctx)\n return klass\n\n\n async conn_emit(evt, arg, err_arg) ::\n this.log_conn?.(evt, arg, err_arg)\n try ::\n let fn_evt = this[await evt] // microtask break using `await evt`\n if fn_evt ::\n await fn_evt.call(this, this, arg, err_arg)\n else if err_arg :: throw err_arg\n catch err ::\n this.on_error(err, evt)\n\n on_error(err, evt) ::\n console.warn @ '[[u8-mqtt error: %s]]', evt, err\n log_conn(evt, arg, err_arg) ::\n console.info @ '[[u8-mqtt conn: %s]]', evt, arg, err_arg\n\n\n // automatic Client Id for connect()\n init_client_id(parts=['u8-mqtt--','']) ::\n let sess_stg = this.sess_stg\n let key, cid = sess_stg?.getItem(key=parts.join(' '))\n if ! cid ::\n cid = parts.join @ Math.random().toString(36).slice(2)\n sess_stg?.setItem(key, cid)\n return cid\n\n\n on_live(client, is_reconnect) ::\n if is_reconnect ::\n return client.connect()\n\n // on_ready(client) ::\n // on_reconnect(client) ::\n on_disconnect(client, intentional, err) ::\n if ! intentional ::\n return client.on_reconnect?.()\n\n _use_conn(fn_reconnect) ::\n return (this.reconnect = fn_reconnect)?.()\n with_autoreconnect(opt=2000) ::\n if opt.toFixed :: opt = @{} delay: opt\n return this.with @:\n on_reconnect() ::\n this.delay(opt.delay || 2000, opt.jitter)\n .then(this.reconnect)\n .then(opt.reconnect, opt.error)\n\n delay(ms, ms_jitter=0.2*ms) ::\n return new Promise @ done => setTimeout(done, 0 | (ms + ms_jitter*Math.random()))\n\n with_async_iter(async_iter, write_u8_pkt) ::\n this.conn.setup @ async_iter,\n write_u8_pkt,\n async (on_mqtt_chunk, conn) => ::\n try ::\n async_iter = await async_iter\n for await (let chunk of async_iter)\n on_mqtt_chunk(chunk)\n conn.reset()\n catch err ::\n conn.reset(err)\n return this\n\n\n\n #IF PLAT_DENO\n with_tcp(...opt) ::\n opt = this._conn_opt(opt)\n opt.transport = 'tcp'\n return this._use_conn @=>\n this.with_deno_iter @\n Deno.connect(opt)\n\n with_tls(...opt) ::\n opt = this._conn_opt(opt)\n return this._use_conn @=>\n this.with_deno_iter @\n Deno.connectTls(opt)\n\n with_deno_iter(transport) ::\n return this.with_async_iter @\n transport.then(Deno.iter),\n transport.then @ write_stream =>\n u8_pkt => write_stream.write(u8_pkt)\n\n _conn_opt([a0, a1, a2]) ::\n // (port, hostname, options) or (url, options)\n if Number.isFinite(a0) ::\n return {...a2, port: a0, hostname: a1}\n\n a0 = new URL(a0)\n return {...a1, port: a0.port, hostname: a0.hostname}\n\n #IF PLAT_NODEJS\n with_tcp(...opt) ::\n opt = this._conn_opt(opt)\n return this._use_conn @=>\n this.with_stream @\n tcp_connect(opt)\n\n with_tls(...opt) ::\n opt = this._conn_opt(opt)\n return this._use_conn @=>\n this.with_stream @\n tls_connect(opt)\n\n _conn_opt([a0, a1, a2]) ::\n // (port, hostname, options) or (url, options)\n if Number.isFinite(a0) ::\n return {...a2, port: a0, host: a1}\n a0 = new URL(a0)\n return {...a1, port: a0.port, host: a0.hostname}\n\n\n with_stream(read_stream, write_stream) ::\n if undefined === write_stream ::\n write_stream = read_stream\n\n return this.with_async_iter @ read_stream,\n u8_pkt => write_stream.write(u8_pkt)\n\n\n with_websock(websock) ::\n if ! websock?.send ::\n websock = new URL(websock || 'ws://127.0.0.1:9001')\n return this._use_conn @=>\n this.with_websock @\n new WebSocket(websock, ['mqtt'])\n\n websock.binaryType = 'arraybuffer'\n\n let ws_ready, readyState = websock.readyState\n if 1 !== readyState ::\n if 0 !== readyState ::\n throw new Error @ 'WS readyState'\n\n ws_ready = new Promise @ ready => websock.onopen = ready\n\n this.conn.setup @ ws_ready,\n u8_pkt => websock.send(u8_pkt),\n (on_mqtt_chunk, conn) => ::\n websock.onmessage = evt => @\n on_mqtt_chunk @ new Uint8Array(evt.data)\n\n websock.onerror = evt => ::\n conn.reset(new Error('websocket error'))\n\n websock.onclose = evt => ::\n if ! evt.wasClean ::\n var err = new Error('websocket close')\n err.code = evt.code\n err.reason = evt.reason\n\n conn.reset(err)\n\n return this\n\nexport { MQTTCore as default }\n","import mqtt_opts_v4 from 'u8-mqtt-packet/esm/codec_v4_client.js'\nimport MQTTCore from './core.jsy'\nexport * from './version.js'\n\nconst MQTTClient_v4 = /* #__PURE__ */\n MQTTCore.mqtt_ctx(4, mqtt_opts_v4)\n\nconst mqtt_v4 = opt =>\n new MQTTClient_v4(opt)\n\nexport {\n MQTTClient_v4,\n MQTTClient_v4 as MQTTClient,\n\n mqtt_v4,\n mqtt_v4 as mqtt,\n mqtt_v4 as default,\n}\n"],"names":["decode_varint","tcp_connect","tls_connect"],"mappings":"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","x_google_ignoreList":[0,1]}
package/cjs/basic-v5.cjs CHANGED
@@ -898,8 +898,9 @@ class MQTTBase {
898
898
  return this.conn.on_conn(pkt, response)}
899
899
 
900
900
  async disconnect(pkt={}) {
901
- let response = await this._send0('disconnect', pkt);
902
- return this.conn.on_dis(pkt, response)}
901
+ let response = this._send0('disconnect', pkt);
902
+ await this.conn.on_dis(pkt, response);
903
+ return await response}
903
904
 
904
905
  async auth(pkt={}) {
905
906
  let response = await this._send0('auth', pkt, 'auth');
@@ -1064,11 +1065,12 @@ function _mqtt_conn(opt, client, [on_mqtt, pkt_future]) {
1064
1065
  _dfn_send0.e(err); }// send error to uses of _send0 (connect, auth)
1065
1066
  _abort.e(err); // abort in-progress connections
1066
1067
 
1067
- delete conn.is_set;
1068
- conn.ready = handshake();
1069
- client.conn_emit('on_disconnect', false===err, err);}
1068
+ if (conn.is_set) {
1069
+ delete conn.is_set;
1070
+ conn.ready = handshake();
1071
+ client.conn_emit('on_disconnect', false===err, err);} }
1070
1072
 
1071
- , abort() {
1073
+ , abort(err) {
1072
1074
  _dfn_ready.e(err); // abort all messages awaiting ready state
1073
1075
  return conn.reset(err)}
1074
1076
 
@@ -1182,7 +1184,7 @@ class MQTTCore extends MQTTBase {
1182
1184
 
1183
1185
  // on_ready(client) ::
1184
1186
  // on_reconnect(client) ::
1185
- on_disconnect(client, intentional) {
1187
+ on_disconnect(client, intentional, err) {
1186
1188
  if (! intentional) {
1187
1189
  return client.on_reconnect?.()} }
1188
1190
 
@@ -1192,12 +1194,12 @@ class MQTTCore extends MQTTBase {
1192
1194
  if (opt.toFixed) {opt ={delay: opt};}
1193
1195
  return this.with({
1194
1196
  on_reconnect() {
1195
- this.delay(opt.delay || 2000)
1197
+ this.delay(opt.delay || 2000, opt.jitter)
1196
1198
  .then(this.reconnect)
1197
1199
  .then(opt.reconnect, opt.error);} }) }
1198
1200
 
1199
- delay(ms) {
1200
- return new Promise(done => setTimeout(done, ms)) }
1201
+ delay(ms, ms_jitter=0.2*ms) {
1202
+ return new Promise(done => setTimeout(done, 0 | (ms + ms_jitter*Math.random()))) }
1201
1203
 
1202
1204
  with_async_iter(async_iter, write_u8_pkt) {
1203
1205
  this.conn.setup(async_iter,
@@ -1293,6 +1295,9 @@ class MQTTCore extends MQTTBase {
1293
1295
  websock.onmessage = evt =>(
1294
1296
  on_mqtt_chunk(new Uint8Array(evt.data)) );
1295
1297
 
1298
+ websock.onerror = evt => {
1299
+ conn.reset(new Error('websocket error'));};
1300
+
1296
1301
  websock.onclose = evt => {
1297
1302
  if (! evt.wasClean) {
1298
1303
  var err = new Error('websocket close');
@@ -1303,7 +1308,7 @@ class MQTTCore extends MQTTBase {
1303
1308
 
1304
1309
  return this} }
1305
1310
 
1306
- const version = '0.6.6-node';
1311
+ const version = '0.6.7-node';
1307
1312
 
1308
1313
  const MQTTClient_v4 = /* #__PURE__ */
1309
1314
  MQTTCore.mqtt_ctx(4, mqtt_opts_v5);