nodejs-insta-private-api-mqtt 1.0.0
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/README.md +1650 -0
- package/dist/constants/constants.js +280 -0
- package/dist/constants/index.js +41 -0
- package/dist/core/client.js +243 -0
- package/dist/core/repository.js +7 -0
- package/dist/core/request.js +212 -0
- package/dist/core/state.js +1456 -0
- package/dist/core/utils.js +786 -0
- package/dist/downloadMedia.js +381 -0
- package/dist/errors/index.d.ts +16 -0
- package/dist/errors/index.js +30 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/fbns/fbns.client.d.ts +32 -0
- package/dist/fbns/fbns.client.events.d.ts +41 -0
- package/dist/fbns/fbns.client.events.js +3 -0
- package/dist/fbns/fbns.client.events.js.map +1 -0
- package/dist/fbns/fbns.client.js +179 -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/fbns/fbns.types.js +3 -0
- package/dist/fbns/fbns.types.js.map +1 -0
- package/dist/fbns/fbns.utilities.d.ts +2 -0
- package/dist/fbns/fbns.utilities.js +79 -0
- package/dist/fbns/fbns.utilities.js.map +1 -0
- package/dist/fbns/index.d.ts +4 -0
- package/dist/fbns/index.js +21 -0
- package/dist/fbns/index.js.map +1 -0
- package/dist/index.js +39 -0
- 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 +39 -0
- package/dist/mqttot/mqttot.client.js +120 -0
- package/dist/mqttot/mqttot.client.js.map +1 -0
- package/dist/mqttot/mqttot.connect.request.packet.d.ts +7 -0
- package/dist/mqttot/mqttot.connect.request.packet.js +9 -0
- package/dist/mqttot/mqttot.connect.request.packet.js.map +1 -0
- package/dist/mqttot/mqttot.connect.response.packet.d.ts +7 -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 +57 -0
- package/dist/mqttot/mqttot.connection.js +56 -0
- package/dist/mqttot/mqttot.connection.js.map +1 -0
- package/dist/package.json +59 -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 +75 -0
- package/dist/realtime/commands/direct.commands.js +186 -0
- package/dist/realtime/commands/direct.commands.js.map +1 -0
- package/dist/realtime/commands/enhanced.direct.commands.js +987 -0
- package/dist/realtime/commands/index.d.ts +2 -0
- package/dist/realtime/commands/index.js +19 -0
- package/dist/realtime/commands/index.js.map +1 -0
- package/dist/realtime/delta-sync.manager.js +293 -0
- package/dist/realtime/features/dm-sender.js +88 -0
- package/dist/realtime/features/error-handler.js +73 -0
- package/dist/realtime/features/gap-handler.js +61 -0
- package/dist/realtime/features/presence.manager.js +66 -0
- package/dist/realtime/index.js +30 -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 +381 -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/presence-typing.mixin.js +33 -0
- package/dist/realtime/mixins/realtime-sub.mixin.d.ts +8 -0
- package/dist/realtime/mixins/realtime-sub.mixin.js +55 -0
- package/dist/realtime/mixins/realtime-sub.mixin.js.map +1 -0
- package/dist/realtime/parsers/graphql-parser.js +43 -0
- package/dist/realtime/parsers/graphql.parser.d.ts +15 -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.js +43 -0
- package/dist/realtime/parsers/iris.parser.d.ts +17 -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.js +43 -0
- package/dist/realtime/parsers/json.parser.d.ts +6 -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 +9 -0
- package/dist/realtime/parsers/parser.js +3 -0
- package/dist/realtime/parsers/parser.js.map +1 -0
- package/dist/realtime/parsers/region-hint-parser.js +43 -0
- package/dist/realtime/parsers/region-hint.parser.d.ts +12 -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.js +43 -0
- package/dist/realtime/parsers/skywalker.parser.d.ts +12 -0
- package/dist/realtime/parsers/skywalker.parser.js +15 -0
- package/dist/realtime/parsers/skywalker.parser.js.map +1 -0
- package/dist/realtime/parsers-advanced.js +158 -0
- package/dist/realtime/proto/common.proto +38 -0
- package/dist/realtime/proto/direct.proto +65 -0
- package/dist/realtime/proto/ig-messages.proto +83 -0
- package/dist/realtime/proto/iris.proto +188 -0
- package/dist/realtime/proto-parser.js +195 -0
- package/dist/realtime/protocols/iris.handshake.js +74 -0
- package/dist/realtime/protocols/proto-definitions.js +80 -0
- package/dist/realtime/protocols/skywalker.protocol.js +91 -0
- package/dist/realtime/realtime.client.events.js +3 -0
- package/dist/realtime/realtime.client.js +449 -0
- package/dist/realtime/realtime.service.js +462 -0
- package/dist/realtime/reconnect.manager.js +94 -0
- package/dist/realtime/session.manager.js +121 -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/realtime/subscriptions/index.js +19 -0
- 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/realtime/topic-map.js +71 -0
- package/dist/realtime/topic.js +80 -0
- package/dist/repositories/account.repository.js +261 -0
- package/dist/repositories/direct-thread.repository.js +247 -0
- package/dist/repositories/direct.repository.js +153 -0
- package/dist/repositories/feed.repository.js +233 -0
- package/dist/repositories/friendship.repository.js +190 -0
- package/dist/repositories/hashtag.repository.js +101 -0
- package/dist/repositories/highlights.repository.js +127 -0
- package/dist/repositories/location.repository.js +84 -0
- package/dist/repositories/media.repository.js +165 -0
- package/dist/repositories/story.repository.js +156 -0
- package/dist/repositories/upload.repository.js +167 -0
- package/dist/repositories/user.repository.js +94 -0
- package/dist/sendmedia/index.js +11 -0
- package/dist/sendmedia/sendFile.js +154 -0
- package/dist/sendmedia/sendPhoto.js +145 -0
- package/dist/sendmedia/uploadPhoto.js +175 -0
- package/dist/sendmedia/uploadfFile.js +264 -0
- package/dist/services/live.service.js +147 -0
- package/dist/services/search.service.js +116 -0
- package/dist/shared/index.js +35 -0
- package/dist/shared/shared.js +86 -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 +41 -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 +44 -0
- package/dist/thrift/thrift.writing.js +342 -0
- package/dist/thrift/thrift.writing.js.map +1 -0
- package/dist/types/index.js +285 -0
- package/dist/useMultiFileAuthState.js +437 -0
- package/dist/utils/helper-1.js +1 -0
- package/dist/utils/helper-10.js +1 -0
- package/dist/utils/helper-11.js +1 -0
- package/dist/utils/helper-12.js +1 -0
- package/dist/utils/helper-13.js +1 -0
- package/dist/utils/helper-14.js +1 -0
- package/dist/utils/helper-15.js +1 -0
- package/dist/utils/helper-16.js +1 -0
- package/dist/utils/helper-17.js +1 -0
- package/dist/utils/helper-18.js +1 -0
- package/dist/utils/helper-19.js +1 -0
- package/dist/utils/helper-2.js +1 -0
- package/dist/utils/helper-20.js +1 -0
- package/dist/utils/helper-21.js +1 -0
- package/dist/utils/helper-22.js +1 -0
- package/dist/utils/helper-23.js +1 -0
- package/dist/utils/helper-24.js +1 -0
- package/dist/utils/helper-25.js +1 -0
- package/dist/utils/helper-26.js +1 -0
- package/dist/utils/helper-27.js +1 -0
- package/dist/utils/helper-28.js +1 -0
- package/dist/utils/helper-29.js +1 -0
- package/dist/utils/helper-3.js +1 -0
- package/dist/utils/helper-30.js +1 -0
- package/dist/utils/helper-4.js +1 -0
- package/dist/utils/helper-5.js +1 -0
- package/dist/utils/helper-6.js +1 -0
- package/dist/utils/helper-7.js +1 -0
- package/dist/utils/helper-8.js +1 -0
- package/dist/utils/helper-9.js +1 -0
- package/dist/utils/index.js +280 -0
- package/examples/listen-to-messages.js +86 -0
- package/package.json +79 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PossibleTopics = exports.REALTIME = exports.FBNS = exports.FbnsTopics = exports.INSTAGRAM_PACKAGE_NAME = exports.RealtimeTopicsArray = exports.Topics = void 0;
|
|
4
|
+
const parsers_1 = require("../realtime/parsers");
|
|
5
|
+
exports.Topics = {
|
|
6
|
+
GRAPHQL: {
|
|
7
|
+
id: '9',
|
|
8
|
+
path: '/graphql',
|
|
9
|
+
parser: new parsers_1.GraphqlParser(),
|
|
10
|
+
},
|
|
11
|
+
PUBSUB: {
|
|
12
|
+
id: '88',
|
|
13
|
+
path: '/pubsub',
|
|
14
|
+
parser: new parsers_1.SkywalkerParser(),
|
|
15
|
+
},
|
|
16
|
+
SEND_MESSAGE_RESPONSE: {
|
|
17
|
+
id: '133',
|
|
18
|
+
path: '/ig_send_message_response',
|
|
19
|
+
parser: new parsers_1.JsonParser(),
|
|
20
|
+
},
|
|
21
|
+
IRIS_SUB: {
|
|
22
|
+
id: '134',
|
|
23
|
+
path: '/ig_sub_iris',
|
|
24
|
+
parser: null,
|
|
25
|
+
},
|
|
26
|
+
IRIS_SUB_RESPONSE: {
|
|
27
|
+
id: '135',
|
|
28
|
+
path: '/ig_sub_iris_response',
|
|
29
|
+
parser: new parsers_1.JsonParser(),
|
|
30
|
+
},
|
|
31
|
+
MESSAGE_SYNC: {
|
|
32
|
+
id: '146',
|
|
33
|
+
path: '/ig_message_sync',
|
|
34
|
+
parser: new parsers_1.IrisParser(),
|
|
35
|
+
noParse: true,
|
|
36
|
+
},
|
|
37
|
+
REALTIME_SUB: {
|
|
38
|
+
id: '149',
|
|
39
|
+
path: '/ig_realtime_sub',
|
|
40
|
+
parser: new parsers_1.GraphqlParser(),
|
|
41
|
+
noParse: true,
|
|
42
|
+
},
|
|
43
|
+
REGION_HINT: {
|
|
44
|
+
id: '150',
|
|
45
|
+
path: '/t_region_hint',
|
|
46
|
+
parser: new parsers_1.RegionHintParser(),
|
|
47
|
+
},
|
|
48
|
+
FOREGROUND_STATE: {
|
|
49
|
+
id: '102',
|
|
50
|
+
path: '/t_fs',
|
|
51
|
+
parser: null,
|
|
52
|
+
},
|
|
53
|
+
SEND_MESSAGE: {
|
|
54
|
+
id: '132',
|
|
55
|
+
path: '/ig_send_message',
|
|
56
|
+
parser: null,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
exports.RealtimeTopicsArray = Object.values(exports.Topics);
|
|
60
|
+
exports.INSTAGRAM_PACKAGE_NAME = 'com.instagram.android';
|
|
61
|
+
exports.FbnsTopics = {
|
|
62
|
+
FBNS_MESSAGE: {
|
|
63
|
+
id: '76',
|
|
64
|
+
path: '/fbns_msg',
|
|
65
|
+
},
|
|
66
|
+
FBNS_REG_REQ: {
|
|
67
|
+
id: '79',
|
|
68
|
+
path: '/fbns_reg_req',
|
|
69
|
+
},
|
|
70
|
+
FBNS_REG_RESP: {
|
|
71
|
+
id: '80',
|
|
72
|
+
path: '/fbns_reg_resp',
|
|
73
|
+
},
|
|
74
|
+
FBNS_EXP_LOGGING: {
|
|
75
|
+
id: '231',
|
|
76
|
+
path: '/fbns_exp_logging',
|
|
77
|
+
},
|
|
78
|
+
PP: {
|
|
79
|
+
id: '34',
|
|
80
|
+
path: '/pp',
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
exports.FBNS = {
|
|
84
|
+
PACKAGE: 'com.instagram.android',
|
|
85
|
+
APP_ID: '567310203415052',
|
|
86
|
+
HOST_NAME_V6: 'mqtt-mini.facebook.com',
|
|
87
|
+
CLIENT_CAPABILITIES: 439,
|
|
88
|
+
ENDPOINT_CAPABILITIES: 128,
|
|
89
|
+
CLIENT_STACK: 3,
|
|
90
|
+
PUBLISH_FORMAT: 1,
|
|
91
|
+
};
|
|
92
|
+
exports.REALTIME = {
|
|
93
|
+
HOST_NAME_V6: 'edge-mqtt.facebook.com',
|
|
94
|
+
};
|
|
95
|
+
// TODO: exclude in release
|
|
96
|
+
/* eslint @typescript-eslint/no-unused-vars: "off" */
|
|
97
|
+
exports.PossibleTopics = [
|
|
98
|
+
{ id: '0', path: '/buddy_list' },
|
|
99
|
+
{ id: '1', path: '/create_thread' },
|
|
100
|
+
{ id: '2', path: '/create_thread_response' },
|
|
101
|
+
{ id: '3', path: '/delete_thread_notification' },
|
|
102
|
+
{ id: '4', path: '/delete_messages_notification' },
|
|
103
|
+
{ id: '5', path: '/orca_message_notifications' },
|
|
104
|
+
{ id: '6', path: '/friending_state_change' },
|
|
105
|
+
{ id: '7', path: '/friend_request' },
|
|
106
|
+
{ id: '8', path: '/friend_requests_seen' },
|
|
107
|
+
{ id: '9', path: '/graphql' },
|
|
108
|
+
{ id: '10', path: '/group_msg' },
|
|
109
|
+
{ id: '11', path: '/group_notifs_unseen' },
|
|
110
|
+
{ id: '12', path: '/group_msgs_unseen' },
|
|
111
|
+
{ id: '13', path: '/inbox' },
|
|
112
|
+
{ id: '14', path: '/action_id_notification' },
|
|
113
|
+
{ id: '15', path: '/aura_notification' },
|
|
114
|
+
{ id: '16', path: '/aura_signal' },
|
|
115
|
+
{ id: '17', path: '/friends_locations' },
|
|
116
|
+
{ id: '18', path: '/mark_thread' },
|
|
117
|
+
{ id: '19', path: '/mark_thread_response' },
|
|
118
|
+
{ id: '20', path: '/mercury' },
|
|
119
|
+
{ id: '21', path: '/messenger_sync' },
|
|
120
|
+
{ id: '22', path: '/messenger_sync_ack' },
|
|
121
|
+
{ id: '23', path: '/messenger_sync_create_queue' },
|
|
122
|
+
{ id: '24', path: '/messenger_sync_get_diffs' },
|
|
123
|
+
{ id: '25', path: '/messaging' },
|
|
124
|
+
{ id: '26', path: '/messaging_events' },
|
|
125
|
+
{ id: '27', path: '/mobile_requests_count' },
|
|
126
|
+
{ id: '28', path: '/mobile_video_encode' },
|
|
127
|
+
{ id: '29', path: '/orca_notification_updates' },
|
|
128
|
+
{ id: '30', path: '/notifications_sync' },
|
|
129
|
+
{ id: '31', path: '/notifications_read' },
|
|
130
|
+
{ id: '32', path: '/notifications_seen' },
|
|
131
|
+
{ id: '33', path: '/push_notification' },
|
|
132
|
+
{ id: '34', path: '/pp' },
|
|
133
|
+
{ id: '35', path: '/orca_presence' },
|
|
134
|
+
{ id: '36', path: '/privacy_changed' },
|
|
135
|
+
{ id: '37', path: '/privacy_updates' },
|
|
136
|
+
{ id: '38', path: '/send_additional_contacts' },
|
|
137
|
+
{ id: '39', path: '/send_chat_event' },
|
|
138
|
+
{ id: '40', path: '/send_delivery_receipt' },
|
|
139
|
+
{ id: '41', path: '/send_endpoint_capabilities' },
|
|
140
|
+
{ id: '42', path: '/foreground_state' },
|
|
141
|
+
{ id: '43', path: '/aura_location' },
|
|
142
|
+
{ id: '44', path: '/send_location' },
|
|
143
|
+
{ id: '45', path: '/send_message2' },
|
|
144
|
+
{ id: '46', path: '/send_message' },
|
|
145
|
+
{ id: '47', path: '/send_message_response' },
|
|
146
|
+
{ id: '48', path: '/ping' },
|
|
147
|
+
{ id: '49', path: '/presence' },
|
|
148
|
+
{ id: '50', path: '/send_push_notification_ack' },
|
|
149
|
+
{ id: '51', path: '/rich_presence' },
|
|
150
|
+
{ id: '52', path: '/send_skype' },
|
|
151
|
+
{ id: '53', path: '/typing' },
|
|
152
|
+
{ id: '54', path: '/set_client_settings' },
|
|
153
|
+
{ id: '55', path: '/shoerack_notifications' },
|
|
154
|
+
{ id: '56', path: '/orca_ticker_updates' },
|
|
155
|
+
{ id: '57', path: '/orca_typing_notifications' },
|
|
156
|
+
{ id: '58', path: '/typ' },
|
|
157
|
+
{ id: '59', path: '/t_ms' },
|
|
158
|
+
{ id: '60', path: '/orca_video_notifications' },
|
|
159
|
+
{ id: '61', path: '/orca_visibility_updates' },
|
|
160
|
+
{ id: '62', path: '/webrtc' },
|
|
161
|
+
{ id: '63', path: '/webrtc_response' },
|
|
162
|
+
{ id: '64', path: '/subscribe' },
|
|
163
|
+
{ id: '65', path: '/t_p' },
|
|
164
|
+
{ id: '66', path: '/push_ack' },
|
|
165
|
+
{ id: '68', path: '/webrtc_binary' },
|
|
166
|
+
{ id: '69', path: '/t_sm' },
|
|
167
|
+
{ id: '70', path: '/t_sm_rp' },
|
|
168
|
+
{ id: '71', path: '/t_vs' },
|
|
169
|
+
{ id: '72', path: '/t_rtc' },
|
|
170
|
+
{ id: '73', path: '/echo' },
|
|
171
|
+
{ id: '74', path: '/pages_messaging' },
|
|
172
|
+
{ id: '75', path: '/t_omnistore_sync' },
|
|
173
|
+
{ id: '76', path: '/fbns_msg' },
|
|
174
|
+
{ id: '77', path: '/t_ps' },
|
|
175
|
+
{ id: '78', path: '/t_dr_batch' },
|
|
176
|
+
{ id: '79', path: '/fbns_reg_req' },
|
|
177
|
+
{ id: '80', path: '/fbns_reg_resp' },
|
|
178
|
+
{ id: '81', path: '/omnistore_subscribe_collection' },
|
|
179
|
+
{ id: '82', path: '/fbns_unreg_req' },
|
|
180
|
+
{ id: '83', path: '/fbns_unreg_resp' },
|
|
181
|
+
{ id: '84', path: '/omnistore_change_record' },
|
|
182
|
+
{ id: '85', path: '/t_dr_response' },
|
|
183
|
+
{ id: '86', path: '/quick_promotion_refresh' },
|
|
184
|
+
{ id: '87', path: '/v_ios' },
|
|
185
|
+
{ id: '88', path: '/pubsub' },
|
|
186
|
+
{ id: '89', path: '/get_media' },
|
|
187
|
+
{ id: '90', path: '/get_media_resp' },
|
|
188
|
+
{ id: '91', path: '/mqtt_health_stats' },
|
|
189
|
+
{ id: '92', path: '/t_sp' },
|
|
190
|
+
{ id: '93', path: '/groups_landing_updates' },
|
|
191
|
+
{ id: '94', path: '/rs' },
|
|
192
|
+
{ id: '95', path: '/t_sm_b' },
|
|
193
|
+
{ id: '96', path: '/t_sm_b_rsp' },
|
|
194
|
+
{ id: '97', path: '/t_ms_gd' },
|
|
195
|
+
{ id: '98', path: '/t_rtc_multi' },
|
|
196
|
+
{ id: '99', path: '/friend_accepted' },
|
|
197
|
+
{ id: '100', path: '/t_tn' },
|
|
198
|
+
{ id: '101', path: '/t_mf_as' },
|
|
199
|
+
{ id: '102', path: '/t_fs' },
|
|
200
|
+
{ id: '103', path: '/t_tp' },
|
|
201
|
+
{ id: '104', path: '/t_stp' },
|
|
202
|
+
{ id: '105', path: '/t_st' },
|
|
203
|
+
{ id: '106', path: '/omni' },
|
|
204
|
+
{ id: '107', path: '/t_push' },
|
|
205
|
+
{ id: '108', path: '/omni_c' },
|
|
206
|
+
{ id: '109', path: '/t_sac' },
|
|
207
|
+
{ id: '110', path: '/omnistore_resnapshot' },
|
|
208
|
+
{ id: '111', path: '/t_spc' },
|
|
209
|
+
{ id: '112', path: '/t_callability_req' },
|
|
210
|
+
{ id: '113', path: '/t_callability_resp' },
|
|
211
|
+
{ id: '116', path: '/t_ec' },
|
|
212
|
+
{ id: '117', path: '/t_tcp' },
|
|
213
|
+
{ id: '118', path: '/t_tcpr' },
|
|
214
|
+
{ id: '119', path: '/t_ts' },
|
|
215
|
+
{ id: '120', path: '/t_ts_rp' },
|
|
216
|
+
{ id: '121', path: '/t_mt_req' },
|
|
217
|
+
{ id: '122', path: '/t_mt_resp' },
|
|
218
|
+
{ id: '123', path: '/t_inbox' },
|
|
219
|
+
{ id: '124', path: '/p_a_req' },
|
|
220
|
+
{ id: '125', path: '/p_a_resp' },
|
|
221
|
+
{ id: '126', path: '/unsubscribe' },
|
|
222
|
+
{ id: '127', path: '/t_graphql_req' },
|
|
223
|
+
{ id: '128', path: '/t_graphql_resp' },
|
|
224
|
+
{ id: '129', path: '/t_app_update' },
|
|
225
|
+
{ id: '130', path: '/p_updated' },
|
|
226
|
+
{ id: '131', path: '/t_omnistore_sync_low_pri' },
|
|
227
|
+
{ id: '132', path: '/ig_send_message' },
|
|
228
|
+
{ id: '133', path: '/ig_send_message_response' },
|
|
229
|
+
{ id: '134', path: '/ig_sub_iris' },
|
|
230
|
+
{ id: '135', path: '/ig_sub_iris_response' },
|
|
231
|
+
{ id: '136', path: '/ig_snapshot_response' },
|
|
232
|
+
{ id: '137', path: '/fbns_msg_hp' },
|
|
233
|
+
{ id: '138', path: '/data_stream' },
|
|
234
|
+
{ id: '139', path: '/opened_thread' },
|
|
235
|
+
{ id: '140', path: '/t_typ_att' },
|
|
236
|
+
{ id: '141', path: '/iris_server_reset' },
|
|
237
|
+
{ id: '142', path: '/flash_thread_presence' },
|
|
238
|
+
{ id: '143', path: '/flash_send_thread_presence' },
|
|
239
|
+
{ id: '144', path: '/flash_thread_typing' },
|
|
240
|
+
{ id: '146', path: '/ig_message_sync' },
|
|
241
|
+
{ id: '148', path: '/t_omnistore_batched_message' },
|
|
242
|
+
{ id: '149', path: '/ig_realtime_sub' },
|
|
243
|
+
{ id: '150', path: '/t_region_hint' },
|
|
244
|
+
{ id: '151', path: '/t_fb_family_navigation_badge' },
|
|
245
|
+
{ id: '152', path: '/t_ig_family_navigation_badge' },
|
|
246
|
+
{ id: '153', path: '/parties_notifications' },
|
|
247
|
+
{ id: '154', path: '/t_assist' },
|
|
248
|
+
{ id: '155', path: '/t_assist_rp' },
|
|
249
|
+
{ id: '156', path: '/t_create_group' },
|
|
250
|
+
{ id: '157', path: '/t_create_group_rp' },
|
|
251
|
+
{ id: '158', path: '/t_create_group_ms' },
|
|
252
|
+
{ id: '159', path: '/t_create_group_ms_rp' },
|
|
253
|
+
{ id: '160', path: '/t_entity_presence' },
|
|
254
|
+
{ id: '161', path: '/ig_region_hint_rp' },
|
|
255
|
+
{ id: '162', path: '/buddylist_overlay' },
|
|
256
|
+
{ id: '163', path: '/setup_debug' },
|
|
257
|
+
{ id: '164', path: '/ig_conn_update' },
|
|
258
|
+
{ id: '165', path: '/ig_msg_dr' },
|
|
259
|
+
{ id: '166', path: '/parties_notifications_req' },
|
|
260
|
+
{ id: '167', path: '/omni_connect_sync' },
|
|
261
|
+
{ id: '168', path: '/parties_send_message' },
|
|
262
|
+
{ id: '169', path: '/parties_send_message_response' },
|
|
263
|
+
{ id: '170', path: '/omni_connect_sync_req' },
|
|
264
|
+
{ id: '172', path: '/br_sr' },
|
|
265
|
+
{ id: '174', path: '/sr_res' },
|
|
266
|
+
{ id: '175', path: '/omni_connect_sync_batch' },
|
|
267
|
+
{ id: '176', path: '/notify_disconnect' },
|
|
268
|
+
{ id: '177', path: '/omni_mc_ep_push_req' },
|
|
269
|
+
{ id: '180', path: '/fbns_msg_ack' },
|
|
270
|
+
{ id: '181', path: '/t_add_participants_to_group' },
|
|
271
|
+
{ id: '182', path: '/t_add_participants_to_group_rp' },
|
|
272
|
+
{ id: '188', path: '/t_aloha_session_req' },
|
|
273
|
+
{ id: '195', path: '/t_thread_typing' },
|
|
274
|
+
{ id: '201', path: '/video_rt_pipe' },
|
|
275
|
+
{ id: '202', path: '/t_update_presence_extra_data' },
|
|
276
|
+
{ id: '203', path: '/video_rt_pipe_res' },
|
|
277
|
+
{ id: '211', path: '/onevc' },
|
|
278
|
+
{ id: '231', path: '/fbns_exp_logging' },
|
|
279
|
+
];
|
|
280
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const APP_VERSION = '409.0.0.48.170';
|
|
2
|
+
const APP_VERSION_CODE = '380706635';
|
|
3
|
+
const INSTALL_LOCATION = '0';
|
|
4
|
+
const COMPILED_SDK_VERSION = '36';
|
|
5
|
+
const SIGNATURE_KEY = '9193488027538fd3450b83b7d05286d4ca9599a0f7eeed90d8c85925698a05dc';
|
|
6
|
+
const BREADCRUMB_KEY = 'iN4$aGr0m';
|
|
7
|
+
const SIGNATURE_VERSION = '4';
|
|
8
|
+
const EXPERIMENTS = 'ig_android_direct_voice,ig_android_video_ssim_fix_pts_universe,ig_shopping_checkout_improvements_universe,ig_android_stories_seen_state_serialization,ig_android_stories_music_search_typeahead,android_ard_ig_use_brotli_effect_universe,ig_android_swipe_perf_improvements,ig_android_delayed_comments,ig_android_shopping_bag_null_state_v1,ig_android_igtv_crop_top,ig_android_direct_reshare_chaining,ig_shopping_merchant_profile_bag_android,ig_android_feedback_required,ig_android_zero_rating_carrier_signal,ig_direct_holdout_h1_2019,ig_explore_2019_h1_destination_cover,ig_android_biz_ranked_requests_universe,ig_android_explore_recyclerview_universe,ig_camera_android_subtle_filter_universe,ig_android_direct_add_member_dialog_universe,android_camera_core_cpu_frames_sync,ig_android_quick_promote_universe,ig_ar_shopping_camera_android_universe,ig_android_recyclerview_binder_group_enabled_universe,ig_android_video_exoplayer_2,ig_interactions_project_daisy,ig_rn_branded_content_settings_approval_on_select_save,ig_android_igtv_improved_search,ig_android_stories_music_filters,ig_android_account_insights_shopping_content_universe,ig_android_automated_logging,ig_android_viewmaster_post_capture_universe,ig_threads_clear_notifications_on_has_seen,ig_android_camera_effect_gallery_prefetch,ig_android_fix_ppr_thumbnail_url,ig_interactions_project_daisy_creators_universe,ig_camera_android_gyro_senser_sampling_period_universe,ig_android_xposting_feed_to_stories_reshares_universe,ig_android_flexible_contact_and_category_for_creators,ig_android_enable_zero_rating,ig_android_unfollow_reciprocal_universe,ig_stories_engagement_holdout_2019_h1_universe,ig_android_publisher_stories_migration,ig_android_story_import_intent,ig_android_stories_context_sheets_universe,ig_biz_graph_connection_universe,ig_android_stories_boomerang_v2_universe,ig_android_nametag,ig_hashtag_creation_universe,ig_shopping_insights_wc_copy_update_android,ig_android_camera_stopmotion,ig_android_igtv_reshare,ig_android_explore_reel_loading_state,ig_end_of_feed_universe,ig_android_igtv_feed_sharing_universe,ig_xposting_mention_reshare_stories,ig_email_sent_list_universe,ig_android_follow_request_button_improvements_universe,ig_android_media_streaming_sdk_universe,ig_android_direct_reshares_from_thread,ig_android_cover_frame_upload_skip_story_raven_universe,ig_android_stories_video_prefetch_kb,ig_android_optic_use_new_bitmap_photo_api,ig_inventory_connections,ig_stories_injection_tool_enabled_universe,ig_android_canvas_cookie_universe,ig_android_stories_disable_highlights_media_preloading,ig_android_effect_gallery_post_capture_universe,ig_android_promote_migration_available_audience,ig_android_branded_content_ads_universe,ig_camera_android_attribution_bottomsheet_universe,ig_android_raven_video_segmented_upload_raven_only_universe,ig_android_product_tag_hint_dots,ig_android_story_sharing_holdout,ig_carousel_bumped_organic_impression_client_universe,ig_biz_post_approval_nux_universe,ig_android_ig_personal_account_to_fb_page_linkage_backfill,ig_android_persistent_nux,ig_android_branded_content_upsell_keywords_extension,ig_android_stories_project_eclipse,ig_direct_android_bubble_system,ig_android_shopping_pdp_product_videos,ig_camera_android_segmentation_v106_igdjango_universe,ig_camera_android_new_effect_gallery_entry_point_universe,ig_android_li_session_chaining,ig_android_feed_post_warning_universe,ig_android_search_remove_null_state_sections,ig_direct_android_mentions_receiver,ig_android_do_not_show_social_context_for_likes_page_universe,ig_android_context_feed_recycler_view,ig_fb_notification_universe,ig_android_video_abr_universe,ig_android_nelson_v0_universe,ig_android_unify_graph_management_actions,ig_android_own_profile_sharing_universe,ig_android_vc_cowatch_media_share_universe,ig_challenge_general_v2,ig_android_place_signature_universe,ig_android_direct_inbox_cache_universe,ig_android_business_promote_tooltip,ig_android_follow_requests_ui_improvements,ig_android_direct_aggregated_media_and_reshares,ig_android_story_camera_share_to_feed_universe,ig_android_self_following_v2_universe,ig_android_direct_view_more_qe,ig_android_memory_use_logging_universe,ig_android_insights_audience_tab_native_universe,ig_android_stories_send_client_reels_on_tray_fetch_universe,ig_android_live_use_rtc_upload_universe,ig_android_delay_on_sticker_search_universe,ig_android_live_ama_viewer_universe,ig_smb_ads_holdout_2018_h2_universe,ig_android_camera_post_smile_low_end_universe,ig_cameracore_android_camera2_focus_after_first_frame,ig_android_video_raven_bitrate_ladder_universe,ig_android_live_realtime_comments_universe,ig_smb_ads_holdout_2019_h2_universe,ig_camera_android_filter_optmizations,ig_android_igtv_feed_preview_duration,ig_android_account_insights_shopping_metrics_universe,ig_android_apr_lazy_build_request_infra,ig_cameracore_android_new_optic_camera2_galaxy,ig_android_wellbeing_support_frx_igtv_reporting,ig_android_branded_content_appeal_states,ig_stories_infeed,ig_shopping_checkout_improvements_v2_universe,ig_android_direct_thread_target_queue_universe,ig_android_mediauri_parse_optimization,ig_camera_android_skip_camera_initialization_open_to_post_capture,ig_android_create_page_on_top_universe,ig_android_wellbeing_support_frx_comment_reporting,ig_promote_interactive_poll_sticker_igid_universe,ig_android_image_upload_skip_queue_only_on_wifi,ig_android_igtv_pip,ig_android_ad_watchbrowse_carousel_universe,ig_android_direct_message_reactions,ig_android_remove_unfollow_dialog_universe,ig_android_fix_main_feed_su_cards_size_universe,ig_camera_text_mode_composer_controller_opt_universe,ig_explore_2019_h1_video_autoplay_resume,ig_android_video_upload_quality_qe1,ig_android_save_collaborative_collections,coupon_price_test_boost_instagram_media_acquisition_universe,ig_android_video_outputsurface_handlerthread_universe,ig_android_country_code_fix_universe,ig_android_stories_music_overlay,ig_android_multi_thread_sends,ig_android_low_latency_consumption_universe,ig_android_direct_like_animation_onbind_conflict_fix,ig_graph_chain_unfollow_universe,ig_aggregated_quick_reactions,ig_android_lock_unlock_dex,ig_android_create_mode_templates,ig_android_direct_block_from_group_message_requests,ig_android_react_native_universe_kill_switch,ig_promote_android_native_improvements_19,ig_android_viewpoint_occlusion,ig_android_logged_in_delta_migration,ig_android_push_reliability_universe,ig_android_stories_gallery_video_segmentation,ig_android_interactions_fix_activity_feed_ufi,ig_android_direct_business_holdout,ig_android_xposting_upsell_directly_after_sharing_to_story,ig_android_direct_sticker_search_upgrade_universe,ig_android_camera_focus_low_end_universe,ig_android_client_side_feed_delivery,ig_android_vc_background_call_toast_universe,ig_promote_default_destination_universe,ig_android_delay_segmentation_low_end_universe,ig_disable_fsync_universe,ig_android_direct_media_latency_optimizations,ig_promote_manager_copy_refresh_universe,mi_viewpoint_viewability_universe,android_ard_ig_download_manager_v2,ig_direct_reshare_sharesheet_ranking,ig_shopping_checkout_ig_funded_incentives,ig_android_video_upload_transform_matrix_fix_universe,ig_android_le_videoautoplay_disabled,ig_android_fb_sync_options_universe,ig_android_recommend_accounts_destination_routing_fix,ig_android_building_aymf_universe,ig_android_internal_sticker_universe,ig_traffic_routing_universe,ig_android_downloadable_json_universe,ig_android_intentful_profile_shop,ig_android_page_claim_deeplink_qe,ig_android_camera_effects_order_universe,ig_android_network_onbehavior_change_fix,ig_android_wellbeing_support_frx_direct_reporting,ig_android_account_story_grid_universe,ig_android_camera_3p_in_post,ig_android_main_feed_video_countdown_timer,ig_search_hashtag_content_advisory_remove_snooze,ig_android_kitkat_segmented_upload_universe,ig_payment_checkout_info,ig_android_vc_explicit_intent_for_notification,ig_stories_ads_delivery_rules,ig_android_video_upload_iframe_interval,ig_business_new_value_prop_universe,ig_android_feed_defer_on_interactions,ig_android_power_metrics,ig_android_vio_pipeline_universe,ig_android_gallery_grid_controller_folder_cache,ig_android_suggested_users_background,ig_android_login_onetap_upsell_universe,ig_android_test_not_signing_address_book_unlink_endpoint,ig_close_friends_home_v2,ig_graph_management_production_h2_2019_holdout_universe,ig_ei_option_setting_universe,ig_android_account_insights_native_universe,ig_android_browser_ads_page_content_width_universe,ig_android_livewith_liveswap_optimization_universe,ig_android_jit,ig_android_branding_v2_settings_universe,ig_shopping_checkout_consideration_h2_2019_holdout,ig_android_sr_holdout_universe,ig_android_ar_effect_sticker_universe,ig_direct_android_mentions_sender,ig_android_whats_app_contact_invite_universe,ig_android_igtv_home_icon,ig_android_shimmering_loading_state,ig_android_igtv_refresh_tv_guide_interval,ig_android_gallery_minimum_video_length,ig_android_hashtag_remove_share_hashtag,ig_android_feed_interactions_carousel_overscoll,ig_android_fb_profile_integration_fbnc_universe,ig_shopping_checkout_2x2_platformization_universe,ig_android_direct_bump_active_threads,ig_android_xposting_dual_destination_shortcut_fix,ig_android_show_create_content_pages_universe,ig_android_igsystrace_universe,ig_android_hashtag_limit,ig_android_video_product_specific_abr,ig_android_vc_interop_latency,ig_android_vc_cpu_overuse_universe,ig_android_invite_list_button_redesign_universe,ig_android_react_native_email_sms_settings_universe,ig_ads_experience_holdout_2019_h2,ig_hero_player,ig_android_save_auto_sharing_to_fb_option_on_server,ig_android_whitehat_options_universe,ig_android_keyword_media_serp_page,android_cameracore_preview_frame_listener2_ig_universe,ig_android_direct_message_follow_button,ig_android_video_raven_passthrough,ig_stories_ads_media_based_insertion,ig_threads_sanity_check_thread_viewkeys,ig_android_profile_neue_infra_rollout_universe,ig_android_profile_ppr_fixes,ig_android_inline_composer_animation_fix,ig_discovery_2019_h2_holdout_universe,ig_android_stories_quick_react_gif_universe,ig_android_ig_personal_account_xpost_eligibility_from_server,ig_android_story_bottom_sheet_top_clips_mas,ig_android_jp_reel_tray_location_sticker_text_universe,ig_android_stories_remote_sticker_search,ig_android_vc_capture_universe,ig_create_mode_gifs_client_universe,ig_android_save_to_collections_flow,ig_android_direct_segmented_video,instagram_stories_time_fixes,ig_android_jp_saved_collection_map_universe,ig_android_stories_async_view_inflation_universe,ig_android_product_breakdown_post_insights,ig_android_stories_recently_captured_universe,ig_business_integrity_ipc_universe,ig_android_hide_contacts_list,ig_android_temp_file_cleanup,ig_android_wellbeing_support_frx_stories_reporting,ig_android_smplt_universe,ig_android_vc_missed_call_call_back_action_universe,ig_android_business_attribute_sync,ig_android_view_and_likes_cta_universe,ig_android_dropframe_manager,ig_android_ad_stories_scroll_perf_universe,ig_android_direct_default_group_name,ig_android_tango_cpu_overuse_universe,android_ard_ig_cache_size,ig_android_branded_content_ads_enable_partner_boost,ig_android_direct_remix_visual_messages,ig_camera_android_segmentation_106_ar_class_universe,ig_quick_story_placement_validation_universe,ig_android_custom_story_import_intent,ig_android_search_impression_logging_viewpoint,ig_android_view_info_universe,ig_android_camera_upsell_dialog,ig_android_dead_code_detection,ig_android_promotion_insights_bloks,ig_android_tagging_activity_video_preview,ig_android_ad_watchbrowse_universe,ig_android_pbia_proxy_profile_universe,ig_android_qp_kill_switch,ig_android_new_follower_removal_universe,ig_android_gap_rule_enforcer_universe,ig_android_direct_delete_or_block_from_message_requests,ig_android_direct_left_aligned_navigation_bar,ig_android_feed_load_more_viewpoint_universe,ig_android_stories_reshare_reply_msg,ig_direct_holdout_h2_2018,ig_android_wab_adjust_resize_universe,ig_promote_ctd_post_insights_universe,ig_camera_android_facetracker_v12_universe,ig_sim_api_analytics_reporting,ig_badge_dedup_universe,ig_android_ar_background_effect_universe,ig_android_audience_control,ig_android_stories_cross_sharing_to_fb_holdout_universe,ig_android_refresh_empty_feed_su_universe,ig_android_enable_main_feed_reel_tray_preloading,ig_android_profile_neue_universe,ig_camera_android_paris_filter_universe,ig_android_viewmaster_dial_ordering_universe,ig_company_profile_holdout,ig_rti_inapp_notifications_universe,ig_android_vc_join_timeout_universe,ig_shop_directory_entrypoint,ig_android_direct_rx_thread_update,ig_android_add_ci_upsell_in_normal_account_chaining_universe,ig_android_feed_core_ads_2019_h1_holdout_universe,ar_engine_audio_service_fba_decoder_ig,ar_engine_audio_fba_integration_instagram,ig_android_music_browser_redesign,ig_android_qr_code_nametag,ig_android_viewmaster_ar_memory_improvements,ig_android_claim_location_page,ig_android_direct_inbox_recently_active_presence_dot_universe,ig_android_promotion_manager_migration_universe,ig_android_stories_discussion_sticker_universe,ig_camera_async_gallerycontroller_universe,ig_android_direct_state_observer,ig_android_search_usl,ig_android_video_controls_universe,ig_android_business_tokenless_stories_xposting,ig_android_logging_metric_universe_v2,ig_android_xposting_newly_fbc_people,ig_android_visualcomposer_inapp_notification_universe,ig_android_do_not_show_social_context_on_follow_list_universe,ig_android_contact_point_upload_rate_limit_killswitch,ig_android_webrtc_encoder_factory_universe,ig_android_qpl_class_marker,ig_android_sso_kototoro_app_universe,ig_android_ar_effect_sticker_consumption_universe,ig_android_direct_unread_count_badge,ig_android_profile_thumbnail_impression,ig_android_igtv_autoplay_on_prepare,ig_android_list_adapter_prefetch_infra,ig_branded_content_tagging_upsell,ig_android_live_ama_universe,ig_android_external_gallery_import_affordance,ig_android_video_raven_streaming_upload_universe,ig_android_fix_inbox_flicker_universe,ig_discovery_holdout_universe,ig_android_product_tag_suggestions,ig_android_direct_import_google_photos2,ig_direct_feed_media_sticker_universe,ig_android_igtv_upload_error_messages,ig_android_self_profile_suggest_business_main,ig_android_ads_bottom_sheet_report_flow,ig_android_iris_improvements,ig_android_jp_line_share_universe,ig_android_test_remove_button_main_cta_self_followers_universe,ig_android_stories_viewer_prefetch_improvements,ig_android_camera_leak,ig_android_wellbeing_support_frx_live_reporting,ig_stories_rainbow_ring,ig_android_place_search_profile_image,android_cameracore_safe_makecurrent_ig,ig_android_xposting_reel_memory_share_universe,ig_android_direct_simple_message_comparator_universe,ig_android_profile_unified_follow_view,ig_android_video_upload_hevc_encoding_universe,ig_android_mentions_suggestions,instagram_shopping_hero_carousel_visual_variant_consolidation,ig_android_vc_face_effects_universe,ig_android_fbpage_on_profile_side_tray,ig_android_cx_recommended_categories_change,ig_android_feed_delivery_refactor,ig_branded_content_tagging_approval_request_flow_brand_side_v2,ig_android_wellbeing_support_frx_profile_reporting,ig_android_search_register_recent_store,ig_feed_content_universe,ig_android_disk_usage_logging_universe,ig_android_save_home_create_collection,ig_android_search_without_typed_hashtag_autocomplete,ig_android_stories_layout_universe,ig_android_wellbeing_support_frx_feed_posts_reporting,ig_android_sharedpreferences_qpl_logging,ig_android_mainactivity_trim_fix,ig_android_unified_inbox_ephemeral_media_tooltip_universe,ag_family_bridges_2018_h2_holdout,ig_promote_net_promoter_score_universe,ig_android_recents_and_edit_flow,aymt_instagram_promote_flow_abandonment_ig_universe,ig_android_delete_ssim_compare_img_soon,ig_close_friends_list_suggestions,ig_android_personal_user_xposting_destination_fix,ig_android_felix_video_upload_length,ig_android_biz_conversion_suggest_biz_nux,ig_android_discover_people_nux,ig_android_analytics_background_uploader_schedule,ig_camera_android_boomerang_attribution_universe,ig_android_igtv_browse_long_press,ig_android_fix_reshare_xposting_killswitch_universe,ig_android_igtv_stories_preview,ig_android_stories_weblink_creation,ig_promotion_manager_redesign_universe,ig_profile_company_holdout_h2_2018,ig_android_ads_manager_pause_resume_ads_universe,ig_android_direct_reel_fetching,ig_android_stories_media_seen_batching_universe,ig_android_interactions_nav_to_permalink_followup_universe,ig_camera_discovery_surface_universe,ig_android_le_cold_start_improvements,ig_android_direct_mark_as_read_notif_action,ig_android_not_interested_secondary_options,ig_android_direct_selfie_stickers,ig_cameracore_android_new_optic_camera2,ig_android_secondary_inbox_universe,ig_android_fbc_upsell_on_dp_first_load,ig_android_feed_short_session_new_post_pill,ig_android_rename_share_option_in_dialog_menu_universe,ig_android_stories_sundial_creation_universe,saved_collections_cache_universe,ig_camera_android_bg_processor,ig_android_stories_reel_interactive_tap_target_size,ig_android_video_live_trace_universe,ig_android_direct_fix_realtime_status,ig_android_direct_wellbeing_message_reachability_settings,ig_android_unfollow_from_main_feed_v2,ig_android_self_story_setting_option_in_menu,ig_android_camera_ar_platform_details_view_universe,qe_android_direct_vm_view_modes,ig_android_flexible_profile_universe,ufi_share,ig_android_live_qa_broadcaster_v1_universe,ig_android_cold_start_logging_for_new_users_fix,ig_android_downloadable_fonts_universe,ig_android_business_transaction_in_stories_consumer,ig_android_direct_autoplay_videos_automatically,instagram_android_stories_sticker_tray_redesign,ig_android_branded_content_access_tag,ig_android_business_cross_post_with_biz_id_infra,ig_android_fix_push_setting_logging_universe,ig_android_photo_invites,ig_interactions_h2_2019_team_holdout_universe,ig_android_reel_tray_item_impression_logging_viewpoint,ig_account_identity_2018_h2_lockdown_phone_global_holdout,ig_close_friends_v4,ig_android_ads_history_universe,ig_promote_media_picker_universe,ig_android_location_recyclerview,ig_android_sidecar_report_ssim,ig_android_wait_for_app_initialization_on_push_action_universe,ig_android_pending_media_file_registry,ig_android_interest_follows_universe,ig_android_ig_to_fb_sync_universe,shop_home_hscroll_see_all_button_universe,ig_android_insights_content_tab_native_universe,ig_android_ad_view_ads_native_universe,ig_android_branded_content_tag_redesign_organic,ig_android_igtv_whitelisted_for_web,ig_android_throttled_search_requests,ig_android_igtv_browse_button,ig_close_friends_v4_global,ig_android_share_publish_page_universe,ig_android_new_camera_design_universe,ig_direct_max_participants,ig_promote_hide_local_awareness_universe,ig_android_explore_lru_cache,ig_android_graphql_survey_new_proxy_universe,ig_camera_android_try_on_camera_universe,ig_android_disable_manual_retries,ig_android_fs_creation_flow_tweaks,ig_android_save_to_collections_bottom_sheet_refactor,ig_android_stories_gutter_width_universe,ig_android_fb_profile_integration_universe,ig_android_shopping_bag_optimization_universe,android_ig_cameracore_aspect_ratio_fix,ig_android_photo_upload_jpeg_quality_universe,ig_android_igtv_explore2x2_viewer,ig_camera_android_focus_attribution_universe,ig_android_core_search_2019_h2,ig_early_friending_holdout_universe,ig_android_hashtag_recyclerview,ig_android_vpvd_impressions_universe,ig_android_payload_based_scheduling,ig_android_explore_peek_redesign_universe,ig_android_ard_ptl_universe,ig_android_wishlist_reconsideration_universe,ig_android_camera_formats_ranking_universe,ig_android_spark_studio_promo,ig_android_shop_home_prefetching_universe,ig_background_prefetch,ig_camera_android_focus_in_post_universe,ig_android_time_spent_dashboard,ig_android_camera_effects_initialization_universe,ig_android_camera_async_setup_lowend_focus,ig_android_ad_iab_qpl_kill_switch_universe,ig_android_vc_sounds_universe,ig_android_video_pdq_calculation,ig_android_prefetch_logic_infra,ig_android_self_story_button_non_fbc_accounts,ig_android_self_profile_suggest_business_gating,ig_android_migrate_gifs_to_ig_endpoint,ig_feed_video_autoplay_stop_threshold,ig_android_direct_activator_cards,ig_android_profile_leaks_holdouts,ig_android_video_cached_bandwidth_estimate,ig_android_profile_unified_creation_universe,ig_android_camera_gallery_upload_we_universe,ig_android_business_category_sticky_header_qe,ig_payment_checkout_cvv,ig_android_qr_code_scanner,ig_android_shopping_lightbox,ig_camera_android_async_effect_api_parsing_universe,ig_android_stories_gallery_sticker_universe,ig_promote_enter_error_screens_universe,ig_shopping_checkout_mvp_experiment,ig_android_wellbeing_support_frx_friction_process_education,ig_android_direct_pending_media,ig_android_scroll_main_feed,ig_android_igtv_player_follow_button,ig_android_intialization_chunk_410,ig_android_recognition_tracking_thread_prority_universe,ig_android_stories_music_sticker_position,ig_android_hec_promote_universe,ig_android_nametag_save_experiment_universe,ig_android_fs_new_gallery,ig_android_remove_follow_all_fb_list,ig_android_specific_story_sharing,ig_android_image_exif_metadata_ar_effect_id_universe';
|
|
9
|
+
|
|
10
|
+
const LOGIN_EXPERIMENTS = 'ig_android_fci_onboarding_friend_search,ig_android_device_detection_info_upload,ig_android_account_linking_upsell_universe,ig_android_direct_main_tab_universe_v2,ig_android_allow_account_switch_once_media_upload_finish_universe,ig_android_sign_in_help_only_one_account_family_universe,ig_android_sms_retriever_backtest_universe,ig_android_direct_add_direct_to_android_native_photo_share_sheet,ig_android_spatial_account_switch_universe,ig_growth_android_profile_pic_prefill_with_fb_pic_2,ig_account_identity_logged_out_signals_global_holdout_universe,ig_android_prefill_main_account_username_on_login_screen_universe,ig_android_login_identifier_fuzzy_match,ig_android_mas_remove_close_friends_entrypoint,ig_android_shared_email_reg_universe,ig_android_video_render_codec_low_memory_gc,ig_android_custom_transitions_universe,ig_android_push_fcm,multiple_account_recovery_universe,ig_android_show_login_info_reminder_universe,ig_android_email_fuzzy_matching_universe,ig_android_one_tap_aymh_redesign_universe,ig_android_direct_send_like_from_notification,ig_android_suma_landing_page,ig_android_prefetch_debug_dialog,ig_android_smartlock_hints_universe,ig_android_black_out,ig_activation_global_discretionary_sms_holdout,ig_android_video_ffmpegutil_pts_fix,ig_android_multi_tap_login_new,ig_save_smartlock_universe,ig_android_caption_typeahead_fix_on_o_universe,ig_android_enable_keyboardlistener_redesign,ig_android_sign_in_password_visibility_universe,ig_android_nux_add_email_device,ig_android_direct_remove_view_mode_stickiness_universe,ig_android_hide_contacts_list_in_nux,ig_android_new_users_one_tap_holdout_universe,ig_android_ingestion_video_support_hevc_decoding,ig_android_mas_notification_badging_universe,ig_android_secondary_account_in_main_reg_flow_universe,ig_android_secondary_account_creation_universe,ig_android_account_recovery_auto_login,ig_android_pwd_encrytpion,ig_android_bottom_sheet_keyboard_leaks,ig_android_sim_info_upload,ig_android_mobile_http_flow_device_universe,ig_android_hide_fb_button_when_not_installed_universe,ig_android_account_linking_on_concurrent_user_session_infra_universe,ig_android_targeted_one_tap_upsell_universe,ig_android_gmail_oauth_in_reg,ig_android_account_linking_flow_shorten_universe,ig_android_vc_interop_use_test_igid_universe,ig_android_notification_unpack_universe,ig_android_registration_confirmation_code_universe,ig_android_device_based_country_verification,ig_android_log_suggested_users_cache_on_error,ig_android_reg_modularization_universe,ig_android_device_verification_separate_endpoint,ig_android_universe_noticiation_channels,ig_android_account_linking_universe,ig_android_hsite_prefill_new_carrier,ig_android_one_login_toast_universe,ig_android_retry_create_account_universe,ig_android_family_apps_user_values_provider_universe,ig_android_reg_nux_headers_cleanup_universe,ig_android_mas_ui_polish_universe,ig_android_device_info_foreground_reporting,ig_android_shortcuts_2019,ig_android_device_verification_fb_signup,ig_android_onetaplogin_optimization,ig_android_passwordless_account_password_creation_universe,ig_android_black_out_toggle_universe,ig_video_debug_overlay,ig_android_ask_for_permissions_on_reg,ig_assisted_login_universe,ig_android_security_intent_switchoff,ig_android_device_info_job_based_reporting,ig_android_add_account_button_in_profile_mas_universe,ig_android_add_dialog_when_delinking_from_child_account_universe,ig_android_passwordless_auth,ig_radio_button_universe_2,ig_android_direct_main_tab_account_switch,ig_android_recovery_one_tap_holdout_universe,ig_android_modularized_dynamic_nux_universe,ig_android_fb_account_linking_sampling_freq_universe,ig_android_fix_sms_read_lollipop,ig_android_access_flow_prefil';
|
|
11
|
+
|
|
12
|
+
const FACEBOOK_ANALYTICS_APPLICATION_ID = '567067343352427';
|
|
13
|
+
const FACEBOOK_OTA_FIELDS = 'update%7Bdownload_uri%2Cdownload_uri_delta_base%2Cversion_code_delta_base%2Cdownload_uri_delta%2Cfallback_to_full_update%2Cfile_size_delta%2Cversion_code%2Cpublished_date%2Cfile_size%2Cota_bundle_type%2Cresources_checksum%2Callowed_networks%2Crelease_id%7D';
|
|
14
|
+
const FACEBOOK_ORCA_APPLICATION_ID = '124024574287414';
|
|
15
|
+
const BLOKS_VERSION_ID = '388ece79ebc0e70e87873505ed1b0ff335ae2868a978cc951b6721c41d46a30a';
|
|
16
|
+
const HOSTNAME = 'i.instagram.com';
|
|
17
|
+
const WEB_HOSTNAME = 'www.instagram.com';
|
|
18
|
+
const HOST = `https://${HOSTNAME}/`;
|
|
19
|
+
const WEBHOST = `https://${WEB_HOSTNAME}/`;
|
|
20
|
+
|
|
21
|
+
// Import MQTT constants from constants.js
|
|
22
|
+
const mqttConstants = require('./constants');
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
APP_VERSION,
|
|
26
|
+
APP_VERSION_CODE,
|
|
27
|
+
SIGNATURE_KEY,
|
|
28
|
+
BREADCRUMB_KEY,
|
|
29
|
+
SIGNATURE_VERSION,
|
|
30
|
+
EXPERIMENTS,
|
|
31
|
+
LOGIN_EXPERIMENTS,
|
|
32
|
+
FACEBOOK_ANALYTICS_APPLICATION_ID,
|
|
33
|
+
FACEBOOK_OTA_FIELDS,
|
|
34
|
+
FACEBOOK_ORCA_APPLICATION_ID,
|
|
35
|
+
BLOKS_VERSION_ID,
|
|
36
|
+
HOSTNAME,
|
|
37
|
+
WEB_HOSTNAME,
|
|
38
|
+
HOST,
|
|
39
|
+
WEBHOST,
|
|
40
|
+
...mqttConstants
|
|
41
|
+
};
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
const EventEmitter = require('events');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const State = require('./state');
|
|
6
|
+
const Request = require('./request');
|
|
7
|
+
const AccountRepository = require('../repositories/account.repository');
|
|
8
|
+
const UserRepository = require('../repositories/user.repository');
|
|
9
|
+
const DirectRepository = require('../repositories/direct.repository');
|
|
10
|
+
const DirectThreadRepository = require('../repositories/direct-thread.repository');
|
|
11
|
+
const MediaRepository = require('../repositories/media.repository');
|
|
12
|
+
const UploadRepository = require('../repositories/upload.repository');
|
|
13
|
+
const StoryRepository = require('../repositories/story.repository');
|
|
14
|
+
const FeedRepository = require('../repositories/feed.repository');
|
|
15
|
+
const FriendshipRepository = require('../repositories/friendship.repository');
|
|
16
|
+
const LocationRepository = require('../repositories/location.repository');
|
|
17
|
+
const HashtagRepository = require('../repositories/hashtag.repository');
|
|
18
|
+
const SearchService = require('../services/search.service');
|
|
19
|
+
const LiveService = require('../services/live.service');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* IgApiClient
|
|
23
|
+
*
|
|
24
|
+
* - Păstrăm în totalitate funcționalitatea existentă (login/logout/isLoggedIn/saveSession/loadSession/isSessionValid/destroy)
|
|
25
|
+
* - Am eliminat complet stratul Realtime (WebSocket). Orice cod dependent de realtime trebuie migrat separat.
|
|
26
|
+
* - Am adăugat un helper generic `retryAsync(fn, opts)` pentru retry/backoff la operații asincrone (utile pentru request-uri).
|
|
27
|
+
*/
|
|
28
|
+
class IgApiClient extends EventEmitter {
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
|
|
32
|
+
this.state = new State();
|
|
33
|
+
this.request = new Request(this);
|
|
34
|
+
|
|
35
|
+
// Initialize repositories
|
|
36
|
+
this.account = new AccountRepository(this);
|
|
37
|
+
this.user = new UserRepository(this);
|
|
38
|
+
this.direct = new DirectRepository(this);
|
|
39
|
+
this.directThread = new DirectThreadRepository(this);
|
|
40
|
+
this.media = new MediaRepository(this);
|
|
41
|
+
this.upload = new UploadRepository(this);
|
|
42
|
+
this.story = new StoryRepository(this);
|
|
43
|
+
this.feed = new FeedRepository(this);
|
|
44
|
+
this.friendship = new FriendshipRepository(this);
|
|
45
|
+
this.location = new LocationRepository(this);
|
|
46
|
+
this.hashtag = new HashtagRepository(this);
|
|
47
|
+
|
|
48
|
+
// Initialize services
|
|
49
|
+
this.search = new SearchService(this);
|
|
50
|
+
this.live = new LiveService(this);
|
|
51
|
+
|
|
52
|
+
// Create dm object for easier access (keeps backward compatibility)
|
|
53
|
+
this.dm = {
|
|
54
|
+
send: this.direct.send.bind(this.direct),
|
|
55
|
+
sendToGroup: this.directThread.sendToGroup.bind(this.directThread),
|
|
56
|
+
sendImage: this.direct.sendImage.bind(this.direct),
|
|
57
|
+
sendVideo: this.direct.sendVideo.bind(this.direct),
|
|
58
|
+
getInbox: this.direct.getInbox.bind(this.direct),
|
|
59
|
+
getThread: this.directThread.getThread.bind(this.directThread)
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// Proxy debug / verbose
|
|
63
|
+
this.state.verbose = this.state.verbose || false;
|
|
64
|
+
|
|
65
|
+
// Default retry policy for the new helper retryAsync
|
|
66
|
+
this._defaultRetryPolicy = { retries: 3, delayMs: 500 };
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Login -> uses account.login. Returns whatever account.login returns.
|
|
72
|
+
* NOTE: removed automatic realtime connection attempt.
|
|
73
|
+
*/
|
|
74
|
+
async login(credentials) {
|
|
75
|
+
const result = await this.account.login(credentials);
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async logout() {
|
|
80
|
+
return await this.account.logout();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
isLoggedIn() {
|
|
84
|
+
try {
|
|
85
|
+
return !!this.state.cookieUserId;
|
|
86
|
+
} catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async saveSession() {
|
|
92
|
+
return await this.state.serialize();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async loadSession(session) {
|
|
96
|
+
const ret = await this.state.deserialize(session);
|
|
97
|
+
return ret;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async isSessionValid() {
|
|
101
|
+
try {
|
|
102
|
+
await this.account.currentUser();
|
|
103
|
+
return true;
|
|
104
|
+
} catch {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
destroy() {
|
|
110
|
+
// Cleanup resources - keep original behaviour for request streams if present
|
|
111
|
+
try { this.request.error$.complete(); } catch (_) {}
|
|
112
|
+
try { this.request.end$.complete(); } catch (_) {}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// -------------------------------
|
|
116
|
+
// === UTILITY HELPER METHODS
|
|
117
|
+
// -------------------------------
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Generic retry helper for async functions.
|
|
121
|
+
*
|
|
122
|
+
* Usage:
|
|
123
|
+
* await client.retryAsync(() => client.request.post(...), { retries: 5, delayMs: 1000 });
|
|
124
|
+
*
|
|
125
|
+
* Options:
|
|
126
|
+
* - retries: number (default from this._defaultRetryPolicy.retries)
|
|
127
|
+
* - delayMs: base delay in ms (default from this._defaultRetryPolicy.delayMs)
|
|
128
|
+
* - factor: multiplier for exponential backoff (default 1.5)
|
|
129
|
+
* - onRetry: optional callback (err, attempt) called before next retry
|
|
130
|
+
*/
|
|
131
|
+
async retryAsync(fn, options = {}) {
|
|
132
|
+
const retries = typeof options.retries === 'number' ? options.retries : this._defaultRetryPolicy.retries;
|
|
133
|
+
const delayMs = typeof options.delayMs === 'number' ? options.delayMs : this._defaultRetryPolicy.delayMs;
|
|
134
|
+
const factor = typeof options.factor === 'number' ? options.factor : 1.5;
|
|
135
|
+
const onRetry = typeof options.onRetry === 'function' ? options.onRetry : null;
|
|
136
|
+
|
|
137
|
+
let lastErr;
|
|
138
|
+
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
139
|
+
try {
|
|
140
|
+
if (this.state.verbose) {
|
|
141
|
+
console.log(`[Retry] attempt ${attempt + 1}/${retries + 1}`);
|
|
142
|
+
}
|
|
143
|
+
const res = await fn();
|
|
144
|
+
return res;
|
|
145
|
+
} catch (err) {
|
|
146
|
+
lastErr = err;
|
|
147
|
+
if (attempt === retries) break;
|
|
148
|
+
if (onRetry) {
|
|
149
|
+
try { onRetry(err, attempt + 1); } catch (_) {}
|
|
150
|
+
}
|
|
151
|
+
const backoff = Math.round(delayMs * Math.pow(factor, attempt));
|
|
152
|
+
if (this.state.verbose) {
|
|
153
|
+
console.warn(`[Retry] attempt ${attempt + 1} failed: ${err && err.message ? err.message : err}. Backoff ${backoff}ms`);
|
|
154
|
+
}
|
|
155
|
+
await new Promise(r => setTimeout(r, backoff));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
throw lastErr || new Error('retryAsync failed without specific error');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Set default retry policy for retryAsync.
|
|
163
|
+
* Example: client.setDefaultRetryPolicy({ retries: 5, delayMs: 800 });
|
|
164
|
+
*/
|
|
165
|
+
setDefaultRetryPolicy(policy = {}) {
|
|
166
|
+
if (typeof policy.retries === 'number') this._defaultRetryPolicy.retries = policy.retries;
|
|
167
|
+
if (typeof policy.delayMs === 'number') this._defaultRetryPolicy.delayMs = policy.delayMs;
|
|
168
|
+
return this._defaultRetryPolicy;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Save session object to a file. Path optional (defaults to ./session.json).
|
|
173
|
+
* Will call this.saveSession() internally.
|
|
174
|
+
*/
|
|
175
|
+
async saveSessionToFile(filePath) {
|
|
176
|
+
const p = filePath || path.resolve(process.cwd(), 'session.json');
|
|
177
|
+
const data = await this.saveSession();
|
|
178
|
+
// Ensure JSON string
|
|
179
|
+
const json = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
|
|
180
|
+
await fs.promises.writeFile(p, json, { mode: 0o600 });
|
|
181
|
+
if (this.state.verbose) console.log('[Session] Saved session to', p);
|
|
182
|
+
return p;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Load session from file path (defaults to ./session.json). Returns true on success.
|
|
187
|
+
*/
|
|
188
|
+
async loadSessionFromFile(filePath) {
|
|
189
|
+
const p = filePath || path.resolve(process.cwd(), 'session.json');
|
|
190
|
+
if (!fs.existsSync(p)) {
|
|
191
|
+
if (this.state.verbose) console.warn('[Session] loadSessionFromFile: file not found', p);
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
const raw = await fs.promises.readFile(p, 'utf8');
|
|
195
|
+
let sessionObj;
|
|
196
|
+
try {
|
|
197
|
+
sessionObj = JSON.parse(raw);
|
|
198
|
+
} catch (e) {
|
|
199
|
+
if (this.state.verbose) console.warn('[Session] loadSessionFromFile: invalid JSON in', p);
|
|
200
|
+
throw e;
|
|
201
|
+
}
|
|
202
|
+
await this.loadSession(sessionObj);
|
|
203
|
+
if (this.state.verbose) console.log('[Session] Loaded session from', p);
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Attempt to load session JSON if exists and valid, else false.
|
|
209
|
+
* Wrapper helper for convenience.
|
|
210
|
+
*/
|
|
211
|
+
async tryLoadSessionFileIfExists(filePath) {
|
|
212
|
+
try {
|
|
213
|
+
const loaded = await this.loadSessionFromFile(filePath);
|
|
214
|
+
if (!loaded) return false;
|
|
215
|
+
return await this.isSessionValid();
|
|
216
|
+
} catch (e) {
|
|
217
|
+
if (this.state.verbose) console.warn('[Session] tryLoadSessionFileIfExists failed:', e && e.message);
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Set verbose mode on/off.
|
|
224
|
+
*/
|
|
225
|
+
setVerbose(flag) {
|
|
226
|
+
this.state.verbose = !!flag;
|
|
227
|
+
return this.state.verbose;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* safeDestroy: a slightly more robust destroy which attempts to stop requests, etc.
|
|
232
|
+
*/
|
|
233
|
+
async safeDestroy() {
|
|
234
|
+
try { if (this.request && this.request.error$ && typeof this.request.error$.complete === 'function') this.request.error$.complete(); } catch (_) {}
|
|
235
|
+
try { if (this.request && this.request.end$ && typeof this.request.end$.complete === 'function') this.request.end$.complete(); } catch (_) {}
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
// keep original destroy for backward compatibility
|
|
239
|
+
try { this.destroy(); } catch (_) {}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
module.exports = IgApiClient;
|