@mtcute/core 0.7.3 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +26 -3
- package/cjs/highlevel/base.d.ts +3 -1
- package/cjs/highlevel/base.js +18 -0
- package/cjs/highlevel/base.js.map +1 -1
- package/cjs/highlevel/client.d.ts +23 -10
- package/cjs/highlevel/client.js +26 -19
- package/cjs/highlevel/client.js.map +1 -1
- package/cjs/highlevel/client.types.d.ts +14 -0
- package/cjs/highlevel/client.types.js.map +1 -1
- package/cjs/highlevel/index.d.ts +0 -2
- package/cjs/highlevel/index.js +0 -2
- package/cjs/highlevel/index.js.map +1 -1
- package/cjs/highlevel/methods/_imports.js.map +1 -1
- package/cjs/highlevel/methods/_init.js +4 -29
- package/cjs/highlevel/methods/_init.js.map +1 -1
- package/cjs/highlevel/methods/bots/get-callback-answer.js +2 -2
- package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/create-folder.js +1 -1
- package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/edit-folder.js +1 -1
- package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/find-folder.js +1 -1
- package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
- package/cjs/highlevel/methods/dialogs/get-folders.d.ts +1 -1
- package/cjs/highlevel/methods/dialogs/get-folders.js +1 -1
- package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
- package/cjs/highlevel/methods/files/download-file.d.ts +1 -10
- package/cjs/highlevel/methods/files/download-file.js +1 -32
- package/cjs/highlevel/methods/files/download-file.js.map +1 -1
- package/cjs/highlevel/methods/files/download-iterable.js +2 -1
- package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
- package/cjs/highlevel/methods/files/download-node-stream.js +4 -0
- package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -0
- package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -1
- package/cjs/highlevel/methods/files/normalize-input-media.js +2 -1
- package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
- package/cjs/highlevel/methods/files/upload-file.d.ts +0 -3
- package/cjs/highlevel/methods/files/upload-file.js +24 -11
- package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
- package/cjs/highlevel/methods/messages/find-in-update.js +23 -8
- package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-media-group.d.ts +1 -1
- package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-media.d.ts +2 -2
- package/cjs/highlevel/methods/messages/send-media.js +5 -4
- package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
- package/cjs/highlevel/methods/messages/send-text.d.ts +1 -1
- package/cjs/highlevel/methods/messages/send-text.js +7 -6
- package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
- package/cjs/highlevel/methods/misc/with-params.d.ts +10 -0
- package/cjs/highlevel/methods/misc/with-params.js +32 -0
- package/cjs/highlevel/methods/misc/with-params.js.map +1 -0
- package/cjs/highlevel/methods.d.ts +13 -1
- package/cjs/highlevel/methods.js +4 -6
- package/cjs/highlevel/methods.js.map +1 -1
- package/cjs/highlevel/types/bots/command-scope/index.d.ts +10 -0
- package/cjs/highlevel/types/bots/command-scope/index.js +29 -0
- package/cjs/highlevel/types/bots/command-scope/index.js.map +1 -0
- package/cjs/highlevel/types/bots/command-scope/inner.d.ts +54 -0
- package/cjs/highlevel/types/bots/command-scope/inner.js +76 -0
- package/cjs/highlevel/types/bots/command-scope/inner.js.map +1 -0
- package/cjs/highlevel/types/bots/index.d.ts +4 -4
- package/cjs/highlevel/types/bots/index.js +4 -4
- package/cjs/highlevel/types/bots/index.js.map +1 -1
- package/cjs/highlevel/types/bots/inline-message/factories.d.ts +43 -0
- package/cjs/highlevel/types/bots/inline-message/factories.js +175 -0
- package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -0
- package/cjs/highlevel/types/bots/inline-message/index.d.ts +3 -0
- package/cjs/highlevel/types/bots/inline-message/index.js +33 -0
- package/cjs/highlevel/types/bots/inline-message/index.js.map +1 -0
- package/{esm/highlevel/types/bots/input/input-inline-message.d.ts → cjs/highlevel/types/bots/inline-message/types.d.ts} +2 -45
- package/cjs/highlevel/types/bots/inline-message/types.js +3 -0
- package/cjs/highlevel/types/bots/inline-message/types.js.map +1 -0
- package/cjs/highlevel/types/bots/inline-result/factories.d.ts +94 -0
- package/cjs/highlevel/types/bots/inline-result/factories.js +486 -0
- package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -0
- package/cjs/highlevel/types/bots/inline-result/index.d.ts +3 -0
- package/cjs/highlevel/types/bots/inline-result/index.js +33 -0
- package/cjs/highlevel/types/bots/inline-result/index.js.map +1 -0
- package/{esm/highlevel/types/bots/input/input-inline-result.d.ts → cjs/highlevel/types/bots/inline-result/types.d.ts} +1 -95
- package/cjs/highlevel/types/bots/inline-result/types.js +3 -0
- package/cjs/highlevel/types/bots/inline-result/types.js.map +1 -0
- package/cjs/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
- package/cjs/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
- package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -0
- package/cjs/highlevel/types/bots/keyboards/factories.d.ts +195 -0
- package/cjs/highlevel/types/bots/keyboards/factories.js +366 -0
- package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -0
- package/cjs/highlevel/types/bots/keyboards/index.d.ts +14 -0
- package/cjs/highlevel/types/bots/keyboards/index.js +33 -0
- package/cjs/highlevel/types/bots/keyboards/index.js.map +1 -0
- package/cjs/highlevel/types/bots/keyboards/types.d.ts +34 -0
- package/cjs/highlevel/types/bots/keyboards/types.js +3 -0
- package/cjs/highlevel/types/bots/keyboards/types.js.map +1 -0
- package/cjs/highlevel/types/files/utils.d.ts +9 -6
- package/cjs/highlevel/types/files/utils.js.map +1 -1
- package/cjs/highlevel/types/media/document.js +3 -2
- package/cjs/highlevel/types/media/document.js.map +1 -1
- package/cjs/highlevel/types/media/index.d.ts +1 -1
- package/cjs/highlevel/types/media/index.js +1 -1
- package/cjs/highlevel/types/media/index.js.map +1 -1
- package/cjs/highlevel/types/media/input-media/factories.d.ts +141 -0
- package/cjs/highlevel/types/media/input-media/factories.js +250 -0
- package/cjs/highlevel/types/media/input-media/factories.js.map +1 -0
- package/cjs/highlevel/types/media/input-media/index.d.ts +3 -0
- package/cjs/highlevel/types/media/input-media/index.js +33 -0
- package/cjs/highlevel/types/media/input-media/index.js.map +1 -0
- package/cjs/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
- package/cjs/highlevel/types/media/input-media/types.js +3 -0
- package/cjs/highlevel/types/media/input-media/types.js.map +1 -0
- package/cjs/highlevel/types/media/thumbnail.js +5 -4
- package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
- package/cjs/highlevel/types/messages/message.d.ts +1 -1
- package/cjs/highlevel/types/messages/message.js +3 -3
- package/cjs/highlevel/types/messages/message.js.map +1 -1
- package/cjs/highlevel/types/misc/index.d.ts +1 -1
- package/cjs/highlevel/types/misc/index.js +1 -1
- package/cjs/highlevel/types/misc/index.js.map +1 -1
- package/cjs/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/allow.js +36 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js +31 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js +32 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/index.js +33 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/types.js +3 -0
- package/cjs/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
- package/cjs/highlevel/types/peers/chat-photo.js +3 -2
- package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
- package/cjs/highlevel/types/updates/callback-query.js +2 -2
- package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
- package/cjs/highlevel/types/updates/user-status-update.js +1 -1
- package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
- package/cjs/highlevel/updates/manager.d.ts +5 -3
- package/cjs/highlevel/updates/manager.js +81 -67
- package/cjs/highlevel/updates/manager.js.map +1 -1
- package/cjs/highlevel/utils/convert-file-id.js +7 -6
- package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
- package/cjs/highlevel/utils/file-utils.js +8 -4
- package/cjs/highlevel/utils/file-utils.js.map +1 -1
- package/cjs/highlevel/utils/inline-utils.js +3 -2
- package/cjs/highlevel/utils/inline-utils.js.map +1 -1
- package/cjs/highlevel/utils/inspectable.d.ts +1 -1
- package/cjs/highlevel/utils/inspectable.js +3 -2
- package/cjs/highlevel/utils/inspectable.js.map +1 -1
- package/cjs/highlevel/utils/memoize.d.ts +1 -1
- package/cjs/highlevel/utils/memoize.js +1 -0
- package/cjs/highlevel/utils/memoize.js.map +1 -1
- package/cjs/highlevel/utils/stream-utils.d.ts +0 -2
- package/cjs/highlevel/utils/stream-utils.js +1 -28
- package/cjs/highlevel/utils/stream-utils.js.map +1 -1
- package/cjs/highlevel/utils/string-session.js +3 -2
- package/cjs/highlevel/utils/string-session.js.map +1 -1
- package/cjs/highlevel/worker/index.d.ts +3 -0
- package/cjs/highlevel/{types/bots/input → worker}/index.js +3 -2
- package/cjs/highlevel/worker/index.js.map +1 -0
- package/cjs/highlevel/worker/port.d.ts +6 -3
- package/cjs/highlevel/worker/port.js +8 -2
- package/cjs/highlevel/worker/port.js.map +1 -1
- package/cjs/highlevel/worker/protocol.d.ts +5 -1
- package/cjs/highlevel/worker/protocol.js.map +1 -1
- package/cjs/highlevel/worker/worker.d.ts +11 -4
- package/cjs/highlevel/worker/worker.js +53 -49
- package/cjs/highlevel/worker/worker.js.map +1 -1
- package/cjs/network/client.d.ts +4 -4
- package/cjs/network/client.js +3 -1
- package/cjs/network/client.js.map +1 -1
- package/cjs/network/multi-session-connection.d.ts +1 -0
- package/cjs/network/multi-session-connection.js +6 -0
- package/cjs/network/multi-session-connection.js.map +1 -1
- package/cjs/network/network-manager.d.ts +5 -1
- package/cjs/network/network-manager.js +24 -15
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/persistent-connection.d.ts +3 -0
- package/cjs/network/persistent-connection.js +23 -1
- package/cjs/network/persistent-connection.js.map +1 -1
- package/cjs/network/session-connection.d.ts +2 -0
- package/cjs/network/session-connection.js +18 -4
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/network/transports/index.d.ts +0 -3
- package/cjs/network/transports/index.js +0 -4
- package/cjs/network/transports/index.js.map +1 -1
- package/cjs/platform.d.ts +18 -0
- package/cjs/platform.js +36 -0
- package/cjs/platform.js.map +1 -0
- package/cjs/storage/index.d.ts +2 -2
- package/cjs/storage/index.js +2 -2
- package/cjs/storage/index.js.map +1 -1
- package/{esm/storage/providers → cjs/storage}/memory/driver.d.ts +1 -1
- package/cjs/storage/memory/driver.js.map +1 -0
- package/{esm/storage/providers → cjs/storage}/memory/index.d.ts +2 -2
- package/cjs/storage/memory/index.js.map +1 -0
- package/cjs/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
- package/cjs/storage/memory/repository/auth-keys.js.map +1 -0
- package/{esm/storage/providers → cjs/storage}/memory/repository/kv.d.ts +1 -1
- package/cjs/storage/memory/repository/kv.js.map +1 -0
- package/{esm/storage/providers → cjs/storage}/memory/repository/peers.d.ts +1 -1
- package/cjs/storage/memory/repository/peers.js.map +1 -0
- package/{esm/storage/providers → cjs/storage}/memory/repository/ref-messages.d.ts +1 -1
- package/cjs/storage/memory/repository/ref-messages.js.map +1 -0
- package/cjs/storage/sqlite/driver.d.ts +24 -0
- package/cjs/storage/sqlite/driver.js +129 -0
- package/cjs/storage/sqlite/driver.js.map +1 -0
- package/cjs/storage/sqlite/index.d.ts +17 -0
- package/cjs/storage/sqlite/index.js +35 -0
- package/cjs/storage/sqlite/index.js.map +1 -0
- package/cjs/storage/sqlite/repository/auth-keys.d.ts +20 -0
- package/cjs/storage/sqlite/repository/auth-keys.js +68 -0
- package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -0
- package/cjs/storage/sqlite/repository/kv.d.ts +14 -0
- package/cjs/storage/sqlite/repository/kv.js +96 -0
- package/cjs/storage/sqlite/repository/kv.js.map +1 -0
- package/cjs/storage/sqlite/repository/peers.d.ts +16 -0
- package/cjs/storage/sqlite/repository/peers.js +77 -0
- package/cjs/storage/sqlite/repository/peers.js.map +1 -0
- package/cjs/storage/sqlite/repository/ref-messages.d.ts +16 -0
- package/cjs/storage/sqlite/repository/ref-messages.js +49 -0
- package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -0
- package/cjs/storage/sqlite/types.d.ts +18 -0
- package/cjs/storage/sqlite/types.js +3 -0
- package/cjs/storage/sqlite/types.js.map +1 -0
- package/cjs/storage/storage.js +2 -1
- package/cjs/storage/storage.js.map +1 -1
- package/cjs/utils/binary/asn1-parser.js +3 -3
- package/cjs/utils/binary/asn1-parser.js.map +1 -1
- package/cjs/utils/crypto/abstract.d.ts +0 -1
- package/cjs/utils/crypto/abstract.js.map +1 -1
- package/cjs/utils/crypto/index.d.ts +0 -2
- package/cjs/utils/crypto/index.js +0 -3
- package/cjs/utils/crypto/index.js.map +1 -1
- package/cjs/utils/crypto/keys.js +5 -3
- package/cjs/utils/crypto/keys.js.map +1 -1
- package/cjs/utils/crypto/password.js +3 -3
- package/cjs/utils/crypto/password.js.map +1 -1
- package/cjs/utils/dcs.d.ts +4 -0
- package/cjs/utils/dcs.js +0 -4
- package/cjs/utils/dcs.js.map +1 -1
- package/cjs/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
- package/cjs/utils/error-reporting.js.map +1 -0
- package/cjs/utils/index.d.ts +4 -1
- package/cjs/utils/index.js +6 -1
- package/cjs/utils/index.js.map +1 -1
- package/cjs/utils/links/common.js +1 -1
- package/cjs/utils/links/common.js.map +1 -1
- package/cjs/utils/logger.d.ts +1 -0
- package/cjs/utils/logger.js +9 -22
- package/cjs/utils/logger.js.map +1 -1
- package/esm/highlevel/base.d.ts +3 -1
- package/esm/highlevel/base.js +18 -0
- package/esm/highlevel/base.js.map +1 -1
- package/esm/highlevel/client.d.ts +23 -10
- package/esm/highlevel/client.js +12 -19
- package/esm/highlevel/client.js.map +1 -1
- package/esm/highlevel/client.types.d.ts +14 -0
- package/esm/highlevel/client.types.js.map +1 -1
- package/esm/highlevel/index.d.ts +0 -2
- package/esm/highlevel/index.js +0 -2
- package/esm/highlevel/index.js.map +1 -1
- package/esm/highlevel/methods/_imports.js.map +1 -1
- package/esm/highlevel/methods/_init.js +4 -29
- package/esm/highlevel/methods/_init.js.map +1 -1
- package/esm/highlevel/methods/bots/get-callback-answer.js +2 -2
- package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
- package/esm/highlevel/methods/dialogs/create-folder.js +1 -1
- package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
- package/esm/highlevel/methods/dialogs/edit-folder.js +1 -1
- package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
- package/esm/highlevel/methods/dialogs/find-folder.js +1 -1
- package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
- package/esm/highlevel/methods/dialogs/get-folders.d.ts +1 -1
- package/esm/highlevel/methods/dialogs/get-folders.js +1 -1
- package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
- package/esm/highlevel/methods/files/download-file.d.ts +1 -10
- package/esm/highlevel/methods/files/download-file.js +2 -30
- package/esm/highlevel/methods/files/download-file.js.map +1 -1
- package/esm/highlevel/methods/files/download-iterable.js +2 -1
- package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
- package/esm/highlevel/methods/files/download-node-stream.js +3 -0
- package/esm/highlevel/methods/files/download-node-stream.js.map +1 -0
- package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -1
- package/esm/highlevel/methods/files/normalize-input-media.js +2 -1
- package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
- package/esm/highlevel/methods/files/upload-file.d.ts +0 -3
- package/esm/highlevel/methods/files/upload-file.js +24 -11
- package/esm/highlevel/methods/files/upload-file.js.map +1 -1
- package/esm/highlevel/methods/messages/find-in-update.js +23 -8
- package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
- package/esm/highlevel/methods/messages/send-media-group.d.ts +1 -1
- package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
- package/esm/highlevel/methods/messages/send-media.d.ts +2 -2
- package/esm/highlevel/methods/messages/send-media.js +4 -3
- package/esm/highlevel/methods/messages/send-media.js.map +1 -1
- package/esm/highlevel/methods/messages/send-text.d.ts +1 -1
- package/esm/highlevel/methods/messages/send-text.js +4 -3
- package/esm/highlevel/methods/messages/send-text.js.map +1 -1
- package/esm/highlevel/methods/misc/with-params.d.ts +10 -0
- package/esm/highlevel/methods/misc/with-params.js +28 -0
- package/esm/highlevel/methods/misc/with-params.js.map +1 -0
- package/esm/highlevel/methods.d.ts +13 -1
- package/esm/highlevel/methods.js +0 -1
- package/esm/highlevel/methods.js.map +1 -1
- package/esm/highlevel/types/auth/sent-code.js +4 -3
- package/esm/highlevel/types/bots/command-scope/index.d.ts +10 -0
- package/esm/highlevel/types/bots/command-scope/index.js +11 -0
- package/esm/highlevel/types/bots/command-scope/index.js.map +1 -0
- package/esm/highlevel/types/bots/command-scope/inner.d.ts +54 -0
- package/esm/highlevel/types/bots/command-scope/inner.js +69 -0
- package/esm/highlevel/types/bots/command-scope/inner.js.map +1 -0
- package/esm/highlevel/types/bots/game-high-score.js +5 -4
- package/esm/highlevel/types/bots/index.d.ts +4 -4
- package/esm/highlevel/types/bots/index.js +4 -4
- package/esm/highlevel/types/bots/index.js.map +1 -1
- package/esm/highlevel/types/bots/inline-message/factories.d.ts +43 -0
- package/esm/highlevel/types/bots/inline-message/factories.js +163 -0
- package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -0
- package/esm/highlevel/types/bots/inline-message/index.d.ts +3 -0
- package/esm/highlevel/types/bots/inline-message/index.js +4 -0
- package/esm/highlevel/types/bots/inline-message/index.js.map +1 -0
- package/{cjs/highlevel/types/bots/input/input-inline-message.d.ts → esm/highlevel/types/bots/inline-message/types.d.ts} +2 -45
- package/esm/highlevel/types/bots/inline-message/types.js +2 -0
- package/esm/highlevel/types/bots/inline-message/types.js.map +1 -0
- package/esm/highlevel/types/bots/inline-result/factories.d.ts +94 -0
- package/esm/highlevel/types/bots/inline-result/factories.js +470 -0
- package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -0
- package/esm/highlevel/types/bots/inline-result/index.d.ts +3 -0
- package/esm/highlevel/types/bots/inline-result/index.js +4 -0
- package/esm/highlevel/types/bots/inline-result/index.js.map +1 -0
- package/{cjs/highlevel/types/bots/input/input-inline-result.d.ts → esm/highlevel/types/bots/inline-result/types.d.ts} +1 -95
- package/esm/highlevel/types/bots/inline-result/types.js +2 -0
- package/esm/highlevel/types/bots/inline-result/types.js.map +1 -0
- package/esm/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
- package/esm/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
- package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -0
- package/esm/highlevel/types/bots/keyboards/factories.d.ts +195 -0
- package/esm/highlevel/types/bots/keyboards/factories.js +341 -0
- package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -0
- package/esm/highlevel/types/bots/keyboards/index.d.ts +14 -0
- package/esm/highlevel/types/bots/keyboards/index.js +15 -0
- package/esm/highlevel/types/bots/keyboards/index.js.map +1 -0
- package/esm/highlevel/types/bots/keyboards/types.d.ts +34 -0
- package/esm/highlevel/types/bots/keyboards/types.js +2 -0
- package/esm/highlevel/types/bots/keyboards/types.js.map +1 -0
- package/esm/highlevel/types/files/file-location.js +4 -3
- package/esm/highlevel/types/files/utils.d.ts +9 -6
- package/esm/highlevel/types/files/utils.js.map +1 -1
- package/esm/highlevel/types/files/web-document.js +4 -3
- package/esm/highlevel/types/media/audio.js +5 -4
- package/esm/highlevel/types/media/contact.js +4 -3
- package/esm/highlevel/types/media/dice.js +4 -3
- package/esm/highlevel/types/media/document.js +8 -6
- package/esm/highlevel/types/media/document.js.map +1 -1
- package/esm/highlevel/types/media/game.js +5 -4
- package/esm/highlevel/types/media/index.d.ts +1 -1
- package/esm/highlevel/types/media/index.js +1 -1
- package/esm/highlevel/types/media/index.js.map +1 -1
- package/esm/highlevel/types/media/input-media/factories.d.ts +141 -0
- package/esm/highlevel/types/media/input-media/factories.js +228 -0
- package/esm/highlevel/types/media/input-media/factories.js.map +1 -0
- package/esm/highlevel/types/media/input-media/index.d.ts +3 -0
- package/esm/highlevel/types/media/input-media/index.js +4 -0
- package/esm/highlevel/types/media/input-media/index.js.map +1 -0
- package/esm/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
- package/esm/highlevel/types/media/input-media/types.js +2 -0
- package/esm/highlevel/types/media/input-media/types.js.map +1 -0
- package/esm/highlevel/types/media/invoice.js +9 -7
- package/esm/highlevel/types/media/location.js +7 -5
- package/esm/highlevel/types/media/photo.js +5 -4
- package/esm/highlevel/types/media/poll.js +5 -4
- package/esm/highlevel/types/media/sticker.js +5 -4
- package/esm/highlevel/types/media/story.js +4 -3
- package/esm/highlevel/types/media/thumbnail.js +10 -8
- package/esm/highlevel/types/media/thumbnail.js.map +1 -1
- package/esm/highlevel/types/media/venue.js +5 -4
- package/esm/highlevel/types/media/video.js +5 -4
- package/esm/highlevel/types/media/voice.js +5 -4
- package/esm/highlevel/types/media/web-page.js +5 -4
- package/esm/highlevel/types/messages/dialog.js +5 -4
- package/esm/highlevel/types/messages/draft-message.js +5 -4
- package/esm/highlevel/types/messages/message-entity.js +5 -4
- package/esm/highlevel/types/messages/message-forward.js +5 -4
- package/esm/highlevel/types/messages/message-reactions.js +5 -4
- package/esm/highlevel/types/messages/message-replies.js +5 -4
- package/esm/highlevel/types/messages/message.d.ts +1 -1
- package/esm/highlevel/types/messages/message.js +6 -5
- package/esm/highlevel/types/messages/message.js.map +1 -1
- package/esm/highlevel/types/messages/replied-message.js +5 -4
- package/esm/highlevel/types/misc/index.d.ts +1 -1
- package/esm/highlevel/types/misc/index.js +1 -1
- package/esm/highlevel/types/misc/index.js.map +1 -1
- package/esm/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
- package/esm/highlevel/types/misc/input-privacy-rule/allow.js +31 -0
- package/esm/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
- package/esm/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
- package/esm/highlevel/types/misc/input-privacy-rule/bundle.js +4 -0
- package/esm/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
- package/esm/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
- package/esm/highlevel/types/misc/input-privacy-rule/disallow.js +27 -0
- package/esm/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
- package/esm/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
- package/esm/highlevel/types/misc/input-privacy-rule/index.js +4 -0
- package/esm/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
- package/esm/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
- package/esm/highlevel/types/misc/input-privacy-rule/types.js +2 -0
- package/esm/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
- package/esm/highlevel/types/misc/sticker-set.js +5 -4
- package/esm/highlevel/types/misc/takeout-session.js +4 -3
- package/esm/highlevel/types/peers/chat-colors.js +4 -3
- package/esm/highlevel/types/peers/chat-event/index.js +5 -4
- package/esm/highlevel/types/peers/chat-invite-link-member.js +5 -4
- package/esm/highlevel/types/peers/chat-invite-link.js +5 -4
- package/esm/highlevel/types/peers/chat-location.js +5 -4
- package/esm/highlevel/types/peers/chat-member.js +5 -4
- package/esm/highlevel/types/peers/chat-permissions.js +4 -3
- package/esm/highlevel/types/peers/chat-photo.js +12 -9
- package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
- package/esm/highlevel/types/peers/chat-preview.js +5 -4
- package/esm/highlevel/types/peers/chat.js +5 -4
- package/esm/highlevel/types/peers/forum-topic.js +5 -4
- package/esm/highlevel/types/peers/user.js +5 -4
- package/esm/highlevel/types/premium/boost-slot.js +5 -4
- package/esm/highlevel/types/premium/boost-stats.js +4 -3
- package/esm/highlevel/types/premium/boost.js +5 -4
- package/esm/highlevel/types/reactions/emoji-status.js +4 -3
- package/esm/highlevel/types/reactions/peer-reaction.js +5 -4
- package/esm/highlevel/types/reactions/reaction-count.js +4 -3
- package/esm/highlevel/types/stories/all-stories.js +5 -4
- package/esm/highlevel/types/stories/interactive/channel-post.js +5 -4
- package/esm/highlevel/types/stories/interactive/location.js +5 -4
- package/esm/highlevel/types/stories/interactive/reaction.js +4 -3
- package/esm/highlevel/types/stories/interactive/venue.js +5 -4
- package/esm/highlevel/types/stories/peer-stories.js +5 -4
- package/esm/highlevel/types/stories/stealth-mode.js +4 -3
- package/esm/highlevel/types/stories/story-interactions.js +5 -4
- package/esm/highlevel/types/stories/story-viewer.js +9 -7
- package/esm/highlevel/types/stories/story.js +5 -4
- package/esm/highlevel/types/updates/bot-chat-join-request.js +5 -4
- package/esm/highlevel/types/updates/bot-reaction.js +9 -7
- package/esm/highlevel/types/updates/bot-stopped.js +5 -4
- package/esm/highlevel/types/updates/callback-query.js +11 -9
- package/esm/highlevel/types/updates/callback-query.js.map +1 -1
- package/esm/highlevel/types/updates/chat-join-request.js +5 -4
- package/esm/highlevel/types/updates/chat-member-update.js +5 -4
- package/esm/highlevel/types/updates/chosen-inline-result.js +5 -4
- package/esm/highlevel/types/updates/delete-message-update.js +4 -3
- package/esm/highlevel/types/updates/delete-story-update.js +5 -4
- package/esm/highlevel/types/updates/history-read-update.js +4 -3
- package/esm/highlevel/types/updates/inline-query.js +5 -4
- package/esm/highlevel/types/updates/poll-update.js +5 -4
- package/esm/highlevel/types/updates/poll-vote.js +5 -4
- package/esm/highlevel/types/updates/pre-checkout-query.js +5 -4
- package/esm/highlevel/types/updates/story-update.js +5 -4
- package/esm/highlevel/types/updates/user-status-update.js +5 -4
- package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
- package/esm/highlevel/types/updates/user-typing-update.js +4 -3
- package/esm/highlevel/updates/manager.d.ts +5 -3
- package/esm/highlevel/updates/manager.js +81 -67
- package/esm/highlevel/updates/manager.js.map +1 -1
- package/esm/highlevel/utils/convert-file-id.js +7 -6
- package/esm/highlevel/utils/convert-file-id.js.map +1 -1
- package/esm/highlevel/utils/file-utils.js +8 -4
- package/esm/highlevel/utils/file-utils.js.map +1 -1
- package/esm/highlevel/utils/inline-utils.js +4 -3
- package/esm/highlevel/utils/inline-utils.js.map +1 -1
- package/esm/highlevel/utils/inspectable.d.ts +1 -1
- package/esm/highlevel/utils/inspectable.js +3 -2
- package/esm/highlevel/utils/inspectable.js.map +1 -1
- package/esm/highlevel/utils/memoize.d.ts +1 -1
- package/esm/highlevel/utils/memoize.js +1 -0
- package/esm/highlevel/utils/memoize.js.map +1 -1
- package/esm/highlevel/utils/stream-utils.d.ts +0 -2
- package/esm/highlevel/utils/stream-utils.js +0 -26
- package/esm/highlevel/utils/stream-utils.js.map +1 -1
- package/esm/highlevel/utils/string-session.js +4 -3
- package/esm/highlevel/utils/string-session.js.map +1 -1
- package/esm/highlevel/worker/index.d.ts +3 -0
- package/esm/highlevel/worker/index.js +4 -0
- package/esm/highlevel/worker/index.js.map +1 -0
- package/esm/highlevel/worker/port.d.ts +6 -3
- package/esm/highlevel/worker/port.js +8 -2
- package/esm/highlevel/worker/port.js.map +1 -1
- package/esm/highlevel/worker/protocol.d.ts +5 -1
- package/esm/highlevel/worker/protocol.js.map +1 -1
- package/esm/highlevel/worker/worker.d.ts +11 -4
- package/esm/highlevel/worker/worker.js +51 -47
- package/esm/highlevel/worker/worker.js.map +1 -1
- package/esm/network/client.d.ts +4 -4
- package/esm/network/client.js +4 -2
- package/esm/network/client.js.map +1 -1
- package/esm/network/multi-session-connection.d.ts +1 -0
- package/esm/network/multi-session-connection.js +6 -0
- package/esm/network/multi-session-connection.js.map +1 -1
- package/esm/network/network-manager.d.ts +5 -1
- package/esm/network/network-manager.js +24 -15
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/persistent-connection.d.ts +3 -0
- package/esm/network/persistent-connection.js +23 -1
- package/esm/network/persistent-connection.js.map +1 -1
- package/esm/network/session-connection.d.ts +2 -0
- package/esm/network/session-connection.js +18 -4
- package/esm/network/session-connection.js.map +1 -1
- package/esm/network/transports/index.d.ts +0 -3
- package/esm/network/transports/index.js +0 -3
- package/esm/network/transports/index.js.map +1 -1
- package/esm/platform.d.ts +18 -0
- package/esm/platform.js +31 -0
- package/esm/platform.js.map +1 -0
- package/esm/storage/index.d.ts +2 -2
- package/esm/storage/index.js +2 -2
- package/esm/storage/index.js.map +1 -1
- package/{cjs/storage/providers → esm/storage}/memory/driver.d.ts +1 -1
- package/esm/storage/memory/driver.js.map +1 -0
- package/{cjs/storage/providers → esm/storage}/memory/index.d.ts +2 -2
- package/esm/storage/memory/index.js.map +1 -0
- package/esm/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
- package/esm/storage/memory/repository/auth-keys.js.map +1 -0
- package/{cjs/storage/providers → esm/storage}/memory/repository/kv.d.ts +1 -1
- package/esm/storage/memory/repository/kv.js.map +1 -0
- package/{cjs/storage/providers → esm/storage}/memory/repository/peers.d.ts +1 -1
- package/esm/storage/memory/repository/peers.js.map +1 -0
- package/{cjs/storage/providers → esm/storage}/memory/repository/ref-messages.d.ts +1 -1
- package/esm/storage/memory/repository/ref-messages.js.map +1 -0
- package/esm/storage/sqlite/driver.d.ts +24 -0
- package/esm/storage/sqlite/driver.js +125 -0
- package/esm/storage/sqlite/driver.js.map +1 -0
- package/esm/storage/sqlite/index.d.ts +17 -0
- package/esm/storage/sqlite/index.js +17 -0
- package/esm/storage/sqlite/index.js.map +1 -0
- package/esm/storage/sqlite/repository/auth-keys.d.ts +20 -0
- package/esm/storage/sqlite/repository/auth-keys.js +64 -0
- package/esm/storage/sqlite/repository/auth-keys.js.map +1 -0
- package/esm/storage/sqlite/repository/kv.d.ts +14 -0
- package/esm/storage/sqlite/repository/kv.js +92 -0
- package/esm/storage/sqlite/repository/kv.js.map +1 -0
- package/esm/storage/sqlite/repository/peers.d.ts +16 -0
- package/esm/storage/sqlite/repository/peers.js +73 -0
- package/esm/storage/sqlite/repository/peers.js.map +1 -0
- package/esm/storage/sqlite/repository/ref-messages.d.ts +16 -0
- package/esm/storage/sqlite/repository/ref-messages.js +45 -0
- package/esm/storage/sqlite/repository/ref-messages.js.map +1 -0
- package/esm/storage/sqlite/types.d.ts +18 -0
- package/esm/storage/sqlite/types.js +2 -0
- package/esm/storage/sqlite/types.js.map +1 -0
- package/esm/storage/storage.js +3 -2
- package/esm/storage/storage.js.map +1 -1
- package/esm/utils/binary/asn1-parser.js +3 -3
- package/esm/utils/binary/asn1-parser.js.map +1 -1
- package/esm/utils/crypto/abstract.d.ts +0 -1
- package/esm/utils/crypto/abstract.js.map +1 -1
- package/esm/utils/crypto/index.d.ts +0 -2
- package/esm/utils/crypto/index.js +0 -2
- package/esm/utils/crypto/index.js.map +1 -1
- package/esm/utils/crypto/keys.js +6 -4
- package/esm/utils/crypto/keys.js.map +1 -1
- package/esm/utils/crypto/password.js +3 -3
- package/esm/utils/crypto/password.js.map +1 -1
- package/esm/utils/dcs.d.ts +4 -0
- package/esm/utils/dcs.js +0 -4
- package/esm/utils/dcs.js.map +1 -1
- package/esm/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
- package/esm/utils/error-reporting.js.map +1 -0
- package/esm/utils/index.d.ts +4 -1
- package/esm/utils/index.js +6 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/links/common.js +1 -1
- package/esm/utils/links/common.js.map +1 -1
- package/esm/utils/logger.d.ts +1 -0
- package/esm/utils/logger.js +9 -22
- package/esm/utils/logger.js.map +1 -1
- package/package.json +25 -53
- package/cjs/highlevel/base.test.js +0 -14
- package/cjs/highlevel/base.test.js.map +0 -1
- package/cjs/highlevel/methods/files/_platform.js +0 -33
- package/cjs/highlevel/methods/files/_platform.js.map +0 -1
- package/cjs/highlevel/methods/files/_platform.web.d.ts +0 -1
- package/cjs/highlevel/methods/files/_platform.web.js +0 -26
- package/cjs/highlevel/methods/files/_platform.web.js.map +0 -1
- package/cjs/highlevel/methods/files/download-file.web.d.ts +0 -1
- package/cjs/highlevel/methods/files/download-file.web.js +0 -9
- package/cjs/highlevel/methods/files/download-file.web.js.map +0 -1
- package/cjs/highlevel/methods/messages/send-text.test.d.ts +0 -1
- package/cjs/highlevel/methods/messages/send-text.test.js +0 -140
- package/cjs/highlevel/methods/messages/send-text.test.js.map +0 -1
- package/cjs/highlevel/methods/users/get-users.test.d.ts +0 -1
- package/cjs/highlevel/methods/users/get-users.test.js +0 -33
- package/cjs/highlevel/methods/users/get-users.test.js.map +0 -1
- package/cjs/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
- package/cjs/highlevel/methods/users/resolve-peer.test.js +0 -307
- package/cjs/highlevel/methods/users/resolve-peer.test.js.map +0 -1
- package/cjs/highlevel/types/bots/command-scope.d.ts +0 -63
- package/cjs/highlevel/types/bots/command-scope.js +0 -87
- package/cjs/highlevel/types/bots/command-scope.js.map +0 -1
- package/cjs/highlevel/types/bots/input/index.d.ts +0 -2
- package/cjs/highlevel/types/bots/input/index.js.map +0 -1
- package/cjs/highlevel/types/bots/input/input-inline-message.js +0 -179
- package/cjs/highlevel/types/bots/input/input-inline-message.js.map +0 -1
- package/cjs/highlevel/types/bots/input/input-inline-result.js +0 -490
- package/cjs/highlevel/types/bots/input/input-inline-result.js.map +0 -1
- package/cjs/highlevel/types/bots/keyboard-builder.js.map +0 -1
- package/cjs/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
- package/cjs/highlevel/types/bots/keyboard-builder.test.js +0 -162
- package/cjs/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
- package/cjs/highlevel/types/bots/keyboards.d.ts +0 -239
- package/cjs/highlevel/types/bots/keyboards.js +0 -380
- package/cjs/highlevel/types/bots/keyboards.js.map +0 -1
- package/cjs/highlevel/types/bots/keyboards.test.d.ts +0 -1
- package/cjs/highlevel/types/bots/keyboards.test.js +0 -146
- package/cjs/highlevel/types/bots/keyboards.test.js.map +0 -1
- package/cjs/highlevel/types/media/input-media.js +0 -254
- package/cjs/highlevel/types/media/input-media.js.map +0 -1
- package/cjs/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
- package/cjs/highlevel/types/misc/input-privacy-rule.js +0 -85
- package/cjs/highlevel/types/misc/input-privacy-rule.js.map +0 -1
- package/cjs/highlevel/types/peers/peers-index.test.d.ts +0 -1
- package/cjs/highlevel/types/peers/peers-index.test.js +0 -71
- package/cjs/highlevel/types/peers/peers-index.test.js.map +0 -1
- package/cjs/highlevel/types/peers/user.test.d.ts +0 -1
- package/cjs/highlevel/types/peers/user.test.js +0 -176
- package/cjs/highlevel/types/peers/user.test.js.map +0 -1
- package/cjs/highlevel/utils/file-type.test.d.ts +0 -1
- package/cjs/highlevel/utils/file-type.test.js +0 -64
- package/cjs/highlevel/utils/file-type.test.js.map +0 -1
- package/cjs/highlevel/utils/file-utils.test.d.ts +0 -1
- package/cjs/highlevel/utils/file-utils.test.js +0 -126
- package/cjs/highlevel/utils/file-utils.test.js.map +0 -1
- package/cjs/highlevel/utils/inline-utils.test.d.ts +0 -1
- package/cjs/highlevel/utils/inline-utils.test.js +0 -47
- package/cjs/highlevel/utils/inline-utils.test.js.map +0 -1
- package/cjs/highlevel/utils/inspectable.test.d.ts +0 -1
- package/cjs/highlevel/utils/inspectable.test.js +0 -97
- package/cjs/highlevel/utils/inspectable.test.js.map +0 -1
- package/cjs/highlevel/utils/memoize.test.d.ts +0 -1
- package/cjs/highlevel/utils/memoize.test.js +0 -60
- package/cjs/highlevel/utils/memoize.test.js.map +0 -1
- package/cjs/highlevel/utils/peer-utils.test.d.ts +0 -1
- package/cjs/highlevel/utils/peer-utils.test.js +0 -109
- package/cjs/highlevel/utils/peer-utils.test.js.map +0 -1
- package/cjs/highlevel/utils/platform/storage.d.ts +0 -1
- package/cjs/highlevel/utils/platform/storage.js +0 -10
- package/cjs/highlevel/utils/platform/storage.js.map +0 -1
- package/cjs/highlevel/utils/platform/storage.web.d.ts +0 -1
- package/cjs/highlevel/utils/platform/storage.web.js +0 -14
- package/cjs/highlevel/utils/platform/storage.web.js.map +0 -1
- package/cjs/highlevel/utils/query-batcher.test.d.ts +0 -1
- package/cjs/highlevel/utils/query-batcher.test.js +0 -502
- package/cjs/highlevel/utils/query-batcher.test.js.map +0 -1
- package/cjs/highlevel/utils/stream-utils.test.d.ts +0 -1
- package/cjs/highlevel/utils/stream-utils.test.js +0 -98
- package/cjs/highlevel/utils/stream-utils.test.js.map +0 -1
- package/cjs/highlevel/utils/string-session.test.d.ts +0 -1
- package/cjs/highlevel/utils/string-session.test.js +0 -198
- package/cjs/highlevel/utils/string-session.test.js.map +0 -1
- package/cjs/highlevel/utils/voice-utils.test.d.ts +0 -1
- package/cjs/highlevel/utils/voice-utils.test.js +0 -28
- package/cjs/highlevel/utils/voice-utils.test.js.map +0 -1
- package/cjs/highlevel/worker/platform/connect.d.ts +0 -2
- package/cjs/highlevel/worker/platform/connect.js +0 -19
- package/cjs/highlevel/worker/platform/connect.js.map +0 -1
- package/cjs/highlevel/worker/platform/connect.web.d.ts +0 -2
- package/cjs/highlevel/worker/platform/connect.web.js +0 -51
- package/cjs/highlevel/worker/platform/connect.web.js.map +0 -1
- package/cjs/highlevel/worker/platform/register.d.ts +0 -2
- package/cjs/highlevel/worker/platform/register.js +0 -20
- package/cjs/highlevel/worker/platform/register.js.map +0 -1
- package/cjs/highlevel/worker/platform/register.web.d.ts +0 -2
- package/cjs/highlevel/worker/platform/register.web.js +0 -64
- package/cjs/highlevel/worker/platform/register.web.js.map +0 -1
- package/cjs/network/auth-key.test.d.ts +0 -1
- package/cjs/network/auth-key.test.js +0 -111
- package/cjs/network/auth-key.test.js.map +0 -1
- package/cjs/network/config-manager.test.d.ts +0 -1
- package/cjs/network/config-manager.test.js +0 -174
- package/cjs/network/config-manager.test.js.map +0 -1
- package/cjs/network/persistent-connection.test.d.ts +0 -1
- package/cjs/network/persistent-connection.test.js +0 -157
- package/cjs/network/persistent-connection.test.js.map +0 -1
- package/cjs/network/transports/intermediate.test.d.ts +0 -1
- package/cjs/network/transports/intermediate.test.js +0 -84
- package/cjs/network/transports/intermediate.test.js.map +0 -1
- package/cjs/network/transports/obfuscated.test.d.ts +0 -1
- package/cjs/network/transports/obfuscated.test.js +0 -131
- package/cjs/network/transports/obfuscated.test.js.map +0 -1
- package/cjs/network/transports/tcp.d.ts +0 -32
- package/cjs/network/transports/tcp.js +0 -130
- package/cjs/network/transports/tcp.js.map +0 -1
- package/cjs/network/transports/tcp.test.d.ts +0 -1
- package/cjs/network/transports/tcp.test.js +0 -103
- package/cjs/network/transports/tcp.test.js.map +0 -1
- package/cjs/network/transports/websocket.d.ts +0 -46
- package/cjs/network/transports/websocket.js +0 -124
- package/cjs/network/transports/websocket.js.map +0 -1
- package/cjs/network/transports/websocket.test.d.ts +0 -1
- package/cjs/network/transports/websocket.test.js +0 -91
- package/cjs/network/transports/websocket.test.js.map +0 -1
- package/cjs/storage/providers/idb/driver.d.ts +0 -18
- package/cjs/storage/providers/idb/driver.js +0 -138
- package/cjs/storage/providers/idb/driver.js.map +0 -1
- package/cjs/storage/providers/idb/idb.test.d.ts +0 -1
- package/cjs/storage/providers/idb/idb.test.js +0 -29
- package/cjs/storage/providers/idb/idb.test.js.map +0 -1
- package/cjs/storage/providers/idb/index.d.ts +0 -22
- package/cjs/storage/providers/idb/index.js +0 -28
- package/cjs/storage/providers/idb/index.js.map +0 -1
- package/cjs/storage/providers/idb/repository/auth-keys.d.ts +0 -14
- package/cjs/storage/providers/idb/repository/auth-keys.js +0 -70
- package/cjs/storage/providers/idb/repository/auth-keys.js.map +0 -1
- package/cjs/storage/providers/idb/repository/kv.d.ts +0 -11
- package/cjs/storage/providers/idb/repository/kv.js +0 -34
- package/cjs/storage/providers/idb/repository/kv.js.map +0 -1
- package/cjs/storage/providers/idb/repository/peers.d.ts +0 -12
- package/cjs/storage/providers/idb/repository/peers.js +0 -38
- package/cjs/storage/providers/idb/repository/peers.js.map +0 -1
- package/cjs/storage/providers/idb/repository/ref-messages.d.ts +0 -12
- package/cjs/storage/providers/idb/repository/ref-messages.js +0 -57
- package/cjs/storage/providers/idb/repository/ref-messages.js.map +0 -1
- package/cjs/storage/providers/idb/utils.d.ts +0 -3
- package/cjs/storage/providers/idb/utils.js +0 -27
- package/cjs/storage/providers/idb/utils.js.map +0 -1
- package/cjs/storage/providers/memory/driver.js.map +0 -1
- package/cjs/storage/providers/memory/index.js.map +0 -1
- package/cjs/storage/providers/memory/memory.test.d.ts +0 -1
- package/cjs/storage/providers/memory/memory.test.js +0 -13
- package/cjs/storage/providers/memory/memory.test.js.map +0 -1
- package/cjs/storage/providers/memory/repository/auth-keys.js.map +0 -1
- package/cjs/storage/providers/memory/repository/kv.js.map +0 -1
- package/cjs/storage/providers/memory/repository/peers.js.map +0 -1
- package/cjs/storage/providers/memory/repository/ref-messages.js.map +0 -1
- package/cjs/storage/service/auth-keys.test.d.ts +0 -1
- package/cjs/storage/service/auth-keys.test.js +0 -22
- package/cjs/storage/service/auth-keys.test.js.map +0 -1
- package/cjs/storage/service/updates.test.d.ts +0 -1
- package/cjs/storage/service/updates.test.js +0 -60
- package/cjs/storage/service/updates.test.js.map +0 -1
- package/cjs/storage/service/utils.test-utils.d.ts +0 -2
- package/cjs/storage/service/utils.test-utils.js +0 -19
- package/cjs/storage/service/utils.test-utils.js.map +0 -1
- package/cjs/utils/async-lock.test.d.ts +0 -1
- package/cjs/utils/async-lock.test.js +0 -25
- package/cjs/utils/async-lock.test.js.map +0 -1
- package/cjs/utils/bigint-utils.test.d.ts +0 -1
- package/cjs/utils/bigint-utils.test.js +0 -150
- package/cjs/utils/bigint-utils.test.js.map +0 -1
- package/cjs/utils/buffer-utils.test.d.ts +0 -1
- package/cjs/utils/buffer-utils.test.js +0 -69
- package/cjs/utils/buffer-utils.test.js.map +0 -1
- package/cjs/utils/condition-variable.test.d.ts +0 -1
- package/cjs/utils/condition-variable.test.js +0 -27
- package/cjs/utils/condition-variable.test.js.map +0 -1
- package/cjs/utils/controllable-promise.test.d.ts +0 -1
- package/cjs/utils/controllable-promise.test.js +0 -17
- package/cjs/utils/controllable-promise.test.js.map +0 -1
- package/cjs/utils/crypto/factorization.test.d.ts +0 -1
- package/cjs/utils/crypto/factorization.test.js +0 -19
- package/cjs/utils/crypto/factorization.test.js.map +0 -1
- package/cjs/utils/crypto/keys.test.d.ts +0 -1
- package/cjs/utils/crypto/keys.test.js +0 -40
- package/cjs/utils/crypto/keys.test.js.map +0 -1
- package/cjs/utils/crypto/miller-rabin.test.d.ts +0 -1
- package/cjs/utils/crypto/miller-rabin.test.js +0 -60
- package/cjs/utils/crypto/miller-rabin.test.js.map +0 -1
- package/cjs/utils/crypto/mtproto.test.d.ts +0 -1
- package/cjs/utils/crypto/mtproto.test.js +0 -50
- package/cjs/utils/crypto/mtproto.test.js.map +0 -1
- package/cjs/utils/crypto/node.d.ts +0 -21
- package/cjs/utils/crypto/node.js +0 -74
- package/cjs/utils/crypto/node.js.map +0 -1
- package/cjs/utils/crypto/node.test.d.ts +0 -1
- package/cjs/utils/crypto/node.test.js +0 -14
- package/cjs/utils/crypto/node.test.js.map +0 -1
- package/cjs/utils/crypto/password.test.d.ts +0 -1
- package/cjs/utils/crypto/password.test.js +0 -95
- package/cjs/utils/crypto/password.test.js.map +0 -1
- package/cjs/utils/crypto/utils.test.d.ts +0 -1
- package/cjs/utils/crypto/utils.test.js +0 -49
- package/cjs/utils/crypto/utils.test.js.map +0 -1
- package/cjs/utils/crypto/wasm.d.ts +0 -22
- package/cjs/utils/crypto/wasm.js +0 -41
- package/cjs/utils/crypto/wasm.js.map +0 -1
- package/cjs/utils/crypto/web.d.ts +0 -11
- package/cjs/utils/crypto/web.js +0 -40
- package/cjs/utils/crypto/web.js.map +0 -1
- package/cjs/utils/crypto/web.test.d.ts +0 -1
- package/cjs/utils/crypto/web.test.js +0 -17
- package/cjs/utils/crypto/web.test.js.map +0 -1
- package/cjs/utils/deque.test.d.ts +0 -1
- package/cjs/utils/deque.test.js +0 -128
- package/cjs/utils/deque.test.js.map +0 -1
- package/cjs/utils/function-utils.test.d.ts +0 -1
- package/cjs/utils/function-utils.test.js +0 -23
- package/cjs/utils/function-utils.test.js.map +0 -1
- package/cjs/utils/linked-list.test.d.ts +0 -1
- package/cjs/utils/linked-list.test.js +0 -36
- package/cjs/utils/linked-list.test.js.map +0 -1
- package/cjs/utils/links/bots.test.d.ts +0 -1
- package/cjs/utils/links/bots.test.js +0 -152
- package/cjs/utils/links/bots.test.js.map +0 -1
- package/cjs/utils/links/chat.test.d.ts +0 -1
- package/cjs/utils/links/chat.test.js +0 -84
- package/cjs/utils/links/chat.test.js.map +0 -1
- package/cjs/utils/links/misc.test.d.ts +0 -1
- package/cjs/utils/links/misc.test.js +0 -153
- package/cjs/utils/links/misc.test.js.map +0 -1
- package/cjs/utils/links/proxy.test.d.ts +0 -1
- package/cjs/utils/links/proxy.test.js +0 -74
- package/cjs/utils/links/proxy.test.js.map +0 -1
- package/cjs/utils/links/user.test.d.ts +0 -1
- package/cjs/utils/links/user.test.js +0 -63
- package/cjs/utils/links/user.test.js.map +0 -1
- package/cjs/utils/logger.test.d.ts +0 -1
- package/cjs/utils/logger.test.js +0 -139
- package/cjs/utils/logger.test.js.map +0 -1
- package/cjs/utils/long-utils.test.d.ts +0 -1
- package/cjs/utils/long-utils.test.js +0 -158
- package/cjs/utils/long-utils.test.js.map +0 -1
- package/cjs/utils/lru-map.test.d.ts +0 -1
- package/cjs/utils/lru-map.test.js +0 -96
- package/cjs/utils/lru-map.test.js.map +0 -1
- package/cjs/utils/lru-set.test.d.ts +0 -1
- package/cjs/utils/lru-set.test.js +0 -77
- package/cjs/utils/lru-set.test.js.map +0 -1
- package/cjs/utils/peer-utils.test.d.ts +0 -1
- package/cjs/utils/peer-utils.test.js +0 -110
- package/cjs/utils/peer-utils.test.js.map +0 -1
- package/cjs/utils/platform/crypto.d.ts +0 -1
- package/cjs/utils/platform/crypto.js +0 -8
- package/cjs/utils/platform/crypto.js.map +0 -1
- package/cjs/utils/platform/crypto.web.d.ts +0 -1
- package/cjs/utils/platform/crypto.web.js +0 -14
- package/cjs/utils/platform/crypto.web.js.map +0 -1
- package/cjs/utils/platform/error-reporting.js.map +0 -1
- package/cjs/utils/platform/exit-hook.d.ts +0 -1
- package/cjs/utils/platform/exit-hook.js +0 -45
- package/cjs/utils/platform/exit-hook.js.map +0 -1
- package/cjs/utils/platform/exit-hook.web.d.ts +0 -1
- package/cjs/utils/platform/exit-hook.web.js +0 -21
- package/cjs/utils/platform/exit-hook.web.js.map +0 -1
- package/cjs/utils/platform/logging.d.ts +0 -1
- package/cjs/utils/platform/logging.js +0 -34
- package/cjs/utils/platform/logging.js.map +0 -1
- package/cjs/utils/platform/logging.web.d.ts +0 -1
- package/cjs/utils/platform/logging.web.js +0 -35
- package/cjs/utils/platform/logging.web.js.map +0 -1
- package/cjs/utils/platform/transport.d.ts +0 -1
- package/cjs/utils/platform/transport.js +0 -8
- package/cjs/utils/platform/transport.js.map +0 -1
- package/cjs/utils/platform/transport.web.d.ts +0 -1
- package/cjs/utils/platform/transport.web.js +0 -15
- package/cjs/utils/platform/transport.web.js.map +0 -1
- package/cjs/utils/sorted-array.test.d.ts +0 -1
- package/cjs/utils/sorted-array.test.js +0 -66
- package/cjs/utils/sorted-array.test.js.map +0 -1
- package/cjs/utils/tl-json.test.d.ts +0 -1
- package/cjs/utils/tl-json.test.js +0 -83
- package/cjs/utils/tl-json.test.js.map +0 -1
- package/cjs/utils/type-assertions.test.d.ts +0 -1
- package/cjs/utils/type-assertions.test.js +0 -67
- package/cjs/utils/type-assertions.test.js.map +0 -1
- package/esm/highlevel/base.test.d.ts +0 -1
- package/esm/highlevel/base.test.js +0 -12
- package/esm/highlevel/base.test.js.map +0 -1
- package/esm/highlevel/methods/files/_platform.d.ts +0 -1
- package/esm/highlevel/methods/files/_platform.js +0 -26
- package/esm/highlevel/methods/files/_platform.js.map +0 -1
- package/esm/highlevel/methods/files/_platform.web.d.ts +0 -1
- package/esm/highlevel/methods/files/_platform.web.js +0 -19
- package/esm/highlevel/methods/files/_platform.web.js.map +0 -1
- package/esm/highlevel/methods/files/download-file.web.d.ts +0 -1
- package/esm/highlevel/methods/files/download-file.web.js +0 -5
- package/esm/highlevel/methods/files/download-file.web.js.map +0 -1
- package/esm/highlevel/methods/messages/send-text.test.d.ts +0 -1
- package/esm/highlevel/methods/messages/send-text.test.js +0 -135
- package/esm/highlevel/methods/messages/send-text.test.js.map +0 -1
- package/esm/highlevel/methods/users/get-users.test.d.ts +0 -1
- package/esm/highlevel/methods/users/get-users.test.js +0 -28
- package/esm/highlevel/methods/users/get-users.test.js.map +0 -1
- package/esm/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
- package/esm/highlevel/methods/users/resolve-peer.test.js +0 -302
- package/esm/highlevel/methods/users/resolve-peer.test.js.map +0 -1
- package/esm/highlevel/types/bots/command-scope.d.ts +0 -63
- package/esm/highlevel/types/bots/command-scope.js +0 -84
- package/esm/highlevel/types/bots/command-scope.js.map +0 -1
- package/esm/highlevel/types/bots/input/index.d.ts +0 -2
- package/esm/highlevel/types/bots/input/index.js +0 -3
- package/esm/highlevel/types/bots/input/index.js.map +0 -1
- package/esm/highlevel/types/bots/input/input-inline-message.js +0 -176
- package/esm/highlevel/types/bots/input/input-inline-message.js.map +0 -1
- package/esm/highlevel/types/bots/input/input-inline-result.js +0 -487
- package/esm/highlevel/types/bots/input/input-inline-result.js.map +0 -1
- package/esm/highlevel/types/bots/keyboard-builder.js.map +0 -1
- package/esm/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
- package/esm/highlevel/types/bots/keyboard-builder.test.js +0 -160
- package/esm/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
- package/esm/highlevel/types/bots/keyboards.d.ts +0 -239
- package/esm/highlevel/types/bots/keyboards.js +0 -377
- package/esm/highlevel/types/bots/keyboards.js.map +0 -1
- package/esm/highlevel/types/bots/keyboards.test.d.ts +0 -1
- package/esm/highlevel/types/bots/keyboards.test.js +0 -144
- package/esm/highlevel/types/bots/keyboards.test.js.map +0 -1
- package/esm/highlevel/types/media/input-media.js +0 -251
- package/esm/highlevel/types/media/input-media.js.map +0 -1
- package/esm/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
- package/esm/highlevel/types/misc/input-privacy-rule.js +0 -82
- package/esm/highlevel/types/misc/input-privacy-rule.js.map +0 -1
- package/esm/highlevel/types/peers/peers-index.test.d.ts +0 -1
- package/esm/highlevel/types/peers/peers-index.test.js +0 -69
- package/esm/highlevel/types/peers/peers-index.test.js.map +0 -1
- package/esm/highlevel/types/peers/user.test.d.ts +0 -1
- package/esm/highlevel/types/peers/user.test.js +0 -171
- package/esm/highlevel/types/peers/user.test.js.map +0 -1
- package/esm/highlevel/utils/file-type.test.d.ts +0 -1
- package/esm/highlevel/utils/file-type.test.js +0 -62
- package/esm/highlevel/utils/file-type.test.js.map +0 -1
- package/esm/highlevel/utils/file-utils.test.d.ts +0 -1
- package/esm/highlevel/utils/file-utils.test.js +0 -124
- package/esm/highlevel/utils/file-utils.test.js.map +0 -1
- package/esm/highlevel/utils/inline-utils.test.d.ts +0 -1
- package/esm/highlevel/utils/inline-utils.test.js +0 -42
- package/esm/highlevel/utils/inline-utils.test.js.map +0 -1
- package/esm/highlevel/utils/inspectable.test.d.ts +0 -1
- package/esm/highlevel/utils/inspectable.test.js +0 -95
- package/esm/highlevel/utils/inspectable.test.js.map +0 -1
- package/esm/highlevel/utils/memoize.test.d.ts +0 -1
- package/esm/highlevel/utils/memoize.test.js +0 -58
- package/esm/highlevel/utils/memoize.test.js.map +0 -1
- package/esm/highlevel/utils/peer-utils.test.d.ts +0 -1
- package/esm/highlevel/utils/peer-utils.test.js +0 -107
- package/esm/highlevel/utils/peer-utils.test.js.map +0 -1
- package/esm/highlevel/utils/platform/storage.d.ts +0 -1
- package/esm/highlevel/utils/platform/storage.js +0 -6
- package/esm/highlevel/utils/platform/storage.js.map +0 -1
- package/esm/highlevel/utils/platform/storage.web.d.ts +0 -1
- package/esm/highlevel/utils/platform/storage.web.js +0 -10
- package/esm/highlevel/utils/platform/storage.web.js.map +0 -1
- package/esm/highlevel/utils/query-batcher.test.d.ts +0 -1
- package/esm/highlevel/utils/query-batcher.test.js +0 -500
- package/esm/highlevel/utils/query-batcher.test.js.map +0 -1
- package/esm/highlevel/utils/stream-utils.test.d.ts +0 -1
- package/esm/highlevel/utils/stream-utils.test.js +0 -96
- package/esm/highlevel/utils/stream-utils.test.js.map +0 -1
- package/esm/highlevel/utils/string-session.test.d.ts +0 -1
- package/esm/highlevel/utils/string-session.test.js +0 -196
- package/esm/highlevel/utils/string-session.test.js.map +0 -1
- package/esm/highlevel/utils/voice-utils.test.d.ts +0 -1
- package/esm/highlevel/utils/voice-utils.test.js +0 -26
- package/esm/highlevel/utils/voice-utils.test.js.map +0 -1
- package/esm/highlevel/worker/platform/connect.d.ts +0 -2
- package/esm/highlevel/worker/platform/connect.js +0 -15
- package/esm/highlevel/worker/platform/connect.js.map +0 -1
- package/esm/highlevel/worker/platform/connect.web.d.ts +0 -2
- package/esm/highlevel/worker/platform/connect.web.js +0 -47
- package/esm/highlevel/worker/platform/connect.web.js.map +0 -1
- package/esm/highlevel/worker/platform/register.d.ts +0 -2
- package/esm/highlevel/worker/platform/register.js +0 -16
- package/esm/highlevel/worker/platform/register.js.map +0 -1
- package/esm/highlevel/worker/platform/register.web.d.ts +0 -2
- package/esm/highlevel/worker/platform/register.web.js +0 -60
- package/esm/highlevel/worker/platform/register.web.js.map +0 -1
- package/esm/network/auth-key.test.d.ts +0 -1
- package/esm/network/auth-key.test.js +0 -106
- package/esm/network/auth-key.test.js.map +0 -1
- package/esm/network/config-manager.test.d.ts +0 -1
- package/esm/network/config-manager.test.js +0 -172
- package/esm/network/config-manager.test.js.map +0 -1
- package/esm/network/persistent-connection.test.d.ts +0 -1
- package/esm/network/persistent-connection.test.js +0 -155
- package/esm/network/persistent-connection.test.js.map +0 -1
- package/esm/network/transports/intermediate.test.d.ts +0 -1
- package/esm/network/transports/intermediate.test.js +0 -82
- package/esm/network/transports/intermediate.test.js.map +0 -1
- package/esm/network/transports/obfuscated.test.d.ts +0 -1
- package/esm/network/transports/obfuscated.test.js +0 -129
- package/esm/network/transports/obfuscated.test.js.map +0 -1
- package/esm/network/transports/tcp.d.ts +0 -32
- package/esm/network/transports/tcp.js +0 -122
- package/esm/network/transports/tcp.js.map +0 -1
- package/esm/network/transports/tcp.test.d.ts +0 -1
- package/esm/network/transports/tcp.test.js +0 -101
- package/esm/network/transports/tcp.test.js.map +0 -1
- package/esm/network/transports/websocket.d.ts +0 -46
- package/esm/network/transports/websocket.js +0 -116
- package/esm/network/transports/websocket.js.map +0 -1
- package/esm/network/transports/websocket.test.d.ts +0 -1
- package/esm/network/transports/websocket.test.js +0 -89
- package/esm/network/transports/websocket.test.js.map +0 -1
- package/esm/storage/providers/idb/driver.d.ts +0 -18
- package/esm/storage/providers/idb/driver.js +0 -134
- package/esm/storage/providers/idb/driver.js.map +0 -1
- package/esm/storage/providers/idb/idb.test.d.ts +0 -1
- package/esm/storage/providers/idb/idb.test.js +0 -27
- package/esm/storage/providers/idb/idb.test.js.map +0 -1
- package/esm/storage/providers/idb/index.d.ts +0 -22
- package/esm/storage/providers/idb/index.js +0 -23
- package/esm/storage/providers/idb/index.js.map +0 -1
- package/esm/storage/providers/idb/repository/auth-keys.d.ts +0 -14
- package/esm/storage/providers/idb/repository/auth-keys.js +0 -66
- package/esm/storage/providers/idb/repository/auth-keys.js.map +0 -1
- package/esm/storage/providers/idb/repository/kv.d.ts +0 -11
- package/esm/storage/providers/idb/repository/kv.js +0 -30
- package/esm/storage/providers/idb/repository/kv.js.map +0 -1
- package/esm/storage/providers/idb/repository/peers.d.ts +0 -12
- package/esm/storage/providers/idb/repository/peers.js +0 -34
- package/esm/storage/providers/idb/repository/peers.js.map +0 -1
- package/esm/storage/providers/idb/repository/ref-messages.d.ts +0 -12
- package/esm/storage/providers/idb/repository/ref-messages.js +0 -53
- package/esm/storage/providers/idb/repository/ref-messages.js.map +0 -1
- package/esm/storage/providers/idb/utils.d.ts +0 -3
- package/esm/storage/providers/idb/utils.js +0 -21
- package/esm/storage/providers/idb/utils.js.map +0 -1
- package/esm/storage/providers/memory/driver.js.map +0 -1
- package/esm/storage/providers/memory/index.js.map +0 -1
- package/esm/storage/providers/memory/memory.test.d.ts +0 -1
- package/esm/storage/providers/memory/memory.test.js +0 -11
- package/esm/storage/providers/memory/memory.test.js.map +0 -1
- package/esm/storage/providers/memory/repository/auth-keys.js.map +0 -1
- package/esm/storage/providers/memory/repository/kv.js.map +0 -1
- package/esm/storage/providers/memory/repository/peers.js.map +0 -1
- package/esm/storage/providers/memory/repository/ref-messages.js.map +0 -1
- package/esm/storage/service/auth-keys.test.d.ts +0 -1
- package/esm/storage/service/auth-keys.test.js +0 -20
- package/esm/storage/service/auth-keys.test.js.map +0 -1
- package/esm/storage/service/updates.test.d.ts +0 -1
- package/esm/storage/service/updates.test.js +0 -58
- package/esm/storage/service/updates.test.js.map +0 -1
- package/esm/storage/service/utils.test-utils.d.ts +0 -2
- package/esm/storage/service/utils.test-utils.js +0 -15
- package/esm/storage/service/utils.test-utils.js.map +0 -1
- package/esm/utils/async-lock.test.d.ts +0 -1
- package/esm/utils/async-lock.test.js +0 -23
- package/esm/utils/async-lock.test.js.map +0 -1
- package/esm/utils/bigint-utils.test.d.ts +0 -1
- package/esm/utils/bigint-utils.test.js +0 -148
- package/esm/utils/bigint-utils.test.js.map +0 -1
- package/esm/utils/buffer-utils.test.d.ts +0 -1
- package/esm/utils/buffer-utils.test.js +0 -67
- package/esm/utils/buffer-utils.test.js.map +0 -1
- package/esm/utils/condition-variable.test.d.ts +0 -1
- package/esm/utils/condition-variable.test.js +0 -25
- package/esm/utils/condition-variable.test.js.map +0 -1
- package/esm/utils/controllable-promise.test.d.ts +0 -1
- package/esm/utils/controllable-promise.test.js +0 -15
- package/esm/utils/controllable-promise.test.js.map +0 -1
- package/esm/utils/crypto/factorization.test.d.ts +0 -1
- package/esm/utils/crypto/factorization.test.js +0 -17
- package/esm/utils/crypto/factorization.test.js.map +0 -1
- package/esm/utils/crypto/keys.test.d.ts +0 -1
- package/esm/utils/crypto/keys.test.js +0 -38
- package/esm/utils/crypto/keys.test.js.map +0 -1
- package/esm/utils/crypto/miller-rabin.test.d.ts +0 -1
- package/esm/utils/crypto/miller-rabin.test.js +0 -58
- package/esm/utils/crypto/miller-rabin.test.js.map +0 -1
- package/esm/utils/crypto/mtproto.test.d.ts +0 -1
- package/esm/utils/crypto/mtproto.test.js +0 -48
- package/esm/utils/crypto/mtproto.test.js.map +0 -1
- package/esm/utils/crypto/node.d.ts +0 -21
- package/esm/utils/crypto/node.js +0 -69
- package/esm/utils/crypto/node.js.map +0 -1
- package/esm/utils/crypto/node.test.d.ts +0 -1
- package/esm/utils/crypto/node.test.js +0 -12
- package/esm/utils/crypto/node.test.js.map +0 -1
- package/esm/utils/crypto/password.test.d.ts +0 -1
- package/esm/utils/crypto/password.test.js +0 -90
- package/esm/utils/crypto/password.test.js.map +0 -1
- package/esm/utils/crypto/utils.test.d.ts +0 -1
- package/esm/utils/crypto/utils.test.js +0 -47
- package/esm/utils/crypto/utils.test.js.map +0 -1
- package/esm/utils/crypto/wasm.d.ts +0 -22
- package/esm/utils/crypto/wasm.js +0 -37
- package/esm/utils/crypto/wasm.js.map +0 -1
- package/esm/utils/crypto/web.d.ts +0 -11
- package/esm/utils/crypto/web.js +0 -36
- package/esm/utils/crypto/web.js.map +0 -1
- package/esm/utils/crypto/web.test.d.ts +0 -1
- package/esm/utils/crypto/web.test.js +0 -15
- package/esm/utils/crypto/web.test.js.map +0 -1
- package/esm/utils/deque.test.d.ts +0 -1
- package/esm/utils/deque.test.js +0 -126
- package/esm/utils/deque.test.js.map +0 -1
- package/esm/utils/function-utils.test.d.ts +0 -1
- package/esm/utils/function-utils.test.js +0 -21
- package/esm/utils/function-utils.test.js.map +0 -1
- package/esm/utils/linked-list.test.d.ts +0 -1
- package/esm/utils/linked-list.test.js +0 -34
- package/esm/utils/linked-list.test.js.map +0 -1
- package/esm/utils/links/bots.test.d.ts +0 -1
- package/esm/utils/links/bots.test.js +0 -150
- package/esm/utils/links/bots.test.js.map +0 -1
- package/esm/utils/links/chat.test.d.ts +0 -1
- package/esm/utils/links/chat.test.js +0 -82
- package/esm/utils/links/chat.test.js.map +0 -1
- package/esm/utils/links/misc.test.d.ts +0 -1
- package/esm/utils/links/misc.test.js +0 -151
- package/esm/utils/links/misc.test.js.map +0 -1
- package/esm/utils/links/proxy.test.d.ts +0 -1
- package/esm/utils/links/proxy.test.js +0 -72
- package/esm/utils/links/proxy.test.js.map +0 -1
- package/esm/utils/links/user.test.d.ts +0 -1
- package/esm/utils/links/user.test.js +0 -61
- package/esm/utils/links/user.test.js.map +0 -1
- package/esm/utils/logger.test.d.ts +0 -1
- package/esm/utils/logger.test.js +0 -134
- package/esm/utils/logger.test.js.map +0 -1
- package/esm/utils/long-utils.test.d.ts +0 -1
- package/esm/utils/long-utils.test.js +0 -153
- package/esm/utils/long-utils.test.js.map +0 -1
- package/esm/utils/lru-map.test.d.ts +0 -1
- package/esm/utils/lru-map.test.js +0 -94
- package/esm/utils/lru-map.test.js.map +0 -1
- package/esm/utils/lru-set.test.d.ts +0 -1
- package/esm/utils/lru-set.test.js +0 -72
- package/esm/utils/lru-set.test.js.map +0 -1
- package/esm/utils/peer-utils.test.d.ts +0 -1
- package/esm/utils/peer-utils.test.js +0 -105
- package/esm/utils/peer-utils.test.js.map +0 -1
- package/esm/utils/platform/crypto.d.ts +0 -1
- package/esm/utils/platform/crypto.js +0 -4
- package/esm/utils/platform/crypto.js.map +0 -1
- package/esm/utils/platform/crypto.web.d.ts +0 -1
- package/esm/utils/platform/crypto.web.js +0 -10
- package/esm/utils/platform/crypto.web.js.map +0 -1
- package/esm/utils/platform/error-reporting.js.map +0 -1
- package/esm/utils/platform/exit-hook.d.ts +0 -1
- package/esm/utils/platform/exit-hook.js +0 -41
- package/esm/utils/platform/exit-hook.js.map +0 -1
- package/esm/utils/platform/exit-hook.web.d.ts +0 -1
- package/esm/utils/platform/exit-hook.web.js +0 -17
- package/esm/utils/platform/exit-hook.web.js.map +0 -1
- package/esm/utils/platform/logging.d.ts +0 -1
- package/esm/utils/platform/logging.js +0 -31
- package/esm/utils/platform/logging.js.map +0 -1
- package/esm/utils/platform/logging.web.d.ts +0 -1
- package/esm/utils/platform/logging.web.js +0 -31
- package/esm/utils/platform/logging.web.js.map +0 -1
- package/esm/utils/platform/transport.d.ts +0 -1
- package/esm/utils/platform/transport.js +0 -4
- package/esm/utils/platform/transport.js.map +0 -1
- package/esm/utils/platform/transport.web.d.ts +0 -1
- package/esm/utils/platform/transport.web.js +0 -12
- package/esm/utils/platform/transport.web.js.map +0 -1
- package/esm/utils/sorted-array.test.d.ts +0 -1
- package/esm/utils/sorted-array.test.js +0 -64
- package/esm/utils/sorted-array.test.js.map +0 -1
- package/esm/utils/tl-json.test.d.ts +0 -1
- package/esm/utils/tl-json.test.js +0 -81
- package/esm/utils/tl-json.test.js.map +0 -1
- package/esm/utils/type-assertions.test.d.ts +0 -1
- package/esm/utils/type-assertions.test.js +0 -65
- package/esm/utils/type-assertions.test.js.map +0 -1
- /package/cjs/highlevel/{base.test.d.ts → methods/files/download-node-stream.d.ts} +0 -0
- /package/cjs/storage/{providers/memory → memory}/driver.js +0 -0
- /package/cjs/storage/{providers/memory → memory}/index.js +0 -0
- /package/cjs/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
- /package/cjs/storage/{providers/memory → memory}/repository/kv.js +0 -0
- /package/cjs/storage/{providers/memory → memory}/repository/peers.js +0 -0
- /package/cjs/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
- /package/cjs/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
- /package/{cjs/highlevel/methods/files/_platform.d.ts → esm/highlevel/methods/files/download-node-stream.d.ts} +0 -0
- /package/esm/storage/{providers/memory → memory}/driver.js +0 -0
- /package/esm/storage/{providers/memory → memory}/index.js +0 -0
- /package/esm/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
- /package/esm/storage/{providers/memory → memory}/repository/kv.js +0 -0
- /package/esm/storage/{providers/memory → memory}/repository/peers.js +0 -0
- /package/esm/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
- /package/esm/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const test_1 = require("@mtcute/test");
|
|
5
|
-
const tl_runtime_1 = require("@mtcute/tl-runtime");
|
|
6
|
-
const index_js_1 = require("./index.js");
|
|
7
|
-
(0, vitest_1.describe)('bigIntBitLength', () => {
|
|
8
|
-
(0, vitest_1.it)('should correctly calculate bit length', () => {
|
|
9
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(0n)).eq(0);
|
|
10
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(1n)).eq(1);
|
|
11
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(2n)).eq(2);
|
|
12
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(255n)).eq(8);
|
|
13
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(256n)).eq(9);
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
(0, vitest_1.describe)('bigIntToBuffer', () => {
|
|
17
|
-
(0, vitest_1.it)('should handle writing to BE', () => {
|
|
18
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('10495708'), 0, false)]).eql([0xa0, 0x26, 0xdc]);
|
|
19
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('10495708'), 4, false)]).eql([0x00, 0xa0, 0x26, 0xdc]);
|
|
20
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('10495708'), 8, false)]).eql([0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x26, 0xdc]);
|
|
21
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('3038102549'), 4, false)]).eql([0xb5, 0x15, 0xc4, 0x15]);
|
|
22
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('9341376580368336208'), 8, false)]).eql([
|
|
23
|
-
...(0, tl_runtime_1.hexDecodeToBuffer)('81A33C81D2020550'),
|
|
24
|
-
]);
|
|
25
|
-
});
|
|
26
|
-
(0, vitest_1.it)('should handle writing to LE', () => {
|
|
27
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('10495708'), 0, true)]).eql([0xdc, 0x26, 0xa0]);
|
|
28
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('10495708'), 4, true)]).eql([0xdc, 0x26, 0xa0, 0x00]);
|
|
29
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('10495708'), 8, true)]).eql([0xdc, 0x26, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
|
30
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('3038102549'), 4, true)]).eql([0x15, 0xc4, 0x15, 0xb5]);
|
|
31
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(BigInt('9341376580368336208'), 8, true)]).eql([
|
|
32
|
-
...(0, tl_runtime_1.hexDecodeToBuffer)('81A33C81D2020550').reverse(),
|
|
33
|
-
]);
|
|
34
|
-
});
|
|
35
|
-
(0, vitest_1.it)('should handle large integers', () => {
|
|
36
|
-
const buf = (0, tl_runtime_1.hexDecodeToBuffer)('1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538');
|
|
37
|
-
const num = BigInt('0x1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538');
|
|
38
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(num, 0, false)]).eql([...buf]);
|
|
39
|
-
(0, vitest_1.expect)([...(0, index_js_1.bigIntToBuffer)(num, 0, true)]).eql([...buf.reverse()]);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
(0, vitest_1.describe)('bufferToBigInt', () => {
|
|
43
|
-
(0, vitest_1.it)('should handle reading BE', () => {
|
|
44
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(new Uint8Array([0xa0, 0x26, 0xdc]), false).toString()).eq('10495708');
|
|
45
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(new Uint8Array([0x00, 0xa0, 0x26, 0xdc]), false).toString()).eq('10495708');
|
|
46
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(new Uint8Array([0xb5, 0x15, 0xc4, 0x15]), false).toString()).eq('3038102549');
|
|
47
|
-
});
|
|
48
|
-
(0, vitest_1.it)('should handle reading LE', () => {
|
|
49
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(new Uint8Array([0xdc, 0x26, 0xa0]), true).toString()).eq('10495708');
|
|
50
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(new Uint8Array([0xdc, 0x26, 0xa0, 0x00]), true).toString()).eq('10495708');
|
|
51
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(new Uint8Array([0x15, 0xc4, 0x15, 0xb5]), true).toString()).eq('3038102549');
|
|
52
|
-
});
|
|
53
|
-
(0, vitest_1.it)('should handle large integers', () => {
|
|
54
|
-
const buf = (0, tl_runtime_1.hexDecodeToBuffer)('1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538');
|
|
55
|
-
const num = BigInt('0x1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538');
|
|
56
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(buf, false).toString()).eq(num.toString());
|
|
57
|
-
(0, vitest_1.expect)((0, index_js_1.bufferToBigInt)(buf.reverse(), true).toString()).eq(num.toString());
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
(0, vitest_1.describe)('randomBigInt', async () => {
|
|
61
|
-
const c = await (0, test_1.defaultTestCryptoProvider)();
|
|
62
|
-
(0, vitest_1.it)('should return a random bigint', () => {
|
|
63
|
-
const a = (0, index_js_1.randomBigInt)(c, 32);
|
|
64
|
-
const b = (0, index_js_1.randomBigInt)(c, 32);
|
|
65
|
-
(0, vitest_1.expect)(a).not.toEqual(b);
|
|
66
|
-
});
|
|
67
|
-
(0, vitest_1.it)('should return a random bigint up to specified byte length', () => {
|
|
68
|
-
const a = (0, index_js_1.randomBigInt)(c, 32);
|
|
69
|
-
const b = (0, index_js_1.randomBigInt)(c, 64);
|
|
70
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(a)).toBeLessThanOrEqual(32 * 8);
|
|
71
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(b)).toBeLessThanOrEqual(64 * 8);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
(0, vitest_1.describe)('randomBigIntBits', async () => {
|
|
75
|
-
const c = await (0, test_1.defaultTestCryptoProvider)();
|
|
76
|
-
(0, vitest_1.it)('should return a random bigint', () => {
|
|
77
|
-
const a = (0, index_js_1.randomBigIntBits)(c, 32);
|
|
78
|
-
const b = (0, index_js_1.randomBigIntBits)(c, 32);
|
|
79
|
-
(0, vitest_1.expect)(a).not.toEqual(b);
|
|
80
|
-
});
|
|
81
|
-
(0, vitest_1.it)('should return a random bigint up to specified bit length', () => {
|
|
82
|
-
const a = (0, index_js_1.randomBigIntBits)(c, 32);
|
|
83
|
-
const b = (0, index_js_1.randomBigIntBits)(c, 64);
|
|
84
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(a)).toBeLessThanOrEqual(32);
|
|
85
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntBitLength)(b)).toBeLessThanOrEqual(64);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
(0, vitest_1.describe)('randomBigIntInRange', async () => {
|
|
89
|
-
const c = await (0, test_1.defaultTestCryptoProvider)();
|
|
90
|
-
(0, vitest_1.it)('should return a random bigint', () => {
|
|
91
|
-
const a = (0, index_js_1.randomBigIntInRange)(c, 10000n);
|
|
92
|
-
const b = (0, index_js_1.randomBigIntInRange)(c, 10000n);
|
|
93
|
-
(0, vitest_1.expect)(a).not.toEqual(b);
|
|
94
|
-
});
|
|
95
|
-
(0, vitest_1.it)('should return a bigint within a given range', () => {
|
|
96
|
-
const a = (0, index_js_1.randomBigIntInRange)(c, 200n, 100n);
|
|
97
|
-
(0, vitest_1.expect)(a).toBeGreaterThanOrEqual(100n);
|
|
98
|
-
(0, vitest_1.expect)(a).toBeLessThan(200n);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
(0, vitest_1.describe)('twoMultiplicity', () => {
|
|
102
|
-
(0, vitest_1.it)('should return the multiplicity of 2 in the prime factorization of n', () => {
|
|
103
|
-
(0, vitest_1.expect)((0, index_js_1.twoMultiplicity)(0n)).toEqual(0n);
|
|
104
|
-
(0, vitest_1.expect)((0, index_js_1.twoMultiplicity)(1n)).toEqual(0n);
|
|
105
|
-
(0, vitest_1.expect)((0, index_js_1.twoMultiplicity)(2n)).toEqual(1n);
|
|
106
|
-
(0, vitest_1.expect)((0, index_js_1.twoMultiplicity)(4n)).toEqual(2n);
|
|
107
|
-
(0, vitest_1.expect)((0, index_js_1.twoMultiplicity)(65536n)).toEqual(16n);
|
|
108
|
-
(0, vitest_1.expect)((0, index_js_1.twoMultiplicity)(65537n)).toEqual(0n);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
(0, vitest_1.describe)('bigIntGcd', () => {
|
|
112
|
-
(0, vitest_1.it)('should return the greatest common divisor of a and b', () => {
|
|
113
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntGcd)(123n, 456n)).toEqual(3n);
|
|
114
|
-
});
|
|
115
|
-
(0, vitest_1.it)('should correctly handle zeros', () => {
|
|
116
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntGcd)(0n, 0n)).toEqual(0n);
|
|
117
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntGcd)(0n, 1n)).toEqual(1n);
|
|
118
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntGcd)(1n, 0n)).toEqual(1n);
|
|
119
|
-
});
|
|
120
|
-
(0, vitest_1.it)('should correctly handle equal values', () => {
|
|
121
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntGcd)(1n, 1n)).toEqual(1n);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
(0, vitest_1.describe)('bigIntModPow', () => {
|
|
125
|
-
(0, vitest_1.it)('should correctly calculate modular exponentiation', () => {
|
|
126
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModPow)(2n, 3n, 5n)).toEqual(3n);
|
|
127
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModPow)(2n, 3n, 6n)).toEqual(2n);
|
|
128
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModPow)(2n, 3n, 7n)).toEqual(1n);
|
|
129
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModPow)(2n, 3n, 8n)).toEqual(0n);
|
|
130
|
-
});
|
|
131
|
-
(0, vitest_1.it)('should correctly handle very large numbers', () => {
|
|
132
|
-
// calculating this with BigInt would either take forever or error with "Maximum BigInt size exceeded
|
|
133
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModPow)(2n, 100000000000n, 100n)).toEqual(76n);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
(0, vitest_1.describe)('bigIntModInv', () => {
|
|
137
|
-
(0, vitest_1.it)('should correctly calculate modular inverse', () => {
|
|
138
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModInv)(2n, 5n)).toEqual(3n);
|
|
139
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModInv)(2n, 7n)).toEqual(4n);
|
|
140
|
-
});
|
|
141
|
-
(0, vitest_1.it)("should error if there's no modular inverse", () => {
|
|
142
|
-
(0, vitest_1.expect)(() => (0, index_js_1.bigIntModInv)(2n, 6n)).toThrow(RangeError);
|
|
143
|
-
(0, vitest_1.expect)(() => (0, index_js_1.bigIntModInv)(2n, 8n)).toThrow(RangeError);
|
|
144
|
-
});
|
|
145
|
-
(0, vitest_1.it)('should correctly handle very large numbers', () => {
|
|
146
|
-
// calculating this with BigInt would either take forever or error with "Maximum BigInt size exceeded
|
|
147
|
-
(0, vitest_1.expect)((0, index_js_1.bigIntModInv)(123123123123n, 1829n)).toEqual(318n);
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
//# sourceMappingURL=bigint-utils.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bigint-utils.test.js","sourceRoot":"","sources":["../../../src/utils/bigint-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { defaultTestCryptoProvider } from '@mtcute/test'\nimport { hexDecodeToBuffer } from '@mtcute/tl-runtime'\n\nimport {\n bigIntBitLength,\n bigIntGcd,\n bigIntModInv,\n bigIntModPow,\n bigIntToBuffer,\n bufferToBigInt,\n randomBigInt,\n randomBigIntBits,\n randomBigIntInRange,\n twoMultiplicity,\n} from './index.js'\n\ndescribe('bigIntBitLength', () => {\n it('should correctly calculate bit length', () => {\n expect(bigIntBitLength(0n)).eq(0)\n expect(bigIntBitLength(1n)).eq(1)\n expect(bigIntBitLength(2n)).eq(2)\n expect(bigIntBitLength(255n)).eq(8)\n expect(bigIntBitLength(256n)).eq(9)\n })\n})\n\ndescribe('bigIntToBuffer', () => {\n it('should handle writing to BE', () => {\n expect([...bigIntToBuffer(BigInt('10495708'), 0, false)]).eql([0xa0, 0x26, 0xdc])\n expect([...bigIntToBuffer(BigInt('10495708'), 4, false)]).eql([0x00, 0xa0, 0x26, 0xdc])\n expect([...bigIntToBuffer(BigInt('10495708'), 8, false)]).eql([0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x26, 0xdc])\n expect([...bigIntToBuffer(BigInt('3038102549'), 4, false)]).eql([0xb5, 0x15, 0xc4, 0x15])\n expect([...bigIntToBuffer(BigInt('9341376580368336208'), 8, false)]).eql([\n ...hexDecodeToBuffer('81A33C81D2020550'),\n ])\n })\n\n it('should handle writing to LE', () => {\n expect([...bigIntToBuffer(BigInt('10495708'), 0, true)]).eql([0xdc, 0x26, 0xa0])\n expect([...bigIntToBuffer(BigInt('10495708'), 4, true)]).eql([0xdc, 0x26, 0xa0, 0x00])\n expect([...bigIntToBuffer(BigInt('10495708'), 8, true)]).eql([0xdc, 0x26, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00])\n expect([...bigIntToBuffer(BigInt('3038102549'), 4, true)]).eql([0x15, 0xc4, 0x15, 0xb5])\n expect([...bigIntToBuffer(BigInt('9341376580368336208'), 8, true)]).eql([\n ...hexDecodeToBuffer('81A33C81D2020550').reverse(),\n ])\n })\n\n it('should handle large integers', () => {\n const buf = hexDecodeToBuffer(\n '1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538',\n )\n const num = BigInt(\n '0x1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538',\n )\n\n expect([...bigIntToBuffer(num, 0, false)]).eql([...buf])\n expect([...bigIntToBuffer(num, 0, true)]).eql([...buf.reverse()])\n })\n})\n\ndescribe('bufferToBigInt', () => {\n it('should handle reading BE', () => {\n expect(bufferToBigInt(new Uint8Array([0xa0, 0x26, 0xdc]), false).toString()).eq('10495708')\n expect(bufferToBigInt(new Uint8Array([0x00, 0xa0, 0x26, 0xdc]), false).toString()).eq('10495708')\n expect(bufferToBigInt(new Uint8Array([0xb5, 0x15, 0xc4, 0x15]), false).toString()).eq('3038102549')\n })\n\n it('should handle reading LE', () => {\n expect(bufferToBigInt(new Uint8Array([0xdc, 0x26, 0xa0]), true).toString()).eq('10495708')\n expect(bufferToBigInt(new Uint8Array([0xdc, 0x26, 0xa0, 0x00]), true).toString()).eq('10495708')\n expect(bufferToBigInt(new Uint8Array([0x15, 0xc4, 0x15, 0xb5]), true).toString()).eq('3038102549')\n })\n\n it('should handle large integers', () => {\n const buf = hexDecodeToBuffer(\n '1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538',\n )\n const num = BigInt(\n '0x1a981ce8bf86bf4a1bd79c2ef829914172f8d0e54cb7ad807552d56977e1c946872e2c7bd77052be30e7e9a7a35c4feff848a25759f5f2f5b0e96538',\n )\n\n expect(bufferToBigInt(buf, false).toString()).eq(num.toString())\n expect(bufferToBigInt(buf.reverse(), true).toString()).eq(num.toString())\n })\n})\n\ndescribe('randomBigInt', async () => {\n const c = await defaultTestCryptoProvider()\n\n it('should return a random bigint', () => {\n const a = randomBigInt(c, 32)\n const b = randomBigInt(c, 32)\n\n expect(a).not.toEqual(b)\n })\n\n it('should return a random bigint up to specified byte length', () => {\n const a = randomBigInt(c, 32)\n const b = randomBigInt(c, 64)\n\n expect(bigIntBitLength(a)).toBeLessThanOrEqual(32 * 8)\n expect(bigIntBitLength(b)).toBeLessThanOrEqual(64 * 8)\n })\n})\n\ndescribe('randomBigIntBits', async () => {\n const c = await defaultTestCryptoProvider()\n\n it('should return a random bigint', () => {\n const a = randomBigIntBits(c, 32)\n const b = randomBigIntBits(c, 32)\n\n expect(a).not.toEqual(b)\n })\n\n it('should return a random bigint up to specified bit length', () => {\n const a = randomBigIntBits(c, 32)\n const b = randomBigIntBits(c, 64)\n\n expect(bigIntBitLength(a)).toBeLessThanOrEqual(32)\n expect(bigIntBitLength(b)).toBeLessThanOrEqual(64)\n })\n})\n\ndescribe('randomBigIntInRange', async () => {\n const c = await defaultTestCryptoProvider()\n\n it('should return a random bigint', () => {\n const a = randomBigIntInRange(c, 10000n)\n const b = randomBigIntInRange(c, 10000n)\n\n expect(a).not.toEqual(b)\n })\n\n it('should return a bigint within a given range', () => {\n const a = randomBigIntInRange(c, 200n, 100n)\n\n expect(a).toBeGreaterThanOrEqual(100n)\n expect(a).toBeLessThan(200n)\n })\n})\n\ndescribe('twoMultiplicity', () => {\n it('should return the multiplicity of 2 in the prime factorization of n', () => {\n expect(twoMultiplicity(0n)).toEqual(0n)\n expect(twoMultiplicity(1n)).toEqual(0n)\n expect(twoMultiplicity(2n)).toEqual(1n)\n expect(twoMultiplicity(4n)).toEqual(2n)\n expect(twoMultiplicity(65536n)).toEqual(16n)\n expect(twoMultiplicity(65537n)).toEqual(0n)\n })\n})\n\ndescribe('bigIntGcd', () => {\n it('should return the greatest common divisor of a and b', () => {\n expect(bigIntGcd(123n, 456n)).toEqual(3n)\n })\n\n it('should correctly handle zeros', () => {\n expect(bigIntGcd(0n, 0n)).toEqual(0n)\n expect(bigIntGcd(0n, 1n)).toEqual(1n)\n expect(bigIntGcd(1n, 0n)).toEqual(1n)\n })\n\n it('should correctly handle equal values', () => {\n expect(bigIntGcd(1n, 1n)).toEqual(1n)\n })\n})\n\ndescribe('bigIntModPow', () => {\n it('should correctly calculate modular exponentiation', () => {\n expect(bigIntModPow(2n, 3n, 5n)).toEqual(3n)\n expect(bigIntModPow(2n, 3n, 6n)).toEqual(2n)\n expect(bigIntModPow(2n, 3n, 7n)).toEqual(1n)\n expect(bigIntModPow(2n, 3n, 8n)).toEqual(0n)\n })\n\n it('should correctly handle very large numbers', () => {\n // calculating this with BigInt would either take forever or error with \"Maximum BigInt size exceeded\n expect(bigIntModPow(2n, 100000000000n, 100n)).toEqual(76n)\n })\n})\n\ndescribe('bigIntModInv', () => {\n it('should correctly calculate modular inverse', () => {\n expect(bigIntModInv(2n, 5n)).toEqual(3n)\n expect(bigIntModInv(2n, 7n)).toEqual(4n)\n })\n\n it(\"should error if there's no modular inverse\", () => {\n expect(() => bigIntModInv(2n, 6n)).toThrow(RangeError)\n expect(() => bigIntModInv(2n, 8n)).toThrow(RangeError)\n })\n\n it('should correctly handle very large numbers', () => {\n // calculating this with BigInt would either take forever or error with \"Maximum BigInt size exceeded\n expect(bigIntModInv(123123123123n, 1829n)).toEqual(318n)\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const buffer_utils_js_1 = require("./buffer-utils.js");
|
|
5
|
-
(0, vitest_1.describe)('buffersEqual', () => {
|
|
6
|
-
(0, vitest_1.it)('should return true for equal buffers', () => {
|
|
7
|
-
(0, vitest_1.expect)((0, buffer_utils_js_1.buffersEqual)(new Uint8Array([]), new Uint8Array([]))).is.true;
|
|
8
|
-
(0, vitest_1.expect)((0, buffer_utils_js_1.buffersEqual)(new Uint8Array([1, 2, 3]), new Uint8Array([1, 2, 3]))).is.true;
|
|
9
|
-
});
|
|
10
|
-
(0, vitest_1.it)('should return false for non-equal buffers', () => {
|
|
11
|
-
(0, vitest_1.expect)((0, buffer_utils_js_1.buffersEqual)(new Uint8Array([1]), new Uint8Array([]))).is.false;
|
|
12
|
-
(0, vitest_1.expect)((0, buffer_utils_js_1.buffersEqual)(new Uint8Array([1, 2, 3]), new Uint8Array([1, 2, 4]))).is.false;
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
(0, vitest_1.describe)('cloneBuffer', () => {
|
|
16
|
-
(0, vitest_1.it)('should clone buffer', () => {
|
|
17
|
-
const orig = new Uint8Array([1, 2, 3]);
|
|
18
|
-
const copy = (0, buffer_utils_js_1.cloneBuffer)(orig);
|
|
19
|
-
(0, vitest_1.expect)([...copy]).eql([1, 2, 3]);
|
|
20
|
-
orig[0] = 0xff;
|
|
21
|
-
(0, vitest_1.expect)(copy[0]).not.eql(0xff);
|
|
22
|
-
});
|
|
23
|
-
(0, vitest_1.it)('should clone buffer partially', () => {
|
|
24
|
-
const orig = new Uint8Array([1, 2, 3, 4, 5]);
|
|
25
|
-
const copy = (0, buffer_utils_js_1.cloneBuffer)(orig, 1, 4);
|
|
26
|
-
(0, vitest_1.expect)([...copy]).eql([2, 3, 4]);
|
|
27
|
-
orig[0] = 0xff;
|
|
28
|
-
(0, vitest_1.expect)(copy[0]).not.eql(0xff);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
(0, vitest_1.describe)('concatBuffers', () => {
|
|
32
|
-
(0, vitest_1.it)('should concat buffers', () => {
|
|
33
|
-
const buf = (0, buffer_utils_js_1.concatBuffers)([new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6])]);
|
|
34
|
-
(0, vitest_1.expect)([...buf]).eql([1, 2, 3, 4, 5, 6]);
|
|
35
|
-
});
|
|
36
|
-
(0, vitest_1.it)('should create a new buffer', () => {
|
|
37
|
-
const buf1 = new Uint8Array([1, 2, 3]);
|
|
38
|
-
const buf2 = new Uint8Array([4, 5, 6]);
|
|
39
|
-
const buf = (0, buffer_utils_js_1.concatBuffers)([buf1, buf2]);
|
|
40
|
-
buf[0] = 0xff;
|
|
41
|
-
(0, vitest_1.expect)(buf1[0]).not.eql(0xff);
|
|
42
|
-
});
|
|
43
|
-
(0, vitest_1.it)('should work without native Buffer', () => {
|
|
44
|
-
vitest_1.vi.stubGlobal('Buffer', undefined);
|
|
45
|
-
const buf1 = new Uint8Array([1, 2, 3]);
|
|
46
|
-
const buf2 = new Uint8Array([4, 5, 6]);
|
|
47
|
-
const buf = (0, buffer_utils_js_1.concatBuffers)([buf1, buf2]);
|
|
48
|
-
buf1[0] = 0xff;
|
|
49
|
-
(0, vitest_1.expect)([...buf]).eql([1, 2, 3, 4, 5, 6]);
|
|
50
|
-
});
|
|
51
|
-
(0, vitest_1.afterEach)(() => void vitest_1.vi.unstubAllGlobals());
|
|
52
|
-
});
|
|
53
|
-
(0, vitest_1.describe)('bufferToReversed', () => {
|
|
54
|
-
(0, vitest_1.it)('should reverse the buffer', () => {
|
|
55
|
-
const buf = (0, buffer_utils_js_1.bufferToReversed)(new Uint8Array([1, 2, 3, 4, 5, 6]));
|
|
56
|
-
(0, vitest_1.expect)([...buf]).eql([6, 5, 4, 3, 2, 1]);
|
|
57
|
-
});
|
|
58
|
-
(0, vitest_1.it)('should reverse a part of the buffer', () => {
|
|
59
|
-
const buf = (0, buffer_utils_js_1.bufferToReversed)(new Uint8Array([1, 2, 3, 4, 5, 6]), 1, 5);
|
|
60
|
-
(0, vitest_1.expect)([...buf]).eql([5, 4, 3, 2]);
|
|
61
|
-
});
|
|
62
|
-
(0, vitest_1.it)('should create a new buffer', () => {
|
|
63
|
-
const buf1 = new Uint8Array([1, 2, 3]);
|
|
64
|
-
const buf2 = (0, buffer_utils_js_1.bufferToReversed)(buf1);
|
|
65
|
-
buf2[0] = 0xff;
|
|
66
|
-
(0, vitest_1.expect)([...buf1]).eql([1, 2, 3]);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
//# sourceMappingURL=buffer-utils.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buffer-utils.test.js","sourceRoot":"","sources":["../../../src/utils/buffer-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterEach, describe, expect, it, vi } from 'vitest'\n\nimport { buffersEqual, bufferToReversed, cloneBuffer, concatBuffers } from './buffer-utils.js'\n\ndescribe('buffersEqual', () => {\n it('should return true for equal buffers', () => {\n expect(buffersEqual(new Uint8Array([]), new Uint8Array([]))).is.true\n expect(buffersEqual(new Uint8Array([1, 2, 3]), new Uint8Array([1, 2, 3]))).is.true\n })\n\n it('should return false for non-equal buffers', () => {\n expect(buffersEqual(new Uint8Array([1]), new Uint8Array([]))).is.false\n expect(buffersEqual(new Uint8Array([1, 2, 3]), new Uint8Array([1, 2, 4]))).is.false\n })\n})\n\ndescribe('cloneBuffer', () => {\n it('should clone buffer', () => {\n const orig = new Uint8Array([1, 2, 3])\n const copy = cloneBuffer(orig)\n\n expect([...copy]).eql([1, 2, 3])\n orig[0] = 0xff\n expect(copy[0]).not.eql(0xff)\n })\n\n it('should clone buffer partially', () => {\n const orig = new Uint8Array([1, 2, 3, 4, 5])\n const copy = cloneBuffer(orig, 1, 4)\n\n expect([...copy]).eql([2, 3, 4])\n orig[0] = 0xff\n expect(copy[0]).not.eql(0xff)\n })\n})\n\ndescribe('concatBuffers', () => {\n it('should concat buffers', () => {\n const buf = concatBuffers([new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6])])\n\n expect([...buf]).eql([1, 2, 3, 4, 5, 6])\n })\n\n it('should create a new buffer', () => {\n const buf1 = new Uint8Array([1, 2, 3])\n const buf2 = new Uint8Array([4, 5, 6])\n const buf = concatBuffers([buf1, buf2])\n\n buf[0] = 0xff\n expect(buf1[0]).not.eql(0xff)\n })\n\n it('should work without native Buffer', () => {\n vi.stubGlobal('Buffer', undefined)\n const buf1 = new Uint8Array([1, 2, 3])\n const buf2 = new Uint8Array([4, 5, 6])\n const buf = concatBuffers([buf1, buf2])\n\n buf1[0] = 0xff\n\n expect([...buf]).eql([1, 2, 3, 4, 5, 6])\n })\n\n afterEach(() => void vi.unstubAllGlobals())\n})\n\ndescribe('bufferToReversed', () => {\n it('should reverse the buffer', () => {\n const buf = bufferToReversed(new Uint8Array([1, 2, 3, 4, 5, 6]))\n\n expect([...buf]).eql([6, 5, 4, 3, 2, 1])\n })\n\n it('should reverse a part of the buffer', () => {\n const buf = bufferToReversed(new Uint8Array([1, 2, 3, 4, 5, 6]), 1, 5)\n\n expect([...buf]).eql([5, 4, 3, 2])\n })\n\n it('should create a new buffer', () => {\n const buf1 = new Uint8Array([1, 2, 3])\n const buf2 = bufferToReversed(buf1)\n\n buf2[0] = 0xff\n expect([...buf1]).eql([1, 2, 3])\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const condition_variable_js_1 = require("./condition-variable.js");
|
|
5
|
-
(0, vitest_1.describe)('ConditionVariable', () => {
|
|
6
|
-
(0, vitest_1.it)('should correctly unlock execution', async () => {
|
|
7
|
-
const cv = new condition_variable_js_1.ConditionVariable();
|
|
8
|
-
setTimeout(() => cv.notify(), 10);
|
|
9
|
-
await cv.wait();
|
|
10
|
-
(0, vitest_1.expect)(true).toBeTruthy();
|
|
11
|
-
});
|
|
12
|
-
(0, vitest_1.it)('should correctly time out', async () => {
|
|
13
|
-
const cv = new condition_variable_js_1.ConditionVariable();
|
|
14
|
-
await cv.wait(10);
|
|
15
|
-
(0, vitest_1.expect)(true).toBeTruthy();
|
|
16
|
-
});
|
|
17
|
-
(0, vitest_1.it)('should only unlock once', async () => {
|
|
18
|
-
const cv = new condition_variable_js_1.ConditionVariable();
|
|
19
|
-
setTimeout(() => {
|
|
20
|
-
cv.notify();
|
|
21
|
-
cv.notify();
|
|
22
|
-
}, 10);
|
|
23
|
-
await cv.wait();
|
|
24
|
-
(0, vitest_1.expect)(true).toBeTruthy();
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
//# sourceMappingURL=condition-variable.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"condition-variable.test.js","sourceRoot":"","sources":["../../../src/utils/condition-variable.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,mEAA2D;AAE3D,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,IAAA,WAAE,EAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,IAAI,yCAAiB,EAAE,CAAA;QAElC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;QAEjC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAEf,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,EAAE,GAAG,IAAI,yCAAiB,EAAE,CAAA;QAElC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEjB,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,GAAG,IAAI,yCAAiB,EAAE,CAAA;QAElC,UAAU,CAAC,GAAG,EAAE;YACZ,EAAE,CAAC,MAAM,EAAE,CAAA;YACX,EAAE,CAAC,MAAM,EAAE,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAEf,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { ConditionVariable } from './condition-variable.js'\n\ndescribe('ConditionVariable', () => {\n it('should correctly unlock execution', async () => {\n const cv = new ConditionVariable()\n\n setTimeout(() => cv.notify(), 10)\n\n await cv.wait()\n\n expect(true).toBeTruthy()\n })\n\n it('should correctly time out', async () => {\n const cv = new ConditionVariable()\n\n await cv.wait(10)\n\n expect(true).toBeTruthy()\n })\n\n it('should only unlock once', async () => {\n const cv = new ConditionVariable()\n\n setTimeout(() => {\n cv.notify()\n cv.notify()\n }, 10)\n\n await cv.wait()\n\n expect(true).toBeTruthy()\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const controllable_promise_js_1 = require("./controllable-promise.js");
|
|
5
|
-
(0, vitest_1.describe)('createControllablePromise', () => {
|
|
6
|
-
(0, vitest_1.it)('should resolve', async () => {
|
|
7
|
-
const p = (0, controllable_promise_js_1.createControllablePromise)();
|
|
8
|
-
p.resolve(1);
|
|
9
|
-
await (0, vitest_1.expect)(p).resolves.toBe(1);
|
|
10
|
-
});
|
|
11
|
-
(0, vitest_1.it)('should reject', async () => {
|
|
12
|
-
const p = (0, controllable_promise_js_1.createControllablePromise)();
|
|
13
|
-
p.reject(1);
|
|
14
|
-
await (0, vitest_1.expect)(p).rejects.toBe(1);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=controllable-promise.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controllable-promise.test.js","sourceRoot":"","sources":["../../../src/utils/controllable-promise.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,uEAAqE;AAErE,IAAA,iBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,IAAA,WAAE,EAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,CAAC,GAAG,IAAA,mDAAyB,GAAE,CAAA;QACrC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACZ,MAAM,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,GAAG,IAAA,mDAAyB,GAAE,CAAA;QACrC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACX,MAAM,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { createControllablePromise } from './controllable-promise.js'\n\ndescribe('createControllablePromise', () => {\n it('should resolve', async () => {\n const p = createControllablePromise()\n p.resolve(1)\n await expect(p).resolves.toBe(1)\n })\n\n it('should reject', async () => {\n const p = createControllablePromise()\n p.reject(1)\n await expect(p).rejects.toBe(1)\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const bigint_utils_js_1 = require("../bigint-utils.js");
|
|
5
|
-
const factorization_js_1 = require("./factorization.js");
|
|
6
|
-
const index_js_1 = require("./index.js");
|
|
7
|
-
(0, vitest_1.describe)('prime factorization', () => {
|
|
8
|
-
const testFactorization = (pq, p, q) => {
|
|
9
|
-
const [p_, q_] = (0, factorization_js_1.factorizePQSync)((0, index_js_1.defaultCryptoProviderFactory)(), (0, bigint_utils_js_1.bigIntToBuffer)(pq));
|
|
10
|
-
(0, vitest_1.expect)((0, bigint_utils_js_1.bufferToBigInt)(p_)).toBe(p);
|
|
11
|
-
(0, vitest_1.expect)((0, bigint_utils_js_1.bufferToBigInt)(q_)).toBe(q);
|
|
12
|
-
};
|
|
13
|
-
(0, vitest_1.it)('should factorize', () => {
|
|
14
|
-
testFactorization(2090522174869285481n, 1112973847n, 1878321023n);
|
|
15
|
-
testFactorization(1470626929934143021n, 1206429347n, 1218991343n);
|
|
16
|
-
testFactorization(2804275833720261793n, 1555252417n, 1803100129n);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=factorization.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"factorization.test.js","sourceRoot":"","sources":["../../../../src/utils/crypto/factorization.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,wDAAmE;AACnE,yDAAoD;AACpD,yCAAyD;AAEzD,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;QAC3D,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAA,kCAAe,EAAC,IAAA,uCAA4B,GAAE,EAAE,IAAA,gCAAc,EAAC,EAAE,CAAC,CAAC,CAAA;QACpF,IAAA,eAAM,EAAC,IAAA,gCAAc,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClC,IAAA,eAAM,EAAC,IAAA,gCAAc,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,IAAA,WAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,iBAAiB,CAAC,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QACjE,iBAAiB,CAAC,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QACjE,iBAAiB,CAAC,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { bigIntToBuffer, bufferToBigInt } from '../bigint-utils.js'\nimport { factorizePQSync } from './factorization.js'\nimport { defaultCryptoProviderFactory } from './index.js'\n\ndescribe('prime factorization', () => {\n const testFactorization = (pq: bigint, p: bigint, q: bigint) => {\n const [p_, q_] = factorizePQSync(defaultCryptoProviderFactory(), bigIntToBuffer(pq))\n expect(bufferToBigInt(p_)).toBe(p)\n expect(bufferToBigInt(q_)).toBe(q)\n }\n\n it('should factorize', () => {\n testFactorization(2090522174869285481n, 1112973847n, 1878321023n)\n testFactorization(1470626929934143021n, 1206429347n, 1218991343n)\n testFactorization(2804275833720261793n, 1555252417n, 1803100129n)\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const index_js_1 = require("../index.js");
|
|
5
|
-
const node_js_1 = require("./node.js");
|
|
6
|
-
const crypto = new node_js_1.NodeCryptoProvider();
|
|
7
|
-
(0, vitest_1.describe)('parsePublicKey', () => {
|
|
8
|
-
(0, vitest_1.it)('should parse telegram public keys', () => {
|
|
9
|
-
(0, vitest_1.expect)((0, index_js_1.parsePublicKey)(crypto, `-----BEGIN RSA PUBLIC KEY-----
|
|
10
|
-
MIIBCgKCAQEAruw2yP/BCcsJliRoW5eBVBVle9dtjJw+OYED160Wybum9SXtBBLX
|
|
11
|
-
riwt4rROd9csv0t0OHCaTmRqBcQ0J8fxhN6/cpR1GWgOZRUAiQxoMnlt0R93LCX/
|
|
12
|
-
j1dnVa/gVbCjdSxpbrfY2g2L4frzjJvdl84Kd9ORYjDEAyFnEA7dD556OptgLQQ2
|
|
13
|
-
e2iVNq8NZLYTzLp5YpOdO1doK+ttrltggTCy5SrKeLoCPPbOgGsdxJxyz5KKcZnS
|
|
14
|
-
Lj16yE5HvJQn0CNpRdENvRUXe6tBP78O39oJ8BTHp9oIjd6XWXAsp2CvK45Ol8wF
|
|
15
|
-
XGF710w9lwCGNbmNxNYhtIkdqfsEcwR5JwIDAQAB
|
|
16
|
-
-----END RSA PUBLIC KEY-----`)).eql({
|
|
17
|
-
modulus: 'aeec36c8ffc109cb099624685b97815415657bd76d8c9c3e398103d7ad16c9bba6f525ed0412d7ae2c2de2b44e77d72cbf4b7438709a4e646a05c43427c7f184debf72947519680e651500890c6832796dd11f772c25ff8f576755afe055b0a3752c696eb7d8da0d8be1faf38c9bdd97ce0a77d3916230c4032167100edd0f9e7a3a9b602d04367b689536af0d64b613ccba7962939d3b57682beb6dae5b608130b2e52aca78ba023cf6ce806b1dc49c72cf928a7199d22e3d7ac84e47bc9427d0236945d10dbd15177bab413fbf0edfda09f014c7a7da088dde9759702ca760af2b8e4e97cc055c617bd74c3d97008635b98dc4d621b4891da9fb0473047927',
|
|
18
|
-
exponent: '010001',
|
|
19
|
-
fingerprint: '0bc35f3509f7b7a5',
|
|
20
|
-
old: false,
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
(0, vitest_1.it)('should be able to find a key by its fingerprint', () => {
|
|
24
|
-
(0, vitest_1.expect)((0, index_js_1.findKeyByFingerprints)(['b25898df208d2603'])).toMatchInlineSnapshot(`
|
|
25
|
-
{
|
|
26
|
-
"exponent": "010001",
|
|
27
|
-
"fingerprint": "b25898df208d2603",
|
|
28
|
-
"modulus": "c8c11d635691fac091dd9489aedced2932aa8a0bcefef05fa800892d9b52ed03200865c9e97211cb2ee6c7ae96d3fb0e15aeffd66019b44a08a240cfdd2868a85e1f54d6fa5deaa041f6941ddf302690d61dc476385c2fa655142353cb4e4b59f6e5b6584db76fe8b1370263246c010c93d011014113ebdf987d093f9d37c2be48352d69a1683f8f6e6c2167983c761e3ab169fde5daaa12123fa1beab621e4da5935e9c198f82f35eae583a99386d8110ea6bd1abb0f568759f62694419ea5f69847c43462abef858b4cb5edc84e7b9226cd7bd7e183aa974a712c079dde85b9dc063b8a5c08e8f859c0ee5dcd824c7807f20153361a7f63cfd2a433a1be7f5",
|
|
29
|
-
"old": false,
|
|
30
|
-
}
|
|
31
|
-
`);
|
|
32
|
-
});
|
|
33
|
-
(0, vitest_1.it)('should prefer new keys over old', () => {
|
|
34
|
-
(0, vitest_1.expect)((0, index_js_1.findKeyByFingerprints)(['71e025b6c76033e3', 'b25898df208d2603'])?.fingerprint).toEqual('b25898df208d2603');
|
|
35
|
-
});
|
|
36
|
-
(0, vitest_1.it)('should return null if not found', () => {
|
|
37
|
-
(0, vitest_1.expect)((0, index_js_1.findKeyByFingerprints)(['deadbeefdeadbeef'])).toBeNull();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=keys.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.test.js","sourceRoot":"","sources":["../../../../src/utils/crypto/keys.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,0CAAmE;AACnE,uCAA8C;AAE9C,MAAM,MAAM,GAAG,IAAI,4BAAkB,EAAE,CAAA;AAEvC,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,IAAA,eAAM,EACF,IAAA,yBAAc,EACV,MAAM,EACN;;;;;;;6BAOa,CAChB,CACJ,CAAC,GAAG,CAAC;YACF,OAAO,EACH,kgBAAkgB;YACtgB,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,kBAAkB;YAC/B,GAAG,EAAE,KAAK;SACb,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;SAOzE,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACpH,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAClE,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { findKeyByFingerprints, parsePublicKey } from '../index.js'\nimport { NodeCryptoProvider } from './node.js'\n\nconst crypto = new NodeCryptoProvider()\n\ndescribe('parsePublicKey', () => {\n it('should parse telegram public keys', () => {\n expect(\n parsePublicKey(\n crypto,\n `-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAruw2yP/BCcsJliRoW5eBVBVle9dtjJw+OYED160Wybum9SXtBBLX\nriwt4rROd9csv0t0OHCaTmRqBcQ0J8fxhN6/cpR1GWgOZRUAiQxoMnlt0R93LCX/\nj1dnVa/gVbCjdSxpbrfY2g2L4frzjJvdl84Kd9ORYjDEAyFnEA7dD556OptgLQQ2\ne2iVNq8NZLYTzLp5YpOdO1doK+ttrltggTCy5SrKeLoCPPbOgGsdxJxyz5KKcZnS\nLj16yE5HvJQn0CNpRdENvRUXe6tBP78O39oJ8BTHp9oIjd6XWXAsp2CvK45Ol8wF\nXGF710w9lwCGNbmNxNYhtIkdqfsEcwR5JwIDAQAB\n-----END RSA PUBLIC KEY-----`,\n ),\n ).eql({\n modulus:\n 'aeec36c8ffc109cb099624685b97815415657bd76d8c9c3e398103d7ad16c9bba6f525ed0412d7ae2c2de2b44e77d72cbf4b7438709a4e646a05c43427c7f184debf72947519680e651500890c6832796dd11f772c25ff8f576755afe055b0a3752c696eb7d8da0d8be1faf38c9bdd97ce0a77d3916230c4032167100edd0f9e7a3a9b602d04367b689536af0d64b613ccba7962939d3b57682beb6dae5b608130b2e52aca78ba023cf6ce806b1dc49c72cf928a7199d22e3d7ac84e47bc9427d0236945d10dbd15177bab413fbf0edfda09f014c7a7da088dde9759702ca760af2b8e4e97cc055c617bd74c3d97008635b98dc4d621b4891da9fb0473047927',\n exponent: '010001',\n fingerprint: '0bc35f3509f7b7a5',\n old: false,\n })\n })\n\n it('should be able to find a key by its fingerprint', () => {\n expect(findKeyByFingerprints(['b25898df208d2603'])).toMatchInlineSnapshot(`\n {\n \"exponent\": \"010001\",\n \"fingerprint\": \"b25898df208d2603\",\n \"modulus\": \"c8c11d635691fac091dd9489aedced2932aa8a0bcefef05fa800892d9b52ed03200865c9e97211cb2ee6c7ae96d3fb0e15aeffd66019b44a08a240cfdd2868a85e1f54d6fa5deaa041f6941ddf302690d61dc476385c2fa655142353cb4e4b59f6e5b6584db76fe8b1370263246c010c93d011014113ebdf987d093f9d37c2be48352d69a1683f8f6e6c2167983c761e3ab169fde5daaa12123fa1beab621e4da5935e9c198f82f35eae583a99386d8110ea6bd1abb0f568759f62694419ea5f69847c43462abef858b4cb5edc84e7b9226cd7bd7e183aa974a712c079dde85b9dc063b8a5c08e8f859c0ee5dcd824c7807f20153361a7f63cfd2a433a1be7f5\",\n \"old\": false,\n }\n `)\n })\n\n it('should prefer new keys over old', () => {\n expect(findKeyByFingerprints(['71e025b6c76033e3', 'b25898df208d2603'])?.fingerprint).toEqual('b25898df208d2603')\n })\n\n it('should return null if not found', () => {\n expect(findKeyByFingerprints(['deadbeefdeadbeef'])).toBeNull()\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const index_js_1 = require("./index.js");
|
|
5
|
-
const miller_rabin_js_1 = require("./miller-rabin.js");
|
|
6
|
-
(0, vitest_1.describe)('miller-rabin test', function () {
|
|
7
|
-
// miller-rabin factorization relies on RNG, so we should use a real random number generator
|
|
8
|
-
const c = (0, index_js_1.defaultCryptoProviderFactory)();
|
|
9
|
-
const testMillerRabin = (n, isPrime) => {
|
|
10
|
-
(0, vitest_1.expect)((0, miller_rabin_js_1.millerRabin)(c, BigInt(n))).eq(isPrime);
|
|
11
|
-
};
|
|
12
|
-
(0, vitest_1.it)('should correctly label small primes as probable primes', () => {
|
|
13
|
-
const smallOddPrimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31];
|
|
14
|
-
for (const prime of smallOddPrimes) {
|
|
15
|
-
testMillerRabin(prime, true);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
(0, vitest_1.it)('should correctly label small odd composite numbers as composite', () => {
|
|
19
|
-
const smallOddPrimes = [9, 15, 21, 25, 27, 33, 35];
|
|
20
|
-
for (const prime of smallOddPrimes) {
|
|
21
|
-
testMillerRabin(prime, false);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
// primes are generated using `openssl prime -generate -bits <bits>`
|
|
25
|
-
(0, vitest_1.it)('should work for 512-bit numbers', () => {
|
|
26
|
-
testMillerRabin('8411445470921866378538628788380866906358949375899610911537071281076627385046125382763689993349183284546479522400013151510610266158235924343045768103605519', true);
|
|
27
|
-
testMillerRabin('11167561990563990242158096122232207092938761092751537312016255867850441858086589598418467012717458858604863547175649456433632887622140170743409535470973399', true);
|
|
28
|
-
testMillerRabin('11006717791910450367418249787526506184731090161438431250022510598653874155081488487035840577645711578911087148186160668569071839053453201592321650008610329', true);
|
|
29
|
-
testMillerRabin('12224330340162812215033324917156282302617911690617664923428569636370785775561435789211091021550357876767050350997458404009005800772805534351607294516706177', true);
|
|
30
|
-
// above numbers but -2 (not prime)
|
|
31
|
-
testMillerRabin('8411445470921866378538628788380866906358949375899610911537071281076627385046125382763689993349183284546479522400013151510610266158235924343045768103605517', false);
|
|
32
|
-
testMillerRabin('11167561990563990242158096122232207092938761092751537312016255867850441858086589598418467012717458858604863547175649456433632887622140170743409535470973397', false);
|
|
33
|
-
testMillerRabin('11006717791910450367418249787526506184731090161438431250022510598653874155081488487035840577645711578911087148186160668569071839053453201592321650008610327', false);
|
|
34
|
-
testMillerRabin('12224330340162812215033324917156282302617911690617664923428569636370785775561435789211091021550357876767050350997458404009005800772805534351607294516706175', false);
|
|
35
|
-
});
|
|
36
|
-
(0, vitest_1.it)('should work for 1024-bit numbers', () => {
|
|
37
|
-
testMillerRabin('94163180970530844245052892199633535954736903357996153321496979115367320260897793334681106861766748541439161886270777106456088209508872459550450259737267142959061663564218457086654112219462515165219295402175541003899136060178102898376369981338103600856012709228116661479275753497725541132207243717937379815409', true);
|
|
38
|
-
testMillerRabin('97324962433497727515811278760066576725849776656602017497363465683978397629803148191267105308901733336070351381654371470561376353774017284623969415330564867697353080030917333974193741719718950105404732792050882127213356260415251087867407489400712288570880407613514781891914135956778687719588061176455381937003', true);
|
|
39
|
-
testMillerRabin('92511311413226091818378551616231701579277597795073142338527410334932345968554993390789667936819230228388142960299649466238701015865565141753710450319875546944139442823075990348978746055937500467483161699883905850192191164043687791185635729923497381849380102040768674652775240505782671289535260164547714030567', true);
|
|
40
|
-
testMillerRabin('98801756216479639848708157708947504990501845258427605711852570166662700681215707617225664134994147912417941920327932092748574265476658124536672887141144222716123085451749764522435906007567360583062117498919471220566974634924384147341592903939264267901029640119196259026154529723870788246284629644039137378253', true);
|
|
41
|
-
// above numbers but -2 (not prime)
|
|
42
|
-
testMillerRabin('94163180970530844245052892199633535954736903357996153321496979115367320260897793334681106861766748541439161886270777106456088209508872459550450259737267142959061663564218457086654112219462515165219295402175541003899136060178102898376369981338103600856012709228116661479275753497725541132207243717937379815407', false);
|
|
43
|
-
testMillerRabin('97324962433497727515811278760066576725849776656602017497363465683978397629803148191267105308901733336070351381654371470561376353774017284623969415330564867697353080030917333974193741719718950105404732792050882127213356260415251087867407489400712288570880407613514781891914135956778687719588061176455381937001', false);
|
|
44
|
-
testMillerRabin('92511311413226091818378551616231701579277597795073142338527410334932345968554993390789667936819230228388142960299649466238701015865565141753710450319875546944139442823075990348978746055937500467483161699883905850192191164043687791185635729923497381849380102040768674652775240505782671289535260164547714030565', false);
|
|
45
|
-
testMillerRabin('98801756216479639848708157708947504990501845258427605711852570166662700681215707617225664134994147912417941920327932092748574265476658124536672887141144222716123085451749764522435906007567360583062117498919471220566974634924384147341592903939264267901029640119196259026154529723870788246284629644039137378251', false);
|
|
46
|
-
});
|
|
47
|
-
(0, vitest_1.it)('should work for 2048-bit numbers', () => {
|
|
48
|
-
testMillerRabin('28608382334358769588283288249494859626901014972463291352091976543138105382282108662849885913053034513852843449409838151123568984617793641641937583673207501643041336002587032201383537626393235736734494131431069043382068545865505150651648610506542819001961332454611129372758714288168807328523359776577571626967649079147416191592855529888846889532625386469236278694936872628305052827422772792103722178298844645210242389265273407924858034431614414896134561928996888883994953322861399988094086562513898527391555490352156627307769278185444897960555995383228897584818577375695810423475039211516849716140051437120083274285367', true);
|
|
49
|
-
testMillerRabin('30244022694659482453371920976249272809817388822378671144866806600284132009663832003348737406289715119965835410140834733465553787513841966120831322372642881643693711233087233983267648392814127424201572290931937482043046169402667397610783447368703776842799852222745601531140231486417855517072392416789672922529566643118973930252809010605519948446055538976582290902060054788109497630796585770940656002892943575479533099350429655210881833493066716819282707441553612603960556051122162329171373373251909387401572866056121964608595895425640834764028568120995397759283490218181167000161310959711677055741632674632758727382743', true);
|
|
50
|
-
testMillerRabin('30560953105766401423987964658775999222308579908395527900931049506803845883459894704297458477118152899910620180302473409631442956208933061650967001020981432894530064472547770442696756724169958362395601360296775798187903794894866967342028337982275745956538015473621792510615113531964380246815875830970404687926061637030085629909804357717955251735074071072456074274947993921828878633638119117086342305530526661796817095624933200483138188878398983149622639425550360394901699701985050966685840649129419227936413574227792077082510807968104733387734970009620450108276446659342203263759999068046251645984039420643003580284779', true);
|
|
51
|
-
// above numbers but -2 (not prime)
|
|
52
|
-
testMillerRabin('28608382334358769588283288249494859626901014972463291352091976543138105382282108662849885913053034513852843449409838151123568984617793641641937583673207501643041336002587032201383537626393235736734494131431069043382068545865505150651648610506542819001961332454611129372758714288168807328523359776577571626967649079147416191592855529888846889532625386469236278694936872628305052827422772792103722178298844645210242389265273407924858034431614414896134561928996888883994953322861399988094086562513898527391555490352156627307769278185444897960555995383228897584818577375695810423475039211516849716140051437120083274285365', false);
|
|
53
|
-
testMillerRabin('30244022694659482453371920976249272809817388822378671144866806600284132009663832003348737406289715119965835410140834733465553787513841966120831322372642881643693711233087233983267648392814127424201572290931937482043046169402667397610783447368703776842799852222745601531140231486417855517072392416789672922529566643118973930252809010605519948446055538976582290902060054788109497630796585770940656002892943575479533099350429655210881833493066716819282707441553612603960556051122162329171373373251909387401572866056121964608595895425640834764028568120995397759283490218181167000161310959711677055741632674632758727382741', false);
|
|
54
|
-
testMillerRabin('30560953105766401423987964658775999222308579908395527900931049506803845883459894704297458477118152899910620180302473409631442956208933061650967001020981432894530064472547770442696756724169958362395601360296775798187903794894866967342028337982275745956538015473621792510615113531964380246815875830970404687926061637030085629909804357717955251735074071072456074274947993921828878633638119117086342305530526661796817095624933200483138188878398983149622639425550360394901699701985050966685840649129419227936413574227792077082510807968104733387734970009620450108276446659342203263759999068046251645984039420643003580284777', false);
|
|
55
|
-
// dh_prime used by telegram, as seen in https://core.telegram.org/mtproto/security_guidelines
|
|
56
|
-
const telegramDhPrime = 'C7 1C AE B9 C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E 0A C9 25 13 95 43 AE D4 4C CE 7C 37 20 FD 51 F6 94 58 70 5A C6 8C D4 FE 6B 6B 13 AB DC 97 46 51 29 69 32 84 54 F1 8F AF 8C 59 5F 64 24 77 FE 96 BB 2A 94 1D 5B CD 1D 4A C8 CC 49 88 07 08 FA 9B 37 8E 3C 4F 3A 90 60 BE E6 7C F9 A4 A4 A6 95 81 10 51 90 7E 16 27 53 B5 6B 0F 6B 41 0D BA 74 D8 A8 4B 2A 14 B3 14 4E 0E F1 28 47 54 FD 17 ED 95 0D 59 65 B4 B9 DD 46 58 2D B1 17 8D 16 9C 6B C4 65 B0 D6 FF 9C A3 92 8F EF 5B 9A E4 E4 18 FC 15 E8 3E BE A0 F8 7F A9 FF 5E ED 70 05 0D ED 28 49 F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B';
|
|
57
|
-
testMillerRabin(BigInt('0x' + telegramDhPrime.replace(/ /g, '')), true);
|
|
58
|
-
});
|
|
59
|
-
}, { timeout: 10000 }); // since miller-rabin factorization relies on RNG, it may take a while (or may not!)
|
|
60
|
-
//# sourceMappingURL=miller-rabin.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"miller-rabin.test.js","sourceRoot":"","sources":["../../../../src/utils/crypto/miller-rabin.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { defaultCryptoProviderFactory } from './index.js'\nimport { millerRabin } from './miller-rabin.js'\n\ndescribe(\n 'miller-rabin test',\n function () {\n // miller-rabin factorization relies on RNG, so we should use a real random number generator\n const c = defaultCryptoProviderFactory()\n\n const testMillerRabin = (n: number | string | bigint, isPrime: boolean) => {\n expect(millerRabin(c, BigInt(n))).eq(isPrime)\n }\n\n it('should correctly label small primes as probable primes', () => {\n const smallOddPrimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]\n\n for (const prime of smallOddPrimes) {\n testMillerRabin(prime, true)\n }\n })\n\n it('should correctly label small odd composite numbers as composite', () => {\n const smallOddPrimes = [9, 15, 21, 25, 27, 33, 35]\n\n for (const prime of smallOddPrimes) {\n testMillerRabin(prime, false)\n }\n })\n\n // primes are generated using `openssl prime -generate -bits <bits>`\n\n it('should work for 512-bit numbers', () => {\n testMillerRabin(\n '8411445470921866378538628788380866906358949375899610911537071281076627385046125382763689993349183284546479522400013151510610266158235924343045768103605519',\n true,\n )\n testMillerRabin(\n '11167561990563990242158096122232207092938761092751537312016255867850441858086589598418467012717458858604863547175649456433632887622140170743409535470973399',\n true,\n )\n testMillerRabin(\n '11006717791910450367418249787526506184731090161438431250022510598653874155081488487035840577645711578911087148186160668569071839053453201592321650008610329',\n true,\n )\n testMillerRabin(\n '12224330340162812215033324917156282302617911690617664923428569636370785775561435789211091021550357876767050350997458404009005800772805534351607294516706177',\n true,\n )\n\n // above numbers but -2 (not prime)\n testMillerRabin(\n '8411445470921866378538628788380866906358949375899610911537071281076627385046125382763689993349183284546479522400013151510610266158235924343045768103605517',\n false,\n )\n testMillerRabin(\n '11167561990563990242158096122232207092938761092751537312016255867850441858086589598418467012717458858604863547175649456433632887622140170743409535470973397',\n false,\n )\n testMillerRabin(\n '11006717791910450367418249787526506184731090161438431250022510598653874155081488487035840577645711578911087148186160668569071839053453201592321650008610327',\n false,\n )\n testMillerRabin(\n '12224330340162812215033324917156282302617911690617664923428569636370785775561435789211091021550357876767050350997458404009005800772805534351607294516706175',\n false,\n )\n })\n\n it('should work for 1024-bit numbers', () => {\n testMillerRabin(\n '94163180970530844245052892199633535954736903357996153321496979115367320260897793334681106861766748541439161886270777106456088209508872459550450259737267142959061663564218457086654112219462515165219295402175541003899136060178102898376369981338103600856012709228116661479275753497725541132207243717937379815409',\n true,\n )\n testMillerRabin(\n '97324962433497727515811278760066576725849776656602017497363465683978397629803148191267105308901733336070351381654371470561376353774017284623969415330564867697353080030917333974193741719718950105404732792050882127213356260415251087867407489400712288570880407613514781891914135956778687719588061176455381937003',\n true,\n )\n testMillerRabin(\n '92511311413226091818378551616231701579277597795073142338527410334932345968554993390789667936819230228388142960299649466238701015865565141753710450319875546944139442823075990348978746055937500467483161699883905850192191164043687791185635729923497381849380102040768674652775240505782671289535260164547714030567',\n true,\n )\n testMillerRabin(\n '98801756216479639848708157708947504990501845258427605711852570166662700681215707617225664134994147912417941920327932092748574265476658124536672887141144222716123085451749764522435906007567360583062117498919471220566974634924384147341592903939264267901029640119196259026154529723870788246284629644039137378253',\n true,\n )\n\n // above numbers but -2 (not prime)\n testMillerRabin(\n '94163180970530844245052892199633535954736903357996153321496979115367320260897793334681106861766748541439161886270777106456088209508872459550450259737267142959061663564218457086654112219462515165219295402175541003899136060178102898376369981338103600856012709228116661479275753497725541132207243717937379815407',\n false,\n )\n testMillerRabin(\n '97324962433497727515811278760066576725849776656602017497363465683978397629803148191267105308901733336070351381654371470561376353774017284623969415330564867697353080030917333974193741719718950105404732792050882127213356260415251087867407489400712288570880407613514781891914135956778687719588061176455381937001',\n false,\n )\n testMillerRabin(\n '92511311413226091818378551616231701579277597795073142338527410334932345968554993390789667936819230228388142960299649466238701015865565141753710450319875546944139442823075990348978746055937500467483161699883905850192191164043687791185635729923497381849380102040768674652775240505782671289535260164547714030565',\n false,\n )\n testMillerRabin(\n '98801756216479639848708157708947504990501845258427605711852570166662700681215707617225664134994147912417941920327932092748574265476658124536672887141144222716123085451749764522435906007567360583062117498919471220566974634924384147341592903939264267901029640119196259026154529723870788246284629644039137378251',\n false,\n )\n })\n\n it('should work for 2048-bit numbers', () => {\n testMillerRabin(\n '28608382334358769588283288249494859626901014972463291352091976543138105382282108662849885913053034513852843449409838151123568984617793641641937583673207501643041336002587032201383537626393235736734494131431069043382068545865505150651648610506542819001961332454611129372758714288168807328523359776577571626967649079147416191592855529888846889532625386469236278694936872628305052827422772792103722178298844645210242389265273407924858034431614414896134561928996888883994953322861399988094086562513898527391555490352156627307769278185444897960555995383228897584818577375695810423475039211516849716140051437120083274285367',\n true,\n )\n testMillerRabin(\n '30244022694659482453371920976249272809817388822378671144866806600284132009663832003348737406289715119965835410140834733465553787513841966120831322372642881643693711233087233983267648392814127424201572290931937482043046169402667397610783447368703776842799852222745601531140231486417855517072392416789672922529566643118973930252809010605519948446055538976582290902060054788109497630796585770940656002892943575479533099350429655210881833493066716819282707441553612603960556051122162329171373373251909387401572866056121964608595895425640834764028568120995397759283490218181167000161310959711677055741632674632758727382743',\n true,\n )\n testMillerRabin(\n '30560953105766401423987964658775999222308579908395527900931049506803845883459894704297458477118152899910620180302473409631442956208933061650967001020981432894530064472547770442696756724169958362395601360296775798187903794894866967342028337982275745956538015473621792510615113531964380246815875830970404687926061637030085629909804357717955251735074071072456074274947993921828878633638119117086342305530526661796817095624933200483138188878398983149622639425550360394901699701985050966685840649129419227936413574227792077082510807968104733387734970009620450108276446659342203263759999068046251645984039420643003580284779',\n true,\n )\n\n // above numbers but -2 (not prime)\n testMillerRabin(\n '28608382334358769588283288249494859626901014972463291352091976543138105382282108662849885913053034513852843449409838151123568984617793641641937583673207501643041336002587032201383537626393235736734494131431069043382068545865505150651648610506542819001961332454611129372758714288168807328523359776577571626967649079147416191592855529888846889532625386469236278694936872628305052827422772792103722178298844645210242389265273407924858034431614414896134561928996888883994953322861399988094086562513898527391555490352156627307769278185444897960555995383228897584818577375695810423475039211516849716140051437120083274285365',\n false,\n )\n testMillerRabin(\n '30244022694659482453371920976249272809817388822378671144866806600284132009663832003348737406289715119965835410140834733465553787513841966120831322372642881643693711233087233983267648392814127424201572290931937482043046169402667397610783447368703776842799852222745601531140231486417855517072392416789672922529566643118973930252809010605519948446055538976582290902060054788109497630796585770940656002892943575479533099350429655210881833493066716819282707441553612603960556051122162329171373373251909387401572866056121964608595895425640834764028568120995397759283490218181167000161310959711677055741632674632758727382741',\n false,\n )\n testMillerRabin(\n '30560953105766401423987964658775999222308579908395527900931049506803845883459894704297458477118152899910620180302473409631442956208933061650967001020981432894530064472547770442696756724169958362395601360296775798187903794894866967342028337982275745956538015473621792510615113531964380246815875830970404687926061637030085629909804357717955251735074071072456074274947993921828878633638119117086342305530526661796817095624933200483138188878398983149622639425550360394901699701985050966685840649129419227936413574227792077082510807968104733387734970009620450108276446659342203263759999068046251645984039420643003580284777',\n false,\n )\n\n // dh_prime used by telegram, as seen in https://core.telegram.org/mtproto/security_guidelines\n const telegramDhPrime =\n 'C7 1C AE B9 C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E 0A C9 25 13 95 43 AE D4 4C CE 7C 37 20 FD 51 F6 94 58 70 5A C6 8C D4 FE 6B 6B 13 AB DC 97 46 51 29 69 32 84 54 F1 8F AF 8C 59 5F 64 24 77 FE 96 BB 2A 94 1D 5B CD 1D 4A C8 CC 49 88 07 08 FA 9B 37 8E 3C 4F 3A 90 60 BE E6 7C F9 A4 A4 A6 95 81 10 51 90 7E 16 27 53 B5 6B 0F 6B 41 0D BA 74 D8 A8 4B 2A 14 B3 14 4E 0E F1 28 47 54 FD 17 ED 95 0D 59 65 B4 B9 DD 46 58 2D B1 17 8D 16 9C 6B C4 65 B0 D6 FF 9C A3 92 8F EF 5B 9A E4 E4 18 FC 15 E8 3E BE A0 F8 7F A9 FF 5E ED 70 05 0D ED 28 49 F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B'\n testMillerRabin(BigInt('0x' + telegramDhPrime.replace(/ /g, '')), true)\n })\n },\n { timeout: 10000 },\n) // since miller-rabin factorization relies on RNG, it may take a while (or may not!)\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const test_1 = require("@mtcute/test");
|
|
5
|
-
const index_js_1 = require("../index.js");
|
|
6
|
-
const mtproto_js_1 = require("./mtproto.js");
|
|
7
|
-
const authKeyChunk = (0, index_js_1.hexDecodeToBuffer)('98cb29c6ffa89e79da695a54f572e6cb101e81c688b63a4bf73c3622dec230e0');
|
|
8
|
-
const authKey = (0, index_js_1.concatBuffers)(Array.from({ length: 8 }, () => authKeyChunk));
|
|
9
|
-
const messageKey = (0, index_js_1.hexDecodeToBuffer)('25d701f2a29205526757825a99eb2d32');
|
|
10
|
-
(0, vitest_1.describe)('mtproto 2.0', async () => {
|
|
11
|
-
const crypto = await (0, test_1.defaultTestCryptoProvider)();
|
|
12
|
-
const createAesIgeSpy = vitest_1.vi.spyOn(crypto, 'createAesIge');
|
|
13
|
-
(0, vitest_1.beforeEach)(() => void createAesIgeSpy.mockClear());
|
|
14
|
-
(0, vitest_1.it)('should correctly derive message key and iv for client', () => {
|
|
15
|
-
(0, mtproto_js_1.createAesIgeForMessage)(crypto, authKey, messageKey, true);
|
|
16
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][0])).toEqual('af3f8e1ffa75f4c981eec33a3e5bbaa2ea48f9bb93e91597627eb1f67960a0c9');
|
|
17
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][1])).toEqual('9874d77f95155b35221bff94b7df4594c6996e2a62e44fcb7d93c8c4e41b79ee');
|
|
18
|
-
});
|
|
19
|
-
(0, vitest_1.it)('should correctly derive message key and iv for server', () => {
|
|
20
|
-
(0, mtproto_js_1.createAesIgeForMessage)(crypto, authKey, messageKey, false);
|
|
21
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][0])).toEqual('d4b378e1e0525f10ff9d4c42807ccce5b30a033a8088c0b922b5259421751648');
|
|
22
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][1])).toEqual('4d7194f42f0135d2fd83050b403265b4c40ee3e9e9fba56f0f4d8ea6bcb121f5');
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
(0, vitest_1.describe)('mtproto 1.0', async () => {
|
|
26
|
-
const crypto = await (0, test_1.defaultTestCryptoProvider)();
|
|
27
|
-
const createAesIgeSpy = vitest_1.vi.spyOn(crypto, 'createAesIge');
|
|
28
|
-
(0, vitest_1.beforeEach)(() => void createAesIgeSpy.mockClear());
|
|
29
|
-
(0, vitest_1.it)('should correctly derive message key and iv for client', () => {
|
|
30
|
-
(0, mtproto_js_1.createAesIgeForMessageOld)(crypto, authKey, messageKey, true);
|
|
31
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][0])).toEqual('1fc7b40b1d9ffbdaf4d652525a748864259698f89214abf27c0d36cb9d4cd5db');
|
|
32
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][1])).toEqual('7251fbda39ec5e6e089f15ded5963b03d6d8d0f7078898431fc7b40b1d9ffbda');
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.it)('should correctly derive message key and iv for server', () => {
|
|
35
|
-
(0, mtproto_js_1.createAesIgeForMessageOld)(crypto, authKey, messageKey, false);
|
|
36
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][0])).toEqual('af0e4e01318654be40ab42b125909d43b44bdeef571ff1a5dfb81474ae26d467');
|
|
37
|
-
(0, vitest_1.expect)((0, index_js_1.hexEncode)(createAesIgeSpy.mock.calls[0][1])).toEqual('15c9ba6021d2c5cf04f0842540ae216a970b4eac8f46ef01af0e4e01318654be');
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
(0, vitest_1.describe)('mtproto key/iv from nonce', async () => {
|
|
41
|
-
const crypto = await (0, test_1.defaultTestCryptoProvider)();
|
|
42
|
-
(0, vitest_1.it)('should correctly derive message key and iv for given nonces', () => {
|
|
43
|
-
const res = (0, mtproto_js_1.generateKeyAndIvFromNonce)(crypto, (0, test_1.u8HexDecode)('8af24c551836e5ed7002f5857e6e71b2'), (0, test_1.u8HexDecode)('3bf48b2d3152f383d82d1f2b32ac7fb5'));
|
|
44
|
-
(0, vitest_1.expect)(res).to.eql([
|
|
45
|
-
(0, test_1.u8HexDecode)('b0b5ffeadff0249fa6292f5ae0351556fd6619ba5dd4809601669292456d3e5a'),
|
|
46
|
-
(0, test_1.u8HexDecode)('13fef5bfd8c46b12dfd1753013b86cc012e1ce8ed6f8ecdd7bf36f3a3bf48b2d'),
|
|
47
|
-
]);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=mtproto.test.js.map
|