abmqtts 0.0.3 → 0.0.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.
Files changed (278) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +175 -10
  3. package/dist/constants.d.ts +96 -0
  4. package/dist/constants.js +280 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/errors/index.d.ts +16 -8
  7. package/dist/errors/index.js +27 -22
  8. package/dist/errors/index.js.map +1 -1
  9. package/dist/extend.d.ts +25 -0
  10. package/dist/extend.js +91 -0
  11. package/dist/extend.js.map +1 -0
  12. package/dist/fbns/fbns.client.d.ts +31 -0
  13. package/dist/fbns/fbns.client.events.d.ts +41 -0
  14. package/dist/{reconnect-strategy/mqtts.reconnect-strategy.js → fbns/fbns.client.events.js} +1 -1
  15. package/dist/fbns/fbns.client.events.js.map +1 -0
  16. package/dist/fbns/fbns.client.js +181 -0
  17. package/dist/fbns/fbns.client.js.map +1 -0
  18. package/dist/fbns/fbns.device-auth.d.ts +17 -0
  19. package/dist/fbns/fbns.device-auth.js +54 -0
  20. package/dist/fbns/fbns.device-auth.js.map +1 -0
  21. package/dist/fbns/fbns.types.d.ts +83 -0
  22. package/dist/{mqtt.types.js → fbns/fbns.types.js} +1 -1
  23. package/dist/fbns/fbns.types.js.map +1 -0
  24. package/dist/fbns/fbns.utilities.d.ts +2 -0
  25. package/dist/fbns/fbns.utilities.js +78 -0
  26. package/dist/fbns/fbns.utilities.js.map +1 -0
  27. package/dist/fbns/index.d.ts +4 -0
  28. package/dist/{transport → fbns}/index.js +4 -5
  29. package/dist/fbns/index.js.map +1 -0
  30. package/dist/index.d.ts +5 -12
  31. package/dist/index.js +5 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/mqttot/index.d.ts +4 -0
  34. package/dist/mqttot/index.js +21 -0
  35. package/dist/mqttot/index.js.map +1 -0
  36. package/dist/mqttot/mqttot.client.d.ts +37 -0
  37. package/dist/mqttot/mqttot.client.js +101 -0
  38. package/dist/mqttot/mqttot.client.js.map +1 -0
  39. package/dist/mqttot/mqttot.connect.request.packet.d.ts +6 -0
  40. package/dist/mqttot/mqttot.connect.request.packet.js +8 -0
  41. package/dist/mqttot/mqttot.connect.request.packet.js.map +1 -0
  42. package/dist/mqttot/mqttot.connect.response.packet.d.ts +6 -0
  43. package/dist/mqttot/mqttot.connect.response.packet.js +24 -0
  44. package/dist/mqttot/mqttot.connect.response.packet.js.map +1 -0
  45. package/dist/mqttot/mqttot.connection.d.ts +56 -0
  46. package/dist/mqttot/mqttot.connection.js +56 -0
  47. package/dist/mqttot/mqttot.connection.js.map +1 -0
  48. package/dist/realtime/commands/commands.d.ts +15 -0
  49. package/dist/realtime/commands/commands.js +21 -0
  50. package/dist/realtime/commands/commands.js.map +1 -0
  51. package/dist/realtime/commands/direct.commands.d.ts +67 -0
  52. package/dist/realtime/commands/direct.commands.js +179 -0
  53. package/dist/realtime/commands/direct.commands.js.map +1 -0
  54. package/dist/realtime/commands/index.d.ts +2 -0
  55. package/dist/{reconnect-strategy → realtime/commands}/index.js +2 -2
  56. package/dist/realtime/commands/index.js.map +1 -0
  57. package/dist/realtime/index.d.ts +6 -0
  58. package/dist/realtime/index.js +23 -0
  59. package/dist/realtime/index.js.map +1 -0
  60. package/dist/realtime/messages/app-presence.event.d.ts +9 -0
  61. package/dist/realtime/messages/app-presence.event.js +3 -0
  62. package/dist/realtime/messages/app-presence.event.js.map +1 -0
  63. package/dist/realtime/messages/index.d.ts +3 -0
  64. package/dist/realtime/messages/index.js +20 -0
  65. package/dist/realtime/messages/index.js.map +1 -0
  66. package/dist/realtime/messages/message-sync.message.d.ts +222 -0
  67. package/dist/realtime/messages/message-sync.message.js +43 -0
  68. package/dist/realtime/messages/message-sync.message.js.map +1 -0
  69. package/dist/realtime/messages/realtime-sub.direct.data.d.ts +11 -0
  70. package/dist/realtime/messages/realtime-sub.direct.data.js +3 -0
  71. package/dist/realtime/messages/realtime-sub.direct.data.js.map +1 -0
  72. package/dist/realtime/messages/thread-update.message.d.ts +68 -0
  73. package/dist/realtime/messages/thread-update.message.js +3 -0
  74. package/dist/realtime/messages/thread-update.message.js.map +1 -0
  75. package/dist/realtime/mixins/index.d.ts +3 -0
  76. package/dist/realtime/mixins/index.js +20 -0
  77. package/dist/realtime/mixins/index.js.map +1 -0
  78. package/dist/realtime/mixins/message-sync.mixin.d.ts +8 -0
  79. package/dist/realtime/mixins/message-sync.mixin.js +77 -0
  80. package/dist/realtime/mixins/message-sync.mixin.js.map +1 -0
  81. package/dist/realtime/mixins/mixin.d.ts +19 -0
  82. package/dist/realtime/mixins/mixin.js +41 -0
  83. package/dist/realtime/mixins/mixin.js.map +1 -0
  84. package/dist/realtime/mixins/realtime-sub.mixin.d.ts +8 -0
  85. package/dist/realtime/mixins/realtime-sub.mixin.js +60 -0
  86. package/dist/realtime/mixins/realtime-sub.mixin.js.map +1 -0
  87. package/dist/realtime/parsers/graphql.parser.d.ts +14 -0
  88. package/dist/realtime/parsers/graphql.parser.js +22 -0
  89. package/dist/realtime/parsers/graphql.parser.js.map +1 -0
  90. package/dist/realtime/parsers/index.d.ts +6 -0
  91. package/dist/realtime/parsers/index.js +23 -0
  92. package/dist/realtime/parsers/index.js.map +1 -0
  93. package/dist/realtime/parsers/iris.parser.d.ts +16 -0
  94. package/dist/realtime/parsers/iris.parser.js +10 -0
  95. package/dist/realtime/parsers/iris.parser.js.map +1 -0
  96. package/dist/realtime/parsers/json.parser.d.ts +5 -0
  97. package/dist/realtime/parsers/json.parser.js +10 -0
  98. package/dist/realtime/parsers/json.parser.js.map +1 -0
  99. package/dist/realtime/parsers/parser.d.ts +8 -0
  100. package/dist/{flow/packet-flow.js → realtime/parsers/parser.js} +1 -1
  101. package/dist/realtime/parsers/parser.js.map +1 -0
  102. package/dist/realtime/parsers/region-hint.parser.d.ts +11 -0
  103. package/dist/realtime/parsers/region-hint.parser.js +15 -0
  104. package/dist/realtime/parsers/region-hint.parser.js.map +1 -0
  105. package/dist/realtime/parsers/skywalker.parser.d.ts +11 -0
  106. package/dist/realtime/parsers/skywalker.parser.js +15 -0
  107. package/dist/realtime/parsers/skywalker.parser.js.map +1 -0
  108. package/dist/realtime/realtime.client.d.ts +54 -0
  109. package/dist/realtime/realtime.client.events.d.ts +35 -0
  110. package/dist/realtime/realtime.client.events.js +3 -0
  111. package/dist/realtime/realtime.client.events.js.map +1 -0
  112. package/dist/realtime/realtime.client.js +197 -0
  113. package/dist/realtime/realtime.client.js.map +1 -0
  114. package/dist/realtime/subscriptions/graphql.subscription.d.ts +47 -0
  115. package/dist/realtime/subscriptions/graphql.subscription.js +99 -0
  116. package/dist/realtime/subscriptions/graphql.subscription.js.map +1 -0
  117. package/dist/realtime/subscriptions/index.d.ts +2 -0
  118. package/dist/{flow → realtime/subscriptions}/index.js +2 -3
  119. package/dist/realtime/subscriptions/index.js.map +1 -0
  120. package/dist/realtime/subscriptions/skywalker.subscription.d.ts +4 -0
  121. package/dist/realtime/subscriptions/skywalker.subscription.js +13 -0
  122. package/dist/realtime/subscriptions/skywalker.subscription.js.map +1 -0
  123. package/dist/shared.d.ts +21 -0
  124. package/dist/shared.js +86 -0
  125. package/dist/shared.js.map +1 -0
  126. package/dist/thrift/index.d.ts +3 -0
  127. package/dist/thrift/index.js +20 -0
  128. package/dist/thrift/index.js.map +1 -0
  129. package/dist/thrift/thrift.d.ts +59 -0
  130. package/dist/thrift/thrift.js +101 -0
  131. package/dist/thrift/thrift.js.map +1 -0
  132. package/dist/thrift/thrift.reading.d.ts +40 -0
  133. package/dist/thrift/thrift.reading.js +327 -0
  134. package/dist/thrift/thrift.reading.js.map +1 -0
  135. package/dist/thrift/thrift.writing.d.ts +43 -0
  136. package/dist/thrift/thrift.writing.js +342 -0
  137. package/dist/thrift/thrift.writing.js.map +1 -0
  138. package/dist/topic.d.ts +7 -0
  139. package/dist/{mqtt.message.js → topic.js} +1 -1
  140. package/dist/topic.js.map +1 -0
  141. package/package.json +35 -44
  142. package/dist/errors/abort.error.d.ts +0 -3
  143. package/dist/errors/abort.error.js +0 -8
  144. package/dist/errors/abort.error.js.map +0 -1
  145. package/dist/errors/connect.error.d.ts +0 -5
  146. package/dist/errors/connect.error.js +0 -12
  147. package/dist/errors/connect.error.js.map +0 -1
  148. package/dist/errors/end-of-stream.error.d.ts +0 -3
  149. package/dist/errors/end-of-stream.error.js +0 -8
  150. package/dist/errors/end-of-stream.error.js.map +0 -1
  151. package/dist/errors/flow-stopped.error.d.ts +0 -3
  152. package/dist/errors/flow-stopped.error.js +0 -8
  153. package/dist/errors/flow-stopped.error.js.map +0 -1
  154. package/dist/errors/illegal-state.error.d.ts +0 -3
  155. package/dist/errors/illegal-state.error.js +0 -8
  156. package/dist/errors/illegal-state.error.js.map +0 -1
  157. package/dist/errors/malformed-packet.error.d.ts +0 -3
  158. package/dist/errors/malformed-packet.error.js +0 -8
  159. package/dist/errors/malformed-packet.error.js.map +0 -1
  160. package/dist/errors/subscribe.error.d.ts +0 -3
  161. package/dist/errors/subscribe.error.js +0 -8
  162. package/dist/errors/subscribe.error.js.map +0 -1
  163. package/dist/errors/unexpected-packet.error.d.ts +0 -3
  164. package/dist/errors/unexpected-packet.error.js +0 -8
  165. package/dist/errors/unexpected-packet.error.js.map +0 -1
  166. package/dist/flow/incoming.flows.d.ts +0 -6
  167. package/dist/flow/incoming.flows.js +0 -39
  168. package/dist/flow/incoming.flows.js.map +0 -1
  169. package/dist/flow/index.d.ts +0 -3
  170. package/dist/flow/index.js.map +0 -1
  171. package/dist/flow/outgoing.flows.d.ts +0 -12
  172. package/dist/flow/outgoing.flows.js +0 -115
  173. package/dist/flow/outgoing.flows.js.map +0 -1
  174. package/dist/flow/packet-flow.d.ts +0 -17
  175. package/dist/flow/packet-flow.js.map +0 -1
  176. package/dist/mqtt.base-client.d.ts +0 -54
  177. package/dist/mqtt.base-client.js +0 -102
  178. package/dist/mqtt.base-client.js.map +0 -1
  179. package/dist/mqtt.client.d.ts +0 -75
  180. package/dist/mqtt.client.js +0 -417
  181. package/dist/mqtt.client.js.map +0 -1
  182. package/dist/mqtt.constants.d.ts +0 -34
  183. package/dist/mqtt.constants.js +0 -26
  184. package/dist/mqtt.constants.js.map +0 -1
  185. package/dist/mqtt.listener.d.ts +0 -21
  186. package/dist/mqtt.listener.js +0 -29
  187. package/dist/mqtt.listener.js.map +0 -1
  188. package/dist/mqtt.message.d.ts +0 -14
  189. package/dist/mqtt.message.js.map +0 -1
  190. package/dist/mqtt.packet.d.ts +0 -9
  191. package/dist/mqtt.packet.js +0 -15
  192. package/dist/mqtt.packet.js.map +0 -1
  193. package/dist/mqtt.parser.d.ts +0 -21
  194. package/dist/mqtt.parser.js +0 -71
  195. package/dist/mqtt.parser.js.map +0 -1
  196. package/dist/mqtt.types.d.ts +0 -52
  197. package/dist/mqtt.types.js.map +0 -1
  198. package/dist/mqtt.utilities.d.ts +0 -32
  199. package/dist/mqtt.utilities.js +0 -139
  200. package/dist/mqtt.utilities.js.map +0 -1
  201. package/dist/packet-stream.d.ts +0 -37
  202. package/dist/packet-stream.js +0 -150
  203. package/dist/packet-stream.js.map +0 -1
  204. package/dist/packets/connect.request.packet.d.ts +0 -22
  205. package/dist/packets/connect.request.packet.js +0 -41
  206. package/dist/packets/connect.request.packet.js.map +0 -1
  207. package/dist/packets/connect.response.packet.d.ts +0 -18
  208. package/dist/packets/connect.response.packet.js +0 -43
  209. package/dist/packets/connect.response.packet.js.map +0 -1
  210. package/dist/packets/disconnect.request.packet.d.ts +0 -2
  211. package/dist/packets/disconnect.request.packet.js +0 -7
  212. package/dist/packets/disconnect.request.packet.js.map +0 -1
  213. package/dist/packets/index.d.ts +0 -16
  214. package/dist/packets/index.js +0 -33
  215. package/dist/packets/index.js.map +0 -1
  216. package/dist/packets/packet-reader.d.ts +0 -31
  217. package/dist/packets/packet-reader.js +0 -27
  218. package/dist/packets/packet-reader.js.map +0 -1
  219. package/dist/packets/packet-writer.d.ts +0 -48
  220. package/dist/packets/packet-writer.js +0 -58
  221. package/dist/packets/packet-writer.js.map +0 -1
  222. package/dist/packets/ping.request.packet.d.ts +0 -5
  223. package/dist/packets/ping.request.packet.js +0 -17
  224. package/dist/packets/ping.request.packet.js.map +0 -1
  225. package/dist/packets/ping.response.packet.d.ts +0 -5
  226. package/dist/packets/ping.response.packet.js +0 -17
  227. package/dist/packets/ping.response.packet.js.map +0 -1
  228. package/dist/packets/publish.ack.packet.d.ts +0 -8
  229. package/dist/packets/publish.ack.packet.js +0 -19
  230. package/dist/packets/publish.ack.packet.js.map +0 -1
  231. package/dist/packets/publish.complete.packet.d.ts +0 -8
  232. package/dist/packets/publish.complete.packet.js +0 -19
  233. package/dist/packets/publish.complete.packet.js.map +0 -1
  234. package/dist/packets/publish.received.packet.d.ts +0 -8
  235. package/dist/packets/publish.received.packet.js +0 -19
  236. package/dist/packets/publish.received.packet.js.map +0 -1
  237. package/dist/packets/publish.release.packet.d.ts +0 -8
  238. package/dist/packets/publish.release.packet.js +0 -19
  239. package/dist/packets/publish.release.packet.js.map +0 -1
  240. package/dist/packets/publish.request.packet.d.ts +0 -21
  241. package/dist/packets/publish.request.packet.js +0 -55
  242. package/dist/packets/publish.request.packet.js.map +0 -1
  243. package/dist/packets/subscribe.request.packet.d.ts +0 -10
  244. package/dist/packets/subscribe.request.packet.js +0 -15
  245. package/dist/packets/subscribe.request.packet.js.map +0 -1
  246. package/dist/packets/subscribe.response.packet.d.ts +0 -14
  247. package/dist/packets/subscribe.response.packet.js +0 -35
  248. package/dist/packets/subscribe.response.packet.js.map +0 -1
  249. package/dist/packets/unsubscribe.request.packet.d.ts +0 -7
  250. package/dist/packets/unsubscribe.request.packet.js +0 -13
  251. package/dist/packets/unsubscribe.request.packet.js.map +0 -1
  252. package/dist/packets/unsubscribe.response.packet.d.ts +0 -5
  253. package/dist/packets/unsubscribe.response.packet.js +0 -14
  254. package/dist/packets/unsubscribe.response.packet.js.map +0 -1
  255. package/dist/reconnect-strategy/index.d.ts +0 -2
  256. package/dist/reconnect-strategy/index.js.map +0 -1
  257. package/dist/reconnect-strategy/mqtts.reconnect-strategy.d.ts +0 -14
  258. package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.d.ts +0 -24
  259. package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.js +0 -56
  260. package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.js.map +0 -1
  261. package/dist/reconnect-strategy/mqtts.reconnect-strategy.js.map +0 -1
  262. package/dist/transport/index.d.ts +0 -5
  263. package/dist/transport/index.js.map +0 -1
  264. package/dist/transport/socks-tls.transport.d.ts +0 -13
  265. package/dist/transport/socks-tls.transport.js +0 -54
  266. package/dist/transport/socks-tls.transport.js.map +0 -1
  267. package/dist/transport/tcp.transport.d.ts +0 -12
  268. package/dist/transport/tcp.transport.js +0 -26
  269. package/dist/transport/tcp.transport.js.map +0 -1
  270. package/dist/transport/tls.transport.d.ts +0 -13
  271. package/dist/transport/tls.transport.js +0 -44
  272. package/dist/transport/tls.transport.js.map +0 -1
  273. package/dist/transport/transport.d.ts +0 -19
  274. package/dist/transport/transport.js +0 -16
  275. package/dist/transport/transport.js.map +0 -1
  276. package/dist/transport/websocket.transport.d.ts +0 -15
  277. package/dist/transport/websocket.transport.js +0 -40
  278. package/dist/transport/websocket.transport.js.map +0 -1
