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.
- package/LICENSE +21 -0
- package/README.md +175 -10
- package/dist/constants.d.ts +96 -0
- package/dist/constants.js +280 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors/index.d.ts +16 -8
- package/dist/errors/index.js +27 -22
- package/dist/errors/index.js.map +1 -1
- package/dist/extend.d.ts +25 -0
- package/dist/extend.js +91 -0
- package/dist/extend.js.map +1 -0
- package/dist/fbns/fbns.client.d.ts +31 -0
- package/dist/fbns/fbns.client.events.d.ts +41 -0
- package/dist/{reconnect-strategy/mqtts.reconnect-strategy.js → fbns/fbns.client.events.js} +1 -1
- package/dist/fbns/fbns.client.events.js.map +1 -0
- package/dist/fbns/fbns.client.js +181 -0
- package/dist/fbns/fbns.client.js.map +1 -0
- package/dist/fbns/fbns.device-auth.d.ts +17 -0
- package/dist/fbns/fbns.device-auth.js +54 -0
- package/dist/fbns/fbns.device-auth.js.map +1 -0
- package/dist/fbns/fbns.types.d.ts +83 -0
- package/dist/{mqtt.types.js → fbns/fbns.types.js} +1 -1
- package/dist/fbns/fbns.types.js.map +1 -0
- package/dist/fbns/fbns.utilities.d.ts +2 -0
- package/dist/fbns/fbns.utilities.js +78 -0
- package/dist/fbns/fbns.utilities.js.map +1 -0
- package/dist/fbns/index.d.ts +4 -0
- package/dist/{transport → fbns}/index.js +4 -5
- package/dist/fbns/index.js.map +1 -0
- package/dist/index.d.ts +5 -12
- package/dist/index.js +5 -12
- package/dist/index.js.map +1 -1
- package/dist/mqttot/index.d.ts +4 -0
- package/dist/mqttot/index.js +21 -0
- package/dist/mqttot/index.js.map +1 -0
- package/dist/mqttot/mqttot.client.d.ts +37 -0
- package/dist/mqttot/mqttot.client.js +101 -0
- package/dist/mqttot/mqttot.client.js.map +1 -0
- package/dist/mqttot/mqttot.connect.request.packet.d.ts +6 -0
- package/dist/mqttot/mqttot.connect.request.packet.js +8 -0
- package/dist/mqttot/mqttot.connect.request.packet.js.map +1 -0
- package/dist/mqttot/mqttot.connect.response.packet.d.ts +6 -0
- package/dist/mqttot/mqttot.connect.response.packet.js +24 -0
- package/dist/mqttot/mqttot.connect.response.packet.js.map +1 -0
- package/dist/mqttot/mqttot.connection.d.ts +56 -0
- package/dist/mqttot/mqttot.connection.js +56 -0
- package/dist/mqttot/mqttot.connection.js.map +1 -0
- package/dist/realtime/commands/commands.d.ts +15 -0
- package/dist/realtime/commands/commands.js +21 -0
- package/dist/realtime/commands/commands.js.map +1 -0
- package/dist/realtime/commands/direct.commands.d.ts +67 -0
- package/dist/realtime/commands/direct.commands.js +179 -0
- package/dist/realtime/commands/direct.commands.js.map +1 -0
- package/dist/realtime/commands/index.d.ts +2 -0
- package/dist/{reconnect-strategy → realtime/commands}/index.js +2 -2
- package/dist/realtime/commands/index.js.map +1 -0
- package/dist/realtime/index.d.ts +6 -0
- package/dist/realtime/index.js +23 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/messages/app-presence.event.d.ts +9 -0
- package/dist/realtime/messages/app-presence.event.js +3 -0
- package/dist/realtime/messages/app-presence.event.js.map +1 -0
- package/dist/realtime/messages/index.d.ts +3 -0
- package/dist/realtime/messages/index.js +20 -0
- package/dist/realtime/messages/index.js.map +1 -0
- package/dist/realtime/messages/message-sync.message.d.ts +222 -0
- package/dist/realtime/messages/message-sync.message.js +43 -0
- package/dist/realtime/messages/message-sync.message.js.map +1 -0
- package/dist/realtime/messages/realtime-sub.direct.data.d.ts +11 -0
- package/dist/realtime/messages/realtime-sub.direct.data.js +3 -0
- package/dist/realtime/messages/realtime-sub.direct.data.js.map +1 -0
- package/dist/realtime/messages/thread-update.message.d.ts +68 -0
- package/dist/realtime/messages/thread-update.message.js +3 -0
- package/dist/realtime/messages/thread-update.message.js.map +1 -0
- package/dist/realtime/mixins/index.d.ts +3 -0
- package/dist/realtime/mixins/index.js +20 -0
- package/dist/realtime/mixins/index.js.map +1 -0
- package/dist/realtime/mixins/message-sync.mixin.d.ts +8 -0
- package/dist/realtime/mixins/message-sync.mixin.js +77 -0
- package/dist/realtime/mixins/message-sync.mixin.js.map +1 -0
- package/dist/realtime/mixins/mixin.d.ts +19 -0
- package/dist/realtime/mixins/mixin.js +41 -0
- package/dist/realtime/mixins/mixin.js.map +1 -0
- package/dist/realtime/mixins/realtime-sub.mixin.d.ts +8 -0
- package/dist/realtime/mixins/realtime-sub.mixin.js +60 -0
- package/dist/realtime/mixins/realtime-sub.mixin.js.map +1 -0
- package/dist/realtime/parsers/graphql.parser.d.ts +14 -0
- package/dist/realtime/parsers/graphql.parser.js +22 -0
- package/dist/realtime/parsers/graphql.parser.js.map +1 -0
- package/dist/realtime/parsers/index.d.ts +6 -0
- package/dist/realtime/parsers/index.js +23 -0
- package/dist/realtime/parsers/index.js.map +1 -0
- package/dist/realtime/parsers/iris.parser.d.ts +16 -0
- package/dist/realtime/parsers/iris.parser.js +10 -0
- package/dist/realtime/parsers/iris.parser.js.map +1 -0
- package/dist/realtime/parsers/json.parser.d.ts +5 -0
- package/dist/realtime/parsers/json.parser.js +10 -0
- package/dist/realtime/parsers/json.parser.js.map +1 -0
- package/dist/realtime/parsers/parser.d.ts +8 -0
- package/dist/{flow/packet-flow.js → realtime/parsers/parser.js} +1 -1
- package/dist/realtime/parsers/parser.js.map +1 -0
- package/dist/realtime/parsers/region-hint.parser.d.ts +11 -0
- package/dist/realtime/parsers/region-hint.parser.js +15 -0
- package/dist/realtime/parsers/region-hint.parser.js.map +1 -0
- package/dist/realtime/parsers/skywalker.parser.d.ts +11 -0
- package/dist/realtime/parsers/skywalker.parser.js +15 -0
- package/dist/realtime/parsers/skywalker.parser.js.map +1 -0
- package/dist/realtime/realtime.client.d.ts +54 -0
- package/dist/realtime/realtime.client.events.d.ts +35 -0
- package/dist/realtime/realtime.client.events.js +3 -0
- package/dist/realtime/realtime.client.events.js.map +1 -0
- package/dist/realtime/realtime.client.js +197 -0
- package/dist/realtime/realtime.client.js.map +1 -0
- package/dist/realtime/subscriptions/graphql.subscription.d.ts +47 -0
- package/dist/realtime/subscriptions/graphql.subscription.js +99 -0
- package/dist/realtime/subscriptions/graphql.subscription.js.map +1 -0
- package/dist/realtime/subscriptions/index.d.ts +2 -0
- package/dist/{flow → realtime/subscriptions}/index.js +2 -3
- package/dist/realtime/subscriptions/index.js.map +1 -0
- package/dist/realtime/subscriptions/skywalker.subscription.d.ts +4 -0
- package/dist/realtime/subscriptions/skywalker.subscription.js +13 -0
- package/dist/realtime/subscriptions/skywalker.subscription.js.map +1 -0
- package/dist/shared.d.ts +21 -0
- package/dist/shared.js +86 -0
- package/dist/shared.js.map +1 -0
- package/dist/thrift/index.d.ts +3 -0
- package/dist/thrift/index.js +20 -0
- package/dist/thrift/index.js.map +1 -0
- package/dist/thrift/thrift.d.ts +59 -0
- package/dist/thrift/thrift.js +101 -0
- package/dist/thrift/thrift.js.map +1 -0
- package/dist/thrift/thrift.reading.d.ts +40 -0
- package/dist/thrift/thrift.reading.js +327 -0
- package/dist/thrift/thrift.reading.js.map +1 -0
- package/dist/thrift/thrift.writing.d.ts +43 -0
- package/dist/thrift/thrift.writing.js +342 -0
- package/dist/thrift/thrift.writing.js.map +1 -0
- package/dist/topic.d.ts +7 -0
- package/dist/{mqtt.message.js → topic.js} +1 -1
- package/dist/topic.js.map +1 -0
- package/package.json +35 -44
- package/dist/errors/abort.error.d.ts +0 -3
- package/dist/errors/abort.error.js +0 -8
- package/dist/errors/abort.error.js.map +0 -1
- package/dist/errors/connect.error.d.ts +0 -5
- package/dist/errors/connect.error.js +0 -12
- package/dist/errors/connect.error.js.map +0 -1
- package/dist/errors/end-of-stream.error.d.ts +0 -3
- package/dist/errors/end-of-stream.error.js +0 -8
- package/dist/errors/end-of-stream.error.js.map +0 -1
- package/dist/errors/flow-stopped.error.d.ts +0 -3
- package/dist/errors/flow-stopped.error.js +0 -8
- package/dist/errors/flow-stopped.error.js.map +0 -1
- package/dist/errors/illegal-state.error.d.ts +0 -3
- package/dist/errors/illegal-state.error.js +0 -8
- package/dist/errors/illegal-state.error.js.map +0 -1
- package/dist/errors/malformed-packet.error.d.ts +0 -3
- package/dist/errors/malformed-packet.error.js +0 -8
- package/dist/errors/malformed-packet.error.js.map +0 -1
- package/dist/errors/subscribe.error.d.ts +0 -3
- package/dist/errors/subscribe.error.js +0 -8
- package/dist/errors/subscribe.error.js.map +0 -1
- package/dist/errors/unexpected-packet.error.d.ts +0 -3
- package/dist/errors/unexpected-packet.error.js +0 -8
- package/dist/errors/unexpected-packet.error.js.map +0 -1
- package/dist/flow/incoming.flows.d.ts +0 -6
- package/dist/flow/incoming.flows.js +0 -39
- package/dist/flow/incoming.flows.js.map +0 -1
- package/dist/flow/index.d.ts +0 -3
- package/dist/flow/index.js.map +0 -1
- package/dist/flow/outgoing.flows.d.ts +0 -12
- package/dist/flow/outgoing.flows.js +0 -115
- package/dist/flow/outgoing.flows.js.map +0 -1
- package/dist/flow/packet-flow.d.ts +0 -17
- package/dist/flow/packet-flow.js.map +0 -1
- package/dist/mqtt.base-client.d.ts +0 -54
- package/dist/mqtt.base-client.js +0 -102
- package/dist/mqtt.base-client.js.map +0 -1
- package/dist/mqtt.client.d.ts +0 -75
- package/dist/mqtt.client.js +0 -417
- package/dist/mqtt.client.js.map +0 -1
- package/dist/mqtt.constants.d.ts +0 -34
- package/dist/mqtt.constants.js +0 -26
- package/dist/mqtt.constants.js.map +0 -1
- package/dist/mqtt.listener.d.ts +0 -21
- package/dist/mqtt.listener.js +0 -29
- package/dist/mqtt.listener.js.map +0 -1
- package/dist/mqtt.message.d.ts +0 -14
- package/dist/mqtt.message.js.map +0 -1
- package/dist/mqtt.packet.d.ts +0 -9
- package/dist/mqtt.packet.js +0 -15
- package/dist/mqtt.packet.js.map +0 -1
- package/dist/mqtt.parser.d.ts +0 -21
- package/dist/mqtt.parser.js +0 -71
- package/dist/mqtt.parser.js.map +0 -1
- package/dist/mqtt.types.d.ts +0 -52
- package/dist/mqtt.types.js.map +0 -1
- package/dist/mqtt.utilities.d.ts +0 -32
- package/dist/mqtt.utilities.js +0 -139
- package/dist/mqtt.utilities.js.map +0 -1
- package/dist/packet-stream.d.ts +0 -37
- package/dist/packet-stream.js +0 -150
- package/dist/packet-stream.js.map +0 -1
- package/dist/packets/connect.request.packet.d.ts +0 -22
- package/dist/packets/connect.request.packet.js +0 -41
- package/dist/packets/connect.request.packet.js.map +0 -1
- package/dist/packets/connect.response.packet.d.ts +0 -18
- package/dist/packets/connect.response.packet.js +0 -43
- package/dist/packets/connect.response.packet.js.map +0 -1
- package/dist/packets/disconnect.request.packet.d.ts +0 -2
- package/dist/packets/disconnect.request.packet.js +0 -7
- package/dist/packets/disconnect.request.packet.js.map +0 -1
- package/dist/packets/index.d.ts +0 -16
- package/dist/packets/index.js +0 -33
- package/dist/packets/index.js.map +0 -1
- package/dist/packets/packet-reader.d.ts +0 -31
- package/dist/packets/packet-reader.js +0 -27
- package/dist/packets/packet-reader.js.map +0 -1
- package/dist/packets/packet-writer.d.ts +0 -48
- package/dist/packets/packet-writer.js +0 -58
- package/dist/packets/packet-writer.js.map +0 -1
- package/dist/packets/ping.request.packet.d.ts +0 -5
- package/dist/packets/ping.request.packet.js +0 -17
- package/dist/packets/ping.request.packet.js.map +0 -1
- package/dist/packets/ping.response.packet.d.ts +0 -5
- package/dist/packets/ping.response.packet.js +0 -17
- package/dist/packets/ping.response.packet.js.map +0 -1
- package/dist/packets/publish.ack.packet.d.ts +0 -8
- package/dist/packets/publish.ack.packet.js +0 -19
- package/dist/packets/publish.ack.packet.js.map +0 -1
- package/dist/packets/publish.complete.packet.d.ts +0 -8
- package/dist/packets/publish.complete.packet.js +0 -19
- package/dist/packets/publish.complete.packet.js.map +0 -1
- package/dist/packets/publish.received.packet.d.ts +0 -8
- package/dist/packets/publish.received.packet.js +0 -19
- package/dist/packets/publish.received.packet.js.map +0 -1
- package/dist/packets/publish.release.packet.d.ts +0 -8
- package/dist/packets/publish.release.packet.js +0 -19
- package/dist/packets/publish.release.packet.js.map +0 -1
- package/dist/packets/publish.request.packet.d.ts +0 -21
- package/dist/packets/publish.request.packet.js +0 -55
- package/dist/packets/publish.request.packet.js.map +0 -1
- package/dist/packets/subscribe.request.packet.d.ts +0 -10
- package/dist/packets/subscribe.request.packet.js +0 -15
- package/dist/packets/subscribe.request.packet.js.map +0 -1
- package/dist/packets/subscribe.response.packet.d.ts +0 -14
- package/dist/packets/subscribe.response.packet.js +0 -35
- package/dist/packets/subscribe.response.packet.js.map +0 -1
- package/dist/packets/unsubscribe.request.packet.d.ts +0 -7
- package/dist/packets/unsubscribe.request.packet.js +0 -13
- package/dist/packets/unsubscribe.request.packet.js.map +0 -1
- package/dist/packets/unsubscribe.response.packet.d.ts +0 -5
- package/dist/packets/unsubscribe.response.packet.js +0 -14
- package/dist/packets/unsubscribe.response.packet.js.map +0 -1
- package/dist/reconnect-strategy/index.d.ts +0 -2
- package/dist/reconnect-strategy/index.js.map +0 -1
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.d.ts +0 -14
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.d.ts +0 -24
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.js +0 -56
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.default.js.map +0 -1
- package/dist/reconnect-strategy/mqtts.reconnect-strategy.js.map +0 -1
- package/dist/transport/index.d.ts +0 -5
- package/dist/transport/index.js.map +0 -1
- package/dist/transport/socks-tls.transport.d.ts +0 -13
- package/dist/transport/socks-tls.transport.js +0 -54
- package/dist/transport/socks-tls.transport.js.map +0 -1
- package/dist/transport/tcp.transport.d.ts +0 -12
- package/dist/transport/tcp.transport.js +0 -26
- package/dist/transport/tcp.transport.js.map +0 -1
- package/dist/transport/tls.transport.d.ts +0 -13
- package/dist/transport/tls.transport.js +0 -44
- package/dist/transport/tls.transport.js.map +0 -1
- package/dist/transport/transport.d.ts +0 -19
- package/dist/transport/transport.js +0 -16
- package/dist/transport/transport.js.map +0 -1
- package/dist/transport/websocket.transport.d.ts +0 -15
- package/dist/transport/websocket.transport.js +0 -40
- package/dist/transport/websocket.transport.js.map +0 -1
package/dist/errors/index.js
CHANGED
|
@@ -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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/extend.d.ts
ADDED
|
@@ -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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fbns.client.events.js","sourceRoot":"","sources":["../../src/fbns/fbns.client.events.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,181 @@
|
|
|
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("obmqtt");
|
|
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({ enableTrace, autoReconnect, socksOptions, additionalTlsOptions, } = {}) {
|
|
55
|
+
this.fbnsDebug('Connecting to FBNS...');
|
|
56
|
+
this.auth.update();
|
|
57
|
+
this.client = new mqttot_1.MQTToTClient({
|
|
58
|
+
url: constants_1.FBNS.HOST_NAME_V6,
|
|
59
|
+
payloadProvider: () => {
|
|
60
|
+
this.buildConnection();
|
|
61
|
+
if (!this.conn) {
|
|
62
|
+
throw new errors_1.InvalidStateError("No connection created - can't build provider");
|
|
63
|
+
}
|
|
64
|
+
return (0, shared_1.compressDeflate)(this.conn.toThrift());
|
|
65
|
+
},
|
|
66
|
+
enableTrace,
|
|
67
|
+
autoReconnect: autoReconnect ?? true,
|
|
68
|
+
requirePayload: true,
|
|
69
|
+
socksOptions,
|
|
70
|
+
additionalOptions: additionalTlsOptions,
|
|
71
|
+
});
|
|
72
|
+
this.client.on('warning', w => this.emit('warning', w));
|
|
73
|
+
this.client.on('error', e => this.emit('error', e));
|
|
74
|
+
this.client.on('disconnect', reason => this.safeDisconnect
|
|
75
|
+
? this.emit('disconnect', reason && JSON.stringify(reason))
|
|
76
|
+
: this.emit('error', new errors_1.ClientDisconnectedError(`MQTToTClient got disconnected. Reason: ${reason && JSON.stringify(reason)}`)));
|
|
77
|
+
this.client.listen(constants_1.FbnsTopics.FBNS_MESSAGE.id, msg => this.handleMessage(msg));
|
|
78
|
+
this.client.listen({
|
|
79
|
+
topic: constants_1.FbnsTopics.FBNS_EXP_LOGGING.id,
|
|
80
|
+
transformer: async (msg) => JSON.parse((await (0, shared_1.tryUnzipAsync)(msg.payload)).toString()),
|
|
81
|
+
}, msg => this.emit('logging', msg));
|
|
82
|
+
this.client.listen(constants_1.FbnsTopics.PP.id, msg => this.emit('pp', msg.payload.toString()));
|
|
83
|
+
this.client.on('connect', async (res) => {
|
|
84
|
+
if (!this.client) {
|
|
85
|
+
throw new obmqtt_1.IllegalStateError('No client registered but an event was received');
|
|
86
|
+
}
|
|
87
|
+
this.fbnsDebug('Connected to MQTT');
|
|
88
|
+
if (!res?.payload?.length) {
|
|
89
|
+
this.fbnsDebug(`Received empty connect packet. Reason: ${res.errorName}; Try resetting your fbns state!`);
|
|
90
|
+
this.emit('error', new errors_1.EmptyPacketError('Received empty connect packet. Try resetting your fbns state!'));
|
|
91
|
+
await this.client.disconnect();
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const payload = res.payload.toString('utf8');
|
|
95
|
+
this.fbnsDebug(`Received auth: ${payload}`);
|
|
96
|
+
this._auth.read(payload);
|
|
97
|
+
this.emit('auth', this.auth);
|
|
98
|
+
await this.client.mqttotPublish({
|
|
99
|
+
topic: constants_1.FbnsTopics.FBNS_REG_REQ.id,
|
|
100
|
+
payload: Buffer.from(JSON.stringify({
|
|
101
|
+
pkg_name: constants_1.INSTAGRAM_PACKAGE_NAME,
|
|
102
|
+
appid: this.ig.state.fbAnalyticsApplicationId,
|
|
103
|
+
}), 'utf8'),
|
|
104
|
+
qosLevel: 1,
|
|
105
|
+
});
|
|
106
|
+
// this.buildConnection(); ?
|
|
107
|
+
});
|
|
108
|
+
await this.client
|
|
109
|
+
.connect({
|
|
110
|
+
keepAlive: 60,
|
|
111
|
+
protocolLevel: 3,
|
|
112
|
+
clean: true,
|
|
113
|
+
connectDelay: 60 * 1000,
|
|
114
|
+
})
|
|
115
|
+
.catch(e => {
|
|
116
|
+
this.fbnsDebug(`Connection failed: ${e}`);
|
|
117
|
+
throw e;
|
|
118
|
+
});
|
|
119
|
+
if (!this.client.ready)
|
|
120
|
+
throw new Error('OB Connection failed');
|
|
121
|
+
await this.client.subscribe({ topic: constants_1.FbnsTopics.FBNS_MESSAGE.id });
|
|
122
|
+
const msg = await (0, shared_1.listenOnce)(this.client, constants_1.FbnsTopics.FBNS_REG_RESP.id);
|
|
123
|
+
const data = await (0, shared_1.tryUnzipAsync)(msg.payload);
|
|
124
|
+
const payload = data.toString('utf8');
|
|
125
|
+
this.fbnsDebug(`Received register response: ${payload}`);
|
|
126
|
+
const { token, error } = JSON.parse(payload);
|
|
127
|
+
if (error) {
|
|
128
|
+
this.emit('error', error);
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
await this.sendPushRegister(token);
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
if (e instanceof Error) {
|
|
136
|
+
this.emit('error', e);
|
|
137
|
+
}
|
|
138
|
+
throw e;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
disconnect() {
|
|
142
|
+
this.safeDisconnect = true;
|
|
143
|
+
if (!this.client) {
|
|
144
|
+
return Promise.resolve();
|
|
145
|
+
}
|
|
146
|
+
return this.client.disconnect();
|
|
147
|
+
}
|
|
148
|
+
async handleMessage(msg) {
|
|
149
|
+
const payload = JSON.parse((await (0, shared_1.tryUnzipAsync)(msg.payload)).toString('utf8'));
|
|
150
|
+
if ((0, shared_1.notUndefined)(payload.fbpushnotif)) {
|
|
151
|
+
const notification = (0, fbns_utilities_1.createNotificationFromJson)(payload.fbpushnotif);
|
|
152
|
+
this.emit('push', notification);
|
|
153
|
+
if (notification.collapseKey)
|
|
154
|
+
this.emit(notification.collapseKey, notification);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this.fbnsDebug(`Received a message without 'fbpushnotif': ${JSON.stringify(payload)}`);
|
|
158
|
+
this.emit('message', payload);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async sendPushRegister(token) {
|
|
162
|
+
const { body } = await this.ig.request.send({
|
|
163
|
+
url: `/api/v1/push/register/`,
|
|
164
|
+
method: 'POST',
|
|
165
|
+
form: {
|
|
166
|
+
device_type: 'android_mqtt',
|
|
167
|
+
is_main_push_channel: true,
|
|
168
|
+
device_sub_type: 2,
|
|
169
|
+
device_token: token,
|
|
170
|
+
_csrftoken: this.ig.state.cookieCsrfToken,
|
|
171
|
+
guid: this.ig.state.uuid,
|
|
172
|
+
uuid: this.ig.state.uuid,
|
|
173
|
+
users: this.ig.state.cookieUserId,
|
|
174
|
+
family_device_id: new chance_1.Chance().guid({ version: 4 }),
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
return body;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.FbnsClient = FbnsClient;
|
|
181
|
+
//# 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];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fbns.types.js","sourceRoot":"","sources":["../../src/fbns/fbns.types.ts"],"names":[],"mappings":""}
|