abmqtts 0.0.3 → 0.0.6

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 +227 -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 +113 -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 +27 -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 +81 -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 +66 -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 +248 -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 +59 -68
  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,35 @@
1
+ import { GraphQlMessage, IrisParserData, ParsedMessage } from './parsers';
2
+ import { AppPresenceEventWrapper, MessageSyncMessageWrapper, RealtimeSubDirectDataWrapper } from './messages';
3
+ import { Topic } from '../topic';
4
+ import { MqttMessage } from 'abmqtt-dist';
5
+ import { QueryIDs } from './subscriptions';
6
+ import { ThreadUpdateWrapper } from './messages/thread-update.message';
7
+ type ReceiveEvent<T> = [Topic<T>, ParsedMessage<T>[]?];
8
+ export type RealtimeClientEvents = MergedRealtimeSubPayloads & {
9
+ error: Error;
10
+ warning: Error;
11
+ receive: ReceiveEvent<unknown>;
12
+ receiveRaw: MqttMessage;
13
+ close: [];
14
+ disconnect: [];
15
+ realtimeSub: ParsedMessage<GraphQlMessage>;
16
+ direct: RealtimeSubDirectDataWrapper;
17
+ iris: Partial<IrisParserData>;
18
+ message: MessageSyncMessageWrapper;
19
+ threadUpdate: ThreadUpdateWrapper;
20
+ clientConfigUpdate: {
21
+ client_config_update_event: {
22
+ publish_id: string;
23
+ client_config_name: string;
24
+ backing: 'QE' | string;
25
+ client_subscription_id: '17849856529644700' | string;
26
+ };
27
+ };
28
+ };
29
+ export type MergedRealtimeSubPayloads = {
30
+ [x in keyof typeof QueryIDs]: string | Record<string, unknown>;
31
+ } & KnownRealtimeSubPayloads;
32
+ export type KnownRealtimeSubPayloads = {
33
+ appPresence: AppPresenceEventWrapper;
34
+ };
35
+ export { };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=realtime.client.events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.client.events.js","sourceRoot":"","sources":["../../src/realtime/realtime.client.events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RealtimeClient = void 0;
4
+ const constants_1 = require("../constants");
5
+ const commands_1 = require("./commands");
6
+ const shared_1 = require("../shared");
7
+ const mqttot_1 = require("../mqttot");
8
+ const obmqtt_1 = require("abmqtt-dist");
9
+ const errors_1 = require("../errors");
10
+ const eventemitter3_1 = require("eventemitter3");
11
+ const mixins_1 = require("./mixins");
12
+ class RealtimeClient extends eventemitter3_1.EventEmitter {
13
+ get mqtt() {
14
+ return this._mqtt;
15
+ }
16
+ /**
17
+ *
18
+ * @param {IgApiClient} ig
19
+ * @param mixins - by default MessageSync and Realtime mixins are used
20
+ */
21
+ constructor(
22
+ ig,
23
+ mixins = [new mixins_1.MessageSyncMixin(), new mixins_1.RealtimeSubMixin()]
24
+ ) {
25
+ super();
26
+ this.realtimeDebug = (0, shared_1.debugChannel)("realtime");
27
+ this.messageDebug = this.realtimeDebug.extend("message");
28
+ this.safeDisconnect = false;
29
+ this.emitError = (e) => this.emit("error", e);
30
+ this.emitWarning = (e) => this.emit("warning", e);
31
+ this.ig = ig;
32
+ this.realtimeDebug(
33
+ `Applying mixins: ${mixins.map((m) => m.name).join(", ")}`
34
+ );
35
+ (0, mixins_1.applyMixins)(mixins, this, this.ig);
36
+ }
37
+ setInitOptions(initOptions) {
38
+ if (Array.isArray(initOptions)) initOptions = { graphQlSubs: initOptions };
39
+ this.initOptions = {
40
+ graphQlSubs: [],
41
+ skywalkerSubs: [],
42
+ ...(initOptions || {}),
43
+ socksOptions:
44
+ typeof initOptions === "object" && !Array.isArray(initOptions)
45
+ ? initOptions.socksOptions
46
+ : undefined,
47
+ };
48
+ }
49
+ constructConnection() {
50
+ const userAgent = this.ig.state.appUserAgent;
51
+ const deviceId = this.ig.state.phoneId;
52
+ const sessionid =
53
+ this.ig.state.parsedAuthorization?.sessionid ??
54
+ this.ig.state.extractCookieValue("sessionid");
55
+ const password = `sessionid=${sessionid}`;
56
+ this.connection = new mqttot_1.MQTToTConnection({
57
+ clientIdentifier: deviceId.substring(0, 20),
58
+ clientInfo: {
59
+ userId: BigInt(Number(this.ig.state.cookieUserId)),
60
+ userAgent,
61
+ clientCapabilities: 183,
62
+ endpointCapabilities: 0,
63
+ publishFormat: 1,
64
+ noAutomaticForeground: false,
65
+ makeUserAvailableInForeground: true,
66
+ deviceId,
67
+ isInitiallyForeground: true,
68
+ networkType: 1,
69
+ networkSubtype: 0,
70
+ clientMqttSessionId: BigInt(Date.now()) & BigInt(0xffffffff),
71
+ subscribeTopics: [88, 135, 149, 150, 133, 146],
72
+ clientType: "cookie_auth",
73
+ appId: BigInt(567067343352427),
74
+ deviceSecret: "",
75
+ clientStack: 3,
76
+ ...(this.initOptions?.connectOverrides || {}),
77
+ },
78
+ password,
79
+ appSpecificInfo: {
80
+ app_version: this.ig.state.appVersion,
81
+ "X-IG-Capabilities": this.ig.state.capabilitiesHeader,
82
+ everclear_subscriptions: JSON.stringify({
83
+ inapp_notification_subscribe_comment: "17899377895239777",
84
+ inapp_notification_subscribe_comment_mention_and_reply:
85
+ "17899377895239777",
86
+ video_call_participant_state_delivery: "17977239895057311",
87
+ presence_subscribe: "17846944882223835",
88
+ }),
89
+ "User-Agent": userAgent,
90
+ "Accept-Language": this.ig.state.language.replace("_", "-"),
91
+ platform: "android",
92
+ ig_mqtt_route: "django",
93
+ pubsub_msg_type_blacklist: "direct, typing_type",
94
+ auth_cache_enabled: "0",
95
+ },
96
+ });
97
+ }
98
+ async connect(initOptions) {
99
+ this.realtimeDebug("Connecting to realtime-broker...");
100
+ this.setInitOptions(initOptions);
101
+ this.realtimeDebug(
102
+ `Overriding: ${Object.keys(this.initOptions?.connectOverrides || {}).join(
103
+ ", "
104
+ )}`
105
+ );
106
+ this._mqtt = new mqttot_1.MQTToTClient({
107
+ url: constants_1.REALTIME.HOST_NAME_V6,
108
+ payloadProvider: () => {
109
+ this.constructConnection();
110
+ if (!this.connection) {
111
+ throw new obmqtt_1.IllegalStateError(
112
+ "constructConnection() didn't create a connection"
113
+ );
114
+ }
115
+ return (0, shared_1.compressDeflate)(this.connection.toThrift());
116
+ },
117
+ enableTrace: this.initOptions?.enableTrace,
118
+ autoReconnect: this.initOptions?.autoReconnect ?? true,
119
+ requirePayload: false,
120
+ socksOptions: this.initOptions?.socksOptions,
121
+ additionalOptions: this.initOptions?.additionalTlsOptions,
122
+ });
123
+ this.commands = new commands_1.Commands(this.mqtt);
124
+ this.direct = new commands_1.DirectCommands(this.mqtt);
125
+ this.mqtt.on("message", async (msg) => {
126
+ const unzipped = await (0, shared_1.tryUnzipAsync)(msg.payload);
127
+ const topic = constants_1.RealtimeTopicsArray.find(
128
+ (t) => t.id === msg.topic
129
+ );
130
+ if (topic && topic.parser && !topic.noParse) {
131
+ const parsedMessages = topic.parser.parseMessage(topic, unzipped);
132
+ this.messageDebug(
133
+ `Received on ${topic.path}: ${JSON.stringify(
134
+ Array.isArray(parsedMessages)
135
+ ? parsedMessages.map((x) => x.data)
136
+ : parsedMessages.data
137
+ )}`
138
+ );
139
+ this.emit(
140
+ "receive",
141
+ topic,
142
+ Array.isArray(parsedMessages) ? parsedMessages : [parsedMessages]
143
+ );
144
+ } else {
145
+ this.messageDebug(
146
+ `Received raw on ${topic?.path ?? msg.topic}: (${
147
+ unzipped.byteLength
148
+ } bytes) ${(0, shared_1.prepareLogString)(unzipped.toString())}`
149
+ );
150
+ this.emit("receiveRaw", msg);
151
+ }
152
+ });
153
+ this.mqtt.on("error", (e) => this.emitError(e));
154
+ this.mqtt.on("warning", (w) => this.emitWarning(w));
155
+ this.mqtt.on("disconnect", () =>
156
+ this.safeDisconnect
157
+ ? this.emit("disconnect")
158
+ : this.emitError(
159
+ new errors_1.ClientDisconnectedError(
160
+ "MQTToTClient got disconnected."
161
+ )
162
+ )
163
+ );
164
+ return new Promise((resolve, reject) => {
165
+ this.mqtt.on("connect", async () => {
166
+ if (!this.initOptions) {
167
+ throw new obmqtt_1.IllegalStateError("No initi options given");
168
+ }
169
+ this.realtimeDebug("Connected. Checking initial subs.");
170
+ const { graphQlSubs, skywalkerSubs, irisData } = this.initOptions;
171
+ await Promise.all([
172
+ graphQlSubs && graphQlSubs.length > 0
173
+ ? this.graphQlSubscribe(graphQlSubs)
174
+ : null,
175
+ skywalkerSubs && skywalkerSubs.length > 0
176
+ ? this.skywalkerSubscribe(skywalkerSubs)
177
+ : null,
178
+ irisData ? this.irisSubscribe(irisData) : null,
179
+ ]).then(resolve);
180
+ });
181
+ this.mqtt
182
+ .connect({
183
+ keepAlive: 20,
184
+ protocolLevel: 3,
185
+ clean: true,
186
+ connectDelay: 60 * 1000,
187
+ })
188
+ .catch((e) => {
189
+ this.emitError(e);
190
+ reject(e);
191
+ });
192
+ });
193
+ }
194
+ disconnect() {
195
+ this.safeDisconnect = true;
196
+ return this.mqtt?.disconnect() ?? Promise.resolve();
197
+ }
198
+ graphQlSubscribe(sub) {
199
+ sub = typeof sub === "string" ? [sub] : sub;
200
+ if (!this.commands) {
201
+ throw new obmqtt_1.IllegalStateError(
202
+ "connect() must be called before graphQlSubscribe()"
203
+ );
204
+ }
205
+ this.realtimeDebug(`Subscribing with GraphQL to ${sub.join(", ")}`);
206
+ return this.commands.updateSubscriptions({
207
+ topic: constants_1.Topics.REALTIME_SUB,
208
+ data: {
209
+ sub,
210
+ },
211
+ });
212
+ }
213
+ skywalkerSubscribe(sub) {
214
+ sub = typeof sub === "string" ? [sub] : sub;
215
+ if (!this.commands) {
216
+ throw new obmqtt_1.IllegalStateError(
217
+ "connect() must be called before skywalkerSubscribe()"
218
+ );
219
+ }
220
+ this.realtimeDebug(`Subscribing with Skywalker to ${sub.join(", ")}`);
221
+ return this.commands.updateSubscriptions({
222
+ topic: constants_1.Topics.PUBSUB,
223
+ data: {
224
+ sub,
225
+ },
226
+ });
227
+ }
228
+ irisSubscribe({ seq_id, snapshot_at_ms }) {
229
+ if (!this.commands) {
230
+ throw new obmqtt_1.IllegalStateError(
231
+ "connect() must be called before irisSubscribe()"
232
+ );
233
+ }
234
+ this.realtimeDebug(
235
+ `Iris Sub to: seqId: ${seq_id}, snapshot: ${snapshot_at_ms}`
236
+ );
237
+ return this.commands.updateSubscriptions({
238
+ topic: constants_1.Topics.IRIS_SUB,
239
+ data: {
240
+ seq_id,
241
+ snapshot_at_ms,
242
+ snapshot_app_version: this.ig.state.appVersion,
243
+ },
244
+ });
245
+ }
246
+ }
247
+ exports.RealtimeClient = RealtimeClient;
248
+ //# sourceMappingURL=realtime.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.client.js","sourceRoot":"","sources":["../../src/realtime/realtime.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export declare const QueryIDs: {
2
+ appPresence: string;
3
+ asyncAdSub: string;
4
+ clientConfigUpdate: string;
5
+ directStatus: string;
6
+ directTyping: string;
7
+ liveWave: string;
8
+ interactivityActivateQuestion: string;
9
+ interactivityRealtimeQuestionSubmissionsStatus: string;
10
+ interactivitySub: string;
11
+ liveRealtimeComments: string;
12
+ liveTypingIndicator: string;
13
+ mediaFeedback: string;
14
+ reactNativeOTA: string;
15
+ videoCallCoWatchControl: string;
16
+ videoCallInAlert: string;
17
+ videoCallPrototypePublish: string;
18
+ zeroProvision: string;
19
+ };
20
+ export interface GraphQLSubscription {
21
+ subscriptionQueryId: string;
22
+ inputParams: Record<string, any>;
23
+ }
24
+ export interface GraphQLSubBaseOptions {
25
+ subscriptionId?: string;
26
+ clientLogged?: boolean;
27
+ }
28
+ export declare class GraphQLSubscriptions {
29
+ private static formatSubscriptionString;
30
+ static getAppPresenceSubscription: (options?: GraphQLSubBaseOptions) => string;
31
+ static getAsyncAdSubscription: (userId: string, options?: GraphQLSubBaseOptions) => string;
32
+ static getClientConfigUpdateSubscription: (options?: GraphQLSubBaseOptions) => string;
33
+ static getDirectStatusSubscription: (options?: GraphQLSubBaseOptions) => string;
34
+ static getDirectTypingSubscription: (userId: string, clientLogged?: boolean) => string;
35
+ static getIgLiveWaveSubscription: (broadcastId: string, receiverId: string, options?: GraphQLSubBaseOptions) => string;
36
+ static getInteractivityActivateQuestionSubscription: (broadcastId: string, options?: GraphQLSubBaseOptions) => string;
37
+ static getInteractivityRealtimeQuestionSubmissionsStatusSubscription: (broadcastId: string, options?: GraphQLSubBaseOptions) => string;
38
+ static getInteractivitySubscription: (broadcastId: string, options?: GraphQLSubBaseOptions) => string;
39
+ static getLiveRealtimeCommentsSubscription: (broadcastId: string, options?: GraphQLSubBaseOptions) => string;
40
+ static getLiveTypingIndicatorSubscription: (broadcastId: string, options?: GraphQLSubBaseOptions) => string;
41
+ static getMediaFeedbackSubscription: (feedbackId: string, options?: GraphQLSubBaseOptions) => string;
42
+ static getReactNativeOTAUpdateSubscription: (buildNumber: string, options?: GraphQLSubBaseOptions) => string;
43
+ static getVideoCallCoWatchControlSubscription: (videoCallId: string, options?: GraphQLSubBaseOptions) => string;
44
+ static getVideoCallInCallAlertSubscription: (videoCallId: string, options?: GraphQLSubBaseOptions) => string;
45
+ static getVideoCallPrototypePublishSubscription: (videoCallId: string, options?: GraphQLSubBaseOptions) => string;
46
+ static getZeroProvisionSubscription: (deviceId: string, options?: GraphQLSubBaseOptions) => string;
47
+ }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphQLSubscriptions = exports.QueryIDs = void 0;
4
+ const Chance = require("chance");
5
+ // src: com.instagram.realtimeclient.RealtimeSubscription
6
+ exports.QueryIDs = {
7
+ appPresence: '17846944882223835',
8
+ asyncAdSub: '17911191835112000',
9
+ clientConfigUpdate: '17849856529644700',
10
+ directStatus: '17854499065530643',
11
+ directTyping: '17867973967082385',
12
+ liveWave: '17882305414154951',
13
+ interactivityActivateQuestion: '18005526940184517',
14
+ interactivityRealtimeQuestionSubmissionsStatus: '18027779584026952',
15
+ interactivitySub: '17907616480241689',
16
+ liveRealtimeComments: '17855344750227125',
17
+ liveTypingIndicator: '17926314067024917',
18
+ mediaFeedback: '17877917527113814',
19
+ reactNativeOTA: '17861494672288167',
20
+ videoCallCoWatchControl: '17878679623388956',
21
+ videoCallInAlert: '17878679623388956',
22
+ videoCallPrototypePublish: '18031704190010162',
23
+ zeroProvision: '17913953740109069',
24
+ };
25
+ class GraphQLSubscriptions {
26
+ static formatSubscriptionString(queryId, inputParams, clientLogged) {
27
+ return `1/graphqlsubscriptions/${queryId}/${JSON.stringify({
28
+ input_data: inputParams,
29
+ ...(clientLogged ? { '%options': { client_logged: clientLogged } } : {}),
30
+ })}`;
31
+ }
32
+ }
33
+ exports.GraphQLSubscriptions = GraphQLSubscriptions;
34
+ GraphQLSubscriptions.getAppPresenceSubscription = (options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.appPresence, {
35
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
36
+ }, options.clientLogged);
37
+ GraphQLSubscriptions.getAsyncAdSubscription = (userId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.asyncAdSub, {
38
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
39
+ user_id: userId,
40
+ }, options.clientLogged);
41
+ GraphQLSubscriptions.getClientConfigUpdateSubscription = (options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.clientConfigUpdate, {
42
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
43
+ }, options.clientLogged);
44
+ GraphQLSubscriptions.getDirectStatusSubscription = (options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.directStatus, {
45
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
46
+ }, options.clientLogged);
47
+ GraphQLSubscriptions.getDirectTypingSubscription = (userId, clientLogged) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.directTyping, {
48
+ user_id: userId,
49
+ }, clientLogged);
50
+ GraphQLSubscriptions.getIgLiveWaveSubscription = (broadcastId, receiverId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.liveWave, {
51
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
52
+ broadcast_id: broadcastId,
53
+ receiver_id: receiverId,
54
+ }, options.clientLogged);
55
+ GraphQLSubscriptions.getInteractivityActivateQuestionSubscription = (broadcastId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.interactivityActivateQuestion, {
56
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
57
+ broadcast_id: broadcastId,
58
+ }, options.clientLogged);
59
+ GraphQLSubscriptions.getInteractivityRealtimeQuestionSubmissionsStatusSubscription = (broadcastId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.interactivityRealtimeQuestionSubmissionsStatus, {
60
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
61
+ broadcast_id: broadcastId,
62
+ }, options.clientLogged);
63
+ GraphQLSubscriptions.getInteractivitySubscription = (broadcastId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.interactivitySub, {
64
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
65
+ broadcast_id: broadcastId,
66
+ }, options.clientLogged);
67
+ GraphQLSubscriptions.getLiveRealtimeCommentsSubscription = (broadcastId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.liveRealtimeComments, {
68
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
69
+ broadcast_id: broadcastId,
70
+ }, options.clientLogged);
71
+ GraphQLSubscriptions.getLiveTypingIndicatorSubscription = (broadcastId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.liveTypingIndicator, {
72
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
73
+ broadcast_id: broadcastId,
74
+ }, options.clientLogged);
75
+ GraphQLSubscriptions.getMediaFeedbackSubscription = (feedbackId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.mediaFeedback, {
76
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
77
+ feedback_id: feedbackId,
78
+ }, options.clientLogged);
79
+ GraphQLSubscriptions.getReactNativeOTAUpdateSubscription = (buildNumber, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.reactNativeOTA, {
80
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
81
+ build_number: buildNumber,
82
+ }, options.clientLogged);
83
+ GraphQLSubscriptions.getVideoCallCoWatchControlSubscription = (videoCallId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.videoCallCoWatchControl, {
84
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
85
+ video_call_id: videoCallId,
86
+ }, options.clientLogged);
87
+ GraphQLSubscriptions.getVideoCallInCallAlertSubscription = (videoCallId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.videoCallInAlert, {
88
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
89
+ video_call_id: videoCallId,
90
+ }, options.clientLogged);
91
+ GraphQLSubscriptions.getVideoCallPrototypePublishSubscription = (videoCallId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.videoCallPrototypePublish, {
92
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
93
+ video_call_id: videoCallId,
94
+ }, options.clientLogged);
95
+ GraphQLSubscriptions.getZeroProvisionSubscription = (deviceId, options = {}) => GraphQLSubscriptions.formatSubscriptionString(exports.QueryIDs.zeroProvision, {
96
+ client_subscription_id: options.subscriptionId || new Chance().guid({ version: 4 }),
97
+ device_id: deviceId,
98
+ }, options.clientLogged);
99
+ //# sourceMappingURL=graphql.subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.subscription.js","sourceRoot":"","sources":["../../../src/realtime/subscriptions/graphql.subscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './graphql.subscription';
2
+ export * from './skywalker.subscription';
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./packet-flow"), exports);
18
- __exportStar(require("./incoming.flows"), exports);
19
- __exportStar(require("./outgoing.flows"), exports);
17
+ __exportStar(require("./graphql.subscription"), exports);
18
+ __exportStar(require("./skywalker.subscription"), exports);
20
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/realtime/subscriptions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,2DAAyC"}
@@ -0,0 +1,4 @@
1
+ export declare class SkywalkerSubscriptions {
2
+ static directSub(userId: string | number | bigint): string;
3
+ static liveSub(userId: string | number | bigint): string;
4
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkywalkerSubscriptions = void 0;
4
+ class SkywalkerSubscriptions {
5
+ static directSub(userId) {
6
+ return `ig/u/v1/${userId}`;
7
+ }
8
+ static liveSub(userId) {
9
+ return `ig/live_notification_subscribe/${userId}`;
10
+ }
11
+ }
12
+ exports.SkywalkerSubscriptions = SkywalkerSubscriptions;
13
+ //# sourceMappingURL=skywalker.subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skywalker.subscription.js","sourceRoot":"","sources":["../../../src/realtime/subscriptions/skywalker.subscription.ts"],"names":[],"mappings":";;;AAAA,MAAa,sBAAsB;IACzB,MAAM,CAAC,SAAS,CAAC,MAAgC;QACrD,OAAO,WAAW,MAAM,EAAE,CAAC;IAC9B,CAAC;IACM,MAAM,CAAC,OAAO,CAAC,MAAgC;QACnD,OAAO,kCAAkC,MAAM,EAAE,CAAC;IACrD,CAAC;CACH;AAPD,wDAOC"}
@@ -0,0 +1,21 @@
1
+ import { IgApiClient } from 'instagram-private-api';
2
+ import { Debugger } from 'debug';
3
+ import { MqttClient } from 'abmqtt-dist';
4
+ export declare function createFbnsUserAgent(ig: IgApiClient): string;
5
+ export declare function compressDeflate(data: string | Buffer): Promise<Buffer>;
6
+ export declare function unzipAsync(data: string | Buffer): Promise<Buffer>;
7
+ export declare function tryUnzipAsync(data: Buffer): Promise<Buffer>;
8
+ export declare function isJson(buffer: Buffer): boolean;
9
+ /**
10
+ * Returns a debug function with a path starting with ig:mqtt
11
+ * @param {string} path
12
+ * @returns {(msg: string, ...additionalData: any) => void}
13
+ */
14
+ export declare const debugChannel: (...path: string[]) => Debugger;
15
+ export declare function notUndefined<T>(a: T | undefined): a is T;
16
+ export type BigInteger = string | number | bigint;
17
+ export type ToEventFn<T> = {
18
+ [x in keyof T]: T[x] extends Array<unknown> ? (...args: T[x]) => void : (e: T[x]) => void;
19
+ };
20
+ export declare function listenOnce<T>(client: MqttClient<any, any>, topic: string): Promise<T>;
21
+ export declare function prepareLogString(value: string): string;
package/dist/shared.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debugChannel = void 0;
4
+ exports.createFbnsUserAgent = createFbnsUserAgent;
5
+ exports.compressDeflate = compressDeflate;
6
+ exports.unzipAsync = unzipAsync;
7
+ exports.tryUnzipAsync = tryUnzipAsync;
8
+ exports.isJson = isJson;
9
+ exports.notUndefined = notUndefined;
10
+ exports.listenOnce = listenOnce;
11
+ exports.prepareLogString = prepareLogString;
12
+ const zlib_1 = require("zlib");
13
+ const debug_1 = require("debug");
14
+ const util_1 = require("util");
15
+ const deflatePromise = (0, util_1.promisify)(zlib_1.deflate);
16
+ const unzipPromise = (0, util_1.promisify)(zlib_1.unzip);
17
+ // TODO: map
18
+ function createFbnsUserAgent(ig) {
19
+ const [androidVersion, , resolution, manufacturer, deviceName] = ig.state.deviceString.split('; ');
20
+ const [width, height] = resolution.split('x');
21
+ const params = {
22
+ FBAN: 'MQTT',
23
+ FBAV: ig.state.appVersion,
24
+ FBBV: ig.state.appVersionCode,
25
+ FBDM: `{density=4.0,width=${width},height=${height}`,
26
+ FBLC: ig.state.language,
27
+ FBCR: 'Android',
28
+ FBMF: manufacturer.trim(),
29
+ FBBD: 'Android',
30
+ FBPN: 'com.instagram.android',
31
+ FBDV: deviceName.trim(),
32
+ FBSV: androidVersion.split('/')[1],
33
+ FBLR: '0',
34
+ FBBK: '1',
35
+ FBCA: 'x86:armeabi-v7a',
36
+ };
37
+ return `[${Object.entries(params)
38
+ .map(p => p.join('/'))
39
+ .join(';')}]`;
40
+ }
41
+ function compressDeflate(data) {
42
+ return deflatePromise(data, { level: 9 });
43
+ }
44
+ function unzipAsync(data) {
45
+ return unzipPromise(data);
46
+ }
47
+ async function tryUnzipAsync(data) {
48
+ try {
49
+ if (data.readInt8(0) !== 0x78)
50
+ return data;
51
+ return unzipAsync(data);
52
+ }
53
+ catch (e) {
54
+ return data;
55
+ }
56
+ }
57
+ function isJson(buffer) {
58
+ return !!String.fromCharCode(buffer[0]).match(/[{[]/);
59
+ }
60
+ /**
61
+ * Returns a debug function with a path starting with ig:mqtt
62
+ * @param {string} path
63
+ * @returns {(msg: string, ...additionalData: any) => void}
64
+ */
65
+ const debugChannel = (...path) => (0, debug_1.default)(['ig', 'mqtt', ...path].join(':'));
66
+ exports.debugChannel = debugChannel;
67
+ function notUndefined(a) {
68
+ return typeof a !== 'undefined';
69
+ }
70
+ function listenOnce(client, topic) {
71
+ return new Promise(resolve => {
72
+ const removeFn = client.listen(topic, msg => {
73
+ removeFn();
74
+ resolve(msg);
75
+ });
76
+ });
77
+ }
78
+ const MAX_STRING_LENGTH = 128;
79
+ const ACTUAL_MAX_LEN = MAX_STRING_LENGTH - `"[${MAX_STRING_LENGTH}...]"`.length;
80
+ function prepareLogString(value) {
81
+ if (value.length > ACTUAL_MAX_LEN) {
82
+ value = `${value.substring(0, ACTUAL_MAX_LEN)}[${MAX_STRING_LENGTH}...]`;
83
+ }
84
+ return `"${value}"`;
85
+ }
86
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './thrift';
2
+ export * from './thrift.reading';
3
+ export * from './thrift.writing';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./thrift"), exports);
18
+ __exportStar(require("./thrift.reading"), exports);
19
+ __exportStar(require("./thrift.writing"), exports);
20
+ //# sourceMappingURL=index.js.map