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
@@ -1,25 +1,30 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./end-of-stream.error"), exports);
18
- __exportStar(require("./malformed-packet.error"), exports);
19
- __exportStar(require("./unexpected-packet.error"), exports);
20
- __exportStar(require("./connect.error"), exports);
21
- __exportStar(require("./subscribe.error"), exports);
22
- __exportStar(require("./flow-stopped.error"), exports);
23
- __exportStar(require("./illegal-state.error"), exports);
24
- __exportStar(require("./abort.error"), exports);
3
+ exports.ThriftError = exports.IllegalArgumentError = exports.ConnectionFailedError = exports.InvalidStateError = exports.EmptyPacketError = exports.ClientDisconnectedError = void 0;
4
+ class BaseError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ // @ts-ignore -- set the name to the class's actual name
8
+ this.name = this.__proto__.constructor.name;
9
+ }
10
+ }
11
+ class ClientDisconnectedError extends BaseError {
12
+ }
13
+ exports.ClientDisconnectedError = ClientDisconnectedError;
14
+ class EmptyPacketError extends BaseError {
15
+ }
16
+ exports.EmptyPacketError = EmptyPacketError;
17
+ class InvalidStateError extends BaseError {
18
+ }
19
+ exports.InvalidStateError = InvalidStateError;
20
+ class ConnectionFailedError extends BaseError {
21
+ }
22
+ exports.ConnectionFailedError = ConnectionFailedError;
23
+ class IllegalArgumentError extends BaseError {
24
+ }
25
+ exports.IllegalArgumentError = IllegalArgumentError;
26
+ // TODO: split further
27
+ class ThriftError extends BaseError {
28
+ }
29
+ exports.ThriftError = ThriftError;
25
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC;AACzC,4DAA0C;AAC1C,kDAAgC;AAChC,oDAAkC;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAU,SAAQ,KAAK;IAC1B,YAAY,OAAgB;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,wDAAwD;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/C,CAAC;CACH;AAED,MAAa,uBAAwB,SAAQ,SAAS;CAAG;AAAzD,0DAAyD;AAEzD,MAAa,gBAAiB,SAAQ,SAAS;CAAG;AAAlD,4CAAkD;AAElD,MAAa,iBAAkB,SAAQ,SAAS;CAAG;AAAnD,8CAAmD;AAEnD,MAAa,qBAAsB,SAAQ,SAAS;CAAG;AAAvD,sDAAuD;AAEvD,MAAa,oBAAqB,SAAQ,SAAS;CAAG;AAAtD,oDAAsD;AAEtD,sBAAsB;AACtB,MAAa,WAAY,SAAQ,SAAS;CAAG;AAA7C,kCAA6C"}
@@ -0,0 +1,25 @@
1
+ import { IgApiClient } from 'instagram-private-api';
2
+ import { FbnsClient } from './fbns';
3
+ import { RealtimeClient, Mixin } from './realtime';
4
+ export interface StateHook<T> {
5
+ name: string;
6
+ onExport: (client: IgApiClientExt) => PromiseLike<T> | T;
7
+ onImport: (data: T, client: IgApiClientExt) => PromiseLike<void> | void;
8
+ }
9
+ export declare class IgApiClientExt extends IgApiClient {
10
+ protected sateHooks: StateHook<any>[];
11
+ exportState(): Promise<string>;
12
+ importState(state: string | Record<string, unknown>): Promise<void>;
13
+ constructor();
14
+ addStateHook(hook: StateHook<any>): void;
15
+ }
16
+ export type IgApiClientFbns = IgApiClientExt & {
17
+ fbns: FbnsClient;
18
+ };
19
+ export type IgApiClientRealtime = IgApiClientExt & {
20
+ realtime: RealtimeClient;
21
+ };
22
+ export type IgApiClientMQTT = IgApiClientFbns & IgApiClientRealtime;
23
+ export declare function withFbns(client: IgApiClient | IgApiClientExt): IgApiClientFbns;
24
+ export declare function withRealtime(client: IgApiClient | IgApiClientExt, mixins?: Mixin[]): IgApiClientRealtime;
25
+ export declare function withFbnsAndRealtime(client: IgApiClient | IgApiClientExt, mixins?: Mixin[]): IgApiClientMQTT;
package/dist/extend.js ADDED
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IgApiClientExt = void 0;
4
+ exports.withFbns = withFbns;
5
+ exports.withRealtime = withRealtime;
6
+ exports.withFbnsAndRealtime = withFbnsAndRealtime;
7
+ const instagram_private_api_1 = require("instagram-private-api");
8
+ const fbns_1 = require("./fbns");
9
+ const realtime_1 = require("./realtime");
10
+ const errors_1 = require("./errors");
11
+ class IgApiClientExt extends instagram_private_api_1.IgApiClient {
12
+ async exportState() {
13
+ const data = {};
14
+ for (const hook of this.sateHooks) {
15
+ data[hook.name] = await hook.onExport(this);
16
+ }
17
+ return JSON.stringify(data);
18
+ }
19
+ async importState(state) {
20
+ if (typeof state === 'string')
21
+ state = JSON.parse(state);
22
+ for (const [key, value] of Object.entries(state)) {
23
+ const hook = this.sateHooks.find(x => x.name === key);
24
+ if (hook) {
25
+ await hook.onImport(value, this);
26
+ }
27
+ }
28
+ }
29
+ constructor() {
30
+ super();
31
+ this.sateHooks = [];
32
+ this.addStateHook({
33
+ name: 'client',
34
+ // we want to remove 'constants'
35
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
36
+ onExport: async (client) => await client.state.serialize().then(({ constants, ...state }) => state),
37
+ onImport: (data, client) => client.state.deserialize(data),
38
+ });
39
+ }
40
+ addStateHook(hook) {
41
+ if (this.sateHooks.some(x => x.name === hook.name))
42
+ throw new errors_1.InvalidStateError('Hook already registered');
43
+ this.sateHooks.push(hook);
44
+ }
45
+ }
46
+ exports.IgApiClientExt = IgApiClientExt;
47
+ function withFbns(client) {
48
+ client = assertClient(client);
49
+ Object.defineProperty(client, 'fbns', { value: new fbns_1.FbnsClient(client), enumerable: false });
50
+ if (client instanceof IgApiClientExt) {
51
+ client.addStateHook({
52
+ name: 'fbns',
53
+ // @ts-ignore
54
+ onExport: (client) => client.fbns.auth.toString(),
55
+ // @ts-ignore
56
+ onImport: (data, client) => client.fbns.auth.read(data),
57
+ });
58
+ }
59
+ // @ts-ignore
60
+ return client;
61
+ }
62
+ function withRealtime(client, mixins) {
63
+ client = assertClient(client);
64
+ Object.defineProperty(client, 'realtime', { value: new realtime_1.RealtimeClient(client, mixins), enumerable: false });
65
+ // @ts-ignore
66
+ return client;
67
+ }
68
+ function withFbnsAndRealtime(client, mixins) {
69
+ client = assertClient(client);
70
+ Object.defineProperty(client, 'fbns', { value: new fbns_1.FbnsClient(client), enumerable: false });
71
+ Object.defineProperty(client, 'realtime', { value: new realtime_1.RealtimeClient(client, mixins), enumerable: false });
72
+ if (client instanceof IgApiClientExt) {
73
+ client.addStateHook({
74
+ name: 'fbns',
75
+ // @ts-ignore
76
+ onExport: (client) => client.fbns.auth.toString(),
77
+ // @ts-ignore
78
+ onImport: (data, client) => client.fbns.auth.read(data),
79
+ });
80
+ }
81
+ // @ts-ignore
82
+ return client;
83
+ }
84
+ function assertClient(client) {
85
+ if (!(client instanceof IgApiClientExt)) {
86
+ return new IgApiClientExt();
87
+ }
88
+ // @ts-ignore
89
+ return client;
90
+ }
91
+ //# sourceMappingURL=extend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.js","sourceRoot":"","sources":["../src/extend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { IgApiClient, StatusResponse } from 'instagram-private-api';
2
+ import { FbnsDeviceAuth } from './fbns.device-auth';
3
+ import { ToEventFn } from '../shared';
4
+ import { FbnsNotificationUnknown } from './fbns.types';
5
+ import { EventEmitter } from 'eventemitter3';
6
+ import { FbnsClientEvents } from './fbns.client.events';
7
+ import { SocksProxy } from 'socks';
8
+ import { ConnectionOptions } from 'tls';
9
+ export declare class FbnsClient extends EventEmitter<ToEventFn<FbnsClientEvents & {
10
+ [x: string]: FbnsNotificationUnknown;
11
+ }>> {
12
+ private readonly ig;
13
+ get auth(): FbnsDeviceAuth;
14
+ set auth(value: FbnsDeviceAuth);
15
+ private fbnsDebug;
16
+ private client?;
17
+ private conn?;
18
+ private _auth;
19
+ private safeDisconnect;
20
+ constructor(ig: IgApiClient);
21
+ buildConnection(): void;
22
+ connect({ enableTrace, autoReconnect, socksOptions, additionalTlsOptions, }?: {
23
+ enableTrace?: boolean;
24
+ autoReconnect?: boolean;
25
+ socksOptions?: SocksProxy;
26
+ additionalTlsOptions?: ConnectionOptions;
27
+ }): Promise<any>;
28
+ disconnect(): Promise<void>;
29
+ private handleMessage;
30
+ sendPushRegister(token: string): Promise<StatusResponse>;
31
+ }
@@ -0,0 +1,41 @@
1
+ import { FbnsMessageData, FbnsNotification, FbnsNotificationUnknown } from './fbns.types';
2
+ import { FbnsDeviceAuth } from './fbns.device-auth';
3
+ export interface FbnsClientEvents extends ToClientEvents<FbnsNotificationEventParams> {
4
+ auth: FbnsDeviceAuth;
5
+ push: FbnsNotificationUnknown;
6
+ error: Error;
7
+ warning: Error;
8
+ message: FbnsMessageData;
9
+ logging: {
10
+ beacon_id: number;
11
+ };
12
+ pp: string;
13
+ disconnect: string | undefined;
14
+ }
15
+ export type ToClientEvents<T> = {
16
+ [x in keyof T]: FbnsNotification<T[x]>;
17
+ };
18
+ export interface FbnsNotificationEventParams {
19
+ post: {
20
+ id: string;
21
+ };
22
+ first_post: {
23
+ username: string;
24
+ };
25
+ resurrected_user_post: {
26
+ id: string;
27
+ };
28
+ recent_follow_post: {
29
+ id: string;
30
+ };
31
+ fb_first_post: {
32
+ username: string;
33
+ };
34
+ first_bestie_post: {
35
+ id: string;
36
+ };
37
+ direct_v2_message: {
38
+ id: string;
39
+ x: string;
40
+ };
41
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=mqtts.reconnect-strategy.js.map
3
+ //# sourceMappingURL=fbns.client.events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fbns.client.events.js","sourceRoot":"","sources":["../../src/fbns/fbns.client.events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FbnsClient = void 0;
4
+ const constants_1 = require("../constants");
5
+ const fbns_device_auth_1 = require("./fbns.device-auth");
6
+ const shared_1 = require("../shared");
7
+ const mqttot_1 = require("../mqttot");
8
+ const chance_1 = require("chance");
9
+ const obmqtt_1 = require("abmqtt-dist");
10
+ const errors_1 = require("../errors");
11
+ const eventemitter3_1 = require("eventemitter3");
12
+ const fbns_utilities_1 = require("./fbns.utilities");
13
+ class FbnsClient extends eventemitter3_1.EventEmitter {
14
+ get auth() {
15
+ return this._auth;
16
+ }
17
+ set auth(value) {
18
+ this._auth = value;
19
+ }
20
+ constructor(ig) {
21
+ super();
22
+ this.ig = ig;
23
+ this.fbnsDebug = (0, shared_1.debugChannel)("fbns");
24
+ this.safeDisconnect = false;
25
+ this._auth = new fbns_device_auth_1.FbnsDeviceAuth(this.ig);
26
+ }
27
+ buildConnection() {
28
+ this.fbnsDebug("Constructing connection");
29
+ this.conn = new mqttot_1.MQTToTConnection({
30
+ clientIdentifier: this._auth.clientId,
31
+ clientInfo: {
32
+ userId: BigInt(this._auth.userId),
33
+ userAgent: (0, shared_1.createFbnsUserAgent)(this.ig),
34
+ clientCapabilities: 183,
35
+ endpointCapabilities: 128,
36
+ publishFormat: 1,
37
+ noAutomaticForeground: true,
38
+ makeUserAvailableInForeground: false,
39
+ deviceId: this._auth.deviceId,
40
+ isInitiallyForeground: false,
41
+ networkType: 1,
42
+ networkSubtype: 0,
43
+ clientMqttSessionId: BigInt(Date.now()) & BigInt(0xffffffff),
44
+ subscribeTopics: [76, 80, 231],
45
+ clientType: "device_auth",
46
+ appId: BigInt(567310203415052),
47
+ deviceSecret: this._auth.deviceSecret,
48
+ anotherUnknown: BigInt(-1),
49
+ clientStack: 3,
50
+ },
51
+ password: this._auth.password,
52
+ });
53
+ }
54
+ async connect({
55
+ enableTrace,
56
+ autoReconnect,
57
+ socksOptions,
58
+ additionalTlsOptions,
59
+ } = {}) {
60
+ this.fbnsDebug("Connecting to FBNS...");
61
+ this.auth.update();
62
+ this.client = new mqttot_1.MQTToTClient({
63
+ url: constants_1.FBNS.HOST_NAME_V6,
64
+ payloadProvider: () => {
65
+ this.buildConnection();
66
+ if (!this.conn) {
67
+ throw new errors_1.InvalidStateError(
68
+ "No connection created - can't build provider"
69
+ );
70
+ }
71
+ return (0, shared_1.compressDeflate)(this.conn.toThrift());
72
+ },
73
+ enableTrace,
74
+ autoReconnect: autoReconnect ?? true,
75
+ requirePayload: true,
76
+ socksOptions,
77
+ additionalOptions: additionalTlsOptions,
78
+ });
79
+ this.client.on("warning", (w) => this.emit("warning", w));
80
+ this.client.on("error", (e) => this.emit("error", e));
81
+ this.client.on("disconnect", (reason) =>
82
+ this.safeDisconnect
83
+ ? this.emit("disconnect", reason && JSON.stringify(reason))
84
+ : this.emit(
85
+ "error",
86
+ new errors_1.ClientDisconnectedError(
87
+ `MQTToTClient got disconnected. Reason: ${
88
+ reason && JSON.stringify(reason)
89
+ }`
90
+ )
91
+ )
92
+ );
93
+ this.client.listen(constants_1.FbnsTopics.FBNS_MESSAGE.id, (msg) =>
94
+ this.handleMessage(msg)
95
+ );
96
+ this.client.listen(
97
+ {
98
+ topic: constants_1.FbnsTopics.FBNS_EXP_LOGGING.id,
99
+ transformer: async (msg) =>
100
+ JSON.parse(
101
+ (await (0, shared_1.tryUnzipAsync)(msg.payload)).toString()
102
+ ),
103
+ },
104
+ (msg) => this.emit("logging", msg)
105
+ );
106
+ this.client.listen(constants_1.FbnsTopics.PP.id, (msg) =>
107
+ this.emit("pp", msg.payload.toString())
108
+ );
109
+ this.client.on("connect", async (res) => {
110
+ if (!this.client) {
111
+ throw new obmqtt_1.IllegalStateError(
112
+ "No client registered but an event was received"
113
+ );
114
+ }
115
+ this.fbnsDebug("Connected to MQTT");
116
+ if (!res?.payload?.length) {
117
+ this.fbnsDebug(
118
+ `Received empty connect packet. Reason: ${res.errorName}; Try resetting your fbns state!`
119
+ );
120
+ this.emit(
121
+ "error",
122
+ new errors_1.EmptyPacketError(
123
+ "Received empty connect packet. Try resetting your fbns state!"
124
+ )
125
+ );
126
+ await this.client.disconnect();
127
+ return;
128
+ }
129
+ const payload = res.payload.toString("utf8");
130
+ this.fbnsDebug(`Received auth: ${payload}`);
131
+ this._auth.read(payload);
132
+ this.emit("auth", this.auth);
133
+ await this.client.mqttotPublish({
134
+ topic: constants_1.FbnsTopics.FBNS_REG_REQ.id,
135
+ payload: Buffer.from(
136
+ JSON.stringify({
137
+ pkg_name: constants_1.INSTAGRAM_PACKAGE_NAME,
138
+ appid: this.ig.state.fbAnalyticsApplicationId,
139
+ }),
140
+ "utf8"
141
+ ),
142
+ qosLevel: 1,
143
+ });
144
+ // this.buildConnection(); ?
145
+ });
146
+ await this.client
147
+ .connect({
148
+ keepAlive: 60,
149
+ protocolLevel: 3,
150
+ clean: true,
151
+ connectDelay: 60 * 1000,
152
+ })
153
+ .catch((e) => {
154
+ this.fbnsDebug(`Connection failed: ${e}`);
155
+ throw e;
156
+ });
157
+ if (!this.client.ready) throw new Error("OB Connection failed");
158
+ await this.client.subscribe({
159
+ topic: constants_1.FbnsTopics.FBNS_MESSAGE.id,
160
+ });
161
+ const msg = await (0, shared_1.listenOnce)(
162
+ this.client,
163
+ constants_1.FbnsTopics.FBNS_REG_RESP.id
164
+ );
165
+ const data = await (0, shared_1.tryUnzipAsync)(msg.payload);
166
+ const payload = data.toString("utf8");
167
+ this.fbnsDebug(`Received register response: ${payload}`);
168
+ const { token, error } = JSON.parse(payload);
169
+ if (error) {
170
+ this.emit("error", error);
171
+ throw error;
172
+ }
173
+ try {
174
+ await this.sendPushRegister(token);
175
+ } catch (e) {
176
+ if (e instanceof Error) {
177
+ this.emit("error", e);
178
+ }
179
+ throw e;
180
+ }
181
+ }
182
+ disconnect() {
183
+ this.safeDisconnect = true;
184
+ if (!this.client) {
185
+ return Promise.resolve();
186
+ }
187
+ return this.client.disconnect();
188
+ }
189
+ async handleMessage(msg) {
190
+ const payload = JSON.parse(
191
+ (await (0, shared_1.tryUnzipAsync)(msg.payload)).toString("utf8")
192
+ );
193
+ if ((0, shared_1.notUndefined)(payload.fbpushnotif)) {
194
+ const notification = (0, fbns_utilities_1.createNotificationFromJson)(
195
+ payload.fbpushnotif
196
+ );
197
+ this.emit("push", notification);
198
+ if (notification.collapseKey)
199
+ this.emit(notification.collapseKey, notification);
200
+ } else {
201
+ this.fbnsDebug(
202
+ `Received a message without 'fbpushnotif': ${JSON.stringify(payload)}`
203
+ );
204
+ this.emit("message", payload);
205
+ }
206
+ }
207
+ async sendPushRegister(token) {
208
+ const { body } = await this.ig.request.send({
209
+ url: `/api/v1/push/register/`,
210
+ method: "POST",
211
+ form: {
212
+ device_type: "android_mqtt",
213
+ is_main_push_channel: true,
214
+ device_sub_type: 2,
215
+ device_token: token,
216
+ _csrftoken: this.ig.state.cookieCsrfToken,
217
+ guid: this.ig.state.uuid,
218
+ uuid: this.ig.state.uuid,
219
+ users: this.ig.state.cookieUserId,
220
+ family_device_id: new chance_1.Chance().guid({ version: 4 }),
221
+ },
222
+ });
223
+ return body;
224
+ }
225
+ }
226
+ exports.FbnsClient = FbnsClient;
227
+ //# sourceMappingURL=fbns.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fbns.client.js","sourceRoot":"","sources":["../../src/fbns/fbns.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { IgApiClient } from 'instagram-private-api';
2
+ export declare class FbnsDeviceAuth {
3
+ private authLog;
4
+ clientId: string;
5
+ userId: number;
6
+ password: string;
7
+ deviceId: string;
8
+ deviceSecret: string;
9
+ sr?: string;
10
+ rc?: string;
11
+ private json?;
12
+ private ig;
13
+ constructor(ig: IgApiClient);
14
+ update(): void;
15
+ read(jsonStr: string): void;
16
+ toString(): string;
17
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FbnsDeviceAuth = void 0;
10
+ const decorators_1 = require("instagram-private-api/dist/decorators");
11
+ const shared_1 = require("../shared");
12
+ class FbnsDeviceAuth {
13
+ constructor(ig) {
14
+ this.authLog = (0, shared_1.debugChannel)('fbns', 'device-auth');
15
+ this.ig = ig;
16
+ this.clientId = this.ig.state.phoneId?.substr(0, 20) || '';
17
+ this.deviceId = '';
18
+ this.userId = 0;
19
+ this.deviceSecret = '';
20
+ this.password = '';
21
+ }
22
+ update() {
23
+ if (this.clientId === '') {
24
+ this.clientId = this.ig.state.phoneId?.substr(0, 20) || '';
25
+ }
26
+ }
27
+ read(jsonStr) {
28
+ this.authLog(`Reading auth json ${jsonStr ?? 'empty'}`);
29
+ if (!jsonStr)
30
+ return;
31
+ this.json = jsonStr;
32
+ const { ck, cs, di, ds, sr, rc } = JSON.parse(jsonStr);
33
+ this.userId = ck || this.userId;
34
+ this.password = cs || this.password;
35
+ if (di) {
36
+ this.deviceId = di;
37
+ this.clientId = this.deviceId.substr(0, 20);
38
+ }
39
+ else {
40
+ this.deviceId = '';
41
+ }
42
+ this.deviceSecret = ds || this.deviceSecret;
43
+ this.sr = sr || this.sr;
44
+ this.rc = rc || this.rc;
45
+ }
46
+ toString() {
47
+ return this.json || '';
48
+ }
49
+ }
50
+ exports.FbnsDeviceAuth = FbnsDeviceAuth;
51
+ __decorate([
52
+ (0, decorators_1.Enumerable)(false)
53
+ ], FbnsDeviceAuth.prototype, "ig", void 0);
54
+ //# sourceMappingURL=fbns.device-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fbns.device-auth.js","sourceRoot":"","sources":["../../src/fbns/fbns.device-auth.ts"],"names":[],"mappings":";;;;;;;;;AACA,sEAAmE;AACnE,sCAAyC;AAEzC,MAAa,cAAc;IAgBxB,YAAmB,EAAe;QAf1B,YAAO,GAAG,IAAA,qBAAY,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAgBnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB,CAAC;IAEM,MAAM;QACV,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;IACJ,CAAC;IAEM,IAAI,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,CAAC,qBAAqB,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC;QACpC,IAAI,EAAE,EAAE,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACL,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1B,CAAC;CACH;AApDD,wCAoDC;AAtCU;IADP,IAAA,uBAAU,EAAC,KAAK,CAAC;0CACM"}
@@ -0,0 +1,83 @@
1
+ import { FbnsDeviceAuth } from './fbns.device-auth';
2
+ export interface FbnsMessageData {
3
+ token?: string;
4
+ pn?: string;
5
+ nid?: string;
6
+ ck?: string;
7
+ fbpushnotif?: string;
8
+ num_endpoints?: string;
9
+ }
10
+ export interface FbPushNotif {
11
+ t?: string;
12
+ m?: string;
13
+ tt?: string;
14
+ ig?: string;
15
+ collapse_key?: string;
16
+ i?: string;
17
+ a?: string;
18
+ sound?: string;
19
+ pi?: string;
20
+ c?: string;
21
+ u?: string;
22
+ s?: string;
23
+ igo?: string;
24
+ bc?: string;
25
+ ia?: string;
26
+ it?: string;
27
+ si?: string;
28
+ PushNotifID?: string;
29
+ }
30
+ export interface FbnsBadgeCount {
31
+ direct?: number;
32
+ ds?: number;
33
+ activities?: number;
34
+ }
35
+ export type FbnsNotificationUnknown = FbnsNotification<unknown>;
36
+ export interface FbnsNotification<T> {
37
+ original: FbPushNotif;
38
+ title?: string;
39
+ message?: string;
40
+ tickerText?: string;
41
+ igAction?: string;
42
+ igActionOverride?: string;
43
+ optionalImage?: string;
44
+ optionalAvatarUrl?: string;
45
+ collapseKey?: string;
46
+ sound?: string;
47
+ pushId?: string;
48
+ pushCategory?: string;
49
+ intendedRecipientUserId?: string;
50
+ sourceUserId?: string;
51
+ badgeCount?: FbnsBadgeCount;
52
+ inAppActors?: string;
53
+ actionPath?: string;
54
+ actionParams?: T;
55
+ higherPriorityApps?: string;
56
+ }
57
+ export type NotificationCallback<N, A> = FuncArg<N, FbnsNotification<A>>;
58
+ export type FuncArg<E, T> = [E, (e: T) => void];
59
+ /**
60
+ * See: https://github.com/mgp25/Instagram-API/blob/master/src/Push.php
61
+ * TODO: inspect
62
+ * TODO: add regex?
63
+ * The following events are emitted:
64
+ */
65
+ export type NotificationEventCallback = FuncArg<'warning' | 'error', Error | Record<string, any>> | FuncArg<'auth', FbnsDeviceAuth> | FuncArg<'push' | 'silent_push', FbnsNotificationUnknown> | FuncArg<'exp_logging', {
66
+ beacon_id: number;
67
+ }> | FuncArg<'pp', string> | FuncArg<'message', FbnsMessageData> | NotificationCallback<'post', {
68
+ id: string;
69
+ }> | NotificationCallback<'first_post', {
70
+ username: string;
71
+ }> | NotificationCallback<'resurrected_user_post', {
72
+ id: string;
73
+ }> | NotificationCallback<'recent_follow_post', {
74
+ id: string;
75
+ }> | NotificationCallback<'fb_first_post', {
76
+ username: string;
77
+ }> | NotificationCallback<'first_bestie_post', {
78
+ username: string;
79
+ launch_reel?: string;
80
+ }> | NotificationCallback<'first_reel_post', {
81
+ username: string;
82
+ launch_reel?: string;
83
+ }> | NotificationCallback<'resurrected_reel_post' | 'story_poll_vote' | 'story_poll_close' | 'story_producer_expire_media' | 'story_poll_result_share' | 'story_daily_digest' | 'new_follower' | 'private_user_follow_request' | 'follow_request_approved' | 'contactjoined' | 'contact_joined_email' | 'fb_friend_connected' | 'follower_follow' | 'follower_activity_reminders' | 'comment' | 'mentioned_comment' | 'comment_on_tag' | 'comment_subscribed' | 'comment_subscribed_on_like' | 'reply_to_comment_with_threading' | 'like' | 'like_on_tag' | 'comment_like' | 'direct_v2_message' | 'live_broadcast' | 'live_with_broadcast' | 'live_broadcast_revoke' | 'aymt' | 'ad_preview' | 'branded_content_tagged' | 'business_profile' | 'usertag' | 'video_view_count' | 'copyright_video' | 'report_updated' | 'promote_account' | 'unseen_notification_reminders', unknown> | FuncArg<string, any> | [string, (...args: string[]) => void];