@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,500 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { StubTelegramClient } from '@mtcute/test';
|
|
3
|
-
import { sleep } from '../../utils/misc-utils.js';
|
|
4
|
-
import { batchedQuery } from './query-batcher.js';
|
|
5
|
-
describe('batchedQuery', () => {
|
|
6
|
-
const client = new StubTelegramClient();
|
|
7
|
-
client.log.prefix = '[1]';
|
|
8
|
-
it('should correctly batch requests', async () => {
|
|
9
|
-
const log = [];
|
|
10
|
-
const fetch = async (client, items) => {
|
|
11
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
12
|
-
await sleep(10);
|
|
13
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
14
|
-
return items.map((it) => it * 2);
|
|
15
|
-
};
|
|
16
|
-
const batched = batchedQuery({
|
|
17
|
-
fetch,
|
|
18
|
-
inputKey: (it) => it,
|
|
19
|
-
outputKey: (it) => it / 2,
|
|
20
|
-
});
|
|
21
|
-
const batchedWrapped = async (item) => {
|
|
22
|
-
log.push(`[start] batched() ${item}`);
|
|
23
|
-
const res = await batched(client, item);
|
|
24
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
25
|
-
return res;
|
|
26
|
-
};
|
|
27
|
-
const results = await Promise.all([
|
|
28
|
-
batchedWrapped(1),
|
|
29
|
-
batchedWrapped(2),
|
|
30
|
-
batchedWrapped(3),
|
|
31
|
-
batchedWrapped(3),
|
|
32
|
-
batchedWrapped(4),
|
|
33
|
-
]);
|
|
34
|
-
const results2 = await Promise.all([batchedWrapped(4), batchedWrapped(5), batchedWrapped(6)]);
|
|
35
|
-
expect(results).toEqual([2, 4, 6, 6, 8]);
|
|
36
|
-
expect(results2).toEqual([8, 10, 12]);
|
|
37
|
-
expect(log).toMatchInlineSnapshot(`
|
|
38
|
-
[
|
|
39
|
-
"[start] batched() 1",
|
|
40
|
-
"[start] fetch() 1",
|
|
41
|
-
"[start] batched() 2",
|
|
42
|
-
"[start] batched() 3",
|
|
43
|
-
"[start] batched() 3",
|
|
44
|
-
"[start] batched() 4",
|
|
45
|
-
"[end] fetch() 1",
|
|
46
|
-
"[end] batched() 1 => 2",
|
|
47
|
-
"[start] fetch() 2, 3, 4",
|
|
48
|
-
"[end] fetch() 2, 3, 4",
|
|
49
|
-
"[end] batched() 2 => 4",
|
|
50
|
-
"[end] batched() 3 => 6",
|
|
51
|
-
"[end] batched() 3 => 6",
|
|
52
|
-
"[end] batched() 4 => 8",
|
|
53
|
-
"[start] batched() 4",
|
|
54
|
-
"[start] fetch() 4",
|
|
55
|
-
"[start] batched() 5",
|
|
56
|
-
"[start] batched() 6",
|
|
57
|
-
"[end] fetch() 4",
|
|
58
|
-
"[end] batched() 4 => 8",
|
|
59
|
-
"[start] fetch() 5, 6",
|
|
60
|
-
"[end] fetch() 5, 6",
|
|
61
|
-
"[end] batched() 5 => 10",
|
|
62
|
-
"[end] batched() 6 => 12",
|
|
63
|
-
]
|
|
64
|
-
`);
|
|
65
|
-
});
|
|
66
|
-
it('should correctly limit batch size', async () => {
|
|
67
|
-
const log = [];
|
|
68
|
-
const fetch = async (client, items) => {
|
|
69
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
70
|
-
await sleep(10);
|
|
71
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
72
|
-
return items.map((it) => it * 2);
|
|
73
|
-
};
|
|
74
|
-
const batched = batchedQuery({
|
|
75
|
-
fetch,
|
|
76
|
-
inputKey: (it) => it,
|
|
77
|
-
outputKey: (it) => it / 2,
|
|
78
|
-
maxBatchSize: 2,
|
|
79
|
-
});
|
|
80
|
-
const batchedWrapped = async (item) => {
|
|
81
|
-
log.push(`[start] batched() ${item}`);
|
|
82
|
-
const res = await batched(client, item);
|
|
83
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
84
|
-
return res;
|
|
85
|
-
};
|
|
86
|
-
const results = await Promise.all([
|
|
87
|
-
batchedWrapped(1),
|
|
88
|
-
batchedWrapped(2),
|
|
89
|
-
batchedWrapped(3),
|
|
90
|
-
batchedWrapped(3),
|
|
91
|
-
batchedWrapped(4),
|
|
92
|
-
batchedWrapped(5),
|
|
93
|
-
batchedWrapped(6),
|
|
94
|
-
]);
|
|
95
|
-
const results2 = await Promise.all([batchedWrapped(6), batchedWrapped(7), batchedWrapped(8)]);
|
|
96
|
-
expect(results).toEqual([2, 4, 6, 6, 8, 10, 12]);
|
|
97
|
-
expect(results2).toEqual([12, 14, 16]);
|
|
98
|
-
expect(log).toMatchInlineSnapshot(`
|
|
99
|
-
[
|
|
100
|
-
"[start] batched() 1",
|
|
101
|
-
"[start] fetch() 1",
|
|
102
|
-
"[start] batched() 2",
|
|
103
|
-
"[start] batched() 3",
|
|
104
|
-
"[start] batched() 3",
|
|
105
|
-
"[start] batched() 4",
|
|
106
|
-
"[start] batched() 5",
|
|
107
|
-
"[start] batched() 6",
|
|
108
|
-
"[end] fetch() 1",
|
|
109
|
-
"[end] batched() 1 => 2",
|
|
110
|
-
"[start] fetch() 2, 3",
|
|
111
|
-
"[end] fetch() 2, 3",
|
|
112
|
-
"[end] batched() 2 => 4",
|
|
113
|
-
"[end] batched() 3 => 6",
|
|
114
|
-
"[end] batched() 3 => 6",
|
|
115
|
-
"[start] fetch() 4, 5",
|
|
116
|
-
"[end] fetch() 4, 5",
|
|
117
|
-
"[end] batched() 4 => 8",
|
|
118
|
-
"[end] batched() 5 => 10",
|
|
119
|
-
"[start] fetch() 6",
|
|
120
|
-
"[end] fetch() 6",
|
|
121
|
-
"[end] batched() 6 => 12",
|
|
122
|
-
"[start] batched() 6",
|
|
123
|
-
"[start] fetch() 6",
|
|
124
|
-
"[start] batched() 7",
|
|
125
|
-
"[start] batched() 8",
|
|
126
|
-
"[end] fetch() 6",
|
|
127
|
-
"[end] batched() 6 => 12",
|
|
128
|
-
"[start] fetch() 7, 8",
|
|
129
|
-
"[end] fetch() 7, 8",
|
|
130
|
-
"[end] batched() 7 => 14",
|
|
131
|
-
"[end] batched() 8 => 16",
|
|
132
|
-
]
|
|
133
|
-
`);
|
|
134
|
-
});
|
|
135
|
-
it('should correctly do concurrent requests', async () => {
|
|
136
|
-
const log = [];
|
|
137
|
-
const fetch = async (client, items) => {
|
|
138
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
139
|
-
await sleep(10);
|
|
140
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
141
|
-
return items.map((it) => it * 2);
|
|
142
|
-
};
|
|
143
|
-
const batched = batchedQuery({
|
|
144
|
-
fetch,
|
|
145
|
-
inputKey: (it) => it,
|
|
146
|
-
outputKey: (it) => it / 2,
|
|
147
|
-
maxBatchSize: 2,
|
|
148
|
-
maxConcurrent: 2,
|
|
149
|
-
});
|
|
150
|
-
const batchedWrapped = async (item) => {
|
|
151
|
-
log.push(`[start] batched() ${item}`);
|
|
152
|
-
const res = await batched(client, item);
|
|
153
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
154
|
-
return res;
|
|
155
|
-
};
|
|
156
|
-
const results = await Promise.all([
|
|
157
|
-
batchedWrapped(1),
|
|
158
|
-
batchedWrapped(2),
|
|
159
|
-
batchedWrapped(3),
|
|
160
|
-
batchedWrapped(3),
|
|
161
|
-
batchedWrapped(4),
|
|
162
|
-
batchedWrapped(5),
|
|
163
|
-
batchedWrapped(6),
|
|
164
|
-
]);
|
|
165
|
-
const results2 = await Promise.all([batchedWrapped(6), batchedWrapped(7), batchedWrapped(8)]);
|
|
166
|
-
expect(results).toEqual([2, 4, 6, 6, 8, 10, 12]);
|
|
167
|
-
expect(results2).toEqual([12, 14, 16]);
|
|
168
|
-
expect(log).toMatchInlineSnapshot(`
|
|
169
|
-
[
|
|
170
|
-
"[start] batched() 1",
|
|
171
|
-
"[start] fetch() 1",
|
|
172
|
-
"[start] batched() 2",
|
|
173
|
-
"[start] fetch() 2",
|
|
174
|
-
"[start] batched() 3",
|
|
175
|
-
"[start] batched() 3",
|
|
176
|
-
"[start] batched() 4",
|
|
177
|
-
"[start] batched() 5",
|
|
178
|
-
"[start] batched() 6",
|
|
179
|
-
"[end] fetch() 1",
|
|
180
|
-
"[end] batched() 1 => 2",
|
|
181
|
-
"[start] fetch() 3, 4",
|
|
182
|
-
"[end] fetch() 2",
|
|
183
|
-
"[end] batched() 2 => 4",
|
|
184
|
-
"[start] fetch() 5, 6",
|
|
185
|
-
"[end] fetch() 3, 4",
|
|
186
|
-
"[end] batched() 3 => 6",
|
|
187
|
-
"[end] batched() 3 => 6",
|
|
188
|
-
"[end] batched() 4 => 8",
|
|
189
|
-
"[end] fetch() 5, 6",
|
|
190
|
-
"[end] batched() 5 => 10",
|
|
191
|
-
"[end] batched() 6 => 12",
|
|
192
|
-
"[start] batched() 6",
|
|
193
|
-
"[start] fetch() 6",
|
|
194
|
-
"[start] batched() 7",
|
|
195
|
-
"[start] fetch() 7",
|
|
196
|
-
"[start] batched() 8",
|
|
197
|
-
"[end] fetch() 6",
|
|
198
|
-
"[end] batched() 6 => 12",
|
|
199
|
-
"[start] fetch() 8",
|
|
200
|
-
"[end] fetch() 7",
|
|
201
|
-
"[end] batched() 7 => 14",
|
|
202
|
-
"[end] fetch() 8",
|
|
203
|
-
"[end] batched() 8 => 16",
|
|
204
|
-
]
|
|
205
|
-
`);
|
|
206
|
-
});
|
|
207
|
-
it('should correctly handle errors', async () => {
|
|
208
|
-
const log = [];
|
|
209
|
-
const fetch = async (client, items) => {
|
|
210
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
211
|
-
await sleep(10);
|
|
212
|
-
if (items.includes(2)) {
|
|
213
|
-
log.push(`[error] fetch() ${items.join(', ')}`);
|
|
214
|
-
throw new Error('test');
|
|
215
|
-
}
|
|
216
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
217
|
-
return items.map((it) => it * 2);
|
|
218
|
-
};
|
|
219
|
-
const batched = batchedQuery({
|
|
220
|
-
fetch,
|
|
221
|
-
inputKey: (it) => it,
|
|
222
|
-
outputKey: (it) => it / 2,
|
|
223
|
-
maxBatchSize: 2,
|
|
224
|
-
});
|
|
225
|
-
const batchedWrapped = async (item) => {
|
|
226
|
-
log.push(`[start] batched() ${item}`);
|
|
227
|
-
let res;
|
|
228
|
-
try {
|
|
229
|
-
res = await batched(client, item);
|
|
230
|
-
}
|
|
231
|
-
catch (e) {
|
|
232
|
-
log.push(`[error] batched() ${item} => ${e.message}`);
|
|
233
|
-
return null;
|
|
234
|
-
}
|
|
235
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
236
|
-
return res;
|
|
237
|
-
};
|
|
238
|
-
const res = await Promise.all([batchedWrapped(1), batchedWrapped(2), batchedWrapped(3)]);
|
|
239
|
-
// second batch will fail entirely because of an error in one of the items.
|
|
240
|
-
expect(res).toEqual([2, null, null]);
|
|
241
|
-
expect(log).toMatchInlineSnapshot(`
|
|
242
|
-
[
|
|
243
|
-
"[start] batched() 1",
|
|
244
|
-
"[start] fetch() 1",
|
|
245
|
-
"[start] batched() 2",
|
|
246
|
-
"[start] batched() 3",
|
|
247
|
-
"[end] fetch() 1",
|
|
248
|
-
"[end] batched() 1 => 2",
|
|
249
|
-
"[start] fetch() 2, 3",
|
|
250
|
-
"[error] fetch() 2, 3",
|
|
251
|
-
"[error] batched() 2 => test",
|
|
252
|
-
"[error] batched() 3 => test",
|
|
253
|
-
]
|
|
254
|
-
`);
|
|
255
|
-
});
|
|
256
|
-
it('should not share state across clients', async () => {
|
|
257
|
-
const client2 = new StubTelegramClient();
|
|
258
|
-
client2.log.prefix = '[2]';
|
|
259
|
-
const log = [];
|
|
260
|
-
const fetch = async (client, items) => {
|
|
261
|
-
log.push(`[start] ${client.log.prefix} fetch() ${items.join(', ')}`);
|
|
262
|
-
await sleep(10);
|
|
263
|
-
log.push(`[end] ${client.log.prefix} fetch() ${items.join(', ')}`);
|
|
264
|
-
return items.map((it) => it * 2);
|
|
265
|
-
};
|
|
266
|
-
const batched = batchedQuery({
|
|
267
|
-
fetch,
|
|
268
|
-
inputKey: (it) => it,
|
|
269
|
-
outputKey: (it) => it / 2,
|
|
270
|
-
});
|
|
271
|
-
const batchedWrapped = async (item, client_ = client) => {
|
|
272
|
-
log.push(`[start] ${client_.log.prefix} batched() ${item}`);
|
|
273
|
-
const res = await batched(client_, item);
|
|
274
|
-
log.push(`[end] ${client_.log.prefix} batched() ${item} => ${res}`);
|
|
275
|
-
return res;
|
|
276
|
-
};
|
|
277
|
-
const results = await Promise.all([
|
|
278
|
-
batchedWrapped(1),
|
|
279
|
-
batchedWrapped(2),
|
|
280
|
-
batchedWrapped(3),
|
|
281
|
-
batchedWrapped(3, client2),
|
|
282
|
-
batchedWrapped(4, client2),
|
|
283
|
-
batchedWrapped(5),
|
|
284
|
-
batchedWrapped(6, client2),
|
|
285
|
-
]);
|
|
286
|
-
const results2 = await Promise.all([batchedWrapped(6, client2), batchedWrapped(7), batchedWrapped(8, client2)]);
|
|
287
|
-
expect(results).toEqual([2, 4, 6, 6, 8, 10, 12]);
|
|
288
|
-
expect(results2).toEqual([12, 14, 16]);
|
|
289
|
-
expect(log).toMatchInlineSnapshot(`
|
|
290
|
-
[
|
|
291
|
-
"[start] [1] batched() 1",
|
|
292
|
-
"[start] [1] fetch() 1",
|
|
293
|
-
"[start] [1] batched() 2",
|
|
294
|
-
"[start] [1] batched() 3",
|
|
295
|
-
"[start] [2] batched() 3",
|
|
296
|
-
"[start] [2] fetch() 3",
|
|
297
|
-
"[start] [2] batched() 4",
|
|
298
|
-
"[start] [1] batched() 5",
|
|
299
|
-
"[start] [2] batched() 6",
|
|
300
|
-
"[end] [1] fetch() 1",
|
|
301
|
-
"[end] [1] batched() 1 => 2",
|
|
302
|
-
"[start] [1] fetch() 2, 3, 5",
|
|
303
|
-
"[end] [2] fetch() 3",
|
|
304
|
-
"[end] [2] batched() 3 => 6",
|
|
305
|
-
"[start] [2] fetch() 4, 6",
|
|
306
|
-
"[end] [1] fetch() 2, 3, 5",
|
|
307
|
-
"[end] [1] batched() 2 => 4",
|
|
308
|
-
"[end] [1] batched() 3 => 6",
|
|
309
|
-
"[end] [1] batched() 5 => 10",
|
|
310
|
-
"[end] [2] fetch() 4, 6",
|
|
311
|
-
"[end] [2] batched() 4 => 8",
|
|
312
|
-
"[end] [2] batched() 6 => 12",
|
|
313
|
-
"[start] [2] batched() 6",
|
|
314
|
-
"[start] [2] fetch() 6",
|
|
315
|
-
"[start] [1] batched() 7",
|
|
316
|
-
"[start] [1] fetch() 7",
|
|
317
|
-
"[start] [2] batched() 8",
|
|
318
|
-
"[end] [2] fetch() 6",
|
|
319
|
-
"[end] [2] batched() 6 => 12",
|
|
320
|
-
"[start] [2] fetch() 8",
|
|
321
|
-
"[end] [1] fetch() 7",
|
|
322
|
-
"[end] [1] batched() 7 => 14",
|
|
323
|
-
"[end] [2] fetch() 8",
|
|
324
|
-
"[end] [2] batched() 8 => 16",
|
|
325
|
-
]
|
|
326
|
-
`);
|
|
327
|
-
});
|
|
328
|
-
it('should correctly handle fetcher omitting some items', async () => {
|
|
329
|
-
const log = [];
|
|
330
|
-
const fetch = async (client, items) => {
|
|
331
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
332
|
-
await sleep(10);
|
|
333
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
334
|
-
return items.filter((it) => it !== 6).map((it) => it * 2);
|
|
335
|
-
};
|
|
336
|
-
const batched = batchedQuery({
|
|
337
|
-
fetch,
|
|
338
|
-
inputKey: (it) => it,
|
|
339
|
-
outputKey: (it) => it / 2,
|
|
340
|
-
});
|
|
341
|
-
const batchedWrapped = async (item) => {
|
|
342
|
-
log.push(`[start] batched() ${item}`);
|
|
343
|
-
const res = await batched(client, item);
|
|
344
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
345
|
-
return res;
|
|
346
|
-
};
|
|
347
|
-
const results = await Promise.all([
|
|
348
|
-
batchedWrapped(1),
|
|
349
|
-
batchedWrapped(2),
|
|
350
|
-
batchedWrapped(3),
|
|
351
|
-
batchedWrapped(3),
|
|
352
|
-
batchedWrapped(4),
|
|
353
|
-
batchedWrapped(5),
|
|
354
|
-
batchedWrapped(6),
|
|
355
|
-
]);
|
|
356
|
-
const results2 = await Promise.all([batchedWrapped(6), batchedWrapped(7), batchedWrapped(8)]);
|
|
357
|
-
expect(results).toEqual([2, 4, 6, 6, 8, 10, null]);
|
|
358
|
-
expect(results2).toEqual([null, 14, 16]);
|
|
359
|
-
expect(log).toMatchInlineSnapshot(`
|
|
360
|
-
[
|
|
361
|
-
"[start] batched() 1",
|
|
362
|
-
"[start] fetch() 1",
|
|
363
|
-
"[start] batched() 2",
|
|
364
|
-
"[start] batched() 3",
|
|
365
|
-
"[start] batched() 3",
|
|
366
|
-
"[start] batched() 4",
|
|
367
|
-
"[start] batched() 5",
|
|
368
|
-
"[start] batched() 6",
|
|
369
|
-
"[end] fetch() 1",
|
|
370
|
-
"[end] batched() 1 => 2",
|
|
371
|
-
"[start] fetch() 2, 3, 4, 5, 6",
|
|
372
|
-
"[end] fetch() 2, 3, 4, 5, 6",
|
|
373
|
-
"[end] batched() 2 => 4",
|
|
374
|
-
"[end] batched() 3 => 6",
|
|
375
|
-
"[end] batched() 3 => 6",
|
|
376
|
-
"[end] batched() 4 => 8",
|
|
377
|
-
"[end] batched() 5 => 10",
|
|
378
|
-
"[end] batched() 6 => null",
|
|
379
|
-
"[start] batched() 6",
|
|
380
|
-
"[start] fetch() 6",
|
|
381
|
-
"[start] batched() 7",
|
|
382
|
-
"[start] batched() 8",
|
|
383
|
-
"[end] fetch() 6",
|
|
384
|
-
"[end] batched() 6 => null",
|
|
385
|
-
"[start] fetch() 7, 8",
|
|
386
|
-
"[end] fetch() 7, 8",
|
|
387
|
-
"[end] batched() 7 => 14",
|
|
388
|
-
"[end] batched() 8 => 16",
|
|
389
|
-
]
|
|
390
|
-
`);
|
|
391
|
-
});
|
|
392
|
-
it('should correctly retry failed batches one by one entirely', async () => {
|
|
393
|
-
const log = [];
|
|
394
|
-
const fetch = async (client, items) => {
|
|
395
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
396
|
-
await sleep(10);
|
|
397
|
-
if (items.includes(2)) {
|
|
398
|
-
log.push(`[error] fetch() ${items.join(', ')}`);
|
|
399
|
-
throw new Error('test');
|
|
400
|
-
}
|
|
401
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
402
|
-
return items.map((it) => it * 2);
|
|
403
|
-
};
|
|
404
|
-
const batched = batchedQuery({
|
|
405
|
-
fetch,
|
|
406
|
-
inputKey: (it) => it,
|
|
407
|
-
outputKey: (it) => it / 2,
|
|
408
|
-
maxBatchSize: 2,
|
|
409
|
-
retrySingleOnError: () => true,
|
|
410
|
-
});
|
|
411
|
-
const batchedWrapped = async (item) => {
|
|
412
|
-
log.push(`[start] batched() ${item}`);
|
|
413
|
-
let res;
|
|
414
|
-
try {
|
|
415
|
-
res = await batched(client, item);
|
|
416
|
-
}
|
|
417
|
-
catch (e) {
|
|
418
|
-
log.push(`[error] batched() ${item} => ${e.message}`);
|
|
419
|
-
return null;
|
|
420
|
-
}
|
|
421
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
422
|
-
return res;
|
|
423
|
-
};
|
|
424
|
-
const res = await Promise.all([batchedWrapped(1), batchedWrapped(2), batchedWrapped(3)]);
|
|
425
|
-
expect(res).toEqual([2, null, 6]);
|
|
426
|
-
expect(log).toMatchInlineSnapshot(`
|
|
427
|
-
[
|
|
428
|
-
"[start] batched() 1",
|
|
429
|
-
"[start] fetch() 1",
|
|
430
|
-
"[start] batched() 2",
|
|
431
|
-
"[start] batched() 3",
|
|
432
|
-
"[end] fetch() 1",
|
|
433
|
-
"[end] batched() 1 => 2",
|
|
434
|
-
"[start] fetch() 2, 3",
|
|
435
|
-
"[error] fetch() 2, 3",
|
|
436
|
-
"[start] fetch() 2",
|
|
437
|
-
"[error] fetch() 2",
|
|
438
|
-
"[error] batched() 2 => test",
|
|
439
|
-
"[start] fetch() 3",
|
|
440
|
-
"[end] fetch() 3",
|
|
441
|
-
"[end] batched() 3 => 6",
|
|
442
|
-
]
|
|
443
|
-
`);
|
|
444
|
-
});
|
|
445
|
-
it('should correctly retry failed batches one by one partially', async () => {
|
|
446
|
-
const log = [];
|
|
447
|
-
const fetch = async (client, items) => {
|
|
448
|
-
log.push(`[start] fetch() ${items.join(', ')}`);
|
|
449
|
-
await sleep(10);
|
|
450
|
-
if (items.includes(2) || items.includes(4)) {
|
|
451
|
-
log.push(`[error] fetch() ${items.join(', ')}`);
|
|
452
|
-
throw new Error('test');
|
|
453
|
-
}
|
|
454
|
-
log.push(`[end] fetch() ${items.join(', ')}`);
|
|
455
|
-
return items.map((it) => it * 2);
|
|
456
|
-
};
|
|
457
|
-
const batched = batchedQuery({
|
|
458
|
-
fetch,
|
|
459
|
-
inputKey: (it) => it,
|
|
460
|
-
outputKey: (it) => it / 2,
|
|
461
|
-
retrySingleOnError: () => [3, 4],
|
|
462
|
-
});
|
|
463
|
-
const batchedWrapped = async (item) => {
|
|
464
|
-
log.push(`[start] batched() ${item}`);
|
|
465
|
-
let res;
|
|
466
|
-
try {
|
|
467
|
-
res = await batched(client, item);
|
|
468
|
-
}
|
|
469
|
-
catch (e) {
|
|
470
|
-
log.push(`[error] batched() ${item} => ${e.message}`);
|
|
471
|
-
return null;
|
|
472
|
-
}
|
|
473
|
-
log.push(`[end] batched() ${item} => ${res}`);
|
|
474
|
-
return res;
|
|
475
|
-
};
|
|
476
|
-
const res = await Promise.all([batchedWrapped(1), batchedWrapped(2), batchedWrapped(3), batchedWrapped(4)]);
|
|
477
|
-
expect(res).toEqual([2, null, 6, null]);
|
|
478
|
-
expect(log).toMatchInlineSnapshot(`
|
|
479
|
-
[
|
|
480
|
-
"[start] batched() 1",
|
|
481
|
-
"[start] fetch() 1",
|
|
482
|
-
"[start] batched() 2",
|
|
483
|
-
"[start] batched() 3",
|
|
484
|
-
"[start] batched() 4",
|
|
485
|
-
"[end] fetch() 1",
|
|
486
|
-
"[end] batched() 1 => 2",
|
|
487
|
-
"[start] fetch() 2, 3, 4",
|
|
488
|
-
"[error] fetch() 2, 3, 4",
|
|
489
|
-
"[error] batched() 2 => test",
|
|
490
|
-
"[start] fetch() 3",
|
|
491
|
-
"[end] fetch() 3",
|
|
492
|
-
"[end] batched() 3 => 6",
|
|
493
|
-
"[start] fetch() 4",
|
|
494
|
-
"[error] fetch() 4",
|
|
495
|
-
"[error] batched() 4 => test",
|
|
496
|
-
]
|
|
497
|
-
`);
|
|
498
|
-
});
|
|
499
|
-
});
|
|
500
|
-
//# sourceMappingURL=query-batcher.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query-batcher.test.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/query-batcher.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { StubTelegramClient } from '@mtcute/test'\n\nimport { sleep } from '../../utils/misc-utils.js'\nimport { ITelegramClient } from '../client.types.js'\nimport { batchedQuery } from './query-batcher.js'\n\ndescribe('batchedQuery', () => {\n const client = new StubTelegramClient()\n client.log.prefix = '[1]'\n\n it('should correctly batch requests', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n const res = await batched(client, item)\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const results = await Promise.all([\n batchedWrapped(1),\n batchedWrapped(2),\n batchedWrapped(3),\n batchedWrapped(3),\n batchedWrapped(4),\n ])\n const results2 = await Promise.all([batchedWrapped(4), batchedWrapped(5), batchedWrapped(6)])\n\n expect(results).toEqual([2, 4, 6, 6, 8])\n expect(results2).toEqual([8, 10, 12])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] batched() 3\",\n \"[start] batched() 3\",\n \"[start] batched() 4\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 2, 3, 4\",\n \"[end] fetch() 2, 3, 4\",\n \"[end] batched() 2 => 4\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 4 => 8\",\n \"[start] batched() 4\",\n \"[start] fetch() 4\",\n \"[start] batched() 5\",\n \"[start] batched() 6\",\n \"[end] fetch() 4\",\n \"[end] batched() 4 => 8\",\n \"[start] fetch() 5, 6\",\n \"[end] fetch() 5, 6\",\n \"[end] batched() 5 => 10\",\n \"[end] batched() 6 => 12\",\n ]\n `)\n })\n\n it('should correctly limit batch size', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n maxBatchSize: 2,\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n const res = await batched(client, item)\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const results = await Promise.all([\n batchedWrapped(1),\n batchedWrapped(2),\n batchedWrapped(3),\n batchedWrapped(3),\n batchedWrapped(4),\n batchedWrapped(5),\n batchedWrapped(6),\n ])\n const results2 = await Promise.all([batchedWrapped(6), batchedWrapped(7), batchedWrapped(8)])\n\n expect(results).toEqual([2, 4, 6, 6, 8, 10, 12])\n expect(results2).toEqual([12, 14, 16])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] batched() 3\",\n \"[start] batched() 3\",\n \"[start] batched() 4\",\n \"[start] batched() 5\",\n \"[start] batched() 6\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 2, 3\",\n \"[end] fetch() 2, 3\",\n \"[end] batched() 2 => 4\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 3 => 6\",\n \"[start] fetch() 4, 5\",\n \"[end] fetch() 4, 5\",\n \"[end] batched() 4 => 8\",\n \"[end] batched() 5 => 10\",\n \"[start] fetch() 6\",\n \"[end] fetch() 6\",\n \"[end] batched() 6 => 12\",\n \"[start] batched() 6\",\n \"[start] fetch() 6\",\n \"[start] batched() 7\",\n \"[start] batched() 8\",\n \"[end] fetch() 6\",\n \"[end] batched() 6 => 12\",\n \"[start] fetch() 7, 8\",\n \"[end] fetch() 7, 8\",\n \"[end] batched() 7 => 14\",\n \"[end] batched() 8 => 16\",\n ]\n `)\n })\n\n it('should correctly do concurrent requests', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n maxBatchSize: 2,\n maxConcurrent: 2,\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n const res = await batched(client, item)\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const results = await Promise.all([\n batchedWrapped(1),\n batchedWrapped(2),\n batchedWrapped(3),\n batchedWrapped(3),\n batchedWrapped(4),\n batchedWrapped(5),\n batchedWrapped(6),\n ])\n const results2 = await Promise.all([batchedWrapped(6), batchedWrapped(7), batchedWrapped(8)])\n\n expect(results).toEqual([2, 4, 6, 6, 8, 10, 12])\n expect(results2).toEqual([12, 14, 16])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] fetch() 2\",\n \"[start] batched() 3\",\n \"[start] batched() 3\",\n \"[start] batched() 4\",\n \"[start] batched() 5\",\n \"[start] batched() 6\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 3, 4\",\n \"[end] fetch() 2\",\n \"[end] batched() 2 => 4\",\n \"[start] fetch() 5, 6\",\n \"[end] fetch() 3, 4\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 4 => 8\",\n \"[end] fetch() 5, 6\",\n \"[end] batched() 5 => 10\",\n \"[end] batched() 6 => 12\",\n \"[start] batched() 6\",\n \"[start] fetch() 6\",\n \"[start] batched() 7\",\n \"[start] fetch() 7\",\n \"[start] batched() 8\",\n \"[end] fetch() 6\",\n \"[end] batched() 6 => 12\",\n \"[start] fetch() 8\",\n \"[end] fetch() 7\",\n \"[end] batched() 7 => 14\",\n \"[end] fetch() 8\",\n \"[end] batched() 8 => 16\",\n ]\n `)\n })\n\n it('should correctly handle errors', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n if (items.includes(2)) {\n log.push(`[error] fetch() ${items.join(', ')}`)\n throw new Error('test')\n }\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n maxBatchSize: 2,\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n let res\n\n try {\n res = await batched(client, item)\n } catch (e) {\n log.push(`[error] batched() ${item} => ${(e as Error).message}`)\n\n return null\n }\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const res = await Promise.all([batchedWrapped(1), batchedWrapped(2), batchedWrapped(3)])\n\n // second batch will fail entirely because of an error in one of the items.\n expect(res).toEqual([2, null, null])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] batched() 3\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 2, 3\",\n \"[error] fetch() 2, 3\",\n \"[error] batched() 2 => test\",\n \"[error] batched() 3 => test\",\n ]\n `)\n })\n\n it('should not share state across clients', async () => {\n const client2 = new StubTelegramClient()\n client2.log.prefix = '[2]'\n\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] ${client.log.prefix} fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n log.push(`[end] ${client.log.prefix} fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n })\n\n const batchedWrapped = async (item: number, client_ = client) => {\n log.push(`[start] ${client_.log.prefix} batched() ${item}`)\n\n const res = await batched(client_, item)\n\n log.push(`[end] ${client_.log.prefix} batched() ${item} => ${res}`)\n\n return res\n }\n\n const results = await Promise.all([\n batchedWrapped(1),\n batchedWrapped(2),\n batchedWrapped(3),\n batchedWrapped(3, client2),\n batchedWrapped(4, client2),\n batchedWrapped(5),\n batchedWrapped(6, client2),\n ])\n const results2 = await Promise.all([batchedWrapped(6, client2), batchedWrapped(7), batchedWrapped(8, client2)])\n\n expect(results).toEqual([2, 4, 6, 6, 8, 10, 12])\n expect(results2).toEqual([12, 14, 16])\n\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] [1] batched() 1\",\n \"[start] [1] fetch() 1\",\n \"[start] [1] batched() 2\",\n \"[start] [1] batched() 3\",\n \"[start] [2] batched() 3\",\n \"[start] [2] fetch() 3\",\n \"[start] [2] batched() 4\",\n \"[start] [1] batched() 5\",\n \"[start] [2] batched() 6\",\n \"[end] [1] fetch() 1\",\n \"[end] [1] batched() 1 => 2\",\n \"[start] [1] fetch() 2, 3, 5\",\n \"[end] [2] fetch() 3\",\n \"[end] [2] batched() 3 => 6\",\n \"[start] [2] fetch() 4, 6\",\n \"[end] [1] fetch() 2, 3, 5\",\n \"[end] [1] batched() 2 => 4\",\n \"[end] [1] batched() 3 => 6\",\n \"[end] [1] batched() 5 => 10\",\n \"[end] [2] fetch() 4, 6\",\n \"[end] [2] batched() 4 => 8\",\n \"[end] [2] batched() 6 => 12\",\n \"[start] [2] batched() 6\",\n \"[start] [2] fetch() 6\",\n \"[start] [1] batched() 7\",\n \"[start] [1] fetch() 7\",\n \"[start] [2] batched() 8\",\n \"[end] [2] fetch() 6\",\n \"[end] [2] batched() 6 => 12\",\n \"[start] [2] fetch() 8\",\n \"[end] [1] fetch() 7\",\n \"[end] [1] batched() 7 => 14\",\n \"[end] [2] fetch() 8\",\n \"[end] [2] batched() 8 => 16\",\n ]\n `)\n })\n\n it('should correctly handle fetcher omitting some items', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.filter((it) => it !== 6).map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n const res = await batched(client, item)\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const results = await Promise.all([\n batchedWrapped(1),\n batchedWrapped(2),\n batchedWrapped(3),\n batchedWrapped(3),\n batchedWrapped(4),\n batchedWrapped(5),\n batchedWrapped(6),\n ])\n const results2 = await Promise.all([batchedWrapped(6), batchedWrapped(7), batchedWrapped(8)])\n\n expect(results).toEqual([2, 4, 6, 6, 8, 10, null])\n expect(results2).toEqual([null, 14, 16])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] batched() 3\",\n \"[start] batched() 3\",\n \"[start] batched() 4\",\n \"[start] batched() 5\",\n \"[start] batched() 6\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 2, 3, 4, 5, 6\",\n \"[end] fetch() 2, 3, 4, 5, 6\",\n \"[end] batched() 2 => 4\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 3 => 6\",\n \"[end] batched() 4 => 8\",\n \"[end] batched() 5 => 10\",\n \"[end] batched() 6 => null\",\n \"[start] batched() 6\",\n \"[start] fetch() 6\",\n \"[start] batched() 7\",\n \"[start] batched() 8\",\n \"[end] fetch() 6\",\n \"[end] batched() 6 => null\",\n \"[start] fetch() 7, 8\",\n \"[end] fetch() 7, 8\",\n \"[end] batched() 7 => 14\",\n \"[end] batched() 8 => 16\",\n ]\n `)\n })\n\n it('should correctly retry failed batches one by one entirely', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n if (items.includes(2)) {\n log.push(`[error] fetch() ${items.join(', ')}`)\n throw new Error('test')\n }\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n maxBatchSize: 2,\n retrySingleOnError: () => true,\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n let res\n\n try {\n res = await batched(client, item)\n } catch (e) {\n log.push(`[error] batched() ${item} => ${(e as Error).message}`)\n\n return null\n }\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const res = await Promise.all([batchedWrapped(1), batchedWrapped(2), batchedWrapped(3)])\n\n expect(res).toEqual([2, null, 6])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] batched() 3\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 2, 3\",\n \"[error] fetch() 2, 3\",\n \"[start] fetch() 2\",\n \"[error] fetch() 2\",\n \"[error] batched() 2 => test\",\n \"[start] fetch() 3\",\n \"[end] fetch() 3\",\n \"[end] batched() 3 => 6\",\n ]\n `)\n })\n\n it('should correctly retry failed batches one by one partially', async () => {\n const log: string[] = []\n\n const fetch = async (client: ITelegramClient, items: number[]) => {\n log.push(`[start] fetch() ${items.join(', ')}`)\n\n await sleep(10)\n\n if (items.includes(2) || items.includes(4)) {\n log.push(`[error] fetch() ${items.join(', ')}`)\n throw new Error('test')\n }\n\n log.push(`[end] fetch() ${items.join(', ')}`)\n\n return items.map((it) => it * 2)\n }\n\n const batched = batchedQuery({\n fetch,\n inputKey: (it) => it,\n outputKey: (it) => it / 2,\n retrySingleOnError: () => [3, 4],\n })\n\n const batchedWrapped = async (item: number) => {\n log.push(`[start] batched() ${item}`)\n\n let res\n\n try {\n res = await batched(client, item)\n } catch (e) {\n log.push(`[error] batched() ${item} => ${(e as Error).message}`)\n\n return null\n }\n\n log.push(`[end] batched() ${item} => ${res}`)\n\n return res\n }\n\n const res = await Promise.all([batchedWrapped(1), batchedWrapped(2), batchedWrapped(3), batchedWrapped(4)])\n\n expect(res).toEqual([2, null, 6, null])\n expect(log).toMatchInlineSnapshot(`\n [\n \"[start] batched() 1\",\n \"[start] fetch() 1\",\n \"[start] batched() 2\",\n \"[start] batched() 3\",\n \"[start] batched() 4\",\n \"[end] fetch() 1\",\n \"[end] batched() 1 => 2\",\n \"[start] fetch() 2, 3, 4\",\n \"[error] fetch() 2, 3, 4\",\n \"[error] batched() 2 => test\",\n \"[start] fetch() 3\",\n \"[end] fetch() 3\",\n \"[end] batched() 3 => 6\",\n \"[start] fetch() 4\",\n \"[error] fetch() 4\",\n \"[error] batched() 4 => test\",\n ]\n `)\n })\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { createChunkedReader, nodeReadableToWeb } from './stream-utils.js';
|
|
4
|
-
describe('createChunkedReader', () => {
|
|
5
|
-
it('should correctly handle chunks smaller than chunkSize', async () => {
|
|
6
|
-
const stream = new ReadableStream({
|
|
7
|
-
start(controller) {
|
|
8
|
-
controller.enqueue(new Uint8Array([1, 2, 3]));
|
|
9
|
-
controller.enqueue(new Uint8Array([4, 5, 6]));
|
|
10
|
-
controller.close();
|
|
11
|
-
},
|
|
12
|
-
});
|
|
13
|
-
const reader = createChunkedReader(stream, 4);
|
|
14
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([1, 2, 3, 4]));
|
|
15
|
-
expect(reader.ended()).to.be.false;
|
|
16
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([5, 6]));
|
|
17
|
-
expect(reader.ended()).to.be.true;
|
|
18
|
-
expect(await reader.read()).to.be.null;
|
|
19
|
-
});
|
|
20
|
-
it('should correctly handle chunks larger than chunkSize', async () => {
|
|
21
|
-
const stream = new ReadableStream({
|
|
22
|
-
start(controller) {
|
|
23
|
-
controller.enqueue(new Uint8Array([1, 2, 3]));
|
|
24
|
-
controller.enqueue(new Uint8Array([4, 5, 6, 7]));
|
|
25
|
-
controller.close();
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
const reader = createChunkedReader(stream, 2);
|
|
29
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([1, 2]));
|
|
30
|
-
expect(reader.ended()).to.be.false;
|
|
31
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([3, 4]));
|
|
32
|
-
expect(reader.ended()).to.be.false;
|
|
33
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([5, 6]));
|
|
34
|
-
expect(reader.ended()).to.be.false;
|
|
35
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([7]));
|
|
36
|
-
expect(reader.ended()).to.be.true;
|
|
37
|
-
expect(await reader.read()).to.be.null;
|
|
38
|
-
});
|
|
39
|
-
it('should correctly handle chunks equal to chunkSize', async () => {
|
|
40
|
-
const stream = new ReadableStream({
|
|
41
|
-
start(controller) {
|
|
42
|
-
controller.enqueue(new Uint8Array([1, 2, 3]));
|
|
43
|
-
controller.enqueue(new Uint8Array([4, 5, 6]));
|
|
44
|
-
controller.close();
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
const reader = createChunkedReader(stream, 3);
|
|
48
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([1, 2, 3]));
|
|
49
|
-
expect(reader.ended()).to.be.false;
|
|
50
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([4, 5, 6]));
|
|
51
|
-
expect(reader.ended()).to.be.true;
|
|
52
|
-
expect(await reader.read()).to.be.null;
|
|
53
|
-
});
|
|
54
|
-
it('should correctly handle mixed chunks', async () => {
|
|
55
|
-
const stream = new ReadableStream({
|
|
56
|
-
start(controller) {
|
|
57
|
-
controller.enqueue(new Uint8Array([1, 2, 3]));
|
|
58
|
-
controller.enqueue(new Uint8Array([4, 5, 6, 7]));
|
|
59
|
-
controller.enqueue(new Uint8Array([8, 9]));
|
|
60
|
-
controller.enqueue(new Uint8Array([10, 11, 12, 13, 14]));
|
|
61
|
-
controller.close();
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
const reader = createChunkedReader(stream, 4);
|
|
65
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([1, 2, 3, 4]));
|
|
66
|
-
expect(reader.ended()).to.be.false;
|
|
67
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([5, 6, 7, 8]));
|
|
68
|
-
expect(reader.ended()).to.be.false;
|
|
69
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([9, 10, 11, 12]));
|
|
70
|
-
expect(reader.ended()).to.be.false;
|
|
71
|
-
expect(await reader.read()).to.deep.equal(new Uint8Array([13, 14]));
|
|
72
|
-
expect(reader.ended()).to.be.true;
|
|
73
|
-
expect(await reader.read()).to.be.null;
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
if (import.meta.env.TEST_ENV === 'node' || import.meta.env.TEST_ENV === 'bun') {
|
|
77
|
-
describe('nodeReadableToWeb', () => {
|
|
78
|
-
it('should correctly convert a readable stream', async () => {
|
|
79
|
-
const stream = new Readable({
|
|
80
|
-
read() {
|
|
81
|
-
// eslint-disable-next-line no-restricted-globals
|
|
82
|
-
this.push(Buffer.from([1, 2, 3]));
|
|
83
|
-
// eslint-disable-next-line no-restricted-globals
|
|
84
|
-
this.push(Buffer.from([4, 5, 6]));
|
|
85
|
-
this.push(null);
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
|
-
const webStream = nodeReadableToWeb(stream);
|
|
89
|
-
const reader = webStream.getReader();
|
|
90
|
-
expect(await reader.read()).to.deep.equal({ value: new Uint8Array([1, 2, 3]), done: false });
|
|
91
|
-
expect(await reader.read()).to.deep.equal({ value: new Uint8Array([4, 5, 6]), done: false });
|
|
92
|
-
expect(await reader.read()).to.deep.equal({ value: undefined, done: true });
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=stream-utils.test.js.map
|