@oxidezap/baileyrs 0.0.26 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -460
- package/lib/Bridge/adapt.d.ts +2 -0
- package/lib/Bridge/adapt.d.ts.map +1 -1
- package/lib/Bridge/adapt.js +2 -1
- package/lib/Bridge/adapt.js.map +1 -1
- package/lib/Bridge/history-sync-wire.d.ts +17 -0
- package/lib/Bridge/history-sync-wire.d.ts.map +1 -0
- package/lib/Bridge/history-sync-wire.js +61 -0
- package/lib/Bridge/history-sync-wire.js.map +1 -0
- package/lib/Bridge/index.d.ts +1 -1
- package/lib/Bridge/index.d.ts.map +1 -1
- package/lib/Bridge/index.js +3 -3
- package/lib/Bridge/index.js.map +1 -1
- package/lib/Bridge/primitives.d.ts +4 -0
- package/lib/Bridge/primitives.d.ts.map +1 -1
- package/lib/Bridge/primitives.js +14 -0
- package/lib/Bridge/primitives.js.map +1 -1
- package/lib/Bridge/schema.d.ts +9 -2
- package/lib/Bridge/schema.d.ts.map +1 -1
- package/lib/Bridge/schema.js +263 -35
- package/lib/Bridge/schema.js.map +1 -1
- package/lib/Bridge/types.d.ts +117 -3
- package/lib/Bridge/types.d.ts.map +1 -1
- package/lib/Compatibility/group-metadata.d.ts +9 -0
- package/lib/Compatibility/group-metadata.d.ts.map +1 -0
- package/lib/Compatibility/group-metadata.js +70 -0
- package/lib/Compatibility/group-metadata.js.map +1 -0
- package/lib/Compatibility/group-notifications.d.ts +22 -0
- package/lib/Compatibility/group-notifications.d.ts.map +1 -0
- package/lib/Compatibility/group-notifications.js +307 -0
- package/lib/Compatibility/group-notifications.js.map +1 -0
- package/lib/Compatibility/group-stub-params.d.ts +32 -0
- package/lib/Compatibility/group-stub-params.d.ts.map +1 -0
- package/lib/Compatibility/group-stub-params.js +57 -0
- package/lib/Compatibility/group-stub-params.js.map +1 -0
- package/lib/Compatibility/internal/async-primitives.d.ts +16 -0
- package/lib/Compatibility/internal/async-primitives.d.ts.map +1 -0
- package/lib/Compatibility/internal/async-primitives.js +42 -0
- package/lib/Compatibility/internal/async-primitives.js.map +1 -0
- package/lib/Compatibility/internal/auth-state.d.ts +15 -0
- package/lib/Compatibility/internal/auth-state.d.ts.map +1 -0
- package/lib/Compatibility/internal/auth-state.js +21 -0
- package/lib/Compatibility/internal/auth-state.js.map +1 -0
- package/lib/Compatibility/internal/cache-store.d.ts +7 -0
- package/lib/Compatibility/internal/cache-store.d.ts.map +1 -0
- package/lib/Compatibility/internal/cache-store.js +19 -0
- package/lib/Compatibility/internal/cache-store.js.map +1 -0
- package/lib/Compatibility/internal/expiring-lru-map.d.ts +21 -0
- package/lib/Compatibility/internal/expiring-lru-map.d.ts.map +1 -0
- package/lib/Compatibility/internal/expiring-lru-map.js +68 -0
- package/lib/Compatibility/internal/expiring-lru-map.js.map +1 -0
- package/lib/Compatibility/internal/make-mutex.d.ts +7 -0
- package/lib/Compatibility/internal/make-mutex.d.ts.map +1 -0
- package/lib/Compatibility/internal/make-mutex.js +31 -0
- package/lib/Compatibility/internal/make-mutex.js.map +1 -0
- package/lib/Compatibility/internal/native-memory-store.d.ts +6 -0
- package/lib/Compatibility/internal/native-memory-store.d.ts.map +1 -0
- package/lib/Compatibility/internal/native-memory-store.js +8 -0
- package/lib/Compatibility/internal/native-memory-store.js.map +1 -0
- package/lib/Compatibility/internal/numeric-enum.d.ts +8 -0
- package/lib/Compatibility/internal/numeric-enum.d.ts.map +1 -0
- package/lib/Compatibility/internal/numeric-enum.js +11 -0
- package/lib/Compatibility/internal/numeric-enum.js.map +1 -0
- package/lib/Compatibility/internal/signal-key-store.d.ts +9 -0
- package/lib/Compatibility/internal/signal-key-store.d.ts.map +1 -0
- package/lib/Compatibility/internal/signal-key-store.js +17 -0
- package/lib/Compatibility/internal/signal-key-store.js.map +1 -0
- package/lib/Compatibility/legacy-store/adapter.d.ts +4 -0
- package/lib/Compatibility/legacy-store/adapter.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/adapter.js +301 -0
- package/lib/Compatibility/legacy-store/adapter.js.map +1 -0
- package/lib/Compatibility/legacy-store/codecs/basic.d.ts +6 -0
- package/lib/Compatibility/legacy-store/codecs/basic.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/codecs/basic.js +184 -0
- package/lib/Compatibility/legacy-store/codecs/basic.js.map +1 -0
- package/lib/Compatibility/legacy-store/codecs/index.d.ts +6 -0
- package/lib/Compatibility/legacy-store/codecs/index.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/codecs/index.js +7 -0
- package/lib/Compatibility/legacy-store/codecs/index.js.map +1 -0
- package/lib/Compatibility/legacy-store/codecs/signal.d.ts +8 -0
- package/lib/Compatibility/legacy-store/codecs/signal.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/codecs/signal.js +219 -0
- package/lib/Compatibility/legacy-store/codecs/signal.js.map +1 -0
- package/lib/Compatibility/legacy-store/common.d.ts +25 -0
- package/lib/Compatibility/legacy-store/common.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/common.js +112 -0
- package/lib/Compatibility/legacy-store/common.js.map +1 -0
- package/lib/Compatibility/legacy-store/constants.d.ts +226 -0
- package/lib/Compatibility/legacy-store/constants.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/constants.js +199 -0
- package/lib/Compatibility/legacy-store/constants.js.map +1 -0
- package/lib/Compatibility/legacy-store/device.d.ts +9 -0
- package/lib/Compatibility/legacy-store/device.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/device.js +192 -0
- package/lib/Compatibility/legacy-store/device.js.map +1 -0
- package/lib/Compatibility/legacy-store/multi-file.d.ts +6 -0
- package/lib/Compatibility/legacy-store/multi-file.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/multi-file.js +84 -0
- package/lib/Compatibility/legacy-store/multi-file.js.map +1 -0
- package/lib/Compatibility/legacy-store/native-projection.d.ts +8 -0
- package/lib/Compatibility/legacy-store/native-projection.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/native-projection.js +109 -0
- package/lib/Compatibility/legacy-store/native-projection.js.map +1 -0
- package/lib/Compatibility/legacy-store/routing.d.ts +18 -0
- package/lib/Compatibility/legacy-store/routing.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/routing.js +162 -0
- package/lib/Compatibility/legacy-store/routing.js.map +1 -0
- package/lib/Compatibility/legacy-store/types.d.ts +41 -0
- package/lib/Compatibility/legacy-store/types.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/types.js +3 -0
- package/lib/Compatibility/legacy-store/types.js.map +1 -0
- package/lib/Compatibility/legacy-store/validation.d.ts +9 -0
- package/lib/Compatibility/legacy-store/validation.d.ts.map +1 -0
- package/lib/Compatibility/legacy-store/validation.js +49 -0
- package/lib/Compatibility/legacy-store/validation.js.map +1 -0
- package/lib/Compatibility/media-type.d.ts +10 -0
- package/lib/Compatibility/media-type.d.ts.map +1 -0
- package/lib/Compatibility/media-type.js +31 -0
- package/lib/Compatibility/media-type.js.map +1 -0
- package/lib/Compatibility/message-keys.d.ts +9 -0
- package/lib/Compatibility/message-keys.d.ts.map +1 -0
- package/lib/Compatibility/message-keys.js +15 -0
- package/lib/Compatibility/message-keys.js.map +1 -0
- package/lib/Compatibility/message-relay.d.ts +26 -0
- package/lib/Compatibility/message-relay.d.ts.map +1 -0
- package/lib/Compatibility/message-relay.js +61 -0
- package/lib/Compatibility/message-relay.js.map +1 -0
- package/lib/Compatibility/message-upsert.d.ts +11 -0
- package/lib/Compatibility/message-upsert.d.ts.map +1 -0
- package/lib/Compatibility/message-upsert.js +8 -0
- package/lib/Compatibility/message-upsert.js.map +1 -0
- package/lib/Compatibility/participating-refresh.d.ts +9 -0
- package/lib/Compatibility/participating-refresh.d.ts.map +1 -0
- package/lib/Compatibility/participating-refresh.js +14 -0
- package/lib/Compatibility/participating-refresh.js.map +1 -0
- package/lib/Compatibility/proto-runtime.d.ts +9 -0
- package/lib/Compatibility/proto-runtime.d.ts.map +1 -0
- package/lib/Compatibility/proto-runtime.js +567 -0
- package/lib/Compatibility/proto-runtime.js.map +1 -0
- package/lib/Compatibility/public-api/auth-utils.d.ts +6 -0
- package/lib/Compatibility/public-api/auth-utils.d.ts.map +1 -0
- package/lib/Compatibility/public-api/auth-utils.js +202 -0
- package/lib/Compatibility/public-api/auth-utils.js.map +1 -0
- package/lib/Compatibility/public-api/enum-types.d.ts +163 -0
- package/lib/Compatibility/public-api/enum-types.d.ts.map +1 -0
- package/lib/Compatibility/public-api/enum-types.js +10 -0
- package/lib/Compatibility/public-api/enum-types.js.map +1 -0
- package/lib/Compatibility/public-api/identity-change-handler.d.ts +42 -0
- package/lib/Compatibility/public-api/identity-change-handler.d.ts.map +1 -0
- package/lib/Compatibility/public-api/identity-change-handler.js +38 -0
- package/lib/Compatibility/public-api/identity-change-handler.js.map +1 -0
- package/lib/Compatibility/public-api/message-retry-manager.d.ts +62 -0
- package/lib/Compatibility/public-api/message-retry-manager.d.ts.map +1 -0
- package/lib/Compatibility/public-api/message-retry-manager.js +180 -0
- package/lib/Compatibility/public-api/message-retry-manager.js.map +1 -0
- package/lib/Compatibility/public-api/pre-key-manager.d.ts +14 -0
- package/lib/Compatibility/public-api/pre-key-manager.d.ts.map +1 -0
- package/lib/Compatibility/public-api/pre-key-manager.js +83 -0
- package/lib/Compatibility/public-api/pre-key-manager.js.map +1 -0
- package/lib/Compatibility/public-api/stanza-ack.d.ts +4 -0
- package/lib/Compatibility/public-api/stanza-ack.d.ts.map +1 -0
- package/lib/Compatibility/public-api/stanza-ack.js +20 -0
- package/lib/Compatibility/public-api/stanza-ack.js.map +1 -0
- package/lib/Compatibility/signal-repository.d.ts +12 -0
- package/lib/Compatibility/signal-repository.d.ts.map +1 -0
- package/lib/Compatibility/signal-repository.js +131 -0
- package/lib/Compatibility/signal-repository.js.map +1 -0
- package/lib/Compatibility/socket-results.d.ts +28 -0
- package/lib/Compatibility/socket-results.d.ts.map +1 -0
- package/lib/Compatibility/socket-results.js +72 -0
- package/lib/Compatibility/socket-results.js.map +1 -0
- package/lib/Compatibility/stanza-responses.d.ts +13 -0
- package/lib/Compatibility/stanza-responses.d.ts.map +1 -0
- package/lib/Compatibility/stanza-responses.js +16 -0
- package/lib/Compatibility/stanza-responses.js.map +1 -0
- package/lib/Compatibility/tagged-message-waiter.d.ts +5 -0
- package/lib/Compatibility/tagged-message-waiter.d.ts.map +1 -0
- package/lib/Compatibility/tagged-message-waiter.js +42 -0
- package/lib/Compatibility/tagged-message-waiter.js.map +1 -0
- package/lib/Compatibility/usync/adapter.d.ts +13 -0
- package/lib/Compatibility/usync/adapter.d.ts.map +1 -0
- package/lib/Compatibility/usync/adapter.js +291 -0
- package/lib/Compatibility/usync/adapter.js.map +1 -0
- package/lib/Compatibility/websocket-client.d.ts +40 -0
- package/lib/Compatibility/websocket-client.d.ts.map +1 -0
- package/lib/Compatibility/websocket-client.js +120 -0
- package/lib/Compatibility/websocket-client.js.map +1 -0
- package/lib/Defaults/index.d.ts +70 -3
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +107 -15
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Platform/crypto.d.ts +6 -0
- package/lib/Platform/crypto.d.ts.map +1 -0
- package/lib/Platform/crypto.js +36 -0
- package/lib/Platform/crypto.js.map +1 -0
- package/lib/Socket/blocking.d.ts +2 -2
- package/lib/Socket/blocking.d.ts.map +1 -1
- package/lib/Socket/blocking.js +2 -1
- package/lib/Socket/blocking.js.map +1 -1
- package/lib/Socket/chat-actions.d.ts +2 -9
- package/lib/Socket/chat-actions.d.ts.map +1 -1
- package/lib/Socket/chat-actions.js +24 -13
- package/lib/Socket/chat-actions.js.map +1 -1
- package/lib/Socket/communities.d.ts +61 -0
- package/lib/Socket/communities.d.ts.map +1 -0
- package/lib/Socket/communities.js +72 -0
- package/lib/Socket/communities.js.map +1 -0
- package/lib/Socket/contacts.d.ts +4 -2
- package/lib/Socket/contacts.d.ts.map +1 -1
- package/lib/Socket/contacts.js +6 -4
- package/lib/Socket/contacts.js.map +1 -1
- package/lib/Socket/events.d.ts +13 -5
- package/lib/Socket/events.d.ts.map +1 -1
- package/lib/Socket/events.js +282 -57
- package/lib/Socket/events.js.map +1 -1
- package/lib/Socket/group-notifications.d.ts +1 -30
- package/lib/Socket/group-notifications.d.ts.map +1 -1
- package/lib/Socket/group-notifications.js +3 -268
- package/lib/Socket/group-notifications.js.map +1 -1
- package/lib/Socket/groups.d.ts +17 -36
- package/lib/Socket/groups.d.ts.map +1 -1
- package/lib/Socket/groups.js +111 -116
- package/lib/Socket/groups.js.map +1 -1
- package/lib/Socket/index.d.ts +140 -201
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/index.js +215 -345
- package/lib/Socket/index.js.map +1 -1
- package/lib/Socket/message-capping.d.ts +4 -0
- package/lib/Socket/message-capping.d.ts.map +1 -0
- package/lib/Socket/message-capping.js +22 -0
- package/lib/Socket/message-capping.js.map +1 -0
- package/lib/Socket/messages.d.ts +8 -14
- package/lib/Socket/messages.d.ts.map +1 -1
- package/lib/Socket/messages.js +74 -40
- package/lib/Socket/messages.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +5 -0
- package/lib/Socket/newsletter.d.ts.map +1 -1
- package/lib/Socket/newsletter.js +7 -0
- package/lib/Socket/newsletter.js.map +1 -1
- package/lib/Socket/prekeys.d.ts +10 -0
- package/lib/Socket/prekeys.d.ts.map +1 -0
- package/lib/Socket/prekeys.js +21 -0
- package/lib/Socket/prekeys.js.map +1 -0
- package/lib/Socket/presence.d.ts +3 -3
- package/lib/Socket/presence.d.ts.map +1 -1
- package/lib/Socket/presence.js +2 -2
- package/lib/Socket/presence.js.map +1 -1
- package/lib/Socket/profile.d.ts +6 -8
- package/lib/Socket/profile.d.ts.map +1 -1
- package/lib/Socket/profile.js +18 -17
- package/lib/Socket/profile.js.map +1 -1
- package/lib/Socket/reachout.js +1 -1
- package/lib/Socket/transport.d.ts.map +1 -1
- package/lib/Socket/transport.js +13 -1
- package/lib/Socket/transport.js.map +1 -1
- package/lib/Socket/types.d.ts +4 -2
- package/lib/Socket/types.d.ts.map +1 -1
- package/lib/Socket/types.js.map +1 -1
- package/lib/Socket/usync.d.ts +12 -0
- package/lib/Socket/usync.d.ts.map +1 -0
- package/lib/Socket/usync.js +27 -0
- package/lib/Socket/usync.js.map +1 -0
- package/lib/Types/Auth.d.ts +28 -30
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Auth.js +1 -1
- package/lib/Types/Auth.js.map +1 -1
- package/lib/Types/BinaryNode.d.ts +0 -4
- package/lib/Types/BinaryNode.d.ts.map +1 -1
- package/lib/Types/Bussines.d.ts +1 -1
- package/lib/Types/Bussines.d.ts.map +1 -1
- package/lib/Types/Call.d.ts +3 -1
- package/lib/Types/Call.d.ts.map +1 -1
- package/lib/Types/Chat.d.ts +2 -2
- package/lib/Types/Chat.d.ts.map +1 -1
- package/lib/Types/Events.d.ts +16 -5
- package/lib/Types/Events.d.ts.map +1 -1
- package/lib/Types/Events.js +1 -1
- package/lib/Types/Events.js.map +1 -1
- package/lib/Types/GroupMetadata.d.ts +4 -0
- package/lib/Types/GroupMetadata.d.ts.map +1 -1
- package/lib/Types/Label.d.ts +3 -23
- package/lib/Types/Label.d.ts.map +1 -1
- package/lib/Types/Label.js +24 -23
- package/lib/Types/Label.js.map +1 -1
- package/lib/Types/LabelAssociation.d.ts +5 -6
- package/lib/Types/LabelAssociation.d.ts.map +1 -1
- package/lib/Types/LabelAssociation.js +4 -5
- package/lib/Types/LabelAssociation.js.map +1 -1
- package/lib/Types/Message.d.ts +45 -10
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Types/Message.js +5 -7
- package/lib/Types/Message.js.map +1 -1
- package/lib/Types/Newsletter.d.ts +5 -28
- package/lib/Types/Newsletter.d.ts.map +1 -1
- package/lib/Types/Newsletter.js +34 -30
- package/lib/Types/Newsletter.js.map +1 -1
- package/lib/Types/Product.d.ts +75 -0
- package/lib/Types/Product.d.ts.map +1 -0
- package/lib/Types/Product.js +2 -0
- package/lib/Types/Product.js.map +1 -0
- package/lib/Types/Reachout.d.ts +3 -18
- package/lib/Types/Reachout.d.ts.map +1 -1
- package/lib/Types/Reachout.js +20 -19
- package/lib/Types/Reachout.js.map +1 -1
- package/lib/Types/Signal.d.ts +91 -0
- package/lib/Types/Signal.d.ts.map +1 -0
- package/lib/Types/Signal.js +2 -0
- package/lib/Types/Signal.js.map +1 -0
- package/lib/Types/Socket.d.ts +76 -30
- package/lib/Types/Socket.d.ts.map +1 -1
- package/lib/Types/State.d.ts +19 -0
- package/lib/Types/State.d.ts.map +1 -1
- package/lib/Types/State.js +26 -1
- package/lib/Types/State.js.map +1 -1
- package/lib/Types/USync.d.ts +9 -0
- package/lib/Types/USync.d.ts.map +1 -0
- package/lib/Types/USync.js +2 -0
- package/lib/Types/USync.js.map +1 -0
- package/lib/Types/index.d.ts +9 -12
- package/lib/Types/index.d.ts.map +1 -1
- package/lib/Types/index.js +30 -30
- package/lib/Types/index.js.map +1 -1
- package/lib/Utils/auth-utils.d.ts +2 -0
- package/lib/Utils/auth-utils.d.ts.map +1 -0
- package/lib/Utils/auth-utils.js +3 -0
- package/lib/Utils/auth-utils.js.map +1 -0
- package/lib/Utils/boom.d.ts +8 -32
- package/lib/Utils/boom.d.ts.map +1 -1
- package/lib/Utils/boom.js +7 -62
- package/lib/Utils/boom.js.map +1 -1
- package/lib/Utils/browser-utils.d.ts +1 -0
- package/lib/Utils/browser-utils.d.ts.map +1 -1
- package/lib/Utils/browser-utils.js +6 -0
- package/lib/Utils/browser-utils.js.map +1 -1
- package/lib/Utils/companion-reg-client-utils.d.ts +8 -0
- package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
- package/lib/Utils/companion-reg-client-utils.js +32 -0
- package/lib/Utils/companion-reg-client-utils.js.map +1 -0
- package/lib/Utils/crypto.d.ts +31 -0
- package/lib/Utils/crypto.d.ts.map +1 -0
- package/lib/Utils/crypto.js +81 -0
- package/lib/Utils/crypto.js.map +1 -0
- package/lib/Utils/event-buffer.d.ts +15 -4
- package/lib/Utils/event-buffer.d.ts.map +1 -1
- package/lib/Utils/event-buffer.js +471 -34
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/generics.d.ts +52 -15
- package/lib/Utils/generics.d.ts.map +1 -1
- package/lib/Utils/generics.js +269 -25
- package/lib/Utils/generics.js.map +1 -1
- package/lib/Utils/group-stub-params.d.ts +1 -28
- package/lib/Utils/group-stub-params.d.ts.map +1 -1
- package/lib/Utils/group-stub-params.js +2 -44
- package/lib/Utils/group-stub-params.js.map +1 -1
- package/lib/Utils/identity-change-handler.d.ts +2 -0
- package/lib/Utils/identity-change-handler.d.ts.map +1 -0
- package/lib/Utils/identity-change-handler.js +4 -0
- package/lib/Utils/identity-change-handler.js.map +1 -0
- package/lib/Utils/index.d.ts +9 -0
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +19 -10
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/logger.d.ts.map +1 -1
- package/lib/Utils/message-retry-manager.d.ts +2 -0
- package/lib/Utils/message-retry-manager.d.ts.map +1 -0
- package/lib/Utils/message-retry-manager.js +4 -0
- package/lib/Utils/message-retry-manager.js.map +1 -0
- package/lib/Utils/messages-media.d.ts +28 -6
- package/lib/Utils/messages-media.d.ts.map +1 -1
- package/lib/Utils/messages-media.js +119 -1
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts +33 -9
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +106 -33
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/native-crypto-provider.d.ts +10 -8
- package/lib/Utils/native-crypto-provider.d.ts.map +1 -1
- package/lib/Utils/native-crypto-provider.js +13 -56
- package/lib/Utils/native-crypto-provider.js.map +1 -1
- package/lib/Utils/pre-key-manager.d.ts +2 -0
- package/lib/Utils/pre-key-manager.d.ts.map +1 -0
- package/lib/Utils/pre-key-manager.js +3 -0
- package/lib/Utils/pre-key-manager.js.map +1 -0
- package/lib/Utils/process-history-message.d.ts +15 -4
- package/lib/Utils/process-history-message.d.ts.map +1 -1
- package/lib/Utils/process-history-message.js +162 -95
- package/lib/Utils/process-history-message.js.map +1 -1
- package/lib/Utils/process-message.d.ts +25 -0
- package/lib/Utils/process-message.d.ts.map +1 -0
- package/lib/Utils/process-message.js +79 -0
- package/lib/Utils/process-message.js.map +1 -0
- package/lib/Utils/signal.d.ts +29 -0
- package/lib/Utils/signal.d.ts.map +1 -0
- package/lib/Utils/signal.js +133 -0
- package/lib/Utils/signal.js.map +1 -0
- package/lib/Utils/sparse-array.d.ts +9 -0
- package/lib/Utils/sparse-array.d.ts.map +1 -0
- package/lib/Utils/sparse-array.js +12 -0
- package/lib/Utils/sparse-array.js.map +1 -0
- package/lib/Utils/stanza-ack.d.ts +2 -0
- package/lib/Utils/stanza-ack.d.ts.map +1 -0
- package/lib/Utils/stanza-ack.js +3 -0
- package/lib/Utils/stanza-ack.js.map +1 -0
- package/lib/Utils/use-bridge-store.d.ts.map +1 -1
- package/lib/Utils/use-bridge-store.js +191 -7
- package/lib/Utils/use-bridge-store.js.map +1 -1
- package/lib/Utils/use-memory-store.d.ts +8 -4
- package/lib/Utils/use-memory-store.d.ts.map +1 -1
- package/lib/Utils/use-memory-store.js +87 -10
- package/lib/Utils/use-memory-store.js.map +1 -1
- package/lib/Utils/use-multi-file-auth-state.d.ts +4 -2
- package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -1
- package/lib/Utils/use-multi-file-auth-state.js +13 -5
- package/lib/Utils/use-multi-file-auth-state.js.map +1 -1
- package/lib/Utils/wrap-legacy-store.d.ts +8 -32
- package/lib/Utils/wrap-legacy-store.d.ts.map +1 -1
- package/lib/Utils/wrap-legacy-store.js +7 -1214
- package/lib/Utils/wrap-legacy-store.js.map +1 -1
- package/lib/WABinary/generic-utils.d.ts +8 -0
- package/lib/WABinary/generic-utils.d.ts.map +1 -1
- package/lib/WABinary/generic-utils.js +63 -1
- package/lib/WABinary/generic-utils.js.map +1 -1
- package/lib/WABinary/index.js +2 -2
- package/lib/WABinary/jid-utils.d.ts +22 -10
- package/lib/WABinary/jid-utils.d.ts.map +1 -1
- package/lib/WABinary/jid-utils.js +40 -9
- package/lib/WABinary/jid-utils.js.map +1 -1
- package/lib/WAProto/compatibility-schema.d.ts +25 -0
- package/lib/WAProto/compatibility-schema.d.ts.map +1 -0
- package/lib/WAProto/compatibility-schema.js +6 -0
- package/lib/WAProto/compatibility-schema.js.map +1 -0
- package/lib/WAProto/runtime.d.ts +14019 -0
- package/lib/WAProto/runtime.js +17 -0
- package/lib/WAProto/runtime.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +27 -0
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +39 -0
- package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +33 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +41 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +19 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncLIDProtocol.js +15 -0
- package/lib/WAUSync/Protocols/USyncLIDProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +25 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +21 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/index.d.ts +6 -0
- package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/index.js +6 -0
- package/lib/WAUSync/Protocols/index.js.map +1 -0
- package/lib/WAUSync/USyncQuery.d.ts +30 -0
- package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
- package/lib/WAUSync/USyncQuery.js +78 -0
- package/lib/WAUSync/USyncQuery.js.map +1 -0
- package/lib/WAUSync/USyncUser.d.ts +17 -0
- package/lib/WAUSync/USyncUser.d.ts.map +1 -0
- package/lib/WAUSync/USyncUser.js +31 -0
- package/lib/WAUSync/USyncUser.js.map +1 -0
- package/lib/WAUSync/index.d.ts +4 -0
- package/lib/WAUSync/index.d.ts.map +1 -0
- package/lib/WAUSync/index.js +4 -0
- package/lib/WAUSync/index.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +9 -9
- package/lib/index.js.map +1 -1
- package/package.json +33 -15
- package/lib/Bridge/__tests__/adapt.test.d.ts +0 -2
- package/lib/Bridge/__tests__/adapt.test.d.ts.map +0 -1
- package/lib/Bridge/__tests__/adapt.test.js +0 -387
- package/lib/Bridge/__tests__/adapt.test.js.map +0 -1
- package/lib/Bridge/__tests__/dts-drift.test.d.ts +0 -13
- package/lib/Bridge/__tests__/dts-drift.test.d.ts.map +0 -1
- package/lib/Bridge/__tests__/dts-drift.test.js +0 -90
- package/lib/Bridge/__tests__/dts-drift.test.js.map +0 -1
- package/lib/Bridge/__tests__/fixtures.d.ts +0 -192
- package/lib/Bridge/__tests__/fixtures.d.ts.map +0 -1
- package/lib/Bridge/__tests__/fixtures.js +0 -99
- package/lib/Bridge/__tests__/fixtures.js.map +0 -1
- package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts +0 -73
- package/lib/Utils/__tests__/_legacy-store-fixtures.d.ts.map +0 -1
- package/lib/Utils/__tests__/_legacy-store-fixtures.js +0 -113
- package/lib/Utils/__tests__/_legacy-store-fixtures.js.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts +0 -10
- package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.d.ts.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js +0 -291
- package/lib/Utils/__tests__/wrap-legacy-store-coverage.test.js.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts +0 -8
- package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.d.ts.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js +0 -91
- package/lib/Utils/__tests__/wrap-legacy-store-lid-mapping.test.js.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts +0 -10
- package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.d.ts.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js +0 -125
- package/lib/Utils/__tests__/wrap-legacy-store-sender-key.test.js.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts +0 -2
- package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.d.ts.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js +0 -214
- package/lib/Utils/__tests__/wrap-legacy-store-session-ratchet.test.js.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts +0 -14
- package/lib/Utils/__tests__/wrap-legacy-store-session.test.d.ts.map +0 -1
- package/lib/Utils/__tests__/wrap-legacy-store-session.test.js +0 -305
- package/lib/Utils/__tests__/wrap-legacy-store-session.test.js.map +0 -1
- package/lib/Utils/bridge-call.d.ts +0 -22
- package/lib/Utils/bridge-call.d.ts.map +0 -1
- package/lib/Utils/bridge-call.js +0 -105
- package/lib/Utils/bridge-call.js.map +0 -1
- package/lib/Utils/lid-mapping-store.d.ts +0 -81
- package/lib/Utils/lid-mapping-store.d.ts.map +0 -1
- package/lib/Utils/lid-mapping-store.js +0 -126
- package/lib/Utils/lid-mapping-store.js.map +0 -1
- package/lib/__tests__/expect.d.ts +0 -44
- package/lib/__tests__/expect.d.ts.map +0 -1
- package/lib/__tests__/expect.js +0 -100
- package/lib/__tests__/expect.js.map +0 -1
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
// Ratchet semantic equivalence across the wrap-legacy-store boundary:
|
|
2
|
-
// chain converted Rust→JS (or back) must derive identical message keys.
|
|
3
|
-
// Pins the off-by-one between Rust `chain_key.index` and JS `chainKey.counter`.
|
|
4
|
-
import { Buffer } from 'node:buffer';
|
|
5
|
-
import { createHmac } from 'node:crypto';
|
|
6
|
-
import { describe, test } from 'node:test';
|
|
7
|
-
import SessionRecord from 'libsignal/src/session_record.js';
|
|
8
|
-
import { proto as bridgeProto } from 'whatsapp-rust-bridge/proto-types';
|
|
9
|
-
import { expect } from "../../__tests__/expect.js";
|
|
10
|
-
import { fill, makeWrapped, BRIDGE_SESSION_KEY_LID, UPSTREAM_SESSION_KEY_LID } from "./_legacy-store-fixtures.js";
|
|
11
|
-
const MSG_SEED = Buffer.from([0x01]);
|
|
12
|
-
const CHAIN_SEED = Buffer.from([0x02]);
|
|
13
|
-
const hmac = (key, seed) => createHmac('sha256', key).update(seed).digest();
|
|
14
|
-
function walkChain(initialKey, n) {
|
|
15
|
-
let k = Buffer.from(initialKey);
|
|
16
|
-
const msgKeys = [];
|
|
17
|
-
for (let i = 0; i < n; i++) {
|
|
18
|
-
msgKeys.push(hmac(k, MSG_SEED));
|
|
19
|
-
k = hmac(k, CHAIN_SEED);
|
|
20
|
-
}
|
|
21
|
-
return { keyAfterNSteps: k, msgKeys };
|
|
22
|
-
}
|
|
23
|
-
// Replica of libsignal's private SessionCipher.fillMessageKeys.
|
|
24
|
-
function jsFillMessageKeys(chain, target) {
|
|
25
|
-
while (chain.chainKey.counter < target) {
|
|
26
|
-
const key = chain.chainKey.key;
|
|
27
|
-
chain.chainKey.counter += 1;
|
|
28
|
-
chain.messageKeys[chain.chainKey.counter] = hmac(key, MSG_SEED);
|
|
29
|
-
chain.chainKey.key = hmac(key, CHAIN_SEED);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
function buildBridgeProto(opts) {
|
|
33
|
-
const { initialChainKey, senderRustIndex = 0, receiverRustIndex = 0, senderRatchetPub = fill(33, 2), receiverRatchetPub = fill(33, 5) } = opts;
|
|
34
|
-
return bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
|
|
35
|
-
currentSession: bridgeProto.SessionStructure.create({
|
|
36
|
-
sessionVersion: 3,
|
|
37
|
-
localIdentityPublic: fill(33, 9),
|
|
38
|
-
remoteIdentityPublic: fill(33, 8),
|
|
39
|
-
rootKey: fill(32, 11),
|
|
40
|
-
previousCounter: 0,
|
|
41
|
-
senderChain: {
|
|
42
|
-
senderRatchetKey: senderRatchetPub,
|
|
43
|
-
senderRatchetKeyPrivate: fill(32, 3),
|
|
44
|
-
chainKey: { index: senderRustIndex, key: new Uint8Array(initialChainKey) },
|
|
45
|
-
messageKeys: []
|
|
46
|
-
},
|
|
47
|
-
receiverChains: [
|
|
48
|
-
{
|
|
49
|
-
senderRatchetKey: receiverRatchetPub,
|
|
50
|
-
chainKey: { index: receiverRustIndex, key: new Uint8Array(initialChainKey) },
|
|
51
|
-
messageKeys: []
|
|
52
|
-
}
|
|
53
|
-
],
|
|
54
|
-
remoteRegistrationId: 1234,
|
|
55
|
-
localRegistrationId: 5678,
|
|
56
|
-
aliceBaseKey: fill(33, 7)
|
|
57
|
-
}),
|
|
58
|
-
previousSessions: []
|
|
59
|
-
})).finish();
|
|
60
|
-
}
|
|
61
|
-
function buildJsSession(opts) {
|
|
62
|
-
const baseKey = Buffer.from(fill(33, 7));
|
|
63
|
-
return {
|
|
64
|
-
_sessions: {
|
|
65
|
-
[baseKey.toString('base64')]: {
|
|
66
|
-
registrationId: 9999,
|
|
67
|
-
currentRatchet: {
|
|
68
|
-
ephemeralKeyPair: {
|
|
69
|
-
pubKey: opts.senderRatchetPub.toString('base64'),
|
|
70
|
-
privKey: opts.senderRatchetPriv.toString('base64')
|
|
71
|
-
},
|
|
72
|
-
lastRemoteEphemeralKey: Buffer.alloc(0).toString('base64'),
|
|
73
|
-
previousCounter: 0,
|
|
74
|
-
rootKey: Buffer.from(fill(32, 11)).toString('base64')
|
|
75
|
-
},
|
|
76
|
-
indexInfo: {
|
|
77
|
-
baseKey: baseKey.toString('base64'),
|
|
78
|
-
baseKeyType: 1,
|
|
79
|
-
closed: -1,
|
|
80
|
-
used: 0,
|
|
81
|
-
created: 0,
|
|
82
|
-
remoteIdentityKey: Buffer.from(fill(33, 8)).toString('base64')
|
|
83
|
-
},
|
|
84
|
-
_chains: {
|
|
85
|
-
[opts.senderRatchetPub.toString('base64')]: {
|
|
86
|
-
chainKey: { counter: opts.counter, key: opts.chainKey.toString('base64') },
|
|
87
|
-
chainType: 1,
|
|
88
|
-
messageKeys: {}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
version: 'v1'
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
async function writeProtoAndReadJS(protoBytes) {
|
|
97
|
-
const { wrapped, keys } = await makeWrapped();
|
|
98
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, protoBytes);
|
|
99
|
-
const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
|
|
100
|
-
if (!stored)
|
|
101
|
-
throw new Error('wrapper did not write session under upstream key');
|
|
102
|
-
return SessionRecord.deserialize(stored);
|
|
103
|
-
}
|
|
104
|
-
function chainFor(rec, ratchetPub) {
|
|
105
|
-
const session = rec.getOpenSession();
|
|
106
|
-
if (!session)
|
|
107
|
-
throw new Error('no open session');
|
|
108
|
-
const chain = session._chains[Buffer.from(ratchetPub).toString('base64')];
|
|
109
|
-
if (!chain)
|
|
110
|
-
throw new Error(`no chain for ratchet ${Buffer.from(ratchetPub).toString('hex').slice(0, 12)}…`);
|
|
111
|
-
return chain;
|
|
112
|
-
}
|
|
113
|
-
describe('wrap-legacy-store: Rust↔JS chain-key index/counter mapping', () => {
|
|
114
|
-
const senderRatchet = fill(33, 2);
|
|
115
|
-
const receiverRatchet = fill(33, 5);
|
|
116
|
-
test('fresh Rust chain (index=0) → JS counter=-1', async () => {
|
|
117
|
-
const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: Buffer.from(fill(32, 42)), senderRustIndex: 0 }));
|
|
118
|
-
expect(chainFor(rec, senderRatchet).chainKey.counter).toBe(-1);
|
|
119
|
-
});
|
|
120
|
-
test('Rust index=N → JS counter=N-1 for arbitrary N', async () => {
|
|
121
|
-
for (const n of [0, 1, 2, 5, 17, 100, 940]) {
|
|
122
|
-
const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: Buffer.from(fill(32, 50)), senderRustIndex: n }));
|
|
123
|
-
expect(chainFor(rec, senderRatchet).chainKey.counter).toBe(n - 1);
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
test('receiver chain mirrors sender chain mapping', async () => {
|
|
127
|
-
const rec = await writeProtoAndReadJS(buildBridgeProto({
|
|
128
|
-
initialChainKey: Buffer.from(fill(32, 11)),
|
|
129
|
-
senderRustIndex: 0,
|
|
130
|
-
receiverRustIndex: 5
|
|
131
|
-
}));
|
|
132
|
-
expect(chainFor(rec, receiverRatchet).chainKey.counter).toBe(4);
|
|
133
|
-
});
|
|
134
|
-
test('JS counter=N → Rust index=N+1 (inverse direction)', async () => {
|
|
135
|
-
const { wrapped, keys } = await makeWrapped();
|
|
136
|
-
keys.raw['session'] = {
|
|
137
|
-
[UPSTREAM_SESSION_KEY_LID]: buildJsSession({
|
|
138
|
-
senderRatchetPub: Buffer.from(fill(33, 2)),
|
|
139
|
-
senderRatchetPriv: Buffer.from(fill(32, 3)),
|
|
140
|
-
chainKey: Buffer.from(fill(32, 70)),
|
|
141
|
-
counter: 6
|
|
142
|
-
})
|
|
143
|
-
};
|
|
144
|
-
const protoBytes = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
|
|
145
|
-
const decoded = bridgeProto.RecordStructure.decode(protoBytes);
|
|
146
|
-
expect(decoded.currentSession?.senderChain?.chainKey?.index).toBe(7);
|
|
147
|
-
});
|
|
148
|
-
test('fresh JS chain (counter=-1) → Rust index=0', async () => {
|
|
149
|
-
const { wrapped, keys } = await makeWrapped();
|
|
150
|
-
keys.raw['session'] = {
|
|
151
|
-
[UPSTREAM_SESSION_KEY_LID]: buildJsSession({
|
|
152
|
-
senderRatchetPub: Buffer.from(fill(33, 2)),
|
|
153
|
-
senderRatchetPriv: Buffer.from(fill(32, 3)),
|
|
154
|
-
chainKey: Buffer.from(fill(32, 21)),
|
|
155
|
-
counter: -1
|
|
156
|
-
})
|
|
157
|
-
};
|
|
158
|
-
const protoBytes = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
|
|
159
|
-
const decoded = bridgeProto.RecordStructure.decode(protoBytes);
|
|
160
|
-
expect(decoded.currentSession?.senderChain?.chainKey?.index).toBe(0);
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
describe('wrap-legacy-store: ratchet semantic equivalence after Rust→JS', () => {
|
|
164
|
-
const senderRatchet = fill(33, 2);
|
|
165
|
-
const receiverRatchet = fill(33, 5);
|
|
166
|
-
test('JS derives the same msg key Rust would derive natively', async () => {
|
|
167
|
-
const k0 = Buffer.from(fill(32, 99));
|
|
168
|
-
const { keyAfterNSteps: k3 } = walkChain(k0, 3);
|
|
169
|
-
const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: k3, senderRustIndex: 3 }));
|
|
170
|
-
const chain = chainFor(rec, senderRatchet);
|
|
171
|
-
expect(chain.chainKey.counter).toBe(2);
|
|
172
|
-
expect(chain.chainKey.key.equals(k3)).toBe(true);
|
|
173
|
-
const jsChain = {
|
|
174
|
-
chainKey: { counter: chain.chainKey.counter, key: chain.chainKey.key },
|
|
175
|
-
chainType: chain.chainType,
|
|
176
|
-
messageKeys: {}
|
|
177
|
-
};
|
|
178
|
-
jsFillMessageKeys(jsChain, 3);
|
|
179
|
-
const { msgKeys: expected } = walkChain(k0, 4);
|
|
180
|
-
expect(jsChain.messageKeys[3].equals(expected[3])).toBe(true);
|
|
181
|
-
});
|
|
182
|
-
test('receiver chain decrypts the next inbound msg after roundtrip', async () => {
|
|
183
|
-
const k0 = Buffer.from(fill(32, 33));
|
|
184
|
-
const { keyAfterNSteps: kN } = walkChain(k0, 5);
|
|
185
|
-
const rec = await writeProtoAndReadJS(buildBridgeProto({ initialChainKey: kN, senderRustIndex: 0, receiverRustIndex: 5 }));
|
|
186
|
-
const chain = chainFor(rec, receiverRatchet);
|
|
187
|
-
expect(chain.chainKey.counter).toBe(4);
|
|
188
|
-
const jsChain = {
|
|
189
|
-
chainKey: { counter: chain.chainKey.counter, key: chain.chainKey.key },
|
|
190
|
-
chainType: chain.chainType,
|
|
191
|
-
messageKeys: {}
|
|
192
|
-
};
|
|
193
|
-
jsFillMessageKeys(jsChain, 5);
|
|
194
|
-
const { msgKeys: expected } = walkChain(k0, 6);
|
|
195
|
-
expect(jsChain.messageKeys[5].equals(expected[5])).toBe(true);
|
|
196
|
-
});
|
|
197
|
-
test('Rust→JS→Rust is a fixed point for chain state (index + bytes)', async () => {
|
|
198
|
-
const initial = Buffer.from(fill(32, 77));
|
|
199
|
-
const original = buildBridgeProto({
|
|
200
|
-
initialChainKey: initial,
|
|
201
|
-
senderRustIndex: 4,
|
|
202
|
-
receiverRustIndex: 6
|
|
203
|
-
});
|
|
204
|
-
const { wrapped } = await makeWrapped();
|
|
205
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, original);
|
|
206
|
-
const round = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
|
|
207
|
-
const decoded = bridgeProto.RecordStructure.decode(round);
|
|
208
|
-
expect(decoded.currentSession?.senderChain?.chainKey?.index).toBe(4);
|
|
209
|
-
expect(decoded.currentSession?.receiverChains?.[0]?.chainKey?.index).toBe(6);
|
|
210
|
-
expect(Buffer.from(decoded.currentSession?.senderChain?.chainKey?.key ?? []).equals(initial)).toBe(true);
|
|
211
|
-
expect(Buffer.from(decoded.currentSession?.receiverChains?.[0]?.chainKey?.key ?? []).equals(initial)).toBe(true);
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
//# sourceMappingURL=wrap-legacy-store-session-ratchet.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-legacy-store-session-ratchet.test.js","sourceRoot":"","sources":["../../../src/Utils/__tests__/wrap-legacy-store-session-ratchet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-impl gap for `session`:
|
|
3
|
-
* • Bridge: store `session`, key `{user}[:dev]@{server}.{sig}`,
|
|
4
|
-
* value = protobuf `RecordStructure` (current + previous_sessions).
|
|
5
|
-
* • Upstream: store `session`, key `{signalUser}.{deviceId}`,
|
|
6
|
-
* value = JS object `{ _sessions: { [base64BaseKey]: SessionEntry }, version: 'v1' }`.
|
|
7
|
-
*
|
|
8
|
-
* Without conversion, upstream's `loadSession` either misses the key or
|
|
9
|
-
* throws inside `SessionRecord.deserialize`, falling back to a fresh
|
|
10
|
-
* PreKey signal handshake on every cross-impl swap. These tests pin
|
|
11
|
-
* direct, no-re-handshake compatibility.
|
|
12
|
-
*/
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=wrap-legacy-store-session.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-legacy-store-session.test.d.ts","sourceRoot":"","sources":["../../../src/Utils/__tests__/wrap-legacy-store-session.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-impl gap for `session`:
|
|
3
|
-
* • Bridge: store `session`, key `{user}[:dev]@{server}.{sig}`,
|
|
4
|
-
* value = protobuf `RecordStructure` (current + previous_sessions).
|
|
5
|
-
* • Upstream: store `session`, key `{signalUser}.{deviceId}`,
|
|
6
|
-
* value = JS object `{ _sessions: { [base64BaseKey]: SessionEntry }, version: 'v1' }`.
|
|
7
|
-
*
|
|
8
|
-
* Without conversion, upstream's `loadSession` either misses the key or
|
|
9
|
-
* throws inside `SessionRecord.deserialize`, falling back to a fresh
|
|
10
|
-
* PreKey signal handshake on every cross-impl swap. These tests pin
|
|
11
|
-
* direct, no-re-handshake compatibility.
|
|
12
|
-
*/
|
|
13
|
-
import { Buffer } from 'node:buffer';
|
|
14
|
-
import { describe, test } from 'node:test';
|
|
15
|
-
import SessionRecord from 'libsignal/src/session_record.js';
|
|
16
|
-
import { proto as bridgeProto } from 'whatsapp-rust-bridge/proto-types';
|
|
17
|
-
import { expect } from "../../__tests__/expect.js";
|
|
18
|
-
import { BRIDGE_SESSION_KEY_LID, BRIDGE_SESSION_KEY_PN, BRIDGE_SESSION_KEY_PN_DEV, UPSTREAM_SESSION_KEY_LID, UPSTREAM_SESSION_KEY_PN, UPSTREAM_SESSION_KEY_PN_DEV, buildBridgeSessionBytes, fill, makeWrapped } from "./_legacy-store-fixtures.js";
|
|
19
|
-
describe('wrap-legacy-store: session key-name translation', () => {
|
|
20
|
-
test('LID → upstream `_1.deviceId`', async () => {
|
|
21
|
-
const { wrapped, keys } = await makeWrapped();
|
|
22
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, buildBridgeSessionBytes());
|
|
23
|
-
expect(keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID]).toBeDefined();
|
|
24
|
-
expect(keys.raw['session']?.[BRIDGE_SESSION_KEY_LID]).toBeUndefined();
|
|
25
|
-
});
|
|
26
|
-
test('PN no-device → bare `{user}.{signalDev}`', async () => {
|
|
27
|
-
const { wrapped, keys } = await makeWrapped();
|
|
28
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_PN, buildBridgeSessionBytes());
|
|
29
|
-
expect(keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN]).toBeDefined();
|
|
30
|
-
});
|
|
31
|
-
test('PN with JID device → device suffix preserved', async () => {
|
|
32
|
-
const { wrapped, keys } = await makeWrapped();
|
|
33
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_PN_DEV, buildBridgeSessionBytes());
|
|
34
|
-
expect(keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN_DEV]).toBeDefined();
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe('wrap-legacy-store: session value-byte translation', () => {
|
|
38
|
-
test('bridge proto bytes load via upstream `SessionRecord.deserialize` as OPEN', async () => {
|
|
39
|
-
const { wrapped, keys } = await makeWrapped();
|
|
40
|
-
const aliceBaseKey = Buffer.from(fill(33, 100));
|
|
41
|
-
const rootKey = Buffer.from(fill(32, 11));
|
|
42
|
-
const remoteIdentity = Buffer.from(fill(33, 17));
|
|
43
|
-
const senderRatchetPub = Buffer.from(fill(33, 23));
|
|
44
|
-
const senderRatchetPriv = Buffer.from(fill(32, 29));
|
|
45
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, buildBridgeSessionBytes({
|
|
46
|
-
rootKey: new Uint8Array(rootKey),
|
|
47
|
-
aliceBaseKey: new Uint8Array(aliceBaseKey),
|
|
48
|
-
remoteIdentity: new Uint8Array(remoteIdentity),
|
|
49
|
-
senderRatchetPub: new Uint8Array(senderRatchetPub),
|
|
50
|
-
senderRatchetPriv: new Uint8Array(senderRatchetPriv),
|
|
51
|
-
remoteRegistrationId: 99,
|
|
52
|
-
previousCounter: 4
|
|
53
|
-
}));
|
|
54
|
-
const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
|
|
55
|
-
const rec = SessionRecord.deserialize(stored);
|
|
56
|
-
expect(rec.haveOpenSession()).toBe(true);
|
|
57
|
-
const open = rec.getOpenSession();
|
|
58
|
-
expect(open.registrationId).toBe(99);
|
|
59
|
-
expect(open.currentRatchet.previousCounter).toBe(4);
|
|
60
|
-
expect(Buffer.from(open.currentRatchet.rootKey).equals(rootKey)).toBe(true);
|
|
61
|
-
expect(Buffer.from(open.currentRatchet.ephemeralKeyPair.pubKey).equals(senderRatchetPub)).toBe(true);
|
|
62
|
-
expect(Buffer.from(open.currentRatchet.ephemeralKeyPair.privKey).equals(senderRatchetPriv)).toBe(true);
|
|
63
|
-
expect(Buffer.from(open.indexInfo.baseKey).equals(aliceBaseKey)).toBe(true);
|
|
64
|
-
expect(Buffer.from(open.indexInfo.remoteIdentityKey).equals(remoteIdentity)).toBe(true);
|
|
65
|
-
expect(open.indexInfo.closed).toBe(-1);
|
|
66
|
-
expect(Object.keys(open._chains).length).toBeGreaterThanOrEqual(1);
|
|
67
|
-
});
|
|
68
|
-
test('upstream JS object → bridge GET produces valid proto with same fields', async () => {
|
|
69
|
-
const { wrapped, keys } = await makeWrapped();
|
|
70
|
-
const baseKey = Buffer.alloc(33, 0xa0);
|
|
71
|
-
const rootKey = Buffer.alloc(32, 0xb0);
|
|
72
|
-
const remoteIdent = Buffer.alloc(33, 0xc0);
|
|
73
|
-
const ephPub = Buffer.alloc(33, 0xd0);
|
|
74
|
-
const ephPriv = Buffer.alloc(32, 0xe0);
|
|
75
|
-
const lastRemoteEph = Buffer.alloc(33, 0xf0);
|
|
76
|
-
keys.raw['session'] = {
|
|
77
|
-
[UPSTREAM_SESSION_KEY_LID]: {
|
|
78
|
-
_sessions: {
|
|
79
|
-
[baseKey.toString('base64')]: {
|
|
80
|
-
registrationId: 4242,
|
|
81
|
-
currentRatchet: {
|
|
82
|
-
ephemeralKeyPair: { pubKey: ephPub.toString('base64'), privKey: ephPriv.toString('base64') },
|
|
83
|
-
lastRemoteEphemeralKey: lastRemoteEph.toString('base64'),
|
|
84
|
-
previousCounter: 7,
|
|
85
|
-
rootKey: rootKey.toString('base64')
|
|
86
|
-
},
|
|
87
|
-
indexInfo: {
|
|
88
|
-
baseKey: baseKey.toString('base64'),
|
|
89
|
-
baseKeyType: 1,
|
|
90
|
-
closed: -1,
|
|
91
|
-
used: Date.now(),
|
|
92
|
-
created: Date.now(),
|
|
93
|
-
remoteIdentityKey: remoteIdent.toString('base64')
|
|
94
|
-
},
|
|
95
|
-
_chains: {}
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
version: 'v1'
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
const protoOut = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
|
|
102
|
-
const decoded = bridgeProto.RecordStructure.decode(protoOut);
|
|
103
|
-
const cs = decoded.currentSession;
|
|
104
|
-
expect(cs.remoteRegistrationId).toBe(4242);
|
|
105
|
-
expect(cs.previousCounter).toBe(7);
|
|
106
|
-
expect(Buffer.from(cs.rootKey).equals(rootKey)).toBe(true);
|
|
107
|
-
expect(Buffer.from(cs.aliceBaseKey).equals(baseKey)).toBe(true);
|
|
108
|
-
expect(Buffer.from(cs.remoteIdentityPublic).equals(remoteIdent)).toBe(true);
|
|
109
|
-
expect(Buffer.from(cs.senderChain.senderRatchetKey).equals(ephPub)).toBe(true);
|
|
110
|
-
expect(Buffer.from(cs.senderChain.senderRatchetKeyPrivate).equals(ephPriv)).toBe(true);
|
|
111
|
-
});
|
|
112
|
-
test('round-trip: bridge SET → upstream loadSession → still open + same identity', async () => {
|
|
113
|
-
const { wrapped, keys } = await makeWrapped();
|
|
114
|
-
const remoteIdentity = Buffer.alloc(33, 0x11);
|
|
115
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_PN, buildBridgeSessionBytes({ remoteIdentity: new Uint8Array(remoteIdentity), remoteRegistrationId: 7 }));
|
|
116
|
-
const rec = SessionRecord.deserialize(keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN]);
|
|
117
|
-
const open = rec.getOpenSession();
|
|
118
|
-
expect(open.registrationId).toBe(7);
|
|
119
|
-
expect(Buffer.from(open.indexInfo.remoteIdentityKey).equals(remoteIdentity)).toBe(true);
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
describe('wrap-legacy-store: session edge cases', () => {
|
|
123
|
-
test('lastRemoteEphemeralKey does NOT collide with senderRatchetKey when receiverChains empty', async () => {
|
|
124
|
-
// Regression: the converter previously used senderRatchetKey as a
|
|
125
|
-
// placeholder, which made upstream's `maybeStepRatchet` close the
|
|
126
|
-
// SENDER chain on the next peer ratchet (corrupting outbound
|
|
127
|
-
// encryption). Now uses aliceBaseKey (when bob) or empty buffer.
|
|
128
|
-
const { wrapped, keys } = await makeWrapped();
|
|
129
|
-
const senderRatchetPub = fill(33, 2);
|
|
130
|
-
const aliceBaseKey = fill(33, 7);
|
|
131
|
-
const protoBytes = bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
|
|
132
|
-
currentSession: bridgeProto.SessionStructure.create({
|
|
133
|
-
sessionVersion: 3,
|
|
134
|
-
rootKey: fill(32, 1),
|
|
135
|
-
previousCounter: 0,
|
|
136
|
-
senderChain: {
|
|
137
|
-
senderRatchetKey: senderRatchetPub,
|
|
138
|
-
senderRatchetKeyPrivate: fill(32, 3),
|
|
139
|
-
chainKey: { index: 0, key: fill(32, 4) },
|
|
140
|
-
messageKeys: []
|
|
141
|
-
},
|
|
142
|
-
receiverChains: [],
|
|
143
|
-
remoteIdentityPublic: fill(33, 8),
|
|
144
|
-
remoteRegistrationId: 99,
|
|
145
|
-
localRegistrationId: 11,
|
|
146
|
-
aliceBaseKey,
|
|
147
|
-
pendingPreKey: { preKeyId: 42, signedPreKeyId: 7, baseKey: aliceBaseKey }
|
|
148
|
-
}),
|
|
149
|
-
previousSessions: []
|
|
150
|
-
})).finish();
|
|
151
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, protoBytes);
|
|
152
|
-
const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
|
|
153
|
-
const entry = Object.values(stored._sessions)[0];
|
|
154
|
-
expect(entry.currentRatchet.lastRemoteEphemeralKey).not.toBe(Buffer.from(senderRatchetPub).toString('base64'));
|
|
155
|
-
});
|
|
156
|
-
test('baseKeyType: pendingPreKey present → OURS (alice), absent → THEIRS (bob)', async () => {
|
|
157
|
-
// Regression: previously set OURS whenever aliceBaseKey existed
|
|
158
|
-
// (always), making upstream `getSession(byBaseKey)` throw.
|
|
159
|
-
const baseKeyTypeFor = async (withPendingPreKey) => {
|
|
160
|
-
const { wrapped, keys } = await makeWrapped();
|
|
161
|
-
const aliceBaseKey = fill(33, 7);
|
|
162
|
-
const session = bridgeProto.SessionStructure.create({
|
|
163
|
-
sessionVersion: 3,
|
|
164
|
-
rootKey: fill(32, 1),
|
|
165
|
-
previousCounter: 0,
|
|
166
|
-
senderChain: {
|
|
167
|
-
senderRatchetKey: fill(33, 2),
|
|
168
|
-
senderRatchetKeyPrivate: fill(32, 3),
|
|
169
|
-
chainKey: { index: 0, key: fill(32, 4) },
|
|
170
|
-
messageKeys: []
|
|
171
|
-
},
|
|
172
|
-
receiverChains: withPendingPreKey
|
|
173
|
-
? []
|
|
174
|
-
: [
|
|
175
|
-
{
|
|
176
|
-
senderRatchetKey: fill(33, 5),
|
|
177
|
-
chainKey: { index: 1, key: fill(32, 6) },
|
|
178
|
-
messageKeys: []
|
|
179
|
-
}
|
|
180
|
-
],
|
|
181
|
-
remoteIdentityPublic: fill(33, 8),
|
|
182
|
-
remoteRegistrationId: 1,
|
|
183
|
-
aliceBaseKey,
|
|
184
|
-
...(withPendingPreKey ? { pendingPreKey: { preKeyId: 1, signedPreKeyId: 2, baseKey: aliceBaseKey } } : {})
|
|
185
|
-
});
|
|
186
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_PN, bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({ currentSession: session, previousSessions: [] })).finish());
|
|
187
|
-
const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_PN];
|
|
188
|
-
return Object.values(stored._sessions)[0].indexInfo.baseKeyType;
|
|
189
|
-
};
|
|
190
|
-
expect(await baseKeyTypeFor(true)).toBe(1); // OURS
|
|
191
|
-
expect(await baseKeyTypeFor(false)).toBe(2); // THEIRS
|
|
192
|
-
});
|
|
193
|
-
test('multi-session: currentSession + previousSessions[] all land in upstream `_sessions`', async () => {
|
|
194
|
-
const { wrapped, keys } = await makeWrapped();
|
|
195
|
-
const mkSession = (rootSeed, baseKeySeed) => bridgeProto.SessionStructure.create({
|
|
196
|
-
sessionVersion: 3,
|
|
197
|
-
rootKey: fill(32, rootSeed),
|
|
198
|
-
previousCounter: 0,
|
|
199
|
-
senderChain: {
|
|
200
|
-
senderRatchetKey: fill(33, rootSeed * 3),
|
|
201
|
-
senderRatchetKeyPrivate: fill(32, rootSeed * 5),
|
|
202
|
-
chainKey: { index: 0, key: fill(32, rootSeed * 7) },
|
|
203
|
-
messageKeys: []
|
|
204
|
-
},
|
|
205
|
-
receiverChains: [
|
|
206
|
-
{
|
|
207
|
-
senderRatchetKey: fill(33, rootSeed * 11),
|
|
208
|
-
chainKey: { index: 1, key: fill(32, rootSeed * 13) },
|
|
209
|
-
messageKeys: []
|
|
210
|
-
}
|
|
211
|
-
],
|
|
212
|
-
remoteIdentityPublic: fill(33, 8),
|
|
213
|
-
remoteRegistrationId: 1,
|
|
214
|
-
aliceBaseKey: fill(33, baseKeySeed)
|
|
215
|
-
});
|
|
216
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
|
|
217
|
-
currentSession: mkSession(1, 100),
|
|
218
|
-
previousSessions: [mkSession(2, 200), mkSession(3, 250)]
|
|
219
|
-
})).finish());
|
|
220
|
-
const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
|
|
221
|
-
expect(stored.version).toBe('v1');
|
|
222
|
-
expect(Object.keys(stored._sessions).length).toBe(3);
|
|
223
|
-
const open = Object.values(stored._sessions).filter(e => e.indexInfo.closed === -1);
|
|
224
|
-
expect(open.length).toBe(1);
|
|
225
|
-
expect(open[0].indexInfo.baseKey).toBe(Buffer.from(fill(33, 100)).toString('base64'));
|
|
226
|
-
// Front of Rust's previous_sessions = newest archived → must get
|
|
227
|
-
// the LARGER `closed` timestamp so upstream's removeOldSessions
|
|
228
|
-
// evicts the oldest first.
|
|
229
|
-
const closedEntries = Object.values(stored._sessions).filter(e => e.indexInfo.closed > 0);
|
|
230
|
-
const newer = closedEntries.find(e => e.indexInfo.baseKey === Buffer.from(fill(33, 200)).toString('base64'));
|
|
231
|
-
const older = closedEntries.find(e => e.indexInfo.baseKey === Buffer.from(fill(33, 250)).toString('base64'));
|
|
232
|
-
expect(newer.indexInfo.closed).toBeGreaterThan(older.indexInfo.closed);
|
|
233
|
-
});
|
|
234
|
-
test('pendingPreKey round-trips with field rename `signedPreKeyId↔signedKeyId`', async () => {
|
|
235
|
-
const { wrapped, keys } = await makeWrapped();
|
|
236
|
-
const aliceBaseKey = fill(33, 7);
|
|
237
|
-
await wrapped.set('session', BRIDGE_SESSION_KEY_LID, bridgeProto.RecordStructure.encode(bridgeProto.RecordStructure.create({
|
|
238
|
-
currentSession: bridgeProto.SessionStructure.create({
|
|
239
|
-
sessionVersion: 3,
|
|
240
|
-
rootKey: fill(32, 1),
|
|
241
|
-
previousCounter: 0,
|
|
242
|
-
senderChain: {
|
|
243
|
-
senderRatchetKey: fill(33, 2),
|
|
244
|
-
senderRatchetKeyPrivate: fill(32, 3),
|
|
245
|
-
chainKey: { index: 0, key: fill(32, 4) },
|
|
246
|
-
messageKeys: []
|
|
247
|
-
},
|
|
248
|
-
receiverChains: [],
|
|
249
|
-
remoteIdentityPublic: fill(33, 8),
|
|
250
|
-
remoteRegistrationId: 1,
|
|
251
|
-
aliceBaseKey,
|
|
252
|
-
pendingPreKey: { preKeyId: 314, signedPreKeyId: 271, baseKey: aliceBaseKey }
|
|
253
|
-
}),
|
|
254
|
-
previousSessions: []
|
|
255
|
-
})).finish());
|
|
256
|
-
const stored = keys.raw['session']?.[UPSTREAM_SESSION_KEY_LID];
|
|
257
|
-
const entry = Object.values(stored._sessions)[0];
|
|
258
|
-
expect(entry.pendingPreKey.preKeyId).toBe(314);
|
|
259
|
-
expect(entry.pendingPreKey.signedKeyId).toBe(271); // rename: signedPreKeyId → signedKeyId
|
|
260
|
-
expect(entry.pendingPreKey.baseKey).toBe(Buffer.from(aliceBaseKey).toString('base64'));
|
|
261
|
-
const protoOut = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
|
|
262
|
-
const decoded = bridgeProto.RecordStructure.decode(protoOut);
|
|
263
|
-
expect(decoded.currentSession?.pendingPreKey?.preKeyId).toBe(314);
|
|
264
|
-
expect(decoded.currentSession?.pendingPreKey?.signedPreKeyId).toBe(271);
|
|
265
|
-
});
|
|
266
|
-
test('aliceBaseKey preserved on JS→bridge regardless of baseKeyType (bob-side restoration)', async () => {
|
|
267
|
-
// Regression: previously dropped aliceBaseKey when baseKeyType=THEIRS,
|
|
268
|
-
// breaking Rust's `find_matching_previous_session_index` lookup on
|
|
269
|
-
// subsequent PreKeySignal arrivals.
|
|
270
|
-
const { wrapped, keys } = await makeWrapped();
|
|
271
|
-
const baseKey = Buffer.alloc(33, 0xa0);
|
|
272
|
-
keys.raw['session'] = {
|
|
273
|
-
[UPSTREAM_SESSION_KEY_LID]: {
|
|
274
|
-
_sessions: {
|
|
275
|
-
[baseKey.toString('base64')]: {
|
|
276
|
-
registrationId: 4242,
|
|
277
|
-
currentRatchet: {
|
|
278
|
-
ephemeralKeyPair: {
|
|
279
|
-
pubKey: Buffer.alloc(33, 0xd0).toString('base64'),
|
|
280
|
-
privKey: Buffer.alloc(32, 0xe0).toString('base64')
|
|
281
|
-
},
|
|
282
|
-
lastRemoteEphemeralKey: Buffer.alloc(33, 0xf0).toString('base64'),
|
|
283
|
-
previousCounter: 0,
|
|
284
|
-
rootKey: Buffer.alloc(32, 0xb0).toString('base64')
|
|
285
|
-
},
|
|
286
|
-
indexInfo: {
|
|
287
|
-
baseKey: baseKey.toString('base64'),
|
|
288
|
-
baseKeyType: 2, // THEIRS — we're bob
|
|
289
|
-
closed: -1,
|
|
290
|
-
used: Date.now(),
|
|
291
|
-
created: Date.now(),
|
|
292
|
-
remoteIdentityKey: Buffer.alloc(33, 0xc0).toString('base64')
|
|
293
|
-
},
|
|
294
|
-
_chains: {}
|
|
295
|
-
}
|
|
296
|
-
},
|
|
297
|
-
version: 'v1'
|
|
298
|
-
}
|
|
299
|
-
};
|
|
300
|
-
const protoOut = (await wrapped.get('session', BRIDGE_SESSION_KEY_LID));
|
|
301
|
-
const decoded = bridgeProto.RecordStructure.decode(protoOut);
|
|
302
|
-
expect(Buffer.from(decoded.currentSession.aliceBaseKey).equals(baseKey)).toBe(true);
|
|
303
|
-
});
|
|
304
|
-
});
|
|
305
|
-
//# sourceMappingURL=wrap-legacy-store-session.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-legacy-store-session.test.js","sourceRoot":"","sources":["../../../src/Utils/__tests__/wrap-legacy-store-session.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrap a bridge client so that any async method call captures the JS-side
|
|
3
|
-
* call stack and re-stamps it onto rejections. The wrapped client is
|
|
4
|
-
* indistinguishable from the unwrapped one for callers — same shape, same
|
|
5
|
-
* promises, same return values.
|
|
6
|
-
*
|
|
7
|
-
* Implementation:
|
|
8
|
-
* - `Proxy` intercepts every `get` for a method.
|
|
9
|
-
* - The intercepted function captures a placeholder `Error` *before*
|
|
10
|
-
* awaiting (synchronously in the JS event loop tick of the call site),
|
|
11
|
-
* calling `Error.captureStackTrace(_, fn)` to elide its own frame and
|
|
12
|
-
* pin the stack to the user's call site.
|
|
13
|
-
* - On rejection, `reStampStack` grafts the captured stack onto the
|
|
14
|
-
* `WhatsAppError`'s `stack` and rethrows.
|
|
15
|
-
* - On success / non-promise returns / non-function gets: passthrough.
|
|
16
|
-
*
|
|
17
|
-
* Cost: one `new Error()` + one `captureStackTrace` per async call. V8 has
|
|
18
|
-
* fast paths for both — sub-microsecond. Negligible for the rates the
|
|
19
|
-
* bridge sees in practice.
|
|
20
|
-
*/
|
|
21
|
-
export declare function wrapBridgeClient<T extends object>(client: T): T;
|
|
22
|
-
//# sourceMappingURL=bridge-call.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-call.d.ts","sourceRoot":"","sources":["../../src/Utils/bridge-call.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAoD/D"}
|