@mtcute/core 0.1.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 +8 -0
- package/README.md +26 -0
- package/cjs/base-client.d.ts +297 -0
- package/cjs/base-client.js +324 -0
- package/cjs/base-client.js.map +1 -0
- package/cjs/index.d.ts +10 -0
- package/cjs/index.js +30 -0
- package/cjs/index.js.map +1 -0
- package/cjs/network/auth-key.d.ts +21 -0
- package/cjs/network/auth-key.js +101 -0
- package/cjs/network/auth-key.js.map +1 -0
- package/cjs/network/authorization.d.ts +9 -0
- package/cjs/network/authorization.js +332 -0
- package/cjs/network/authorization.js.map +1 -0
- package/cjs/network/config-manager.d.ts +33 -0
- package/cjs/network/config-manager.js +93 -0
- package/cjs/network/config-manager.js.map +1 -0
- package/cjs/network/index.d.ts +4 -0
- package/cjs/network/index.js +20 -0
- package/cjs/network/index.js.map +1 -0
- package/cjs/network/mtproto-session.d.ts +116 -0
- package/cjs/network/mtproto-session.js +209 -0
- package/cjs/network/mtproto-session.js.map +1 -0
- package/cjs/network/multi-session-connection.d.ts +33 -0
- package/cjs/network/multi-session-connection.js +243 -0
- package/cjs/network/multi-session-connection.js.map +1 -0
- package/cjs/network/network-manager.d.ts +190 -0
- package/cjs/network/network-manager.js +547 -0
- package/cjs/network/network-manager.js.map +1 -0
- package/cjs/network/persistent-connection.d.ts +51 -0
- package/cjs/network/persistent-connection.js +173 -0
- package/cjs/network/persistent-connection.js.map +1 -0
- package/cjs/network/reconnection.d.ts +11 -0
- package/cjs/network/reconnection.js +18 -0
- package/cjs/network/reconnection.js.map +1 -0
- package/cjs/network/session-connection.d.ts +72 -0
- package/cjs/network/session-connection.js +1363 -0
- package/cjs/network/session-connection.js.map +1 -0
- package/cjs/network/transports/abstract.d.ts +99 -0
- package/cjs/network/transports/abstract.js +38 -0
- package/cjs/network/transports/abstract.js.map +1 -0
- package/cjs/network/transports/index.d.ts +8 -0
- package/cjs/network/transports/index.js +26 -0
- package/cjs/network/transports/index.js.map +1 -0
- package/cjs/network/transports/intermediate.d.ts +20 -0
- package/cjs/network/transports/intermediate.js +67 -0
- package/cjs/network/transports/intermediate.js.map +1 -0
- package/cjs/network/transports/obfuscated.d.ts +18 -0
- package/cjs/network/transports/obfuscated.js +83 -0
- package/cjs/network/transports/obfuscated.js.map +1 -0
- package/cjs/network/transports/streamed.d.ts +24 -0
- package/cjs/network/transports/streamed.js +32 -0
- package/cjs/network/transports/streamed.js.map +1 -0
- package/cjs/network/transports/tcp.d.ts +33 -0
- package/cjs/network/transports/tcp.js +130 -0
- package/cjs/network/transports/tcp.js.map +1 -0
- package/cjs/network/transports/websocket.d.ts +47 -0
- package/cjs/network/transports/websocket.js +124 -0
- package/cjs/network/transports/websocket.js.map +1 -0
- package/cjs/network/transports/wrapped.d.ts +11 -0
- package/cjs/network/transports/wrapped.js +26 -0
- package/cjs/network/transports/wrapped.js.map +1 -0
- package/cjs/package.json +3 -0
- package/cjs/storage/abstract.d.ts +174 -0
- package/cjs/storage/abstract.js +3 -0
- package/cjs/storage/abstract.js.map +1 -0
- package/cjs/storage/index.d.ts +5 -0
- package/cjs/storage/index.js +22 -0
- package/cjs/storage/index.js.map +1 -0
- package/cjs/storage/json-file.d.ts +31 -0
- package/cjs/storage/json-file.js +90 -0
- package/cjs/storage/json-file.js.map +1 -0
- package/cjs/storage/json.d.ts +9 -0
- package/cjs/storage/json.js +65 -0
- package/cjs/storage/json.js.map +1 -0
- package/cjs/storage/localstorage.d.ts +7 -0
- package/cjs/storage/localstorage.js +25 -0
- package/cjs/storage/localstorage.js.map +1 -0
- package/cjs/storage/memory.d.ts +98 -0
- package/cjs/storage/memory.js +299 -0
- package/cjs/storage/memory.js.map +1 -0
- package/cjs/types/errors.d.ts +53 -0
- package/cjs/types/errors.js +58 -0
- package/cjs/types/errors.js.map +1 -0
- package/cjs/types/index.d.ts +3 -0
- package/cjs/types/index.js +20 -0
- package/cjs/types/index.js.map +1 -0
- package/cjs/types/peers.d.ts +4 -0
- package/cjs/types/peers.js +3 -0
- package/cjs/types/peers.js.map +1 -0
- package/cjs/types/utils.d.ts +6 -0
- package/cjs/types/utils.js +9 -0
- package/cjs/types/utils.js.map +1 -0
- package/cjs/utils/async-lock.d.ts +10 -0
- package/cjs/utils/async-lock.js +43 -0
- package/cjs/utils/async-lock.js.map +1 -0
- package/cjs/utils/bigint-utils.d.ts +40 -0
- package/cjs/utils/bigint-utils.js +104 -0
- package/cjs/utils/bigint-utils.js.map +1 -0
- package/cjs/utils/binary/asn1-parser.d.ts +17 -0
- package/cjs/utils/binary/asn1-parser.js +121 -0
- package/cjs/utils/binary/asn1-parser.js.map +1 -0
- package/cjs/utils/buffer-utils.d.ts +21 -0
- package/cjs/utils/buffer-utils.js +63 -0
- package/cjs/utils/buffer-utils.js.map +1 -0
- package/cjs/utils/condition-variable.d.ts +9 -0
- package/cjs/utils/condition-variable.js +28 -0
- package/cjs/utils/condition-variable.js.map +1 -0
- package/cjs/utils/controllable-promise.d.ts +16 -0
- package/cjs/utils/controllable-promise.js +25 -0
- package/cjs/utils/controllable-promise.js.map +1 -0
- package/cjs/utils/crypto/abstract.d.ts +23 -0
- package/cjs/utils/crypto/abstract.js +19 -0
- package/cjs/utils/crypto/abstract.js.map +1 -0
- package/cjs/utils/crypto/common.d.ts +12 -0
- package/cjs/utils/crypto/common.js +54 -0
- package/cjs/utils/crypto/common.js.map +1 -0
- package/cjs/utils/crypto/factorization.d.ts +5 -0
- package/cjs/utils/crypto/factorization.js +69 -0
- package/cjs/utils/crypto/factorization.js.map +1 -0
- package/cjs/utils/crypto/index.d.ts +5 -0
- package/cjs/utils/crypto/index.js +23 -0
- package/cjs/utils/crypto/index.js.map +1 -0
- package/cjs/utils/crypto/keys.d.ts +27 -0
- package/cjs/utils/crypto/keys.js +70 -0
- package/cjs/utils/crypto/keys.js.map +1 -0
- package/cjs/utils/crypto/miller-rabin.d.ts +2 -0
- package/cjs/utils/crypto/miller-rabin.js +44 -0
- package/cjs/utils/crypto/miller-rabin.js.map +1 -0
- package/cjs/utils/crypto/mtproto.d.ts +31 -0
- package/cjs/utils/crypto/mtproto.js +66 -0
- package/cjs/utils/crypto/mtproto.js.map +1 -0
- package/cjs/utils/crypto/node-crypto.d.ts +10 -0
- package/cjs/utils/crypto/node-crypto.js +46 -0
- package/cjs/utils/crypto/node-crypto.js.map +1 -0
- package/cjs/utils/crypto/password.d.ts +29 -0
- package/cjs/utils/crypto/password.js +106 -0
- package/cjs/utils/crypto/password.js.map +1 -0
- package/cjs/utils/crypto/subtle.d.ts +12 -0
- package/cjs/utils/crypto/subtle.js +86 -0
- package/cjs/utils/crypto/subtle.js.map +1 -0
- package/cjs/utils/crypto/utils.d.ts +14 -0
- package/cjs/utils/crypto/utils.js +30 -0
- package/cjs/utils/crypto/utils.js.map +1 -0
- package/cjs/utils/default-dcs.d.ts +7 -0
- package/cjs/utils/default-dcs.js +76 -0
- package/cjs/utils/default-dcs.js.map +1 -0
- package/cjs/utils/deque.d.ts +29 -0
- package/cjs/utils/deque.js +210 -0
- package/cjs/utils/deque.js.map +1 -0
- package/cjs/utils/early-timer.d.ts +42 -0
- package/cjs/utils/early-timer.js +79 -0
- package/cjs/utils/early-timer.js.map +1 -0
- package/cjs/utils/flood-control.d.ts +14 -0
- package/cjs/utils/flood-control.js +65 -0
- package/cjs/utils/flood-control.js.map +1 -0
- package/cjs/utils/function-utils.d.ts +13 -0
- package/cjs/utils/function-utils.js +30 -0
- package/cjs/utils/function-utils.js.map +1 -0
- package/cjs/utils/index.d.ts +24 -0
- package/cjs/utils/index.js +41 -0
- package/cjs/utils/index.js.map +1 -0
- package/cjs/utils/linked-list.d.ts +21 -0
- package/cjs/utils/linked-list.js +73 -0
- package/cjs/utils/linked-list.js.map +1 -0
- package/cjs/utils/links/bots.d.ts +71 -0
- package/cjs/utils/links/bots.js +259 -0
- package/cjs/utils/links/bots.js.map +1 -0
- package/cjs/utils/links/bundle.d.ts +7 -0
- package/cjs/utils/links/bundle.js +24 -0
- package/cjs/utils/links/bundle.js.map +1 -0
- package/cjs/utils/links/calls.d.ts +16 -0
- package/cjs/utils/links/calls.js +59 -0
- package/cjs/utils/links/calls.js.map +1 -0
- package/cjs/utils/links/chat.d.ts +46 -0
- package/cjs/utils/links/chat.js +160 -0
- package/cjs/utils/links/chat.js.map +1 -0
- package/cjs/utils/links/common.d.ts +31 -0
- package/cjs/utils/links/common.js +60 -0
- package/cjs/utils/links/common.js.map +1 -0
- package/cjs/utils/links/index.d.ts +2 -0
- package/cjs/utils/links/index.js +29 -0
- package/cjs/utils/links/index.js.map +1 -0
- package/cjs/utils/links/misc.d.ts +19 -0
- package/cjs/utils/links/misc.js +77 -0
- package/cjs/utils/links/misc.js.map +1 -0
- package/cjs/utils/links/proxy.d.ts +17 -0
- package/cjs/utils/links/proxy.js +61 -0
- package/cjs/utils/links/proxy.js.map +1 -0
- package/cjs/utils/links/stickers.d.ts +9 -0
- package/cjs/utils/links/stickers.js +28 -0
- package/cjs/utils/links/stickers.js.map +1 -0
- package/cjs/utils/links/user.d.ts +27 -0
- package/cjs/utils/links/user.js +81 -0
- package/cjs/utils/links/user.js.map +1 -0
- package/cjs/utils/logger.d.ts +54 -0
- package/cjs/utils/logger.js +158 -0
- package/cjs/utils/logger.js.map +1 -0
- package/cjs/utils/long-utils.d.ts +75 -0
- package/cjs/utils/long-utils.js +161 -0
- package/cjs/utils/long-utils.js.map +1 -0
- package/cjs/utils/lru-map.d.ts +21 -0
- package/cjs/utils/lru-map.js +107 -0
- package/cjs/utils/lru-map.js.map +1 -0
- package/cjs/utils/lru-set.d.ts +22 -0
- package/cjs/utils/lru-set.js +48 -0
- package/cjs/utils/lru-set.js.map +1 -0
- package/cjs/utils/misc-utils.d.ts +7 -0
- package/cjs/utils/misc-utils.js +15 -0
- package/cjs/utils/misc-utils.js.map +1 -0
- package/cjs/utils/peer-utils.d.ts +35 -0
- package/cjs/utils/peer-utils.js +188 -0
- package/cjs/utils/peer-utils.js.map +1 -0
- package/cjs/utils/platform/crypto.d.ts +1 -0
- package/cjs/utils/platform/crypto.js +8 -0
- package/cjs/utils/platform/crypto.js.map +1 -0
- package/cjs/utils/platform/crypto.web.d.ts +1 -0
- package/cjs/utils/platform/crypto.web.js +14 -0
- package/cjs/utils/platform/crypto.web.js.map +1 -0
- package/cjs/utils/platform/error-reporting.d.ts +3 -0
- package/cjs/utils/platform/error-reporting.js +22 -0
- package/cjs/utils/platform/error-reporting.js.map +1 -0
- package/cjs/utils/platform/logging.d.ts +1 -0
- package/cjs/utils/platform/logging.js +35 -0
- package/cjs/utils/platform/logging.js.map +1 -0
- package/cjs/utils/platform/logging.web.d.ts +1 -0
- package/cjs/utils/platform/logging.web.js +35 -0
- package/cjs/utils/platform/logging.web.js.map +1 -0
- package/cjs/utils/platform/random.d.ts +1 -0
- package/cjs/utils/platform/random.js +7 -0
- package/cjs/utils/platform/random.js.map +1 -0
- package/cjs/utils/platform/random.web.d.ts +1 -0
- package/cjs/utils/platform/random.web.js +10 -0
- package/cjs/utils/platform/random.web.js.map +1 -0
- package/cjs/utils/platform/transport.d.ts +1 -0
- package/cjs/utils/platform/transport.js +8 -0
- package/cjs/utils/platform/transport.js.map +1 -0
- package/cjs/utils/platform/transport.web.d.ts +1 -0
- package/cjs/utils/platform/transport.web.js +15 -0
- package/cjs/utils/platform/transport.web.js.map +1 -0
- package/cjs/utils/sorted-array.d.ts +17 -0
- package/cjs/utils/sorted-array.js +83 -0
- package/cjs/utils/sorted-array.js.map +1 -0
- package/cjs/utils/string-session.d.ts +11 -0
- package/cjs/utils/string-session.js +73 -0
- package/cjs/utils/string-session.js.map +1 -0
- package/cjs/utils/tl-json.d.ts +13 -0
- package/cjs/utils/tl-json.js +62 -0
- package/cjs/utils/tl-json.js.map +1 -0
- package/cjs/utils/type-assertions.d.ts +37 -0
- package/cjs/utils/type-assertions.js +70 -0
- package/cjs/utils/type-assertions.js.map +1 -0
- package/esm/base-client.d.ts +297 -0
- package/esm/base-client.js +317 -0
- package/esm/base-client.js.map +1 -0
- package/esm/index.d.ts +10 -0
- package/esm/index.js +11 -0
- package/esm/index.js.map +1 -0
- package/esm/network/auth-key.d.ts +21 -0
- package/esm/network/auth-key.js +97 -0
- package/esm/network/auth-key.js.map +1 -0
- package/esm/network/authorization.d.ts +9 -0
- package/esm/network/authorization.js +325 -0
- package/esm/network/authorization.js.map +1 -0
- package/esm/network/config-manager.d.ts +33 -0
- package/esm/network/config-manager.js +89 -0
- package/esm/network/config-manager.js.map +1 -0
- package/esm/network/index.d.ts +4 -0
- package/esm/network/index.js +4 -0
- package/esm/network/index.js.map +1 -0
- package/esm/network/mtproto-session.d.ts +116 -0
- package/esm/network/mtproto-session.js +202 -0
- package/esm/network/mtproto-session.js.map +1 -0
- package/esm/network/multi-session-connection.d.ts +33 -0
- package/esm/network/multi-session-connection.js +236 -0
- package/esm/network/multi-session-connection.js.map +1 -0
- package/esm/network/network-manager.d.ts +190 -0
- package/esm/network/network-manager.js +542 -0
- package/esm/network/network-manager.js.map +1 -0
- package/esm/network/persistent-connection.d.ts +51 -0
- package/esm/network/persistent-connection.js +166 -0
- package/esm/network/persistent-connection.js.map +1 -0
- package/esm/network/reconnection.d.ts +11 -0
- package/esm/network/reconnection.js +14 -0
- package/esm/network/reconnection.js.map +1 -0
- package/esm/network/session-connection.d.ts +72 -0
- package/esm/network/session-connection.js +1356 -0
- package/esm/network/session-connection.js.map +1 -0
- package/esm/network/transports/abstract.d.ts +99 -0
- package/esm/network/transports/abstract.js +34 -0
- package/esm/network/transports/abstract.js.map +1 -0
- package/esm/network/transports/index.d.ts +8 -0
- package/esm/network/transports/index.js +9 -0
- package/esm/network/transports/index.js.map +1 -0
- package/esm/network/transports/intermediate.d.ts +20 -0
- package/esm/network/transports/intermediate.js +62 -0
- package/esm/network/transports/intermediate.js.map +1 -0
- package/esm/network/transports/obfuscated.d.ts +18 -0
- package/esm/network/transports/obfuscated.js +79 -0
- package/esm/network/transports/obfuscated.js.map +1 -0
- package/esm/network/transports/streamed.d.ts +24 -0
- package/esm/network/transports/streamed.js +25 -0
- package/esm/network/transports/streamed.js.map +1 -0
- package/esm/network/transports/tcp.d.ts +33 -0
- package/esm/network/transports/tcp.js +122 -0
- package/esm/network/transports/tcp.js.map +1 -0
- package/esm/network/transports/websocket.d.ts +47 -0
- package/esm/network/transports/websocket.js +116 -0
- package/esm/network/transports/websocket.js.map +1 -0
- package/esm/network/transports/wrapped.d.ts +11 -0
- package/esm/network/transports/wrapped.js +19 -0
- package/esm/network/transports/wrapped.js.map +1 -0
- package/esm/storage/abstract.d.ts +174 -0
- package/esm/storage/abstract.js +2 -0
- package/esm/storage/abstract.js.map +1 -0
- package/esm/storage/index.d.ts +5 -0
- package/esm/storage/index.js +6 -0
- package/esm/storage/index.js.map +1 -0
- package/esm/storage/json-file.d.ts +31 -0
- package/esm/storage/json-file.js +63 -0
- package/esm/storage/json-file.js.map +1 -0
- package/esm/storage/json.d.ts +9 -0
- package/esm/storage/json.js +61 -0
- package/esm/storage/json.js.map +1 -0
- package/esm/storage/localstorage.d.ts +7 -0
- package/esm/storage/localstorage.js +21 -0
- package/esm/storage/localstorage.js.map +1 -0
- package/esm/storage/memory.d.ts +98 -0
- package/esm/storage/memory.js +295 -0
- package/esm/storage/memory.js.map +1 -0
- package/esm/types/errors.d.ts +53 -0
- package/esm/types/errors.js +49 -0
- package/esm/types/errors.js.map +1 -0
- package/esm/types/index.d.ts +3 -0
- package/esm/types/index.js +4 -0
- package/esm/types/index.js.map +1 -0
- package/esm/types/peers.d.ts +4 -0
- package/esm/types/peers.js +2 -0
- package/esm/types/peers.js.map +1 -0
- package/esm/types/utils.d.ts +6 -0
- package/esm/types/utils.js +5 -0
- package/esm/types/utils.js.map +1 -0
- package/esm/utils/async-lock.d.ts +10 -0
- package/esm/utils/async-lock.js +39 -0
- package/esm/utils/async-lock.js.map +1 -0
- package/esm/utils/bigint-utils.d.ts +40 -0
- package/esm/utils/bigint-utils.js +92 -0
- package/esm/utils/bigint-utils.js.map +1 -0
- package/esm/utils/binary/asn1-parser.d.ts +17 -0
- package/esm/utils/binary/asn1-parser.js +116 -0
- package/esm/utils/binary/asn1-parser.js.map +1 -0
- package/esm/utils/buffer-utils.d.ts +21 -0
- package/esm/utils/buffer-utils.js +55 -0
- package/esm/utils/buffer-utils.js.map +1 -0
- package/esm/utils/condition-variable.d.ts +9 -0
- package/esm/utils/condition-variable.js +24 -0
- package/esm/utils/condition-variable.js.map +1 -0
- package/esm/utils/controllable-promise.d.ts +16 -0
- package/esm/utils/controllable-promise.js +20 -0
- package/esm/utils/controllable-promise.js.map +1 -0
- package/esm/utils/crypto/abstract.d.ts +23 -0
- package/esm/utils/crypto/abstract.js +15 -0
- package/esm/utils/crypto/abstract.js.map +1 -0
- package/esm/utils/crypto/common.d.ts +12 -0
- package/esm/utils/crypto/common.js +50 -0
- package/esm/utils/crypto/common.js.map +1 -0
- package/esm/utils/crypto/factorization.d.ts +5 -0
- package/esm/utils/crypto/factorization.js +62 -0
- package/esm/utils/crypto/factorization.js.map +1 -0
- package/esm/utils/crypto/index.d.ts +5 -0
- package/esm/utils/crypto/index.js +6 -0
- package/esm/utils/crypto/index.js.map +1 -0
- package/esm/utils/crypto/keys.d.ts +27 -0
- package/esm/utils/crypto/keys.js +64 -0
- package/esm/utils/crypto/keys.js.map +1 -0
- package/esm/utils/crypto/miller-rabin.d.ts +2 -0
- package/esm/utils/crypto/miller-rabin.js +37 -0
- package/esm/utils/crypto/miller-rabin.js.map +1 -0
- package/esm/utils/crypto/mtproto.d.ts +31 -0
- package/esm/utils/crypto/mtproto.js +60 -0
- package/esm/utils/crypto/mtproto.js.map +1 -0
- package/esm/utils/crypto/node-crypto.d.ts +10 -0
- package/esm/utils/crypto/node-crypto.js +42 -0
- package/esm/utils/crypto/node-crypto.js.map +1 -0
- package/esm/utils/crypto/password.d.ts +29 -0
- package/esm/utils/crypto/password.js +97 -0
- package/esm/utils/crypto/password.js.map +1 -0
- package/esm/utils/crypto/subtle.d.ts +12 -0
- package/esm/utils/crypto/subtle.js +59 -0
- package/esm/utils/crypto/subtle.js.map +1 -0
- package/esm/utils/crypto/utils.d.ts +14 -0
- package/esm/utils/crypto/utils.js +25 -0
- package/esm/utils/crypto/utils.js.map +1 -0
- package/esm/utils/default-dcs.d.ts +7 -0
- package/esm/utils/default-dcs.js +73 -0
- package/esm/utils/default-dcs.js.map +1 -0
- package/esm/utils/deque.d.ts +29 -0
- package/esm/utils/deque.js +206 -0
- package/esm/utils/deque.js.map +1 -0
- package/esm/utils/early-timer.d.ts +42 -0
- package/esm/utils/early-timer.js +75 -0
- package/esm/utils/early-timer.js.map +1 -0
- package/esm/utils/flood-control.d.ts +14 -0
- package/esm/utils/flood-control.js +61 -0
- package/esm/utils/flood-control.js.map +1 -0
- package/esm/utils/function-utils.d.ts +13 -0
- package/esm/utils/function-utils.js +26 -0
- package/esm/utils/function-utils.js.map +1 -0
- package/esm/utils/index.d.ts +24 -0
- package/esm/utils/index.js +25 -0
- package/esm/utils/index.js.map +1 -0
- package/esm/utils/linked-list.d.ts +21 -0
- package/esm/utils/linked-list.js +69 -0
- package/esm/utils/linked-list.js.map +1 -0
- package/esm/utils/links/bots.d.ts +71 -0
- package/esm/utils/links/bots.js +256 -0
- package/esm/utils/links/bots.js.map +1 -0
- package/esm/utils/links/bundle.d.ts +7 -0
- package/esm/utils/links/bundle.js +8 -0
- package/esm/utils/links/bundle.js.map +1 -0
- package/esm/utils/links/calls.d.ts +16 -0
- package/esm/utils/links/calls.js +56 -0
- package/esm/utils/links/calls.js.map +1 -0
- package/esm/utils/links/chat.d.ts +46 -0
- package/esm/utils/links/chat.js +157 -0
- package/esm/utils/links/chat.js.map +1 -0
- package/esm/utils/links/common.d.ts +31 -0
- package/esm/utils/links/common.js +56 -0
- package/esm/utils/links/common.js.map +1 -0
- package/esm/utils/links/index.d.ts +2 -0
- package/esm/utils/links/index.js +3 -0
- package/esm/utils/links/index.js.map +1 -0
- package/esm/utils/links/misc.d.ts +19 -0
- package/esm/utils/links/misc.js +74 -0
- package/esm/utils/links/misc.js.map +1 -0
- package/esm/utils/links/proxy.d.ts +17 -0
- package/esm/utils/links/proxy.js +58 -0
- package/esm/utils/links/proxy.js.map +1 -0
- package/esm/utils/links/stickers.d.ts +9 -0
- package/esm/utils/links/stickers.js +25 -0
- package/esm/utils/links/stickers.js.map +1 -0
- package/esm/utils/links/user.d.ts +27 -0
- package/esm/utils/links/user.js +78 -0
- package/esm/utils/links/user.js.map +1 -0
- package/esm/utils/logger.d.ts +54 -0
- package/esm/utils/logger.js +154 -0
- package/esm/utils/logger.js.map +1 -0
- package/esm/utils/long-utils.d.ts +75 -0
- package/esm/utils/long-utils.js +148 -0
- package/esm/utils/long-utils.js.map +1 -0
- package/esm/utils/lru-map.d.ts +21 -0
- package/esm/utils/lru-map.js +103 -0
- package/esm/utils/lru-map.js.map +1 -0
- package/esm/utils/lru-set.d.ts +22 -0
- package/esm/utils/lru-set.js +44 -0
- package/esm/utils/lru-set.js.map +1 -0
- package/esm/utils/misc-utils.d.ts +7 -0
- package/esm/utils/misc-utils.js +10 -0
- package/esm/utils/misc-utils.js.map +1 -0
- package/esm/utils/peer-utils.d.ts +35 -0
- package/esm/utils/peer-utils.js +179 -0
- package/esm/utils/peer-utils.js.map +1 -0
- package/esm/utils/platform/crypto.d.ts +1 -0
- package/esm/utils/platform/crypto.js +4 -0
- package/esm/utils/platform/crypto.js.map +1 -0
- package/esm/utils/platform/crypto.web.d.ts +1 -0
- package/esm/utils/platform/crypto.web.js +10 -0
- package/esm/utils/platform/crypto.web.js.map +1 -0
- package/esm/utils/platform/error-reporting.d.ts +3 -0
- package/esm/utils/platform/error-reporting.js +18 -0
- package/esm/utils/platform/error-reporting.js.map +1 -0
- package/esm/utils/platform/logging.d.ts +1 -0
- package/esm/utils/platform/logging.js +32 -0
- package/esm/utils/platform/logging.js.map +1 -0
- package/esm/utils/platform/logging.web.d.ts +1 -0
- package/esm/utils/platform/logging.web.js +31 -0
- package/esm/utils/platform/logging.web.js.map +1 -0
- package/esm/utils/platform/random.d.ts +1 -0
- package/esm/utils/platform/random.js +4 -0
- package/esm/utils/platform/random.js.map +1 -0
- package/esm/utils/platform/random.web.d.ts +1 -0
- package/esm/utils/platform/random.web.js +6 -0
- package/esm/utils/platform/random.web.js.map +1 -0
- package/esm/utils/platform/transport.d.ts +1 -0
- package/esm/utils/platform/transport.js +4 -0
- package/esm/utils/platform/transport.js.map +1 -0
- package/esm/utils/platform/transport.web.d.ts +1 -0
- package/esm/utils/platform/transport.web.js +12 -0
- package/esm/utils/platform/transport.web.js.map +1 -0
- package/esm/utils/sorted-array.d.ts +17 -0
- package/esm/utils/sorted-array.js +79 -0
- package/esm/utils/sorted-array.js.map +1 -0
- package/esm/utils/string-session.d.ts +11 -0
- package/esm/utils/string-session.js +68 -0
- package/esm/utils/string-session.js.map +1 -0
- package/esm/utils/tl-json.d.ts +13 -0
- package/esm/utils/tl-json.js +57 -0
- package/esm/utils/tl-json.js.map +1 -0
- package/esm/utils/type-assertions.d.ts +37 -0
- package/esm/utils/type-assertions.js +61 -0
- package/esm/utils/type-assertions.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../../src/utils/links/misc.ts"],"names":[],"mappings":"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","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * Share links\n *\n * Used to share a prepared message and URL into a chosen chat's text field.\n */\nexport const share = deeplinkBuilder<{ url: string; text?: string }>({\n internalBuild: ({ url, text }) => ['msg_url', { url, text }],\n internalParse: (path, query) => {\n if (path !== 'msg_url') return null\n\n const url = query.get('url')\n if (!url) return null\n\n const text = query.get('text')\n\n return { url, text: text || undefined }\n },\n externalBuild: ({ url, text }) => ['share', { url, text }],\n externalParse: (path, query) => {\n if (path !== 'share') return null\n\n const url = query.get('url')\n if (!url) return null\n\n const text = query.get('text')\n\n return { url, text: text || undefined }\n },\n})\n\n/**\n * Boost links\n *\n * Used by users to boost channels, granting them the ability to post stories.\n */\nexport const boost = deeplinkBuilder<{ username: string } | { channelId: number }>({\n internalBuild: (params) => {\n if ('username' in params) {\n return ['boost', { domain: params.username }]\n }\n\n return ['boost', { channel: params.channelId }]\n },\n internalParse: (path, query) => {\n if (path !== 'boost') return null\n\n const username = query.get('domain')\n\n if (username) {\n return { username }\n }\n\n const channelId = Number(query.get('channel'))\n\n if (!isNaN(channelId)) {\n return { channelId: Number(channelId) }\n }\n\n return null\n },\n externalBuild: (params) => {\n if ('username' in params) {\n return [params.username, { boost: true }]\n }\n\n return [`c/${params.channelId}`, { boost: true }]\n },\n externalParse: (path, query) => {\n if (!query.has('boost')) return null\n\n if (path.startsWith('c/')) {\n const channelId = Number(path.slice(2))\n if (isNaN(channelId)) return null\n\n return { channelId }\n }\n\n if (path.includes('/')) return null\n\n return { username: path }\n },\n})\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MTProxy links
|
|
3
|
+
*/
|
|
4
|
+
export declare const mtproxy: import("./common.js").Deeplink<{
|
|
5
|
+
server: string;
|
|
6
|
+
port: number;
|
|
7
|
+
secret: string;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Socks5 proxy links
|
|
11
|
+
*/
|
|
12
|
+
export declare const socks5: import("./common.js").Deeplink<{
|
|
13
|
+
server: string;
|
|
14
|
+
port: number;
|
|
15
|
+
user?: string | undefined;
|
|
16
|
+
pass?: string | undefined;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.socks5 = exports.mtproxy = void 0;
|
|
4
|
+
const common_js_1 = require("./common.js");
|
|
5
|
+
/**
|
|
6
|
+
* MTProxy links
|
|
7
|
+
*/
|
|
8
|
+
exports.mtproxy = (0, common_js_1.deeplinkBuilder)({
|
|
9
|
+
internalBuild: (params) => ['proxy', params],
|
|
10
|
+
externalBuild: (params) => ['proxy', params],
|
|
11
|
+
internalParse: (path, query) => {
|
|
12
|
+
if (path !== 'proxy')
|
|
13
|
+
return null;
|
|
14
|
+
const server = query.get('server');
|
|
15
|
+
const port = Number(query.get('port'));
|
|
16
|
+
const secret = query.get('secret');
|
|
17
|
+
if (!server || isNaN(port) || !secret)
|
|
18
|
+
return null;
|
|
19
|
+
return { server, port, secret };
|
|
20
|
+
},
|
|
21
|
+
externalParse: (path, query) => {
|
|
22
|
+
if (path !== 'proxy')
|
|
23
|
+
return null;
|
|
24
|
+
const server = query.get('server');
|
|
25
|
+
const port = Number(query.get('port'));
|
|
26
|
+
const secret = query.get('secret');
|
|
27
|
+
if (!server || isNaN(port) || !secret)
|
|
28
|
+
return null;
|
|
29
|
+
return { server, port, secret };
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Socks5 proxy links
|
|
34
|
+
*/
|
|
35
|
+
exports.socks5 = (0, common_js_1.deeplinkBuilder)({
|
|
36
|
+
internalBuild: (params) => ['socks', params],
|
|
37
|
+
externalBuild: (params) => ['socks', params],
|
|
38
|
+
internalParse: (path, query) => {
|
|
39
|
+
if (path !== 'socks')
|
|
40
|
+
return null;
|
|
41
|
+
const server = query.get('server');
|
|
42
|
+
const port = Number(query.get('port'));
|
|
43
|
+
const user = query.get('user');
|
|
44
|
+
const pass = query.get('pass');
|
|
45
|
+
if (!server || isNaN(port))
|
|
46
|
+
return null;
|
|
47
|
+
return { server, port, user: user || undefined, pass: pass || undefined };
|
|
48
|
+
},
|
|
49
|
+
externalParse: (path, query) => {
|
|
50
|
+
if (path !== 'socks')
|
|
51
|
+
return null;
|
|
52
|
+
const server = query.get('server');
|
|
53
|
+
const port = Number(query.get('port'));
|
|
54
|
+
const user = query.get('user');
|
|
55
|
+
const pass = query.get('pass');
|
|
56
|
+
if (!server || isNaN(port))
|
|
57
|
+
return null;
|
|
58
|
+
return { server, port, user: user || undefined, pass: pass || undefined };
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../src/utils/links/proxy.ts"],"names":[],"mappings":"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","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * MTProxy links\n */\nexport const mtproxy = deeplinkBuilder<{\n server: string\n port: number\n secret: string\n}>({\n internalBuild: (params) => ['proxy', params],\n externalBuild: (params) => ['proxy', params],\n internalParse: (path, query) => {\n if (path !== 'proxy') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const secret = query.get('secret')\n\n if (!server || isNaN(port) || !secret) return null\n\n return { server, port, secret }\n },\n externalParse: (path, query) => {\n if (path !== 'proxy') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const secret = query.get('secret')\n\n if (!server || isNaN(port) || !secret) return null\n\n return { server, port, secret }\n },\n})\n\n/**\n * Socks5 proxy links\n */\nexport const socks5 = deeplinkBuilder<{\n server: string\n port: number\n user?: string\n pass?: string\n}>({\n internalBuild: (params) => ['socks', params],\n externalBuild: (params) => ['socks', params],\n internalParse: (path, query) => {\n if (path !== 'socks') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const user = query.get('user')\n const pass = query.get('pass')\n\n if (!server || isNaN(port)) return null\n\n return { server, port, user: user || undefined, pass: pass || undefined }\n },\n externalParse: (path, query) => {\n if (path !== 'socks') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const user = query.get('user')\n const pass = query.get('pass')\n\n if (!server || isNaN(port)) return null\n\n return { server, port, user: user || undefined, pass: pass || undefined }\n },\n})\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stickerset = void 0;
|
|
4
|
+
const common_js_1 = require("./common.js");
|
|
5
|
+
/**
|
|
6
|
+
* Sticker set links
|
|
7
|
+
*
|
|
8
|
+
* Used to import stickersets or custom emoji stickersets
|
|
9
|
+
*/
|
|
10
|
+
exports.stickerset = (0, common_js_1.deeplinkBuilder)({
|
|
11
|
+
internalBuild: ({ slug, emoji }) => [emoji ? 'addemoji' : 'addstickers', { set: slug }],
|
|
12
|
+
internalParse: (path, query) => {
|
|
13
|
+
if (path !== 'addstickers' && path !== 'addemoji')
|
|
14
|
+
return null;
|
|
15
|
+
const slug = query.get('set');
|
|
16
|
+
if (!slug)
|
|
17
|
+
return null;
|
|
18
|
+
return { slug, emoji: path === 'addemoji' };
|
|
19
|
+
},
|
|
20
|
+
externalBuild: ({ slug, emoji }) => [`${emoji ? 'addemoji' : 'addstickers'}/${slug}`, null],
|
|
21
|
+
externalParse: (path) => {
|
|
22
|
+
const [prefix, slug] = path.split('/');
|
|
23
|
+
if (prefix !== 'addstickers' && prefix !== 'addemoji')
|
|
24
|
+
return null;
|
|
25
|
+
return { slug, emoji: prefix === 'addemoji' };
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=stickers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stickers.js","sourceRoot":"","sources":["../../../../src/utils/links/stickers.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C;;;;GAIG;AACU,QAAA,UAAU,GAAG,IAAA,2BAAe,EAGtC;IACC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvF,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAE9D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAA;IAC/C,CAAC;IACD,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;IAC3F,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAElE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,EAAE,CAAA;IACjD,CAAC;CACJ,CAAC,CAAA","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * Sticker set links\n *\n * Used to import stickersets or custom emoji stickersets\n */\nexport const stickerset = deeplinkBuilder<{\n slug: string\n emoji?: boolean\n}>({\n internalBuild: ({ slug, emoji }) => [emoji ? 'addemoji' : 'addstickers', { set: slug }],\n internalParse: (path, query) => {\n if (path !== 'addstickers' && path !== 'addemoji') return null\n\n const slug = query.get('set')\n if (!slug) return null\n\n return { slug, emoji: path === 'addemoji' }\n },\n externalBuild: ({ slug, emoji }) => [`${emoji ? 'addemoji' : 'addstickers'}/${slug}`, null],\n externalParse: (path) => {\n const [prefix, slug] = path.split('/')\n if (prefix !== 'addstickers' && prefix !== 'addemoji') return null\n\n return { slug, emoji: prefix === 'addemoji' }\n },\n})\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public username links
|
|
3
|
+
*
|
|
4
|
+
* Used to link to public users, groups and channels
|
|
5
|
+
*/
|
|
6
|
+
export declare const publicUsername: import("./common.js").Deeplink<{
|
|
7
|
+
username: string;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Temporary profile links
|
|
11
|
+
*
|
|
12
|
+
* Used to link to user profiles, generated using contacts.exportContactToken.
|
|
13
|
+
* These links can be generated even for profiles that don't have a username,
|
|
14
|
+
* and they have an expiration date, specified by the expires field of the exportedContactToken
|
|
15
|
+
* constructor returned by contacts.exportContactToken.
|
|
16
|
+
*/
|
|
17
|
+
export declare const temporaryProfile: import("./common.js").Deeplink<{
|
|
18
|
+
token: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Phone number links
|
|
22
|
+
*
|
|
23
|
+
* Used to link to public and private users by their phone number.
|
|
24
|
+
*/
|
|
25
|
+
export declare const phoneNumber: import("./common.js").Deeplink<{
|
|
26
|
+
phone: string;
|
|
27
|
+
}>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.phoneNumber = exports.temporaryProfile = exports.publicUsername = void 0;
|
|
4
|
+
const common_js_1 = require("./common.js");
|
|
5
|
+
/**
|
|
6
|
+
* Public username links
|
|
7
|
+
*
|
|
8
|
+
* Used to link to public users, groups and channels
|
|
9
|
+
*/
|
|
10
|
+
exports.publicUsername = (0, common_js_1.deeplinkBuilder)({
|
|
11
|
+
internalBuild: ({ username }) => ['resolve', { domain: username }],
|
|
12
|
+
internalParse: (path, query) => {
|
|
13
|
+
if (path !== 'resolve')
|
|
14
|
+
return null;
|
|
15
|
+
const domain = query.get('domain');
|
|
16
|
+
if (!domain)
|
|
17
|
+
return null;
|
|
18
|
+
// might be some more precise deeplink
|
|
19
|
+
if ([...query.keys()].length > 1)
|
|
20
|
+
return null;
|
|
21
|
+
return { username: domain };
|
|
22
|
+
},
|
|
23
|
+
externalBuild: ({ username }) => [username, null],
|
|
24
|
+
externalParse: (path, query) => {
|
|
25
|
+
if (path.length <= 1 || path.includes('/') || path[0] === '+')
|
|
26
|
+
return null;
|
|
27
|
+
if ([...query.keys()].length > 0)
|
|
28
|
+
return null;
|
|
29
|
+
return { username: path };
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Temporary profile links
|
|
34
|
+
*
|
|
35
|
+
* Used to link to user profiles, generated using contacts.exportContactToken.
|
|
36
|
+
* These links can be generated even for profiles that don't have a username,
|
|
37
|
+
* and they have an expiration date, specified by the expires field of the exportedContactToken
|
|
38
|
+
* constructor returned by contacts.exportContactToken.
|
|
39
|
+
*/
|
|
40
|
+
exports.temporaryProfile = (0, common_js_1.deeplinkBuilder)({
|
|
41
|
+
internalBuild: ({ token }) => ['contact', { token }],
|
|
42
|
+
internalParse: (path, query) => {
|
|
43
|
+
if (path !== 'contact')
|
|
44
|
+
return null;
|
|
45
|
+
const token = query.get('token');
|
|
46
|
+
if (!token)
|
|
47
|
+
return null;
|
|
48
|
+
return { token };
|
|
49
|
+
},
|
|
50
|
+
externalBuild: ({ token }) => [`contact/${token}`, null],
|
|
51
|
+
externalParse: (path) => {
|
|
52
|
+
const [prefix, token] = path.split('/');
|
|
53
|
+
if (prefix !== 'contact')
|
|
54
|
+
return null;
|
|
55
|
+
return { token };
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Phone number links
|
|
60
|
+
*
|
|
61
|
+
* Used to link to public and private users by their phone number.
|
|
62
|
+
*/
|
|
63
|
+
exports.phoneNumber = (0, common_js_1.deeplinkBuilder)({
|
|
64
|
+
internalBuild: ({ phone }) => ['resolve', { phone }],
|
|
65
|
+
internalParse: (path, query) => {
|
|
66
|
+
if (path !== 'resolve')
|
|
67
|
+
return null;
|
|
68
|
+
const phone = query.get('phone');
|
|
69
|
+
if (!phone)
|
|
70
|
+
return null;
|
|
71
|
+
return { phone };
|
|
72
|
+
},
|
|
73
|
+
externalBuild: ({ phone }) => [`+${phone}`, null],
|
|
74
|
+
externalParse: (path) => {
|
|
75
|
+
const m = path.match(/^\+(\d+)$/);
|
|
76
|
+
if (!m)
|
|
77
|
+
return null;
|
|
78
|
+
return { phone: m[1] };
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/utils/links/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * Public username links\n *\n * Used to link to public users, groups and channels\n */\nexport const publicUsername = deeplinkBuilder<{ username: string }>({\n internalBuild: ({ username }) => ['resolve', { domain: username }],\n internalParse: (path, query) => {\n if (path !== 'resolve') return null\n\n const domain = query.get('domain')\n if (!domain) return null\n\n // might be some more precise deeplink\n if ([...query.keys()].length > 1) return null\n\n return { username: domain }\n },\n externalBuild: ({ username }) => [username, null],\n externalParse: (path, query) => {\n if (path.length <= 1 || path.includes('/') || path[0] === '+') return null\n\n if ([...query.keys()].length > 0) return null\n\n return { username: path }\n },\n})\n\n/**\n * Temporary profile links\n *\n * Used to link to user profiles, generated using contacts.exportContactToken.\n * These links can be generated even for profiles that don't have a username,\n * and they have an expiration date, specified by the expires field of the exportedContactToken\n * constructor returned by contacts.exportContactToken.\n */\nexport const temporaryProfile = deeplinkBuilder<{ token: string }>({\n internalBuild: ({ token }) => ['contact', { token }],\n internalParse: (path, query) => {\n if (path !== 'contact') return null\n\n const token = query.get('token')\n if (!token) return null\n\n return { token }\n },\n externalBuild: ({ token }) => [`contact/${token}`, null],\n externalParse: (path) => {\n const [prefix, token] = path.split('/')\n if (prefix !== 'contact') return null\n\n return { token }\n },\n})\n\n/**\n * Phone number links\n *\n * Used to link to public and private users by their phone number.\n */\nexport const phoneNumber = deeplinkBuilder<{ phone: string }>({\n internalBuild: ({ phone }) => ['resolve', { phone }],\n internalParse: (path, query) => {\n if (path !== 'resolve') return null\n\n const phone = query.get('phone')\n if (!phone) return null\n\n return { phone }\n },\n externalBuild: ({ phone }) => [`+${phone}`, null],\n externalParse: (path) => {\n const m = path.match(/^\\+(\\d+)$/)\n if (!m) return null\n\n return { phone: m[1] }\n },\n})\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger created by {@link LogManager}
|
|
3
|
+
*/
|
|
4
|
+
export declare class Logger {
|
|
5
|
+
readonly mgr: LogManager;
|
|
6
|
+
readonly tag: string;
|
|
7
|
+
readonly parent: Logger;
|
|
8
|
+
private color;
|
|
9
|
+
prefix: string;
|
|
10
|
+
constructor(mgr: LogManager, tag: string, parent?: Logger);
|
|
11
|
+
getPrefix(): string;
|
|
12
|
+
log(level: number, fmt: string, ...args: unknown[]): void;
|
|
13
|
+
readonly error: (fmt: string, ...args: unknown[]) => void;
|
|
14
|
+
readonly warn: (fmt: string, ...args: unknown[]) => void;
|
|
15
|
+
readonly info: (fmt: string, ...args: unknown[]) => void;
|
|
16
|
+
readonly debug: (fmt: string, ...args: unknown[]) => void;
|
|
17
|
+
readonly verbose: (fmt: string, ...args: unknown[]) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Create a {@link Logger} with the given tag
|
|
20
|
+
* from the same {@link LogManager} as the current
|
|
21
|
+
* Logger.
|
|
22
|
+
*
|
|
23
|
+
* @param tag Logger tag
|
|
24
|
+
*/
|
|
25
|
+
create(tag: string): Logger;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Log manager. A logger that allows managing child loggers
|
|
29
|
+
*/
|
|
30
|
+
export declare class LogManager extends Logger {
|
|
31
|
+
static OFF: number;
|
|
32
|
+
static ERROR: number;
|
|
33
|
+
static WARN: number;
|
|
34
|
+
static INFO: number;
|
|
35
|
+
static DEBUG: number;
|
|
36
|
+
static VERBOSE: number;
|
|
37
|
+
constructor(tag?: string);
|
|
38
|
+
private _filter;
|
|
39
|
+
level: number;
|
|
40
|
+
handler: (color: number, level: number, tag: string, fmt: string, args: unknown[]) => void;
|
|
41
|
+
disable(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Create a {@link Logger} with the given tag
|
|
44
|
+
*
|
|
45
|
+
* @param tag Logger tag
|
|
46
|
+
*/
|
|
47
|
+
create(tag: string): Logger;
|
|
48
|
+
/**
|
|
49
|
+
* Filter logging by tags.
|
|
50
|
+
*
|
|
51
|
+
* @param cb
|
|
52
|
+
*/
|
|
53
|
+
filter(cb: ((tag: string) => boolean) | null): void;
|
|
54
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogManager = exports.Logger = void 0;
|
|
4
|
+
const tl_runtime_1 = require("@mtcute/tl-runtime");
|
|
5
|
+
const logging_js_1 = require("./platform/logging.js");
|
|
6
|
+
let defaultLogLevel = 3;
|
|
7
|
+
if (typeof process !== 'undefined') {
|
|
8
|
+
const envLogLevel = parseInt(process.env.MTCUTE_LOG_LEVEL ?? '');
|
|
9
|
+
if (!isNaN(envLogLevel)) {
|
|
10
|
+
defaultLogLevel = envLogLevel;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
else if (typeof localStorage !== 'undefined') {
|
|
14
|
+
const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL);
|
|
15
|
+
if (!isNaN(localLogLevel)) {
|
|
16
|
+
defaultLogLevel = localLogLevel;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const FORMATTER_RE = /%[a-zA-Z]/g;
|
|
20
|
+
/**
|
|
21
|
+
* Logger created by {@link LogManager}
|
|
22
|
+
*/
|
|
23
|
+
class Logger {
|
|
24
|
+
constructor(mgr, tag, parent = mgr) {
|
|
25
|
+
this.mgr = mgr;
|
|
26
|
+
this.tag = tag;
|
|
27
|
+
this.parent = parent;
|
|
28
|
+
this.prefix = '';
|
|
29
|
+
this.error = this.log.bind(this, LogManager.ERROR);
|
|
30
|
+
this.warn = this.log.bind(this, LogManager.WARN);
|
|
31
|
+
this.info = this.log.bind(this, LogManager.INFO);
|
|
32
|
+
this.debug = this.log.bind(this, LogManager.DEBUG);
|
|
33
|
+
this.verbose = this.log.bind(this, LogManager.VERBOSE);
|
|
34
|
+
let hash = 0;
|
|
35
|
+
for (let i = 0; i < tag.length; i++) {
|
|
36
|
+
hash = (hash << 5) - hash + tag.charCodeAt(i);
|
|
37
|
+
hash |= 0; // convert to 32bit int
|
|
38
|
+
}
|
|
39
|
+
this.color = Math.abs(hash) % 6;
|
|
40
|
+
}
|
|
41
|
+
getPrefix() {
|
|
42
|
+
let s = '';
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
44
|
+
let obj = this;
|
|
45
|
+
while (obj) {
|
|
46
|
+
if (obj.prefix)
|
|
47
|
+
s = obj.prefix + s;
|
|
48
|
+
obj = obj.parent;
|
|
49
|
+
}
|
|
50
|
+
return s;
|
|
51
|
+
}
|
|
52
|
+
log(level, fmt, ...args) {
|
|
53
|
+
if (level > this.mgr.level)
|
|
54
|
+
return;
|
|
55
|
+
// eslint-disable-next-line dot-notation
|
|
56
|
+
if (!this.mgr['_filter'](this.tag))
|
|
57
|
+
return;
|
|
58
|
+
// custom formatters
|
|
59
|
+
if (fmt.includes('%h') ||
|
|
60
|
+
fmt.includes('%b') ||
|
|
61
|
+
fmt.includes('%j') ||
|
|
62
|
+
fmt.includes('%J') ||
|
|
63
|
+
fmt.includes('%l')) {
|
|
64
|
+
let idx = 0;
|
|
65
|
+
fmt = fmt.replace(FORMATTER_RE, (m) => {
|
|
66
|
+
if (m === '%h' || m === '%b' || m === '%j' || m === '%J' || m === '%l') {
|
|
67
|
+
let val = args[idx];
|
|
68
|
+
args.splice(idx, 1);
|
|
69
|
+
if (m === '%h') {
|
|
70
|
+
if (ArrayBuffer.isView(val))
|
|
71
|
+
return (0, tl_runtime_1.hexEncode)(val);
|
|
72
|
+
if (typeof val === 'number')
|
|
73
|
+
return val.toString(16);
|
|
74
|
+
return String(val);
|
|
75
|
+
}
|
|
76
|
+
if (m === '%b')
|
|
77
|
+
return String(Boolean(val));
|
|
78
|
+
if (m === '%j' || m === '%J') {
|
|
79
|
+
if (m === '%J') {
|
|
80
|
+
val = [...val];
|
|
81
|
+
}
|
|
82
|
+
return JSON.stringify(val, (k, v) => {
|
|
83
|
+
if (ArrayBuffer.isView(v) ||
|
|
84
|
+
(typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data))) {
|
|
85
|
+
// eslint-disable-next-line
|
|
86
|
+
let str = v.data ? Buffer.from(v.data).toString('hex') : (0, tl_runtime_1.hexEncode)(v);
|
|
87
|
+
if (str.length > 300) {
|
|
88
|
+
str = str.slice(0, 300) + '...';
|
|
89
|
+
}
|
|
90
|
+
return str;
|
|
91
|
+
}
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
93
|
+
return v;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
if (m === '%l')
|
|
97
|
+
return String(val);
|
|
98
|
+
}
|
|
99
|
+
idx++;
|
|
100
|
+
return m;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
this.mgr.handler(this.color, level, this.tag, this.getPrefix() + fmt, args);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create a {@link Logger} with the given tag
|
|
107
|
+
* from the same {@link LogManager} as the current
|
|
108
|
+
* Logger.
|
|
109
|
+
*
|
|
110
|
+
* @param tag Logger tag
|
|
111
|
+
*/
|
|
112
|
+
create(tag) {
|
|
113
|
+
return new Logger(this.mgr, tag, this);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.Logger = Logger;
|
|
117
|
+
const defaultFilter = () => true;
|
|
118
|
+
/**
|
|
119
|
+
* Log manager. A logger that allows managing child loggers
|
|
120
|
+
*/
|
|
121
|
+
class LogManager extends Logger {
|
|
122
|
+
constructor(tag = 'base') {
|
|
123
|
+
// workaround because we cant pass this to super
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument
|
|
125
|
+
super(null, tag);
|
|
126
|
+
this._filter = defaultFilter;
|
|
127
|
+
this.level = defaultLogLevel;
|
|
128
|
+
this.handler = logging_js_1._defaultLoggingHandler;
|
|
129
|
+
this.mgr = this;
|
|
130
|
+
}
|
|
131
|
+
disable() {
|
|
132
|
+
this.level = 0;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create a {@link Logger} with the given tag
|
|
136
|
+
*
|
|
137
|
+
* @param tag Logger tag
|
|
138
|
+
*/
|
|
139
|
+
create(tag) {
|
|
140
|
+
return new Logger(this, tag);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Filter logging by tags.
|
|
144
|
+
*
|
|
145
|
+
* @param cb
|
|
146
|
+
*/
|
|
147
|
+
filter(cb) {
|
|
148
|
+
this._filter = cb ?? defaultFilter;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
LogManager.OFF = 0;
|
|
152
|
+
LogManager.ERROR = 1;
|
|
153
|
+
LogManager.WARN = 2;
|
|
154
|
+
LogManager.INFO = 3;
|
|
155
|
+
LogManager.DEBUG = 4;
|
|
156
|
+
LogManager.VERBOSE = 5;
|
|
157
|
+
exports.LogManager = LogManager;
|
|
158
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { hexEncode } from '@mtcute/tl-runtime'\n\nimport { _defaultLoggingHandler } from './platform/logging.js'\n\nlet defaultLogLevel = 3\n\nif (typeof process !== 'undefined') {\n const envLogLevel = parseInt(process.env.MTCUTE_LOG_LEVEL ?? '')\n\n if (!isNaN(envLogLevel)) {\n defaultLogLevel = envLogLevel\n }\n} else if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n defaultLogLevel = localLogLevel\n }\n}\n\nconst FORMATTER_RE = /%[a-zA-Z]/g\n\n/**\n * Logger created by {@link LogManager}\n */\nexport class Logger {\n private color: number\n\n prefix = ''\n\n constructor(\n readonly mgr: LogManager,\n readonly tag: string,\n readonly parent: Logger = mgr,\n ) {\n let hash = 0\n\n for (let i = 0; i < tag.length; i++) {\n hash = (hash << 5) - hash + tag.charCodeAt(i)\n hash |= 0 // convert to 32bit int\n }\n\n this.color = Math.abs(hash) % 6\n }\n\n getPrefix(): string {\n let s = ''\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let obj: Logger | undefined = this\n\n while (obj) {\n if (obj.prefix) s = obj.prefix + s\n obj = obj.parent\n }\n\n return s\n }\n\n log(level: number, fmt: string, ...args: unknown[]): void {\n if (level > this.mgr.level) return\n // eslint-disable-next-line dot-notation\n if (!this.mgr['_filter'](this.tag)) return\n\n // custom formatters\n if (\n fmt.includes('%h') ||\n fmt.includes('%b') ||\n fmt.includes('%j') ||\n fmt.includes('%J') ||\n fmt.includes('%l')\n ) {\n let idx = 0\n fmt = fmt.replace(FORMATTER_RE, (m) => {\n if (m === '%h' || m === '%b' || m === '%j' || m === '%J' || m === '%l') {\n let val = args[idx]\n\n args.splice(idx, 1)\n\n if (m === '%h') {\n if (ArrayBuffer.isView(val)) return hexEncode(val as Uint8Array)\n if (typeof val === 'number') return val.toString(16)\n\n return String(val)\n }\n if (m === '%b') return String(Boolean(val))\n\n if (m === '%j' || m === '%J') {\n if (m === '%J') {\n val = [...(val as IterableIterator<unknown>)]\n }\n\n return JSON.stringify(val, (k, v) => {\n if (\n ArrayBuffer.isView(v) ||\n (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data))\n ) {\n // eslint-disable-next-line\n let str = v.data ? Buffer.from(v.data as number[]).toString('hex') : hexEncode(v)\n\n if (str.length > 300) {\n str = str.slice(0, 300) + '...'\n }\n\n return str\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return v\n })\n }\n if (m === '%l') return String(val)\n }\n\n idx++\n\n return m\n })\n }\n\n this.mgr.handler(this.color, level, this.tag, this.getPrefix() + fmt, args)\n }\n\n readonly error = this.log.bind(this, LogManager.ERROR)\n readonly warn = this.log.bind(this, LogManager.WARN)\n readonly info = this.log.bind(this, LogManager.INFO)\n readonly debug = this.log.bind(this, LogManager.DEBUG)\n readonly verbose = this.log.bind(this, LogManager.VERBOSE)\n\n /**\n * Create a {@link Logger} with the given tag\n * from the same {@link LogManager} as the current\n * Logger.\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this.mgr, tag, this)\n }\n}\n\nconst defaultFilter = () => true\n\n/**\n * Log manager. A logger that allows managing child loggers\n */\nexport class LogManager extends Logger {\n static OFF = 0\n static ERROR = 1\n static WARN = 2\n static INFO = 3\n static DEBUG = 4\n static VERBOSE = 5\n\n constructor(tag = 'base') {\n // workaround because we cant pass this to super\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument\n super(null as any, tag)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(this as any).mgr = this\n }\n\n private _filter: (tag: string) => boolean = defaultFilter\n\n level = defaultLogLevel\n handler = _defaultLoggingHandler\n\n disable(): void {\n this.level = 0\n }\n\n /**\n * Create a {@link Logger} with the given tag\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this, tag)\n }\n\n /**\n * Filter logging by tags.\n *\n * @param cb\n */\n filter(cb: ((tag: string) => boolean) | null): void {\n this._filter = cb ?? defaultFilter\n }\n}\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import Long from 'long';
|
|
2
|
+
/**
|
|
3
|
+
* Get a random Long
|
|
4
|
+
*
|
|
5
|
+
* @param unsigned Whether the number should be unsigned
|
|
6
|
+
*/
|
|
7
|
+
export declare function randomLong(unsigned?: boolean): Long;
|
|
8
|
+
/**
|
|
9
|
+
* Read a Long from a buffer
|
|
10
|
+
*
|
|
11
|
+
* @param buf Buffer to read from
|
|
12
|
+
* @param unsigned Whether the number should be unsigned
|
|
13
|
+
* @param le Whether the number is little-endian
|
|
14
|
+
*/
|
|
15
|
+
export declare function longFromBuffer(buf: Uint8Array, unsigned?: boolean, le?: boolean): Long;
|
|
16
|
+
/**
|
|
17
|
+
* Remove a Long from an array
|
|
18
|
+
*
|
|
19
|
+
* @param arr Array to remove from
|
|
20
|
+
* @param val Value to remove
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeFromLongArray(arr: Long[], val: Long): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Serialize a Long (int64) to its fast string representation:
|
|
25
|
+
* `$high|$low`.
|
|
26
|
+
*
|
|
27
|
+
* This method is about 500* times faster than using `Long.toString()`,
|
|
28
|
+
* and very useful when the string will only ever be used internally
|
|
29
|
+
* (e.g. for keying a map)
|
|
30
|
+
*
|
|
31
|
+
* _\* benchmark result, YMMV_
|
|
32
|
+
*
|
|
33
|
+
* @param val
|
|
34
|
+
*/
|
|
35
|
+
export declare function longToFastString(val: Long): string;
|
|
36
|
+
/**
|
|
37
|
+
* Parse a Long (int64) from its fast string representation:
|
|
38
|
+
* `$high|$low`.
|
|
39
|
+
*
|
|
40
|
+
* This method is about 2 times faster than using Long.fromString.
|
|
41
|
+
*
|
|
42
|
+
* @param val
|
|
43
|
+
* @param unsigned
|
|
44
|
+
*/
|
|
45
|
+
export declare function longFromFastString(val: string, unsigned?: boolean): Long;
|
|
46
|
+
/**
|
|
47
|
+
* Map with Longs as key.
|
|
48
|
+
*
|
|
49
|
+
* Uses fast string representation internally.
|
|
50
|
+
*/
|
|
51
|
+
export declare class LongMap<V> {
|
|
52
|
+
private _map;
|
|
53
|
+
set(key: Long, value: V): void;
|
|
54
|
+
has(key: Long): boolean;
|
|
55
|
+
get(key: Long): V | undefined;
|
|
56
|
+
delete(key: Long): void;
|
|
57
|
+
keys(unsigned?: boolean): IterableIterator<Long>;
|
|
58
|
+
values(): IterableIterator<V>;
|
|
59
|
+
clear(): void;
|
|
60
|
+
size(): number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Set for Longs.
|
|
64
|
+
*
|
|
65
|
+
* Uses fast string representation internally
|
|
66
|
+
*/
|
|
67
|
+
export declare class LongSet {
|
|
68
|
+
private _set;
|
|
69
|
+
get size(): number;
|
|
70
|
+
add(val: Long): void;
|
|
71
|
+
delete(val: Long): void;
|
|
72
|
+
has(val: Long): boolean;
|
|
73
|
+
clear(): void;
|
|
74
|
+
toArray(): Long[];
|
|
75
|
+
}
|