nodejs-insta-private-api-mqt 1.3.85 → 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 +37 -42
- 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,11 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
2
|
const EventEmitter = require('eventemitter3');
|
|
4
|
-
|
|
5
3
|
const SESSION_CHECK_INTERVAL = 30 * 60 * 1000;
|
|
6
4
|
const SESSION_CHECK_JITTER = 5 * 60 * 1000;
|
|
7
5
|
const MIN_CHECK_INTERVAL = 5 * 60 * 1000;
|
|
8
|
-
|
|
9
6
|
class SessionHealthMonitor extends EventEmitter {
|
|
10
7
|
constructor(realtimeClient, options = {}) {
|
|
11
8
|
super();
|
|
@@ -20,7 +17,6 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
20
17
|
maxConsecutiveFailures: options.maxConsecutiveFailures || 5,
|
|
21
18
|
...options,
|
|
22
19
|
};
|
|
23
|
-
|
|
24
20
|
this._checkTimer = null;
|
|
25
21
|
this._running = false;
|
|
26
22
|
this._consecutiveFailures = 0;
|
|
@@ -29,7 +25,6 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
29
25
|
this._sessionValid = true;
|
|
30
26
|
this._reloginInProgress = false;
|
|
31
27
|
this._reloginCount = 0;
|
|
32
|
-
|
|
33
28
|
this._stats = {
|
|
34
29
|
startedAt: null,
|
|
35
30
|
totalChecks: 0,
|
|
@@ -46,18 +41,16 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
46
41
|
uptimeSegments: [],
|
|
47
42
|
};
|
|
48
43
|
}
|
|
49
|
-
|
|
50
44
|
start() {
|
|
51
|
-
if (this._running)
|
|
45
|
+
if (this._running)
|
|
46
|
+
return;
|
|
52
47
|
this._running = true;
|
|
53
48
|
this._stats.startedAt = Date.now();
|
|
54
49
|
this._stats.lastUptimeStart = Date.now();
|
|
55
50
|
this._log('[HEALTH] Session health monitor started');
|
|
56
51
|
this._log(`[HEALTH] Check interval: ${Math.round(this.options.checkIntervalMs / 60000)}min + up to ${Math.round(this.options.jitterMs / 60000)}min jitter`);
|
|
57
52
|
this._log(`[HEALTH] Auto-relogin: ${this.options.autoRelogin ? 'enabled' : 'disabled'}`);
|
|
58
|
-
|
|
59
53
|
this._scheduleNextCheck();
|
|
60
|
-
|
|
61
54
|
if (this.rt) {
|
|
62
55
|
this.rt.on('reconnected', () => {
|
|
63
56
|
this._stats.reconnects++;
|
|
@@ -65,18 +58,15 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
65
58
|
this._stats.lastUptimeStart = Date.now();
|
|
66
59
|
this._log('[HEALTH] Reconnected - uptime segment recorded');
|
|
67
60
|
});
|
|
68
|
-
|
|
69
61
|
this.rt.on('disconnect', () => {
|
|
70
62
|
this._recordUptimeSegment();
|
|
71
63
|
});
|
|
72
|
-
|
|
73
64
|
this.rt.on('reconnect_failed', () => {
|
|
74
65
|
this._log('[HEALTH] All reconnect attempts exhausted - checking session validity');
|
|
75
|
-
this._performCheck().catch(() => {});
|
|
66
|
+
this._performCheck().catch(() => { });
|
|
76
67
|
});
|
|
77
68
|
}
|
|
78
69
|
}
|
|
79
|
-
|
|
80
70
|
stop() {
|
|
81
71
|
this._running = false;
|
|
82
72
|
if (this._checkTimer) {
|
|
@@ -86,32 +76,29 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
86
76
|
this._recordUptimeSegment();
|
|
87
77
|
this._log('[HEALTH] Session health monitor stopped');
|
|
88
78
|
}
|
|
89
|
-
|
|
90
79
|
_scheduleNextCheck() {
|
|
91
|
-
if (!this._running)
|
|
92
|
-
|
|
93
|
-
|
|
80
|
+
if (!this._running)
|
|
81
|
+
return;
|
|
82
|
+
if (this._checkTimer)
|
|
83
|
+
clearTimeout(this._checkTimer);
|
|
94
84
|
const jitter = Math.floor(Math.random() * this.options.jitterMs);
|
|
95
85
|
const delay = Math.max(MIN_CHECK_INTERVAL, this.options.checkIntervalMs + jitter);
|
|
96
|
-
|
|
97
86
|
this._checkTimer = setTimeout(async () => {
|
|
98
87
|
try {
|
|
99
88
|
await this._performCheck();
|
|
100
|
-
}
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
101
91
|
this._log('[HEALTH] Check error:', e?.message || e);
|
|
102
92
|
}
|
|
103
93
|
this._scheduleNextCheck();
|
|
104
94
|
}, delay);
|
|
105
95
|
}
|
|
106
|
-
|
|
107
96
|
async _performCheck() {
|
|
108
97
|
this._stats.totalChecks++;
|
|
109
98
|
this._lastCheckAt = Date.now();
|
|
110
|
-
|
|
111
99
|
try {
|
|
112
100
|
const result = await this._checkSessionValidity();
|
|
113
101
|
this._lastCheckResult = result;
|
|
114
|
-
|
|
115
102
|
if (result.valid) {
|
|
116
103
|
this._consecutiveFailures = 0;
|
|
117
104
|
this._sessionValid = true;
|
|
@@ -119,32 +106,35 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
119
106
|
this._log(`[HEALTH] Session valid (userId: ${result.userId || 'unknown'}, check #${this._stats.totalChecks})`);
|
|
120
107
|
this.emit('health_check', { status: 'ok', result, stats: this.getStats() });
|
|
121
108
|
return true;
|
|
122
|
-
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
123
111
|
this._consecutiveFailures++;
|
|
124
112
|
this._stats.failedChecks++;
|
|
125
113
|
this._log(`[HEALTH] Session check failed (${this._consecutiveFailures}/${this.options.maxConsecutiveFailures}): ${result.reason}`);
|
|
126
114
|
this.emit('health_check', { status: 'failed', result, consecutiveFailures: this._consecutiveFailures });
|
|
127
|
-
|
|
128
115
|
if (this._consecutiveFailures >= 2) {
|
|
129
116
|
this._sessionValid = false;
|
|
130
117
|
this._stats.sessionExpiries++;
|
|
131
118
|
this._log('[HEALTH] Session appears expired');
|
|
132
119
|
this.emit('session_expired', { result, consecutiveFailures: this._consecutiveFailures });
|
|
133
|
-
|
|
134
120
|
if (this.options.autoRelogin) {
|
|
135
121
|
return await this._attemptRelogin();
|
|
136
|
-
}
|
|
137
|
-
|
|
122
|
+
}
|
|
123
|
+
else if (typeof this.options.onSessionExpired === 'function') {
|
|
124
|
+
try {
|
|
125
|
+
await this.options.onSessionExpired(result);
|
|
126
|
+
}
|
|
127
|
+
catch (e) { }
|
|
138
128
|
}
|
|
139
129
|
}
|
|
140
130
|
return false;
|
|
141
131
|
}
|
|
142
|
-
}
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
143
134
|
this._consecutiveFailures++;
|
|
144
135
|
this._stats.failedChecks++;
|
|
145
136
|
this._log('[HEALTH] Session check threw:', e?.message || e);
|
|
146
137
|
this.emit('health_check', { status: 'error', error: e?.message, consecutiveFailures: this._consecutiveFailures });
|
|
147
|
-
|
|
148
138
|
if (this._consecutiveFailures >= this.options.maxConsecutiveFailures) {
|
|
149
139
|
this._log(`[HEALTH] Max consecutive failures (${this.options.maxConsecutiveFailures}) reached`);
|
|
150
140
|
if (this.options.autoRelogin) {
|
|
@@ -154,7 +144,6 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
154
144
|
return false;
|
|
155
145
|
}
|
|
156
146
|
}
|
|
157
|
-
|
|
158
147
|
async _checkSessionValidity() {
|
|
159
148
|
try {
|
|
160
149
|
const response = await this.ig.request.send({
|
|
@@ -162,7 +151,6 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
162
151
|
method: 'GET',
|
|
163
152
|
qs: { edit: true },
|
|
164
153
|
});
|
|
165
|
-
|
|
166
154
|
if (response?.body?.user) {
|
|
167
155
|
return {
|
|
168
156
|
valid: true,
|
|
@@ -171,12 +159,11 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
171
159
|
fullName: response.body.user.full_name,
|
|
172
160
|
};
|
|
173
161
|
}
|
|
174
|
-
|
|
175
162
|
return { valid: false, reason: 'No user data in response', statusCode: response?.statusCode };
|
|
176
|
-
}
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
177
165
|
const status = e?.response?.statusCode || e?.statusCode;
|
|
178
166
|
const body = e?.response?.body;
|
|
179
|
-
|
|
180
167
|
if (status === 401 || status === 403) {
|
|
181
168
|
return { valid: false, reason: `Auth error (${status})`, statusCode: status, requiresRelogin: true };
|
|
182
169
|
}
|
|
@@ -189,11 +176,9 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
189
176
|
if (e.code === 'ENOTFOUND' || e.code === 'ECONNREFUSED' || e.code === 'ETIMEDOUT') {
|
|
190
177
|
return { valid: false, reason: `Network error: ${e.code}`, networkError: true };
|
|
191
178
|
}
|
|
192
|
-
|
|
193
179
|
return { valid: false, reason: e?.message || 'Unknown error', statusCode: status };
|
|
194
180
|
}
|
|
195
181
|
}
|
|
196
|
-
|
|
197
182
|
async _attemptRelogin() {
|
|
198
183
|
if (this._reloginInProgress) {
|
|
199
184
|
this._log('[HEALTH] Relogin already in progress, skipping');
|
|
@@ -201,7 +186,6 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
201
186
|
}
|
|
202
187
|
this._reloginInProgress = true;
|
|
203
188
|
this._stats.relogins++;
|
|
204
|
-
|
|
205
189
|
try {
|
|
206
190
|
const creds = this.options.credentials;
|
|
207
191
|
if (!creds || !creds.username || !creds.password) {
|
|
@@ -209,10 +193,8 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
209
193
|
this.emit('relogin_needed', { reason: 'No credentials configured' });
|
|
210
194
|
return false;
|
|
211
195
|
}
|
|
212
|
-
|
|
213
196
|
this._log(`[HEALTH] Attempting auto-relogin as ${creds.username}...`);
|
|
214
197
|
this.emit('relogin_start', { username: creds.username });
|
|
215
|
-
|
|
216
198
|
try {
|
|
217
199
|
await this.ig.login({ username: creds.username, password: creds.password });
|
|
218
200
|
this._log('[HEALTH] Relogin successful!');
|
|
@@ -220,58 +202,52 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
220
202
|
this._reloginCount++;
|
|
221
203
|
this._consecutiveFailures = 0;
|
|
222
204
|
this._sessionValid = true;
|
|
223
|
-
|
|
224
205
|
if (this.rt._attachedAuthState && typeof this.rt._attachedAuthState.saveCreds === 'function') {
|
|
225
206
|
try {
|
|
226
207
|
await this.rt._attachedAuthState.saveCreds(this.ig);
|
|
227
208
|
this._log('[HEALTH] Credentials saved after relogin');
|
|
228
|
-
}
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
229
211
|
this._log('[HEALTH] Failed to save credentials:', e?.message || e);
|
|
230
212
|
}
|
|
231
213
|
}
|
|
232
|
-
|
|
233
214
|
this.emit('relogin_success', { username: creds.username, reloginCount: this._reloginCount });
|
|
234
|
-
|
|
235
215
|
try {
|
|
236
216
|
this._log('[HEALTH] Triggering MQTT reconnect with fresh session...');
|
|
237
217
|
await this.rt._attemptReconnectSafely();
|
|
238
|
-
}
|
|
218
|
+
}
|
|
219
|
+
catch (e) {
|
|
239
220
|
this._log('[HEALTH] MQTT reconnect after relogin failed:', e?.message || e);
|
|
240
221
|
}
|
|
241
|
-
|
|
242
222
|
return true;
|
|
243
|
-
}
|
|
223
|
+
}
|
|
224
|
+
catch (e) {
|
|
244
225
|
this._stats.failedRelogins++;
|
|
245
226
|
const isChallenge = e?.message?.includes('challenge') || e?.message?.includes('checkpoint');
|
|
246
227
|
this._log(`[HEALTH] Relogin failed: ${e?.message || e}`);
|
|
247
|
-
|
|
248
228
|
if (isChallenge) {
|
|
249
229
|
this._log('[HEALTH] Account requires verification - cannot auto-relogin');
|
|
250
230
|
this.emit('relogin_challenge', { error: e?.message });
|
|
251
231
|
}
|
|
252
|
-
|
|
253
232
|
this.emit('relogin_failed', { error: e?.message, isChallenge });
|
|
254
233
|
return false;
|
|
255
234
|
}
|
|
256
|
-
}
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
257
237
|
this._reloginInProgress = false;
|
|
258
238
|
}
|
|
259
239
|
}
|
|
260
|
-
|
|
261
240
|
async forceCheck() {
|
|
262
241
|
return this._performCheck();
|
|
263
242
|
}
|
|
264
|
-
|
|
265
243
|
isSessionValid() {
|
|
266
244
|
return this._sessionValid;
|
|
267
245
|
}
|
|
268
|
-
|
|
269
246
|
getStats() {
|
|
270
247
|
const now = Date.now();
|
|
271
248
|
const currentSegmentMs = this._stats.lastUptimeStart ? (now - this._stats.lastUptimeStart) : 0;
|
|
272
249
|
const totalUptime = this._stats.totalUptimeMs + currentSegmentMs;
|
|
273
250
|
const totalRuntime = this._stats.startedAt ? (now - this._stats.startedAt) : 0;
|
|
274
|
-
|
|
275
251
|
return {
|
|
276
252
|
running: this._running,
|
|
277
253
|
sessionValid: this._sessionValid,
|
|
@@ -298,12 +274,12 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
298
274
|
lastCheckResult: this._lastCheckResult,
|
|
299
275
|
};
|
|
300
276
|
}
|
|
301
|
-
|
|
302
277
|
_recordUptimeSegment() {
|
|
303
278
|
if (this._stats.lastUptimeStart) {
|
|
304
279
|
const segmentMs = Date.now() - this._stats.lastUptimeStart;
|
|
305
280
|
this._stats.totalUptimeMs += segmentMs;
|
|
306
|
-
if (segmentMs > this._stats.longestUptimeMs)
|
|
281
|
+
if (segmentMs > this._stats.longestUptimeMs)
|
|
282
|
+
this._stats.longestUptimeMs = segmentMs;
|
|
307
283
|
this._stats.uptimeSegments.push({
|
|
308
284
|
start: new Date(this._stats.lastUptimeStart).toISOString(),
|
|
309
285
|
end: new Date().toISOString(),
|
|
@@ -315,31 +291,35 @@ class SessionHealthMonitor extends EventEmitter {
|
|
|
315
291
|
this._stats.lastUptimeStart = null;
|
|
316
292
|
}
|
|
317
293
|
}
|
|
318
|
-
|
|
319
294
|
_humanDuration(ms) {
|
|
320
|
-
if (!ms || ms <= 0)
|
|
295
|
+
if (!ms || ms <= 0)
|
|
296
|
+
return '0s';
|
|
321
297
|
const d = Math.floor(ms / 86400000);
|
|
322
298
|
const h = Math.floor((ms % 86400000) / 3600000);
|
|
323
299
|
const m = Math.floor((ms % 3600000) / 60000);
|
|
324
300
|
const s = Math.floor((ms % 60000) / 1000);
|
|
325
301
|
const parts = [];
|
|
326
|
-
if (d > 0)
|
|
327
|
-
|
|
328
|
-
if (
|
|
329
|
-
|
|
302
|
+
if (d > 0)
|
|
303
|
+
parts.push(`${d}d`);
|
|
304
|
+
if (h > 0)
|
|
305
|
+
parts.push(`${h}h`);
|
|
306
|
+
if (m > 0)
|
|
307
|
+
parts.push(`${m}m`);
|
|
308
|
+
if (s > 0 || parts.length === 0)
|
|
309
|
+
parts.push(`${s}s`);
|
|
330
310
|
return parts.join(' ');
|
|
331
311
|
}
|
|
332
|
-
|
|
333
312
|
_log(...args) {
|
|
334
313
|
if (this.rt && typeof this.rt.realtimeDebug === 'function') {
|
|
335
314
|
this.rt.realtimeDebug(...args);
|
|
336
|
-
}
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
337
317
|
console.log(...args);
|
|
338
318
|
}
|
|
339
319
|
try {
|
|
340
320
|
this.emit('log', args.join(' '));
|
|
341
|
-
}
|
|
321
|
+
}
|
|
322
|
+
catch (e) { }
|
|
342
323
|
}
|
|
343
324
|
}
|
|
344
|
-
|
|
345
325
|
module.exports = { SessionHealthMonitor };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const realtime_client_1: any;
|
|
2
|
+
declare const iris_handshake_1: any;
|
|
3
|
+
declare const skywalker_protocol_1: any;
|
|
4
|
+
declare const presence_manager_1: any;
|
|
5
|
+
declare const dm_sender_1: any;
|
|
6
|
+
declare const error_handler_1: any;
|
|
7
|
+
declare const gap_handler_1: any;
|
|
8
|
+
declare const presence_typing_mixin_1: any;
|
|
9
|
+
declare const enhanced_direct_commands_1: any;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare var MessageSyncMessageTypes: any;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
declare const mixin_1: any;
|
|
2
|
+
declare const constants_1: any;
|
|
3
|
+
declare const shared_1: any;
|
|
4
|
+
declare const mqtts_1: any;
|
|
5
|
+
/**
|
|
6
|
+
* MessageSyncMixin - patched for 2026 (robust parsing + safe username fetch + tolerant timestamp handling)
|
|
7
|
+
*
|
|
8
|
+
* Changes applied:
|
|
9
|
+
* - tolerant parsing for e.value (string / object / already-parsed)
|
|
10
|
+
* - support for several path shapes when extracting thread id
|
|
11
|
+
* - safer timestamp parsing (accepts seconds, milliseconds, microseconds, nanoseconds)
|
|
12
|
+
* - username fetch uses a pending map + small backoff to reduce rush/rate-limit risk
|
|
13
|
+
* - defensive try/catch around JSON.parse and all external calls
|
|
14
|
+
* - keeps original API: apply(client) registers post-connect hook and emits same events
|
|
15
|
+
*
|
|
16
|
+
* Additional change requested:
|
|
17
|
+
* - set message status to 'received' for incoming messages and 'sent' for messages authored by the logged-in account,
|
|
18
|
+
* instead of the previous 'good'.
|
|
19
|
+
*
|
|
20
|
+
* Note: No rate-limiting code is included.
|
|
21
|
+
*/
|
|
22
|
+
declare class MessageSyncMixin extends mixin_1.Mixin {
|
|
23
|
+
constructor();
|
|
24
|
+
apply(client: any): void;
|
|
25
|
+
getUsernameFromId(client: any, userId: any): Promise<any>;
|
|
26
|
+
extractMessageContent(msgValue: any, itemType: any): string;
|
|
27
|
+
formatMessageForConsole(msgData: any): string;
|
|
28
|
+
/**
|
|
29
|
+
* parseTimestamp
|
|
30
|
+
* - accepts numeric strings or numbers in seconds, milliseconds, microseconds, nanoseconds
|
|
31
|
+
* - normalizes to milliseconds
|
|
32
|
+
* - sanity-checks to avoid absurd future dates; returns Date.now() fallback if out of range
|
|
33
|
+
*/
|
|
34
|
+
parseTimestamp(ts: any): number;
|
|
35
|
+
handleMessageSync(client: any, syncData: any): Promise<void>;
|
|
36
|
+
static getThreadIdFromPath(path: any): any;
|
|
37
|
+
get name(): string;
|
|
38
|
+
}
|
|
@@ -56,7 +56,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
56
56
|
}
|
|
57
57
|
catch (err) {
|
|
58
58
|
// If transformer fails, return empty array so handler is tolerant
|
|
59
|
-
console.warn('[MESSAGE_SYNC] transformer parse failed:',
|
|
59
|
+
console.warn('[MESSAGE_SYNC] transformer parse failed:', err?.message || err);
|
|
60
60
|
return [];
|
|
61
61
|
}
|
|
62
62
|
},
|
|
@@ -74,7 +74,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
catch (err) {
|
|
77
|
-
console.warn('[MESSAGE_SYNC] receive fallback handler error:',
|
|
77
|
+
console.warn('[MESSAGE_SYNC] receive fallback handler error:', err?.message || err);
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
}
|
|
@@ -124,7 +124,6 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
124
124
|
return result;
|
|
125
125
|
}
|
|
126
126
|
extractMessageContent(msgValue, itemType) {
|
|
127
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
128
127
|
let content = '';
|
|
129
128
|
let mediaInfo = '';
|
|
130
129
|
try {
|
|
@@ -139,7 +138,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
139
138
|
const media = msgValue.media;
|
|
140
139
|
if (media.image_versions2) {
|
|
141
140
|
content = '[PHOTO]';
|
|
142
|
-
mediaInfo = ` URL: ${
|
|
141
|
+
mediaInfo = ` URL: ${media.image_versions2?.candidates?.[0]?.url || 'N/A'}`;
|
|
143
142
|
}
|
|
144
143
|
else if (media.video_versions) {
|
|
145
144
|
content = '[VIDEO]';
|
|
@@ -152,14 +151,14 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
152
151
|
break;
|
|
153
152
|
case 'voice_media':
|
|
154
153
|
content = '[VOICE MESSAGE]';
|
|
155
|
-
if (
|
|
154
|
+
if (msgValue.voice_media?.media?.audio) {
|
|
156
155
|
const duration = msgValue.voice_media.media.audio.duration || 0;
|
|
157
156
|
content = `[VOICE MESSAGE] Duration: ${duration}ms`;
|
|
158
157
|
}
|
|
159
158
|
break;
|
|
160
159
|
case 'animated_media':
|
|
161
160
|
content = '[GIF]';
|
|
162
|
-
if (
|
|
161
|
+
if (msgValue.animated_media?.images?.fixed_height?.url) {
|
|
163
162
|
mediaInfo = ` URL: ${msgValue.animated_media.images.fixed_height.url}`;
|
|
164
163
|
}
|
|
165
164
|
break;
|
|
@@ -167,8 +166,8 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
167
166
|
content = '[SHARED POST]';
|
|
168
167
|
if (msgValue.media_share) {
|
|
169
168
|
const share = msgValue.media_share;
|
|
170
|
-
content = `[SHARED POST] From: @${
|
|
171
|
-
if (
|
|
169
|
+
content = `[SHARED POST] From: @${share.user?.username || 'unknown'}`;
|
|
170
|
+
if (share.caption?.text) {
|
|
172
171
|
content += ` Caption: "${String(share.caption.text).substring(0, 50)}..."`;
|
|
173
172
|
}
|
|
174
173
|
}
|
|
@@ -177,7 +176,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
177
176
|
content = '[SHARED REEL]';
|
|
178
177
|
if (msgValue.reel_share) {
|
|
179
178
|
const reel = msgValue.reel_share;
|
|
180
|
-
content = `[SHARED REEL] From: @${
|
|
179
|
+
content = `[SHARED REEL] From: @${reel.media?.user?.username || 'unknown'}`;
|
|
181
180
|
if (reel.text) {
|
|
182
181
|
content += ` Text: "${reel.text}"`;
|
|
183
182
|
}
|
|
@@ -187,7 +186,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
187
186
|
content = '[SHARED STORY]';
|
|
188
187
|
if (msgValue.story_share) {
|
|
189
188
|
const story = msgValue.story_share;
|
|
190
|
-
content = `[SHARED STORY] From: @${
|
|
189
|
+
content = `[SHARED STORY] From: @${story.media?.user?.username || 'unknown'}`;
|
|
191
190
|
if (story.message) {
|
|
192
191
|
content += ` Message: "${story.message}"`;
|
|
193
192
|
}
|
|
@@ -195,14 +194,14 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
195
194
|
break;
|
|
196
195
|
case 'felix_share':
|
|
197
196
|
content = '[SHARED IGTV/VIDEO]';
|
|
198
|
-
if (
|
|
197
|
+
if (msgValue.felix_share?.video) {
|
|
199
198
|
content = `[SHARED IGTV] Title: "${msgValue.felix_share.video.title || 'N/A'}"`;
|
|
200
199
|
}
|
|
201
200
|
break;
|
|
202
201
|
case 'clip':
|
|
203
202
|
content = '[SHARED CLIP]';
|
|
204
|
-
if (
|
|
205
|
-
content = `[SHARED CLIP] From: @${
|
|
203
|
+
if (msgValue.clip?.clip) {
|
|
204
|
+
content = `[SHARED CLIP] From: @${msgValue.clip.clip.user?.username || 'unknown'}`;
|
|
206
205
|
}
|
|
207
206
|
break;
|
|
208
207
|
case 'profile':
|
|
@@ -240,7 +239,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
240
239
|
break;
|
|
241
240
|
case 'placeholder':
|
|
242
241
|
content = '[PLACEHOLDER]';
|
|
243
|
-
if (
|
|
242
|
+
if (msgValue.placeholder?.message) {
|
|
244
243
|
content = `[PLACEHOLDER] ${msgValue.placeholder.message}`;
|
|
245
244
|
}
|
|
246
245
|
break;
|
|
@@ -387,7 +386,6 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
387
386
|
}
|
|
388
387
|
}
|
|
389
388
|
async handleMessageSync(client, syncData) {
|
|
390
|
-
var _a, _b, _c, _d;
|
|
391
389
|
if (!syncData || !Array.isArray(syncData)) {
|
|
392
390
|
console.log(`[MESSAGE_SYNC] No sync data received`);
|
|
393
391
|
return;
|
|
@@ -473,7 +471,7 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
473
471
|
// determine status based on whether message author is the logged-in account
|
|
474
472
|
let status = 'received';
|
|
475
473
|
try {
|
|
476
|
-
const ownId =
|
|
474
|
+
const ownId = client?.ig?.state?.cookieUserId || client?.ig?.state?.userId || null;
|
|
477
475
|
if (ownId && userId && String(userId) === String(ownId)) {
|
|
478
476
|
status = 'sent';
|
|
479
477
|
}
|
|
@@ -541,12 +539,12 @@ class MessageSyncMixin extends mixin_1.Mixin {
|
|
|
541
539
|
}
|
|
542
540
|
}
|
|
543
541
|
catch (inner) {
|
|
544
|
-
console.log(`[MESSAGE_SYNC] element handling error: ${
|
|
542
|
+
console.log(`[MESSAGE_SYNC] element handling error: ${inner?.message || inner}`);
|
|
545
543
|
}
|
|
546
544
|
}
|
|
547
545
|
}
|
|
548
546
|
catch (outer) {
|
|
549
|
-
console.log(`[MESSAGE_SYNC] item error: ${
|
|
547
|
+
console.log(`[MESSAGE_SYNC] item error: ${outer?.message || outer}`);
|
|
550
548
|
}
|
|
551
549
|
}
|
|
552
550
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
declare const mixin_1: any;
|
|
2
|
+
declare const constants_1: any;
|
|
3
|
+
declare const shared_1: any;
|
|
4
|
+
declare const subscriptions_1: any;
|
|
5
|
+
declare const mqtts_1: any;
|
|
6
|
+
declare class RealtimeSubMixin extends mixin_1.Mixin {
|
|
7
|
+
apply(client: any): void;
|
|
8
|
+
/**
|
|
9
|
+
* ADDED: Handler compatible with instagram_mqtt's listen() approach
|
|
10
|
+
* This method handles data from client.mqtt.listen() and emits instagram_mqtt compatible events
|
|
11
|
+
*
|
|
12
|
+
* @param {Object} client - The realtime client instance
|
|
13
|
+
* @param {Object} param1 - The parsed data object containing { data, topic }
|
|
14
|
+
*/
|
|
15
|
+
handleRealtimeSubFromListen(client: any, { data, topic: messageTopic }: {
|
|
16
|
+
data: any;
|
|
17
|
+
topic: any;
|
|
18
|
+
}): void;
|
|
19
|
+
/**
|
|
20
|
+
* ADDED: Method to emit direct events (was MISSING from nodejs-insta-private-api-mqt)
|
|
21
|
+
* This method parses string values in parsed.data and emits 'direct' event for each
|
|
22
|
+
*
|
|
23
|
+
* @param {Object} client - The realtime client instance
|
|
24
|
+
* @param {Object} parsed - The parsed message object containing data array
|
|
25
|
+
*/
|
|
26
|
+
emitDirectEvent(client: any, parsed: any): void;
|
|
27
|
+
/**
|
|
28
|
+
* PRESERVED: Original handler for on('message') approach (for backwards compatibility)
|
|
29
|
+
* This emits the 'subscription' event that existing code may depend on
|
|
30
|
+
*
|
|
31
|
+
* @param {Object} client - The realtime client instance
|
|
32
|
+
* @param {Object} topic - The topic object from topicMap
|
|
33
|
+
* @param {Object} data - The parsed message data
|
|
34
|
+
*/
|
|
35
|
+
handleRealtimeSub(client: any, topic: any, data: any): void;
|
|
36
|
+
get name(): string;
|
|
37
|
+
}
|
|
@@ -49,7 +49,7 @@ class RealtimeSubMixin extends mixin_1.Mixin {
|
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
51
|
// If transformer fails, return null so handler can skip
|
|
52
|
-
console.warn('[RealtimeSubMixin] transformer parse failed:',
|
|
52
|
+
console.warn('[RealtimeSubMixin] transformer parse failed:', err?.message || err);
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
},
|
|
@@ -62,9 +62,8 @@ class RealtimeSubMixin extends mixin_1.Mixin {
|
|
|
62
62
|
}
|
|
63
63
|
// PRESERVED: Original on('message') approach with topicMap (for backwards compatibility)
|
|
64
64
|
client.mqtt.on('message', async (msg) => {
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
const topic = topicMap === null || topicMap === void 0 ? void 0 : topicMap.get(msg.topic);
|
|
65
|
+
const topicMap = client.mqtt?.topicMap;
|
|
66
|
+
const topic = topicMap?.get(msg.topic);
|
|
68
67
|
if (topic && topic.parser && !topic.noParse) {
|
|
69
68
|
try {
|
|
70
69
|
const unzipped = await (0, shared_1.tryUnzipAsync)(msg.payload);
|
|
@@ -140,7 +139,7 @@ class RealtimeSubMixin extends mixin_1.Mixin {
|
|
|
140
139
|
}
|
|
141
140
|
catch (parseErr) {
|
|
142
141
|
// If parsing fails, keep original value
|
|
143
|
-
console.warn('[RealtimeSubMixin] emitDirectEvent JSON parse failed:', parseErr
|
|
142
|
+
console.warn('[RealtimeSubMixin] emitDirectEvent JSON parse failed:', parseErr?.message);
|
|
144
143
|
}
|
|
145
144
|
}
|
|
146
145
|
return e;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses GraphQL messages from Instagram's realtime system.
|
|
5
|
+
* These messages contain GraphQL queries, mutations, and subscriptions.
|
|
6
|
+
*/
|
|
7
|
+
declare class GraphqlParser {
|
|
8
|
+
/**
|
|
9
|
+
* Parse a GraphQL message
|
|
10
|
+
* @param {Buffer|string} data - The raw message data
|
|
11
|
+
* @returns {Object} Parsed GraphQL data
|
|
12
|
+
*/
|
|
13
|
+
parse(data: any): {
|
|
14
|
+
type: string;
|
|
15
|
+
data: any;
|
|
16
|
+
raw: any;
|
|
17
|
+
};
|
|
18
|
+
}
|