@@ -0,0 +1,342 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BufferWriter = void 0;
4
+ exports.thriftWriteFromObject = thriftWriteFromObject;
5
+ const thrift_1 = require("./thrift");
6
+ const errors_1 = require("../errors");
7
+ function thriftWriteFromObject(obj, descriptors) {
8
+ const writer = BufferWriter.empty();
9
+ thriftWriteSingleLayerFromObject(obj, descriptors, writer);
10
+ writer.writeStop();
11
+ return writer.buffer;
12
+ }
13
+ function thriftWriteSingleLayerFromObject(obj, descriptors, writer) {
14
+ const entries = Object.entries(obj);
15
+ for (const entry of entries) {
16
+ const name = entry[0];
17
+ const value = entry[1];
18
+ if (typeof value === 'undefined')
19
+ continue;
20
+ const descriptor = descriptors.find(d => d.fieldName === name);
21
+ if (!descriptor)
22
+ throw new errors_1.IllegalArgumentError(`Descriptor for ${name} not found`);
23
+ switch (descriptor.type & 0xff) {
24
+ case thrift_1.ThriftTypes.BOOLEAN:
25
+ case thrift_1.ThriftTypes.TRUE:
26
+ case thrift_1.ThriftTypes.FALSE: {
27
+ writer.writeBoolean(descriptor.field, !!value);
28
+ break;
29
+ }
30
+ case thrift_1.ThriftTypes.BYTE: {
31
+ if (typeof value === 'number') {
32
+ writer.writeInt8(descriptor.field, value);
33
+ }
34
+ else {
35
+ throw new errors_1.IllegalArgumentError(`Value of ${name} is not a number`);
36
+ }
37
+ break;
38
+ }
39
+ case thrift_1.ThriftTypes.INT_16: {
40
+ if (typeof value === 'number') {
41
+ writer.writeInt16(descriptor.field, value);
42
+ }
43
+ else {
44
+ throw new errors_1.IllegalArgumentError(`Value of ${name} is not a number`);
45
+ }
46
+ break;
47
+ }
48
+ case thrift_1.ThriftTypes.INT_32: {
49
+ if (typeof value === 'number') {
50
+ writer.writeInt32(descriptor.field, value);
51
+ }
52
+ else {
53
+ throw new errors_1.IllegalArgumentError(`Value of ${name} is not a number`);
54
+ }
55
+ break;
56
+ }
57
+ case thrift_1.ThriftTypes.INT_64: {
58
+ if (typeof value === 'number') {
59
+ writer.writeInt64Buffer(descriptor.field, BigInt(value));
60
+ }
61
+ else if (typeof value === 'bigint') {
62
+ writer.writeInt64Buffer(descriptor.field, value);
63
+ }
64
+ else {
65
+ throw new errors_1.IllegalArgumentError(`Value of ${name} is neither a bigint nor a number`);
66
+ }
67
+ break;
68
+ }
69
+ case thrift_1.ThriftTypes.LIST: {
70
+ // @ts-ignore
71
+ writer.writeList(descriptor.field, descriptor.type >> 8, value);
72
+ break;
73
+ }
74
+ case thrift_1.ThriftTypes.STRUCT: {
75
+ writer.writeStruct(descriptor.field);
76
+ thriftWriteSingleLayerFromObject(value, descriptor.structDescriptors ?? [], writer);
77
+ writer.writeStop();
78
+ break;
79
+ }
80
+ case thrift_1.ThriftTypes.BINARY: {
81
+ if (typeof value === 'string') {
82
+ writer.writeString(descriptor.field, value);
83
+ }
84
+ else {
85
+ throw new errors_1.IllegalArgumentError(`Value of ${name} is not a string`);
86
+ }
87
+ break;
88
+ }
89
+ case thrift_1.ThriftTypes.MAP: {
90
+ if (descriptor.type === thrift_1.ThriftTypes.MAP_BINARY_BINARY) {
91
+ let pairs;
92
+ if (Array.isArray(value)) {
93
+ //[{key: 'a', value: 'b'}]
94
+ pairs = value.map((x) => [x.key, x.value]);
95
+ }
96
+ else {
97
+ // {a: 'b'}
98
+ pairs = Object.entries(value);
99
+ }
100
+ writer.writeMapHeader(descriptor.field, pairs.length, thrift_1.ThriftTypes.BINARY, thrift_1.ThriftTypes.BINARY);
101
+ if (pairs.length !== 0) {
102
+ for (const pair of pairs) {
103
+ writer.writeStringDirect(pair[0]).writeStringDirect(pair[1]);
104
+ }
105
+ }
106
+ }
107
+ else {
108
+ throw new errors_1.ThriftError(`Map of type ${descriptor.type} not impl.`);
109
+ }
110
+ break;
111
+ }
112
+ default: {
113
+ throw new errors_1.ThriftError(`Could not find type ${descriptor.type} for ${name}`);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ class BufferWriter {
119
+ get buffer() {
120
+ return this._buffer;
121
+ }
122
+ get position() {
123
+ return this._position;
124
+ }
125
+ get length() {
126
+ return this._buffer.length;
127
+ }
128
+ get field() {
129
+ return this._field;
130
+ }
131
+ get stack() {
132
+ return this._stack;
133
+ }
134
+ constructor(data, length, buffer) {
135
+ this._position = 0;
136
+ this._field = 0;
137
+ this._stack = [];
138
+ this._buffer = data ? Buffer.from(data) : length ? Buffer.alloc(length) : buffer ? buffer : Buffer.from([]);
139
+ this._position = 0;
140
+ }
141
+ static fromLength(len) {
142
+ return new BufferWriter(undefined, len, undefined);
143
+ }
144
+ static fromBuffer(buf) {
145
+ return new BufferWriter(undefined, undefined, buf);
146
+ }
147
+ static fromString(data) {
148
+ return new BufferWriter(data, undefined, undefined);
149
+ }
150
+ static empty() {
151
+ return new BufferWriter(undefined, undefined, undefined);
152
+ }
153
+ move(bytes) {
154
+ this._position = this._position + bytes;
155
+ return this._position - bytes;
156
+ }
157
+ writeVarInt(num) {
158
+ while (true) {
159
+ let byte = num & ~0x7f;
160
+ if (byte === 0) {
161
+ this.writeByte(num);
162
+ break;
163
+ }
164
+ else if (byte === -128) {
165
+ // -128 = 0b1000_0000 but it's the last an no other bytes will follow
166
+ this.writeByte(0);
167
+ break;
168
+ }
169
+ else {
170
+ byte = (num & 0xff) | 0x80;
171
+ this.writeByte(byte);
172
+ num = num >> 7;
173
+ }
174
+ }
175
+ return this;
176
+ }
177
+ writeField(field, type) {
178
+ const delta = field - this.field;
179
+ if (delta > 0 && delta <= 15) {
180
+ this.writeByte((delta << 4) | type);
181
+ }
182
+ else {
183
+ this.writeByte(type);
184
+ this.writeWord(field);
185
+ }
186
+ this._field = field;
187
+ return this;
188
+ }
189
+ writeBuffer(buf) {
190
+ this._buffer = Buffer.concat([this._buffer, buf]);
191
+ this.move(buf.length);
192
+ return this;
193
+ }
194
+ writeByte(byte) {
195
+ const buf = Buffer.alloc(1);
196
+ buf.writeUInt8(byte, 0);
197
+ this.writeBuffer(buf);
198
+ return this;
199
+ }
200
+ writeWord(num) {
201
+ return this.writeVarInt(BufferWriter.toZigZag(num, 0x10));
202
+ }
203
+ writeInt(num) {
204
+ return this.writeVarInt(BufferWriter.toZigZag(num, 0x20));
205
+ }
206
+ writeLong(num) {
207
+ if (typeof num === 'object') {
208
+ num = num.int;
209
+ }
210
+ if (typeof num !== 'bigint') {
211
+ num = BigInt(num);
212
+ }
213
+ this.writeBigint(BufferWriter.bigintToZigZag(num));
214
+ return this;
215
+ }
216
+ writeBigint(n) {
217
+ while (true) {
218
+ if ((n & ~BigInt(0x7f)) === BigInt(0)) {
219
+ this.writeByte(Number(n));
220
+ break;
221
+ }
222
+ else {
223
+ this.writeByte(Number((n & BigInt(0x7f)) | BigInt(0x80)));
224
+ n = n >> BigInt(7);
225
+ }
226
+ }
227
+ }
228
+ writeMapHeader(field, size, keyType, valueType) {
229
+ this.writeField(field, thrift_1.ThriftTypes.MAP);
230
+ if (size === 0) {
231
+ this.writeByte(0);
232
+ }
233
+ else {
234
+ this.writeVarInt(size);
235
+ this.writeByte(((keyType & 0xf) << 4) | (valueType & 0xf));
236
+ }
237
+ return this;
238
+ }
239
+ writeBoolean(field, bool) {
240
+ return this.writeField(field, bool ? thrift_1.ThriftTypes.TRUE : thrift_1.ThriftTypes.FALSE);
241
+ }
242
+ writeString(field, s) {
243
+ this.writeField(field, thrift_1.ThriftTypes.BINARY);
244
+ return this.writeStringDirect(s);
245
+ }
246
+ writeStringDirect(s) {
247
+ const buf = Buffer.from(s, 'utf8');
248
+ this.writeVarInt(buf.length);
249
+ this.writeBuffer(buf);
250
+ return this;
251
+ }
252
+ writeStop() {
253
+ this.writeByte(thrift_1.ThriftTypes.STOP);
254
+ if (this.stack.length > 0) {
255
+ this.popStack();
256
+ }
257
+ return this;
258
+ }
259
+ writeInt8(field, num) {
260
+ this.writeField(field, thrift_1.ThriftTypes.BYTE);
261
+ return this.writeByte(num);
262
+ }
263
+ writeInt16(field, num) {
264
+ this.writeField(field, thrift_1.ThriftTypes.INT_16);
265
+ return this.writeWord(num);
266
+ }
267
+ writeInt32(field, num) {
268
+ this.writeField(field, thrift_1.ThriftTypes.INT_32);
269
+ return this.writeInt(num);
270
+ }
271
+ writeInt64Buffer(field, num) {
272
+ this.writeField(field, thrift_1.ThriftTypes.INT_64);
273
+ return this.writeLong(num);
274
+ }
275
+ writeList(field, type, list) {
276
+ this.writeField(field, thrift_1.ThriftTypes.LIST);
277
+ const size = list.length;
278
+ if (size < 0x0f) {
279
+ this.writeByte((size << 4) | type);
280
+ }
281
+ else {
282
+ this.writeByte(0xf0 | type);
283
+ this.writeVarInt(size);
284
+ }
285
+ switch (type) {
286
+ case thrift_1.ThriftTypes.TRUE:
287
+ case thrift_1.ThriftTypes.FALSE: {
288
+ list.forEach(el => this.writeByte(el ? thrift_1.ThriftTypes.TRUE : thrift_1.ThriftTypes.FALSE));
289
+ break;
290
+ }
291
+ case thrift_1.ThriftTypes.BYTE: {
292
+ list.forEach(el => this.writeByte(el));
293
+ break;
294
+ }
295
+ case thrift_1.ThriftTypes.INT_16: {
296
+ list.forEach(el => this.writeWord(el));
297
+ break;
298
+ }
299
+ case thrift_1.ThriftTypes.INT_32: {
300
+ list.forEach(el => this.writeInt(el));
301
+ break;
302
+ }
303
+ case thrift_1.ThriftTypes.INT_64: {
304
+ list.forEach(el => this.writeLong(BigInt(el)));
305
+ break;
306
+ }
307
+ case thrift_1.ThriftTypes.BINARY: {
308
+ list.forEach(el => {
309
+ const buf = Buffer.from(el, 'utf8');
310
+ this.writeVarInt(buf.length);
311
+ this.writeBuffer(buf);
312
+ });
313
+ break;
314
+ }
315
+ default: {
316
+ throw new errors_1.ThriftError('not impl');
317
+ }
318
+ }
319
+ return this;
320
+ }
321
+ writeStruct(field) {
322
+ this.writeField(field, thrift_1.ThriftTypes.STRUCT);
323
+ this.pushStack();
324
+ return this;
325
+ }
326
+ pushStack() {
327
+ this._stack.push(this.field);
328
+ this._field = 0;
329
+ }
330
+ popStack() {
331
+ this._field = this._stack.pop() ?? -1;
332
+ }
333
+ toString() {
334
+ return this._buffer.toString('ascii');
335
+ }
336
+ static bigintToZigZag(n) {
337
+ return (n << BigInt(1)) ^ (n >> BigInt(63));
338
+ }
339
+ }
340
+ exports.BufferWriter = BufferWriter;
341
+ BufferWriter.toZigZag = (n, bits) => (n << 1) ^ (n >> (bits - 1));
342
+ //# sourceMappingURL=thrift.writing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thrift.writing.js","sourceRoot":"","sources":["../../src/thrift/thrift.writing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Parser } from './realtime/parsers';
2
+ export interface Topic<T = unknown> {
3
+ id: string;
4
+ path: string;
5
+ parser: null | Parser<T>;
6
+ noParse?: boolean;
7
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=mqtt.message.js.map
3
+ //# sourceMappingURL=topic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic.js","sourceRoot":"","sources":["../src/topic.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,70 +1,61 @@
1
1
  {
2
2
  "name": "abmqtts",
3
- "version": "0.0.3",
4
- "description": "MQTT client in Typescript",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "dist"
9
- ],
10
- "engines": {
11
- "node": ">=18.0.0"
3
+ "version": "0.0.5",
4
+ "description": "Realtime and Push Notification (FBNS) support for the instagram-private-api",
5
+ "bugs": {
6
+ "url": "https://github.com/ozanbaskan/instagram_mqtt/issues"
12
7
  },
8
+ "main": "dist/index.js",
13
9
  "repository": {
14
10
  "type": "git",
15
- "url": "https://github.com/halitsever/mqtts"
16
- },
17
- "bugs": {
18
- "url": "https://github.com/halitsever/mqtts/issues"
11
+ "url": "https://github.com/ozanbaskan/instagram_mqtt.git"
19
12
  },
13
+ "files": [
14
+ "dist"
15
+ ],
20
16
  "scripts": {
21
- "test": "jest",
22
- "build": "rimraf dist && tsc -p tsconfig.build.json",
17
+ "test": "echo \"Error: no test specified\" && exit 1",
18
+ "build": "",
23
19
  "prepare": "npm run build",
24
- "lint-fix": "eslint --fix --ext .js,.ts src/**",
25
- "lint": "eslint --ext .js,.ts src/**",
26
- "format": "prettier -w . --loglevel warn",
20
+ "lint": "eslint --fix --ext .js,.ts src/**",
21
+ "format": "prettier -w . --log-level warn",
27
22
  "check-format": "prettier -c .",
28
23
  "typecheck": "tsc -p tsconfig.build.json --noEmit",
29
- "precommit": "pnpm run typecheck && pnpm run lint && pnpm run format"
24
+ "precommit": "npm run typecheck && npm run lint && npm run format"
25
+ },
26
+ "engines": {
27
+ "node": ">=18.0.0"
30
28
  },
29
+ "keywords": [],
30
+ "author": {
31
+ "name": "Ozan Baskan",
32
+ "email": "ozanbaskan7@gmail.com"
33
+ },
34
+ "license": "MIT",
31
35
  "dependencies": {
32
- "@types/ws": "^8.5.10",
36
+ "chance": "^1.1.11",
33
37
  "debug": "^4.3.4",
34
38
  "eventemitter3": "^5.0.1",
39
+ "instagram-private-api": "^1.46.1",
40
+ "abmqtt-dist": "^0.0.4",
35
41
  "socks": "^2.8.1",
36
- "ts-custom-error": "^3.3.1",
37
- "ts-xor": "^1.3.0",
38
- "ws": "^8.16.0"
42
+ "ts-custom-error": "^3.3.1"
39
43
  },
40
44
  "devDependencies": {
41
- "@swc/core": "^1.4.12",
42
- "@swc/jest": "^0.2.36",
43
- "@types/chai": "^4.3.14",
44
- "@types/chai-as-promised": "^7.1.8",
45
+ "@types/chance": "^1.1.6",
45
46
  "@types/debug": "^4.1.12",
46
- "@types/duplexify": "^3.6.4",
47
- "@types/jest": "^29.5.12",
48
- "@types/node": "^18.11.9",
49
- "@types/sinon": "^17.0.3",
47
+ "@types/luxon": "^3.4.2",
48
+ "@types/node": "^24.10.1",
50
49
  "@typescript-eslint/eslint-plugin": "^7.5.0",
51
50
  "@typescript-eslint/parser": "^7.5.0",
52
- "chai": "^4.4.1 < 5",
53
- "chai-as-promised": "^7.1.1",
54
- "duplexify": "^4.1.3",
55
51
  "eslint": "^8.57.0",
56
- "jest": "^29.7.0",
57
52
  "prettier": "^3.2.5",
58
53
  "rimraf": "^5.0.5",
59
- "sinon": "^17.0.1",
60
- "ts-jest": "^29.1.2",
54
+ "ts-xor": "^1.3.0",
61
55
  "typescript": "^5.4.4"
62
56
  },
63
- "keywords": [
64
- "MQTT",
65
- "subscribe",
66
- "iot",
67
- "tls"
68
- ],
69
- "license": "MIT"
57
+ "types": "dist/index.d.ts",
58
+ "overrides": {
59
+ "ts-custom-error": "^3.3.1"
60
+ }
70
61
  }
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class AbortError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbortError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class AbortError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.AbortError = AbortError;
8
- //# sourceMappingURL=abort.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abort.error.js","sourceRoot":"","sources":["../../src/errors/abort.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,UAAW,SAAQ,6BAAW;CAAG;AAA9C,gCAA8C"}
@@ -1,5 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class ConnectError extends CustomError {
3
- status: string;
4
- constructor(status: string);
5
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class ConnectError extends ts_custom_error_1.CustomError {
6
- constructor(status) {
7
- super(status);
8
- this.status = status;
9
- }
10
- }
11
- exports.ConnectError = ConnectError;
12
- //# sourceMappingURL=connect.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connect.error.js","sourceRoot":"","sources":["../../src/errors/connect.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,YAAa,SAAQ,6BAAW;IACzC,YAAmB,MAAc;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC;QADC,WAAM,GAAN,MAAM,CAAQ;IAEjC,CAAC;CACJ;AAJD,oCAIC"}
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class EndOfStreamError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EndOfStreamError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class EndOfStreamError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.EndOfStreamError = EndOfStreamError;
8
- //# sourceMappingURL=end-of-stream.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"end-of-stream.error.js","sourceRoot":"","sources":["../../src/errors/end-of-stream.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,gBAAiB,SAAQ,6BAAW;CAAG;AAApD,4CAAoD"}
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class FlowStoppedError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlowStoppedError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class FlowStoppedError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.FlowStoppedError = FlowStoppedError;
8
- //# sourceMappingURL=flow-stopped.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-stopped.error.js","sourceRoot":"","sources":["../../src/errors/flow-stopped.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,gBAAiB,SAAQ,6BAAW;CAAG;AAApD,4CAAoD"}
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class IllegalStateError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IllegalStateError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class IllegalStateError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.IllegalStateError = IllegalStateError;
8
- //# sourceMappingURL=illegal-state.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"illegal-state.error.js","sourceRoot":"","sources":["../../src/errors/illegal-state.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,iBAAkB,SAAQ,6BAAW;CAAG;AAArD,8CAAqD"}
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class MalformedPacketError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MalformedPacketError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class MalformedPacketError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.MalformedPacketError = MalformedPacketError;
8
- //# sourceMappingURL=malformed-packet.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"malformed-packet.error.js","sourceRoot":"","sources":["../../src/errors/malformed-packet.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,oBAAqB,SAAQ,6BAAW;CAAG;AAAxD,oDAAwD"}
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class SubscribeError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SubscribeError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class SubscribeError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.SubscribeError = SubscribeError;
8
- //# sourceMappingURL=subscribe.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe.error.js","sourceRoot":"","sources":["../../src/errors/subscribe.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,cAAe,SAAQ,6BAAW;CAE9C;AAFD,wCAEC"}
@@ -1,3 +0,0 @@
1
- import { CustomError } from 'ts-custom-error';
2
- export declare class UnexpectedPacketError extends CustomError {
3
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnexpectedPacketError = void 0;
4
- const ts_custom_error_1 = require("ts-custom-error");
5
- class UnexpectedPacketError extends ts_custom_error_1.CustomError {
6
- }
7
- exports.UnexpectedPacketError = UnexpectedPacketError;
8
- //# sourceMappingURL=unexpected-packet.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unexpected-packet.error.js","sourceRoot":"","sources":["../../src/errors/unexpected-packet.error.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,MAAa,qBAAsB,SAAQ,6BAAW;CAAG;AAAzD,sDAAyD"}
@@ -1,6 +0,0 @@
1
- import { MqttMessage } from '../mqtt.message';
2
- import { PacketFlowFunc } from './packet-flow';
3
- import { DefaultPacketReadResultMap } from '../packets/packet-reader';
4
- import { DefaultPacketWriteOptions } from '../packets/packet-writer';
5
- export declare function incomingPingFlow(): PacketFlowFunc<DefaultPacketReadResultMap, DefaultPacketWriteOptions, void>;
6
- export declare function incomingPublishFlow(message: MqttMessage, identifier: number): PacketFlowFunc<DefaultPacketReadResultMap, DefaultPacketWriteOptions, MqttMessage>;