nodejs-insta-private-api-mqt 1.3.84 → 1.3.86
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/dist/dist/constants/constants.d.ts +1 -0
- package/dist/dist/constants/index.d.ts +25 -0
- package/dist/dist/core/client.d.ts +106 -0
- package/dist/dist/core/nav-chain.d.ts +77 -0
- package/dist/dist/core/repository.d.ts +3 -0
- package/dist/dist/core/request.d.ts +76 -0
- package/dist/dist/core/state.d.ts +605 -0
- package/dist/dist/core/utils.d.ts +129 -0
- package/dist/dist/downloadMedia.d.ts +106 -0
- package/{dist-ts → dist}/dist/downloadMedia.js +19 -20
- package/dist/dist/errors/index.d.ts +18 -0
- package/dist/dist/extend.d.ts +20 -0
- package/dist/dist/fbns/fbns.client.d.ts +43 -0
- package/dist/dist/fbns/fbns.client.events.d.ts +0 -0
- package/{dist-ts → dist}/dist/fbns/fbns.client.js +4 -5
- package/dist/dist/fbns/fbns.device-auth.d.ts +9 -0
- package/{src-ts/dist/fbns/fbns.device-auth.ts → dist/dist/fbns/fbns.device-auth.js} +6 -3
- package/dist/dist/fbns/fbns.types.d.ts +0 -0
- package/dist/dist/fbns/fbns.utilities.d.ts +4 -0
- package/dist/dist/fbns/index.d.ts +2 -0
- package/dist/dist/index.d.ts +49 -0
- package/dist/dist/mqtt-shim.d.ts +1 -0
- package/dist/dist/mqttot/index.d.ts +2 -0
- package/dist/dist/mqttot/mqttot.client.d.ts +77 -0
- package/{dist-ts → dist}/dist/mqttot/mqttot.client.js +10 -10
- package/dist/dist/mqttot/mqttot.connect.request.packet.d.ts +1 -0
- package/dist/dist/mqttot/mqttot.connect.response.packet.d.ts +5 -0
- package/dist/dist/mqttot/mqttot.connection.d.ts +6 -0
- package/dist/dist/realtime/commands/commands.d.ts +19 -0
- package/dist/dist/realtime/commands/direct.commands.d.ts +142 -0
- package/dist/dist/realtime/commands/enhanced.direct.commands.d.ts +425 -0
- package/{dist-ts → dist}/dist/realtime/commands/enhanced.direct.commands.js +8 -10
- package/dist/dist/realtime/commands/index.d.ts +2 -0
- package/dist/dist/realtime/delta-sync.manager.d.ts +82 -0
- package/{dist-ts → dist}/dist/realtime/delta-sync.manager.js +7 -10
- package/dist/dist/realtime/features/dm-sender.d.ts +20 -0
- package/{src-ts/dist/realtime/features/dm-sender.ts → dist/dist/realtime/features/dm-sender.js} +6 -3
- package/dist/dist/realtime/features/error-handler.d.ts +33 -0
- package/{dist-ts → dist}/dist/realtime/features/error-handler.js +4 -4
- package/dist/dist/realtime/features/gap-handler.d.ts +19 -0
- package/dist/dist/realtime/features/persistent-logger.d.ts +28 -0
- package/{dist-ts → dist}/dist/realtime/features/persistent-logger.js +3 -3
- package/dist/dist/realtime/features/presence.manager.d.ts +24 -0
- package/{src-ts/dist/realtime/features/presence.manager.ts → dist/dist/realtime/features/presence.manager.js} +2 -1
- package/dist/dist/realtime/features/session-health-monitor.d.ts +93 -0
- package/{src-ts/dist/realtime/features/session-health-monitor.ts → dist/dist/realtime/features/session-health-monitor.js} +45 -65
- package/dist/dist/realtime/index.d.ts +9 -0
- package/dist/dist/realtime/messages/app-presence.event.d.ts +0 -0
- package/dist/dist/realtime/messages/index.d.ts +2 -0
- package/dist/dist/realtime/messages/message-sync.message.d.ts +1 -0
- package/dist/dist/realtime/messages/realtime-sub.direct.data.d.ts +0 -0
- package/dist/dist/realtime/messages/thread-update.message.d.ts +0 -0
- package/dist/dist/realtime/mixins/index.d.ts +2 -0
- package/dist/dist/realtime/mixins/message-sync.mixin.d.ts +38 -0
- package/{dist-ts → dist}/dist/realtime/mixins/message-sync.mixin.js +16 -18
- package/dist/dist/realtime/mixins/mixin.d.ts +4 -0
- package/dist/dist/realtime/mixins/presence-typing.mixin.d.ts +9 -0
- package/dist/dist/realtime/mixins/realtime-sub.mixin.d.ts +37 -0
- package/{dist-ts → dist}/dist/realtime/mixins/realtime-sub.mixin.js +4 -5
- package/dist/dist/realtime/parsers/graphql-parser.d.ts +18 -0
- package/dist/dist/realtime/parsers/graphql.parser.d.ts +10 -0
- package/{src-ts/dist/realtime/parsers/graphql.parser.ts → dist/dist/realtime/parsers/graphql.parser.js} +0 -1
- package/dist/dist/realtime/parsers/index.d.ts +2 -0
- package/dist/dist/realtime/parsers/iris-parser.d.ts +18 -0
- package/dist/dist/realtime/parsers/iris.parser.d.ts +3 -0
- package/dist/dist/realtime/parsers/json-parser.d.ts +18 -0
- package/dist/dist/realtime/parsers/json.parser.d.ts +6 -0
- package/dist/dist/realtime/parsers/parser.d.ts +0 -0
- package/dist/dist/realtime/parsers/region-hint-parser.d.ts +18 -0
- package/dist/dist/realtime/parsers/region-hint.parser.d.ts +4 -0
- package/dist/dist/realtime/parsers/skywalker-parser.d.ts +18 -0
- package/dist/dist/realtime/parsers/skywalker.parser.d.ts +7 -0
- package/dist/dist/realtime/parsers-advanced.d.ts +93 -0
- package/{dist-ts → dist}/dist/realtime/parsers-advanced.js +5 -8
- package/dist/dist/realtime/proto-parser.d.ts +27 -0
- package/{dist-ts → dist}/dist/realtime/proto-parser.js +1 -2
- package/dist/dist/realtime/protocols/iris.handshake.d.ts +41 -0
- package/dist/dist/realtime/protocols/proto-definitions.d.ts +0 -0
- package/dist/dist/realtime/protocols/skywalker.protocol.d.ts +20 -0
- package/{src-ts/dist/realtime/protocols/skywalker.protocol.ts → dist/dist/realtime/protocols/skywalker.protocol.js} +8 -5
- package/dist/dist/realtime/realtime.client.d.ts +169 -0
- package/dist/dist/realtime/realtime.client.events.d.ts +0 -0
- package/{dist-ts → dist}/dist/realtime/realtime.client.js +75 -86
- package/dist/dist/realtime/realtime.service.d.ts +109 -0
- package/dist/dist/realtime/reconnect.manager.d.ts +15 -0
- package/dist/dist/realtime/session.manager.d.ts +25 -0
- package/dist/dist/realtime/subscriptions/graphql.subscription.d.ts +4 -0
- package/dist/dist/realtime/subscriptions/index.d.ts +2 -0
- package/dist/dist/realtime/subscriptions/skywalker.subscription.d.ts +4 -0
- package/dist/dist/realtime/topic-map.d.ts +97 -0
- package/dist/dist/realtime/topic.d.ts +71 -0
- package/dist/dist/repositories/account.repository.d.ts +72 -0
- package/{dist-ts → dist}/dist/repositories/account.repository.js +4 -6
- package/dist/dist/repositories/bloks.repository.d.ts +6 -0
- package/dist/dist/repositories/captcha.repository.d.ts +6 -0
- package/dist/dist/repositories/challenge.repository.d.ts +12 -0
- package/{dist-ts → dist}/dist/repositories/challenge.repository.js +1 -2
- package/dist/dist/repositories/clip.repository.d.ts +10 -0
- package/dist/dist/repositories/close-friends.repository.d.ts +8 -0
- package/dist/dist/repositories/collection.repository.d.ts +8 -0
- package/dist/dist/repositories/direct-thread.repository.d.ts +88 -0
- package/{dist-ts → dist}/dist/repositories/direct-thread.repository.js +7 -9
- package/dist/dist/repositories/direct.repository.d.ts +22 -0
- package/{dist-ts → dist}/dist/repositories/direct.repository.js +4 -5
- package/dist/dist/repositories/explore.repository.d.ts +7 -0
- package/dist/dist/repositories/fbsearch.repository.d.ts +14 -0
- package/dist/dist/repositories/feed.repository.d.ts +19 -0
- package/dist/dist/repositories/friendship.repository.d.ts +26 -0
- package/dist/dist/repositories/fundraiser.repository.d.ts +6 -0
- package/dist/dist/repositories/hashtag.repository.d.ts +11 -0
- package/dist/dist/repositories/highlights.repository.d.ts +11 -0
- package/dist/dist/repositories/insights.repository.d.ts +8 -0
- package/dist/dist/repositories/location.repository.d.ts +9 -0
- package/dist/dist/repositories/media.repository.d.ts +41 -0
- package/{dist-ts → dist}/dist/repositories/media.repository.js +1 -2
- package/dist/dist/repositories/multiple-accounts.repository.d.ts +7 -0
- package/dist/dist/repositories/news.repository.d.ts +6 -0
- package/dist/dist/repositories/note.repository.d.ts +8 -0
- package/dist/dist/repositories/notification.repository.d.ts +33 -0
- package/{dist-ts → dist}/dist/repositories/notification.repository.js +1 -1
- package/dist/dist/repositories/share.repository.d.ts +12 -0
- package/dist/dist/repositories/signup.repository.d.ts +19 -0
- package/dist/dist/repositories/story.repository.d.ts +23 -0
- package/{dist-ts → dist}/dist/repositories/story.repository.js +1 -2
- package/dist/dist/repositories/timeline.repository.d.ts +7 -0
- package/dist/dist/repositories/totp.repository.d.ts +14 -0
- package/dist/dist/repositories/track.repository.d.ts +7 -0
- package/{dist-ts → dist}/dist/repositories/track.repository.js +1 -2
- package/dist/dist/repositories/upload.repository.d.ts +30 -0
- package/{dist-ts → dist}/dist/repositories/upload.repository.js +4 -5
- package/dist/dist/repositories/user.repository.d.ts +52 -0
- package/dist/dist/sendmedia/index.d.ts +12 -0
- package/dist/dist/sendmedia/sendFile.d.ts +8 -0
- package/dist/dist/sendmedia/sendPhoto.d.ts +26 -0
- package/dist/dist/sendmedia/sendRavenPhoto.d.ts +14 -0
- package/{dist-ts → dist}/dist/sendmedia/sendRavenPhoto.js +4 -5
- package/dist/dist/sendmedia/sendRavenVideo.d.ts +15 -0
- package/{dist-ts → dist}/dist/sendmedia/sendRavenVideo.js +4 -5
- package/dist/dist/sendmedia/uploadPhoto.d.ts +8 -0
- package/dist/dist/sendmedia/uploadfFile.d.ts +13 -0
- package/{dist-ts → dist}/dist/sendmedia/uploadfFile.js +3 -4
- package/dist/dist/services/live.service.d.ts +13 -0
- package/dist/dist/services/search.service.d.ts +11 -0
- package/dist/dist/shared/index.d.ts +4 -0
- package/{src-ts/dist/shared/index.ts → dist/dist/shared/index.js} +14 -13
- package/dist/dist/shared/shared.d.ts +15 -0
- package/dist/dist/thrift/index.d.ts +2 -0
- package/dist/dist/thrift/thrift.d.ts +11 -0
- package/dist/dist/thrift/thrift.reading.d.ts +49 -0
- package/{dist-ts → dist}/dist/thrift/thrift.reading.js +3 -5
- package/dist/dist/thrift/thrift.writing.d.ts +49 -0
- package/{dist-ts → dist}/dist/thrift/thrift.writing.js +2 -4
- package/dist/dist/types/index.d.ts +28 -0
- package/dist/dist/useMultiFileAuthState.d.ts +267 -0
- package/{dist-ts → dist}/dist/useMultiFileAuthState.js +47 -61
- package/dist/dist/utils/helper-1.d.ts +0 -0
- package/dist/dist/utils/helper-10.d.ts +0 -0
- package/dist/dist/utils/helper-11.d.ts +0 -0
- package/dist/dist/utils/helper-12.d.ts +0 -0
- package/dist/dist/utils/helper-13.d.ts +0 -0
- package/dist/dist/utils/helper-14.d.ts +0 -0
- package/dist/dist/utils/helper-15.d.ts +0 -0
- package/dist/dist/utils/helper-16.d.ts +0 -0
- package/dist/dist/utils/helper-17.d.ts +0 -0
- package/dist/dist/utils/helper-18.d.ts +0 -0
- package/dist/dist/utils/helper-19.d.ts +0 -0
- package/dist/dist/utils/helper-2.d.ts +0 -0
- package/dist/dist/utils/helper-20.d.ts +0 -0
- package/dist/dist/utils/helper-21.d.ts +0 -0
- package/dist/dist/utils/helper-22.d.ts +0 -0
- package/dist/dist/utils/helper-23.d.ts +0 -0
- package/dist/dist/utils/helper-24.d.ts +0 -0
- package/dist/dist/utils/helper-25.d.ts +0 -0
- package/dist/dist/utils/helper-26.d.ts +0 -0
- package/dist/dist/utils/helper-27.d.ts +0 -0
- package/dist/dist/utils/helper-28.d.ts +0 -0
- package/dist/dist/utils/helper-29.d.ts +0 -0
- package/dist/dist/utils/helper-3.d.ts +0 -0
- package/dist/dist/utils/helper-30.d.ts +0 -0
- package/dist/dist/utils/helper-4.d.ts +0 -0
- package/dist/dist/utils/helper-5.d.ts +0 -0
- package/dist/dist/utils/helper-6.d.ts +0 -0
- package/dist/dist/utils/helper-7.d.ts +0 -0
- package/dist/dist/utils/helper-8.d.ts +0 -0
- package/dist/dist/utils/helper-9.d.ts +0 -0
- package/dist/dist/utils/index.d.ts +56 -0
- package/{dist-ts → dist}/dist/utils/index.js +1 -2
- package/dist/dist/utils/insta-mqtt-helper.d.ts +30 -0
- package/dist/examples/listen-to-messages.d.ts +4 -0
- package/{dist-ts → dist}/examples/listen-to-messages.js +1 -2
- package/package.json +41 -38
- package/dist-ts/dist/fbns/fbns.device-auth.js +0 -59
- package/dist-ts/dist/realtime/features/dm-sender.js +0 -94
- package/dist-ts/dist/realtime/features/presence.manager.js +0 -68
- package/dist-ts/dist/realtime/features/session-health-monitor.js +0 -327
- package/dist-ts/dist/realtime/parsers/graphql.parser.js +0 -22
- package/dist-ts/dist/realtime/protocols/skywalker.protocol.js +0 -96
- package/dist-ts/dist/shared/index.js +0 -98
- package/examples/listen-to-messages.js +0 -86
- package/src-ts/dist/constants/constants.ts +0 -342
- package/src-ts/dist/constants/index.ts +0 -58
- package/src-ts/dist/core/client.ts +0 -419
- package/src-ts/dist/core/nav-chain.ts +0 -282
- package/src-ts/dist/core/repository.ts +0 -7
- package/src-ts/dist/core/request.ts +0 -395
- package/src-ts/dist/core/state.ts +0 -1484
- package/src-ts/dist/core/utils.ts +0 -786
- package/src-ts/dist/downloadMedia.ts +0 -381
- package/src-ts/dist/errors/index.ts +0 -38
- package/src-ts/dist/extend.ts +0 -167
- package/src-ts/dist/fbns/fbns.client.events.ts +0 -3
- package/src-ts/dist/fbns/fbns.client.ts +0 -252
- package/src-ts/dist/fbns/fbns.types.ts +0 -3
- package/src-ts/dist/fbns/fbns.utilities.ts +0 -79
- package/src-ts/dist/fbns/index.ts +0 -21
- package/src-ts/dist/index.ts +0 -139
- package/src-ts/dist/mqtt-shim.ts +0 -15
- package/src-ts/dist/mqttot/index.ts +0 -21
- package/src-ts/dist/mqttot/mqttot.client.ts +0 -318
- package/src-ts/dist/mqttot/mqttot.connect.request.packet.ts +0 -9
- package/src-ts/dist/mqttot/mqttot.connect.response.packet.ts +0 -24
- package/src-ts/dist/mqttot/mqttot.connection.ts +0 -77
- package/src-ts/dist/realtime/commands/commands.ts +0 -71
- package/src-ts/dist/realtime/commands/direct.commands.ts +0 -417
- package/src-ts/dist/realtime/commands/enhanced.direct.commands.ts +0 -1731
- package/src-ts/dist/realtime/commands/index.ts +0 -20
- package/src-ts/dist/realtime/delta-sync.manager.ts +0 -293
- package/src-ts/dist/realtime/features/error-handler.ts +0 -185
- package/src-ts/dist/realtime/features/gap-handler.ts +0 -61
- package/src-ts/dist/realtime/features/persistent-logger.ts +0 -186
- package/src-ts/dist/realtime/index.ts +0 -30
- package/src-ts/dist/realtime/messages/app-presence.event.ts +0 -3
- package/src-ts/dist/realtime/messages/index.ts +0 -20
- package/src-ts/dist/realtime/messages/message-sync.message.ts +0 -43
- package/src-ts/dist/realtime/messages/realtime-sub.direct.data.ts +0 -3
- package/src-ts/dist/realtime/messages/thread-update.message.ts +0 -3
- package/src-ts/dist/realtime/mixins/index.ts +0 -20
- package/src-ts/dist/realtime/mixins/message-sync.mixin.ts +0 -596
- package/src-ts/dist/realtime/mixins/mixin.ts +0 -41
- package/src-ts/dist/realtime/mixins/presence-typing.mixin.ts +0 -33
- package/src-ts/dist/realtime/mixins/realtime-sub.mixin.ts +0 -181
- package/src-ts/dist/realtime/parsers/graphql-parser.ts +0 -43
- package/src-ts/dist/realtime/parsers/index.ts +0 -23
- package/src-ts/dist/realtime/parsers/iris-parser.ts +0 -43
- package/src-ts/dist/realtime/parsers/iris.parser.ts +0 -10
- package/src-ts/dist/realtime/parsers/json-parser.ts +0 -43
- package/src-ts/dist/realtime/parsers/json.parser.ts +0 -10
- package/src-ts/dist/realtime/parsers/parser.ts +0 -3
- package/src-ts/dist/realtime/parsers/region-hint-parser.ts +0 -43
- package/src-ts/dist/realtime/parsers/region-hint.parser.ts +0 -15
- package/src-ts/dist/realtime/parsers/skywalker-parser.ts +0 -43
- package/src-ts/dist/realtime/parsers/skywalker.parser.ts +0 -15
- package/src-ts/dist/realtime/parsers-advanced.ts +0 -158
- package/src-ts/dist/realtime/proto-parser.ts +0 -195
- package/src-ts/dist/realtime/protocols/iris.handshake.ts +0 -74
- package/src-ts/dist/realtime/protocols/proto-definitions.ts +0 -80
- package/src-ts/dist/realtime/realtime.client.events.ts +0 -3
- package/src-ts/dist/realtime/realtime.client.ts +0 -1996
- package/src-ts/dist/realtime/realtime.service.ts +0 -462
- package/src-ts/dist/realtime/reconnect.manager.ts +0 -88
- package/src-ts/dist/realtime/session.manager.ts +0 -121
- package/src-ts/dist/realtime/subscriptions/graphql.subscription.ts +0 -99
- package/src-ts/dist/realtime/subscriptions/index.ts +0 -19
- package/src-ts/dist/realtime/subscriptions/skywalker.subscription.ts +0 -13
- package/src-ts/dist/realtime/topic-map.ts +0 -71
- package/src-ts/dist/realtime/topic.ts +0 -80
- package/src-ts/dist/repositories/account.repository.ts +0 -1384
- package/src-ts/dist/repositories/bloks.repository.ts +0 -70
- package/src-ts/dist/repositories/captcha.repository.ts +0 -44
- package/src-ts/dist/repositories/challenge.repository.ts +0 -120
- package/src-ts/dist/repositories/clip.repository.ts +0 -165
- package/src-ts/dist/repositories/close-friends.repository.ts +0 -46
- package/src-ts/dist/repositories/collection.repository.ts +0 -68
- package/src-ts/dist/repositories/direct-thread.repository.ts +0 -446
- package/src-ts/dist/repositories/direct.repository.ts +0 -266
- package/src-ts/dist/repositories/explore.repository.ts +0 -70
- package/src-ts/dist/repositories/fbsearch.repository.ts +0 -140
- package/src-ts/dist/repositories/feed.repository.ts +0 -245
- package/src-ts/dist/repositories/friendship.repository.ts +0 -296
- package/src-ts/dist/repositories/fundraiser.repository.ts +0 -49
- package/src-ts/dist/repositories/hashtag.repository.ts +0 -99
- package/src-ts/dist/repositories/highlights.repository.ts +0 -121
- package/src-ts/dist/repositories/insights.repository.ts +0 -82
- package/src-ts/dist/repositories/location.repository.ts +0 -84
- package/src-ts/dist/repositories/media.repository.ts +0 -395
- package/src-ts/dist/repositories/multiple-accounts.repository.ts +0 -41
- package/src-ts/dist/repositories/news.repository.ts +0 -35
- package/src-ts/dist/repositories/note.repository.ts +0 -57
- package/src-ts/dist/repositories/notification.repository.ts +0 -79
- package/src-ts/dist/repositories/share.repository.ts +0 -35
- package/src-ts/dist/repositories/signup.repository.ts +0 -218
- package/src-ts/dist/repositories/story.repository.ts +0 -290
- package/src-ts/dist/repositories/timeline.repository.ts +0 -60
- package/src-ts/dist/repositories/totp.repository.ts +0 -139
- package/src-ts/dist/repositories/track.repository.ts +0 -53
- package/src-ts/dist/repositories/upload.repository.ts +0 -204
- package/src-ts/dist/repositories/user.repository.ts +0 -360
- package/src-ts/dist/sendmedia/index.ts +0 -27
- package/src-ts/dist/sendmedia/sendFile.ts +0 -72
- package/src-ts/dist/sendmedia/sendPhoto.ts +0 -142
- package/src-ts/dist/sendmedia/sendRavenPhoto.ts +0 -153
- package/src-ts/dist/sendmedia/sendRavenVideo.ts +0 -158
- package/src-ts/dist/sendmedia/uploadPhoto.ts +0 -107
- package/src-ts/dist/sendmedia/uploadfFile.ts +0 -130
- package/src-ts/dist/services/live.service.ts +0 -139
- package/src-ts/dist/services/search.service.ts +0 -115
- package/src-ts/dist/shared/shared.ts +0 -86
- package/src-ts/dist/thrift/index.ts +0 -20
- package/src-ts/dist/thrift/thrift.reading.ts +0 -368
- package/src-ts/dist/thrift/thrift.ts +0 -111
- package/src-ts/dist/thrift/thrift.writing.ts +0 -396
- package/src-ts/dist/types/index.ts +0 -285
- package/src-ts/dist/useMultiFileAuthState.ts +0 -1800
- package/src-ts/dist/utils/helper-1.ts +0 -1
- package/src-ts/dist/utils/helper-10.ts +0 -1
- package/src-ts/dist/utils/helper-11.ts +0 -1
- package/src-ts/dist/utils/helper-12.ts +0 -1
- package/src-ts/dist/utils/helper-13.ts +0 -1
- package/src-ts/dist/utils/helper-14.ts +0 -1
- package/src-ts/dist/utils/helper-15.ts +0 -1
- package/src-ts/dist/utils/helper-16.ts +0 -1
- package/src-ts/dist/utils/helper-17.ts +0 -1
- package/src-ts/dist/utils/helper-18.ts +0 -1
- package/src-ts/dist/utils/helper-19.ts +0 -1
- package/src-ts/dist/utils/helper-2.ts +0 -1
- package/src-ts/dist/utils/helper-20.ts +0 -1
- package/src-ts/dist/utils/helper-21.ts +0 -1
- package/src-ts/dist/utils/helper-22.ts +0 -1
- package/src-ts/dist/utils/helper-23.ts +0 -1
- package/src-ts/dist/utils/helper-24.ts +0 -1
- package/src-ts/dist/utils/helper-25.ts +0 -1
- package/src-ts/dist/utils/helper-26.ts +0 -1
- package/src-ts/dist/utils/helper-27.ts +0 -1
- package/src-ts/dist/utils/helper-28.ts +0 -1
- package/src-ts/dist/utils/helper-29.ts +0 -1
- package/src-ts/dist/utils/helper-3.ts +0 -1
- package/src-ts/dist/utils/helper-30.ts +0 -1
- package/src-ts/dist/utils/helper-4.ts +0 -1
- package/src-ts/dist/utils/helper-5.ts +0 -1
- package/src-ts/dist/utils/helper-6.ts +0 -1
- package/src-ts/dist/utils/helper-7.ts +0 -1
- package/src-ts/dist/utils/helper-8.ts +0 -1
- package/src-ts/dist/utils/helper-9.ts +0 -1
- package/src-ts/dist/utils/index.ts +0 -280
- package/src-ts/dist/utils/insta-mqtt-helper.ts +0 -128
- package/src-ts/examples/listen-to-messages.ts +0 -86
- /package/{dist-ts → dist}/dist/constants/constants.js +0 -0
- /package/{dist-ts → dist}/dist/constants/index.js +0 -0
- /package/{dist-ts → dist}/dist/core/client.js +0 -0
- /package/{dist-ts → dist}/dist/core/nav-chain.js +0 -0
- /package/{dist-ts → dist}/dist/core/repository.js +0 -0
- /package/{dist-ts → dist}/dist/core/request.js +0 -0
- /package/{dist-ts → dist}/dist/core/state.js +0 -0
- /package/{dist-ts → dist}/dist/core/utils.js +0 -0
- /package/{dist-ts → dist}/dist/errors/index.js +0 -0
- /package/{dist-ts → dist}/dist/extend.js +0 -0
- /package/{dist-ts → dist}/dist/fbns/fbns.client.events.js +0 -0
- /package/{dist-ts → dist}/dist/fbns/fbns.types.js +0 -0
- /package/{dist-ts → dist}/dist/fbns/fbns.utilities.js +0 -0
- /package/{dist-ts → dist}/dist/fbns/index.js +0 -0
- /package/{dist-ts → dist}/dist/index.js +0 -0
- /package/{dist-ts → dist}/dist/mqtt-shim.js +0 -0
- /package/{dist-ts → dist}/dist/mqttot/index.js +0 -0
- /package/{dist-ts → dist}/dist/mqttot/mqttot.connect.request.packet.js +0 -0
- /package/{dist-ts → dist}/dist/mqttot/mqttot.connect.response.packet.js +0 -0
- /package/{dist-ts → dist}/dist/mqttot/mqttot.connection.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/commands/commands.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/commands/direct.commands.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/commands/index.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/features/gap-handler.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/index.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/messages/app-presence.event.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/messages/index.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/messages/message-sync.message.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/messages/realtime-sub.direct.data.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/messages/thread-update.message.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/mixins/index.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/mixins/mixin.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/mixins/presence-typing.mixin.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/graphql-parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/index.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/iris-parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/iris.parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/json-parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/json.parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/region-hint-parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/region-hint.parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/skywalker-parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/parsers/skywalker.parser.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/protocols/iris.handshake.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/protocols/proto-definitions.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/realtime.client.events.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/realtime.service.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/reconnect.manager.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/session.manager.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/subscriptions/graphql.subscription.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/subscriptions/index.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/subscriptions/skywalker.subscription.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/topic-map.js +0 -0
- /package/{dist-ts → dist}/dist/realtime/topic.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/bloks.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/captcha.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/clip.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/close-friends.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/collection.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/explore.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/fbsearch.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/feed.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/friendship.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/fundraiser.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/hashtag.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/highlights.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/insights.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/location.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/multiple-accounts.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/news.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/note.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/share.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/signup.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/timeline.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/totp.repository.js +0 -0
- /package/{dist-ts → dist}/dist/repositories/user.repository.js +0 -0
- /package/{dist-ts → dist}/dist/sendmedia/index.js +0 -0
- /package/{dist-ts → dist}/dist/sendmedia/sendFile.js +0 -0
- /package/{dist-ts → dist}/dist/sendmedia/sendPhoto.js +0 -0
- /package/{dist-ts → dist}/dist/sendmedia/uploadPhoto.js +0 -0
- /package/{dist-ts → dist}/dist/services/live.service.js +0 -0
- /package/{dist-ts → dist}/dist/services/search.service.js +0 -0
- /package/{dist-ts → dist}/dist/shared/shared.js +0 -0
- /package/{dist-ts → dist}/dist/thrift/index.js +0 -0
- /package/{dist-ts → dist}/dist/thrift/thrift.js +0 -0
- /package/{dist-ts → dist}/dist/types/index.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-1.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-10.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-11.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-12.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-13.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-14.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-15.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-16.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-17.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-18.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-19.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-2.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-20.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-21.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-22.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-23.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-24.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-25.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-26.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-27.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-28.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-29.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-3.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-30.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-4.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-5.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-6.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-7.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-8.js +0 -0
- /package/{dist-ts → dist}/dist/utils/helper-9.js +0 -0
- /package/{dist-ts → dist}/dist/utils/insta-mqtt-helper.js +0 -0
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
const APP_VERSION = '415.0.0.36.76';
|
|
2
|
-
const APP_VERSION_CODE = '580610226';
|
|
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 USER_AGENT_BASE = 'Instagram {app_version} Android ({android_version}/{android_release}; {dpi}; {resolution}; {manufacturer}; {model}; {device}; {cpu}; {locale}; {version_code})';
|
|
9
|
-
const API_DOMAIN = 'i.instagram.com';
|
|
10
|
-
const SOFTWARE_TEMPLATE = '{model}-user+{android_release}+OPR1.170623.032+V10.2.3.0.OAGMIXM+release-keys';
|
|
11
|
-
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';
|
|
12
|
-
|
|
13
|
-
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';
|
|
14
|
-
|
|
15
|
-
const FACEBOOK_ANALYTICS_APPLICATION_ID = '567067343352427';
|
|
16
|
-
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';
|
|
17
|
-
const FACEBOOK_ORCA_APPLICATION_ID = '124024574287414';
|
|
18
|
-
const BLOKS_VERSION_ID = 'ce555e5500576acd8e84a66018f54a05720f2dce29f0bb5a1f97f0c10d6fac48';
|
|
19
|
-
|
|
20
|
-
const SUPPORTED_CAPABILITIES = [
|
|
21
|
-
{
|
|
22
|
-
value: '119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0',
|
|
23
|
-
name: 'SUPPORTED_SDK_VERSIONS',
|
|
24
|
-
},
|
|
25
|
-
{ value: '14', name: 'FACE_TRACKER_VERSION' },
|
|
26
|
-
{ value: 'ETC2_COMPRESSION', name: 'COMPRESSION' },
|
|
27
|
-
{ value: 'gyroscope_enabled', name: 'gyroscope' },
|
|
28
|
-
];
|
|
29
|
-
const HOSTNAME = 'i.instagram.com';
|
|
30
|
-
const WEB_HOSTNAME = 'www.instagram.com';
|
|
31
|
-
const HOST = `https://${HOSTNAME}/`;
|
|
32
|
-
const WEBHOST = `https://${WEB_HOSTNAME}/`;
|
|
33
|
-
|
|
34
|
-
// Import MQTT constants from constants.js
|
|
35
|
-
const mqttConstants = require('./constants');
|
|
36
|
-
|
|
37
|
-
module.exports = {
|
|
38
|
-
APP_VERSION,
|
|
39
|
-
APP_VERSION_CODE,
|
|
40
|
-
SIGNATURE_KEY,
|
|
41
|
-
BREADCRUMB_KEY,
|
|
42
|
-
SIGNATURE_VERSION,
|
|
43
|
-
USER_AGENT_BASE,
|
|
44
|
-
API_DOMAIN,
|
|
45
|
-
SOFTWARE_TEMPLATE,
|
|
46
|
-
EXPERIMENTS,
|
|
47
|
-
LOGIN_EXPERIMENTS,
|
|
48
|
-
FACEBOOK_ANALYTICS_APPLICATION_ID,
|
|
49
|
-
FACEBOOK_OTA_FIELDS,
|
|
50
|
-
FACEBOOK_ORCA_APPLICATION_ID,
|
|
51
|
-
BLOKS_VERSION_ID,
|
|
52
|
-
SUPPORTED_CAPABILITIES,
|
|
53
|
-
HOSTNAME,
|
|
54
|
-
WEB_HOSTNAME,
|
|
55
|
-
HOST,
|
|
56
|
-
WEBHOST,
|
|
57
|
-
...mqttConstants
|
|
58
|
-
};
|
|
@@ -1,419 +0,0 @@
|
|
|
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 NewsRepository = require('../repositories/news.repository');
|
|
19
|
-
const CollectionRepository = require('../repositories/collection.repository');
|
|
20
|
-
const CloseFriendsRepository = require('../repositories/close-friends.repository');
|
|
21
|
-
const ClipRepository = require('../repositories/clip.repository');
|
|
22
|
-
const TimelineRepository = require('../repositories/timeline.repository');
|
|
23
|
-
const InsightsRepository = require('../repositories/insights.repository');
|
|
24
|
-
const NoteRepository = require('../repositories/note.repository');
|
|
25
|
-
const NotificationRepository = require('../repositories/notification.repository');
|
|
26
|
-
const SignupRepository = require('../repositories/signup.repository');
|
|
27
|
-
const TOTPRepository = require('../repositories/totp.repository');
|
|
28
|
-
const BloksRepository = require('../repositories/bloks.repository');
|
|
29
|
-
const ChallengeRepository = require('../repositories/challenge.repository');
|
|
30
|
-
const ShareRepository = require('../repositories/share.repository');
|
|
31
|
-
const TrackRepository = require('../repositories/track.repository');
|
|
32
|
-
const ExploreRepository = require('../repositories/explore.repository');
|
|
33
|
-
const FBSearchRepository = require('../repositories/fbsearch.repository');
|
|
34
|
-
const FundraiserRepository = require('../repositories/fundraiser.repository');
|
|
35
|
-
const MultipleAccountsRepository = require('../repositories/multiple-accounts.repository');
|
|
36
|
-
const CaptchaRepository = require('../repositories/captcha.repository');
|
|
37
|
-
const HighlightsRepository = require('../repositories/highlights.repository');
|
|
38
|
-
const SearchService = require('../services/search.service');
|
|
39
|
-
const LiveService = require('../services/live.service');
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* IgApiClient
|
|
43
|
-
*
|
|
44
|
-
* - Păstrăm în totalitate funcționalitatea existentă (login/logout/isLoggedIn/saveSession/loadSession/isSessionValid/destroy)
|
|
45
|
-
* - Am eliminat complet stratul Realtime (WebSocket). Orice cod dependent de realtime trebuie migrat separat.
|
|
46
|
-
* - Am adăugat un helper generic `retryAsync(fn, opts)` pentru retry/backoff la operații asincrone (utile pentru request-uri).
|
|
47
|
-
*/
|
|
48
|
-
class IgApiClient extends EventEmitter {
|
|
49
|
-
constructor() {
|
|
50
|
-
super();
|
|
51
|
-
|
|
52
|
-
this.state = new State();
|
|
53
|
-
this.request = new Request(this);
|
|
54
|
-
this.navChain = this.request.navChain;
|
|
55
|
-
|
|
56
|
-
// Initialize repositories
|
|
57
|
-
this.account = new AccountRepository(this);
|
|
58
|
-
this.user = new UserRepository(this);
|
|
59
|
-
this.direct = new DirectRepository(this);
|
|
60
|
-
this.directThread = new DirectThreadRepository(this);
|
|
61
|
-
this.media = new MediaRepository(this);
|
|
62
|
-
this.upload = new UploadRepository(this);
|
|
63
|
-
this.story = new StoryRepository(this);
|
|
64
|
-
this.feed = new FeedRepository(this);
|
|
65
|
-
this.friendship = new FriendshipRepository(this);
|
|
66
|
-
this.location = new LocationRepository(this);
|
|
67
|
-
this.hashtag = new HashtagRepository(this);
|
|
68
|
-
this.news = new NewsRepository(this);
|
|
69
|
-
this.collection = new CollectionRepository(this);
|
|
70
|
-
this.closeFriends = new CloseFriendsRepository(this);
|
|
71
|
-
this.clip = new ClipRepository(this);
|
|
72
|
-
this.timeline = new TimelineRepository(this);
|
|
73
|
-
this.insights = new InsightsRepository(this);
|
|
74
|
-
this.note = new NoteRepository(this);
|
|
75
|
-
this.notification = new NotificationRepository(this);
|
|
76
|
-
this.signup = new SignupRepository(this);
|
|
77
|
-
this.totp = new TOTPRepository(this);
|
|
78
|
-
this.bloks = new BloksRepository(this);
|
|
79
|
-
this.challenge = new ChallengeRepository(this);
|
|
80
|
-
this.share = new ShareRepository(this);
|
|
81
|
-
this.track = new TrackRepository(this);
|
|
82
|
-
this.explore = new ExploreRepository(this);
|
|
83
|
-
this.fbsearch = new FBSearchRepository(this);
|
|
84
|
-
this.fundraiser = new FundraiserRepository(this);
|
|
85
|
-
this.multipleAccounts = new MultipleAccountsRepository(this);
|
|
86
|
-
this.captcha = new CaptchaRepository(this);
|
|
87
|
-
this.highlights = new HighlightsRepository(this);
|
|
88
|
-
|
|
89
|
-
// Initialize services
|
|
90
|
-
this.search = new SearchService(this);
|
|
91
|
-
this.live = new LiveService(this);
|
|
92
|
-
|
|
93
|
-
// Create dm object for easier access (keeps backward compatibility)
|
|
94
|
-
this.dm = {
|
|
95
|
-
send: this.direct.send.bind(this.direct),
|
|
96
|
-
sendToGroup: this.directThread.sendToGroup.bind(this.directThread),
|
|
97
|
-
sendImage: this.direct.sendImage.bind(this.direct),
|
|
98
|
-
sendVideo: this.direct.sendVideo.bind(this.direct),
|
|
99
|
-
getInbox: this.direct.getInbox.bind(this.direct),
|
|
100
|
-
getThread: this.directThread.getThread.bind(this.directThread)
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
// Proxy debug / verbose
|
|
104
|
-
this.state.verbose = this.state.verbose || false;
|
|
105
|
-
|
|
106
|
-
// Default retry policy for the new helper retryAsync
|
|
107
|
-
this._defaultRetryPolicy = { retries: 3, delayMs: 500 };
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Login -> uses account.login. Returns whatever account.login returns.
|
|
113
|
-
* NOTE: removed automatic realtime connection attempt.
|
|
114
|
-
*/
|
|
115
|
-
async login(credentials) {
|
|
116
|
-
this.navChain.simulateAppOpen();
|
|
117
|
-
if (this.state.deviceId) {
|
|
118
|
-
try {
|
|
119
|
-
await this.preLoginFlow();
|
|
120
|
-
} catch (e) {
|
|
121
|
-
if (this.state.verbose) console.warn('[Pre-Login] Flow error (non-fatal):', e.message);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
const result = await this.account.login(credentials);
|
|
125
|
-
try {
|
|
126
|
-
await this.postLoginFlow();
|
|
127
|
-
} catch (e) {
|
|
128
|
-
if (this.state.verbose) console.warn('[Post-Login] Flow error (non-fatal):', e.message);
|
|
129
|
-
}
|
|
130
|
-
return result;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Additional Android-specific behavior simulation
|
|
135
|
-
*/
|
|
136
|
-
async simulateAndroidBehavior() {
|
|
137
|
-
if (this.state.verbose) console.log('[Anti-Bot] Simulating Android-specific background behaviors...');
|
|
138
|
-
|
|
139
|
-
// 0. Pre-login notification suppression / Trust signal
|
|
140
|
-
try {
|
|
141
|
-
await this.request.send({
|
|
142
|
-
url: '/api/v1/accounts/get_presence_disabled/',
|
|
143
|
-
method: 'GET',
|
|
144
|
-
});
|
|
145
|
-
} catch (e) {}
|
|
146
|
-
|
|
147
|
-
// 1. Fetch Contact Permission (often requested on start/login)
|
|
148
|
-
try {
|
|
149
|
-
await this.request.send({
|
|
150
|
-
url: '/api/v1/accounts/contact_point_pref/',
|
|
151
|
-
method: 'GET',
|
|
152
|
-
});
|
|
153
|
-
} catch (e) {}
|
|
154
|
-
|
|
155
|
-
// 2. Fetch Zero Rating (Mobile data settings)
|
|
156
|
-
try {
|
|
157
|
-
await this.request.send({
|
|
158
|
-
url: '/api/v1/zero/get_headers/',
|
|
159
|
-
method: 'GET',
|
|
160
|
-
});
|
|
161
|
-
} catch (e) {}
|
|
162
|
-
|
|
163
|
-
// 3. Fetch Banyan (Explore/Search context)
|
|
164
|
-
try {
|
|
165
|
-
await this.request.send({
|
|
166
|
-
url: '/api/v1/banyan/banyan/',
|
|
167
|
-
method: 'GET',
|
|
168
|
-
qs: {
|
|
169
|
-
views: '["direct_user_search","direct_search_context","direct_share_sheet"]',
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
} catch (e) {}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
async logout() {
|
|
176
|
-
return await this.account.logout();
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
isLoggedIn() {
|
|
180
|
-
try {
|
|
181
|
-
return !!this.state.cookieUserId;
|
|
182
|
-
} catch {
|
|
183
|
-
return false;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
async saveSession() {
|
|
188
|
-
return await this.state.serialize();
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
async loadSession(session) {
|
|
192
|
-
const ret = await this.state.deserialize(session);
|
|
193
|
-
this.navChain.simulateAppOpen();
|
|
194
|
-
return ret;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
async isSessionValid() {
|
|
198
|
-
try {
|
|
199
|
-
await this.account.currentUser();
|
|
200
|
-
return true;
|
|
201
|
-
} catch {
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
destroy() {
|
|
207
|
-
// Cleanup resources - keep original behaviour for request streams if present
|
|
208
|
-
try { this.request.error$.complete(); } catch (_) {}
|
|
209
|
-
try { this.request.end$.complete(); } catch (_) {}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// -------------------------------
|
|
213
|
-
// === UTILITY HELPER METHODS
|
|
214
|
-
// -------------------------------
|
|
215
|
-
|
|
216
|
-
async preLoginFlow() {
|
|
217
|
-
if (this.state.verbose) console.log('[Pre-Login] Starting pre-login flow (sync_launcher)...');
|
|
218
|
-
try {
|
|
219
|
-
await this.request.send({
|
|
220
|
-
url: '/api/v1/launcher/sync/',
|
|
221
|
-
method: 'POST',
|
|
222
|
-
form: this.request.sign({
|
|
223
|
-
id: this.state.uuid,
|
|
224
|
-
server_config_retrieval: '1',
|
|
225
|
-
}),
|
|
226
|
-
});
|
|
227
|
-
if (this.state.verbose) console.log('[Pre-Login] Launcher Sync: OK');
|
|
228
|
-
} catch (e) {
|
|
229
|
-
if (this.state.verbose) console.warn('[Pre-Login] Launcher Sync Failed (non-fatal):', e.message);
|
|
230
|
-
}
|
|
231
|
-
await new Promise(resolve => setTimeout(resolve, Math.random() * 700 + 175));
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
async postLoginFlow() {
|
|
235
|
-
if (this.state.verbose) console.log('[Post-Login] Starting post-login flow...');
|
|
236
|
-
try {
|
|
237
|
-
await this.request.send({
|
|
238
|
-
url: '/api/v1/feed/reels_tray/',
|
|
239
|
-
method: 'POST',
|
|
240
|
-
form: this.request.sign({
|
|
241
|
-
supported_capabilities_new: JSON.stringify(this.state.constants.SUPPORTED_CAPABILITIES),
|
|
242
|
-
reason: 'cold_start',
|
|
243
|
-
timezone_offset: String(this.state.timezoneOffset),
|
|
244
|
-
tray_session_id: this.state.traySessionId,
|
|
245
|
-
request_id: this.state.requestId,
|
|
246
|
-
_uuid: this.state.uuid,
|
|
247
|
-
page_size: 50,
|
|
248
|
-
reel_tray_impressions: {},
|
|
249
|
-
}),
|
|
250
|
-
});
|
|
251
|
-
if (this.state.verbose) console.log('[Post-Login] Reels tray: OK');
|
|
252
|
-
} catch (e) {
|
|
253
|
-
if (this.state.verbose) console.warn('[Post-Login] Reels tray failed (non-fatal):', e.message);
|
|
254
|
-
}
|
|
255
|
-
try {
|
|
256
|
-
const timelineData = JSON.stringify({
|
|
257
|
-
has_camera_permission: '1',
|
|
258
|
-
feed_view_info: '[]',
|
|
259
|
-
phone_id: this.state.phoneId,
|
|
260
|
-
reason: 'cold_start_fetch',
|
|
261
|
-
battery_level: 100,
|
|
262
|
-
timezone_offset: String(this.state.timezoneOffset),
|
|
263
|
-
device_id: this.state.uuid,
|
|
264
|
-
request_id: this.state.requestId,
|
|
265
|
-
_uuid: this.state.uuid,
|
|
266
|
-
is_charging: Math.random() > 0.5 ? 1 : 0,
|
|
267
|
-
is_dark_mode: 1,
|
|
268
|
-
will_sound_on: Math.random() > 0.5 ? 1 : 0,
|
|
269
|
-
session_id: this.state.clientSessionId,
|
|
270
|
-
bloks_versioning_id: this.state.bloksVersionId,
|
|
271
|
-
is_pull_to_refresh: '0',
|
|
272
|
-
});
|
|
273
|
-
await this.request.send({
|
|
274
|
-
url: '/api/v1/feed/timeline/',
|
|
275
|
-
method: 'POST',
|
|
276
|
-
data: timelineData,
|
|
277
|
-
headers: {
|
|
278
|
-
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
|
279
|
-
'X-Ads-Opt-Out': '0',
|
|
280
|
-
'X-DEVICE-ID': this.state.uuid,
|
|
281
|
-
'X-CM-Bandwidth-KBPS': '-1.000',
|
|
282
|
-
'X-CM-Latency': String(Math.floor(Math.random() * 5) + 1),
|
|
283
|
-
},
|
|
284
|
-
});
|
|
285
|
-
if (this.state.verbose) console.log('[Post-Login] Timeline feed: OK');
|
|
286
|
-
} catch (e) {
|
|
287
|
-
if (this.state.verbose) console.warn('[Post-Login] Timeline feed failed (non-fatal):', e.message);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
async simulateAppStart() {
|
|
292
|
-
return this.preLoginFlow();
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* Generic retry helper for async functions.
|
|
297
|
-
*
|
|
298
|
-
* Usage:
|
|
299
|
-
* await client.retryAsync(() => client.request.post(...), { retries: 5, delayMs: 1000 });
|
|
300
|
-
*
|
|
301
|
-
* Options:
|
|
302
|
-
* - retries: number (default from this._defaultRetryPolicy.retries)
|
|
303
|
-
* - delayMs: base delay in ms (default from this._defaultRetryPolicy.delayMs)
|
|
304
|
-
* - factor: multiplier for exponential backoff (default 1.5)
|
|
305
|
-
* - onRetry: optional callback (err, attempt) called before next retry
|
|
306
|
-
*/
|
|
307
|
-
async retryAsync(fn, options = {}) {
|
|
308
|
-
const retries = typeof options.retries === 'number' ? options.retries : this._defaultRetryPolicy.retries;
|
|
309
|
-
const delayMs = typeof options.delayMs === 'number' ? options.delayMs : this._defaultRetryPolicy.delayMs;
|
|
310
|
-
const factor = typeof options.factor === 'number' ? options.factor : 1.5;
|
|
311
|
-
const onRetry = typeof options.onRetry === 'function' ? options.onRetry : null;
|
|
312
|
-
|
|
313
|
-
let lastErr;
|
|
314
|
-
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
315
|
-
try {
|
|
316
|
-
if (this.state.verbose) {
|
|
317
|
-
console.log(`[Retry] attempt ${attempt + 1}/${retries + 1}`);
|
|
318
|
-
}
|
|
319
|
-
const res = await fn();
|
|
320
|
-
return res;
|
|
321
|
-
} catch (err) {
|
|
322
|
-
lastErr = err;
|
|
323
|
-
if (attempt === retries) break;
|
|
324
|
-
if (onRetry) {
|
|
325
|
-
try { onRetry(err, attempt + 1); } catch (_) {}
|
|
326
|
-
}
|
|
327
|
-
const backoff = Math.round(delayMs * Math.pow(factor, attempt));
|
|
328
|
-
if (this.state.verbose) {
|
|
329
|
-
console.warn(`[Retry] attempt ${attempt + 1} failed: ${err && err.message ? err.message : err}. Backoff ${backoff}ms`);
|
|
330
|
-
}
|
|
331
|
-
await new Promise(r => setTimeout(r, backoff));
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
throw lastErr || new Error('retryAsync failed without specific error');
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
/**
|
|
338
|
-
* Set default retry policy for retryAsync.
|
|
339
|
-
* Example: client.setDefaultRetryPolicy({ retries: 5, delayMs: 800 });
|
|
340
|
-
*/
|
|
341
|
-
setDefaultRetryPolicy(policy = {}) {
|
|
342
|
-
if (typeof policy.retries === 'number') this._defaultRetryPolicy.retries = policy.retries;
|
|
343
|
-
if (typeof policy.delayMs === 'number') this._defaultRetryPolicy.delayMs = policy.delayMs;
|
|
344
|
-
return this._defaultRetryPolicy;
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* Save session object to a file. Path optional (defaults to ./session.json).
|
|
349
|
-
* Will call this.saveSession() internally.
|
|
350
|
-
*/
|
|
351
|
-
async saveSessionToFile(filePath) {
|
|
352
|
-
const p = filePath || path.resolve(process.cwd(), 'session.json');
|
|
353
|
-
const data = await this.saveSession();
|
|
354
|
-
// Ensure JSON string
|
|
355
|
-
const json = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
|
|
356
|
-
await fs.promises.writeFile(p, json, { mode: 0o600 });
|
|
357
|
-
if (this.state.verbose) console.log('[Session] Saved session to', p);
|
|
358
|
-
return p;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Load session from file path (defaults to ./session.json). Returns true on success.
|
|
363
|
-
*/
|
|
364
|
-
async loadSessionFromFile(filePath) {
|
|
365
|
-
const p = filePath || path.resolve(process.cwd(), 'session.json');
|
|
366
|
-
if (!fs.existsSync(p)) {
|
|
367
|
-
if (this.state.verbose) console.warn('[Session] loadSessionFromFile: file not found', p);
|
|
368
|
-
return false;
|
|
369
|
-
}
|
|
370
|
-
const raw = await fs.promises.readFile(p, 'utf8');
|
|
371
|
-
let sessionObj;
|
|
372
|
-
try {
|
|
373
|
-
sessionObj = JSON.parse(raw);
|
|
374
|
-
} catch (e) {
|
|
375
|
-
if (this.state.verbose) console.warn('[Session] loadSessionFromFile: invalid JSON in', p);
|
|
376
|
-
throw e;
|
|
377
|
-
}
|
|
378
|
-
await this.loadSession(sessionObj);
|
|
379
|
-
if (this.state.verbose) console.log('[Session] Loaded session from', p);
|
|
380
|
-
return true;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/**
|
|
384
|
-
* Attempt to load session JSON if exists and valid, else false.
|
|
385
|
-
* Wrapper helper for convenience.
|
|
386
|
-
*/
|
|
387
|
-
async tryLoadSessionFileIfExists(filePath) {
|
|
388
|
-
try {
|
|
389
|
-
const loaded = await this.loadSessionFromFile(filePath);
|
|
390
|
-
if (!loaded) return false;
|
|
391
|
-
return await this.isSessionValid();
|
|
392
|
-
} catch (e) {
|
|
393
|
-
if (this.state.verbose) console.warn('[Session] tryLoadSessionFileIfExists failed:', e && e.message);
|
|
394
|
-
return false;
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* Set verbose mode on/off.
|
|
400
|
-
*/
|
|
401
|
-
setVerbose(flag) {
|
|
402
|
-
this.state.verbose = !!flag;
|
|
403
|
-
return this.state.verbose;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* safeDestroy: a slightly more robust destroy which attempts to stop requests, etc.
|
|
408
|
-
*/
|
|
409
|
-
async safeDestroy() {
|
|
410
|
-
try { if (this.request && this.request.error$ && typeof this.request.error$.complete === 'function') this.request.error$.complete(); } catch (_) {}
|
|
411
|
-
try { if (this.request && this.request.end$ && typeof this.request.end$.complete === 'function') this.request.end$.complete(); } catch (_) {}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
// keep original destroy for backward compatibility
|
|
415
|
-
try { this.destroy(); } catch (_) {}
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
module.exports = IgApiClient;
|