@mtcute/core 0.1.1 → 0.2.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/cjs/base-client.d.ts +3 -6
- package/cjs/base-client.js +12 -20
- package/cjs/base-client.js.map +1 -1
- package/cjs/network/auth-key.test.d.ts +1 -0
- package/cjs/network/auth-key.test.js +111 -0
- package/cjs/network/auth-key.test.js.map +1 -0
- package/cjs/network/config-manager.js +2 -1
- package/cjs/network/config-manager.js.map +1 -1
- package/cjs/network/config-manager.test.d.ts +1 -0
- package/cjs/network/config-manager.test.js +170 -0
- package/cjs/network/config-manager.test.js.map +1 -0
- package/cjs/network/index.d.ts +1 -1
- package/cjs/network/index.js.map +1 -1
- package/cjs/network/multi-session-connection.js +17 -4
- package/cjs/network/multi-session-connection.js.map +1 -1
- package/cjs/network/network-manager.d.ts +1 -1
- package/cjs/network/network-manager.js +12 -5
- package/cjs/network/network-manager.js.map +1 -1
- package/cjs/network/persistent-connection.test.d.ts +1 -0
- package/cjs/network/persistent-connection.test.js +157 -0
- package/cjs/network/persistent-connection.test.js.map +1 -0
- package/cjs/network/session-connection.js +3 -2
- package/cjs/network/session-connection.js.map +1 -1
- package/cjs/network/transports/intermediate.test.d.ts +1 -0
- package/cjs/network/transports/intermediate.test.js +84 -0
- package/cjs/network/transports/intermediate.test.js.map +1 -0
- package/cjs/network/transports/obfuscated.js +1 -1
- package/cjs/network/transports/obfuscated.js.map +1 -1
- package/cjs/network/transports/obfuscated.test.d.ts +1 -0
- package/cjs/network/transports/obfuscated.test.js +131 -0
- package/cjs/network/transports/obfuscated.test.js.map +1 -0
- package/cjs/network/transports/tcp.js +1 -1
- package/cjs/network/transports/tcp.js.map +1 -1
- package/cjs/network/transports/tcp.test.d.ts +1 -0
- package/cjs/network/transports/tcp.test.js +103 -0
- package/cjs/network/transports/tcp.test.js.map +1 -0
- package/cjs/network/transports/websocket.test.d.ts +1 -0
- package/cjs/network/transports/websocket.test.js +91 -0
- package/cjs/network/transports/websocket.test.js.map +1 -0
- package/cjs/storage/abstract.d.ts +18 -0
- package/cjs/storage/abstract.js.map +1 -1
- package/cjs/storage/idb.d.ts +101 -0
- package/cjs/storage/idb.js +458 -0
- package/cjs/storage/idb.js.map +1 -0
- package/cjs/storage/idb.test.d.ts +1 -0
- package/cjs/storage/idb.test.js +21 -0
- package/cjs/storage/idb.test.js.map +1 -0
- package/cjs/storage/index.d.ts +0 -4
- package/cjs/storage/index.js +0 -4
- package/cjs/storage/index.js.map +1 -1
- package/cjs/storage/json-file.d.ts +12 -0
- package/cjs/storage/json-file.js +12 -0
- package/cjs/storage/json-file.js.map +1 -1
- package/cjs/storage/json.js +3 -2
- package/cjs/storage/json.js.map +1 -1
- package/cjs/storage/json.test.d.ts +1 -0
- package/cjs/storage/json.test.js +36 -0
- package/cjs/storage/json.test.js.map +1 -0
- package/cjs/storage/localstorage.d.ts +12 -0
- package/cjs/storage/localstorage.js +12 -0
- package/cjs/storage/localstorage.js.map +1 -1
- package/cjs/storage/localstorage.test.d.ts +1 -0
- package/cjs/storage/localstorage.test.js +23 -0
- package/cjs/storage/localstorage.test.js.map +1 -0
- package/cjs/storage/memory.d.ts +12 -1
- package/cjs/storage/memory.js +65 -3
- package/cjs/storage/memory.js.map +1 -1
- package/cjs/storage/memory.test.d.ts +1 -0
- package/cjs/storage/memory.test.js +48 -0
- package/cjs/storage/memory.test.js.map +1 -0
- package/cjs/utils/async-lock.test.d.ts +1 -0
- package/cjs/utils/async-lock.test.js +25 -0
- package/cjs/utils/async-lock.test.js.map +1 -0
- package/cjs/utils/bigint-utils.test.d.ts +1 -0
- package/cjs/utils/bigint-utils.test.js +150 -0
- package/cjs/utils/bigint-utils.test.js.map +1 -0
- package/cjs/utils/buffer-utils.test.d.ts +1 -0
- package/cjs/utils/buffer-utils.test.js +69 -0
- package/cjs/utils/buffer-utils.test.js.map +1 -0
- package/cjs/utils/condition-variable.test.d.ts +1 -0
- package/cjs/utils/condition-variable.test.js +27 -0
- package/cjs/utils/condition-variable.test.js.map +1 -0
- package/cjs/utils/controllable-promise.d.ts +0 -5
- package/cjs/utils/controllable-promise.js +1 -7
- package/cjs/utils/controllable-promise.js.map +1 -1
- package/cjs/utils/controllable-promise.test.d.ts +1 -0
- package/cjs/utils/controllable-promise.test.js +17 -0
- package/cjs/utils/controllable-promise.test.js.map +1 -0
- package/cjs/utils/crypto/keys.test.d.ts +1 -0
- package/cjs/utils/crypto/keys.test.js +40 -0
- package/cjs/utils/crypto/keys.test.js.map +1 -0
- package/cjs/utils/crypto/miller-rabin.test.d.ts +1 -0
- package/cjs/utils/crypto/miller-rabin.test.js +60 -0
- package/cjs/utils/crypto/miller-rabin.test.js.map +1 -0
- package/cjs/utils/crypto/mtproto.test.d.ts +1 -0
- package/cjs/utils/crypto/mtproto.test.js +50 -0
- package/cjs/utils/crypto/mtproto.test.js.map +1 -0
- package/cjs/utils/crypto/node.test.d.ts +1 -0
- package/cjs/utils/crypto/node.test.js +14 -0
- package/cjs/utils/crypto/node.test.js.map +1 -0
- package/cjs/utils/crypto/password.test.d.ts +1 -0
- package/cjs/utils/crypto/password.test.js +95 -0
- package/cjs/utils/crypto/password.test.js.map +1 -0
- package/cjs/utils/crypto/utils.test.d.ts +1 -0
- package/cjs/utils/crypto/utils.test.js +49 -0
- package/cjs/utils/crypto/utils.test.js.map +1 -0
- package/cjs/utils/crypto/web.test.d.ts +1 -0
- package/cjs/utils/crypto/web.test.js +17 -0
- package/cjs/utils/crypto/web.test.js.map +1 -0
- package/cjs/utils/deque.test.d.ts +1 -0
- package/cjs/utils/deque.test.js +128 -0
- package/cjs/utils/deque.test.js.map +1 -0
- package/cjs/utils/function-utils.test.d.ts +1 -0
- package/cjs/utils/function-utils.test.js +23 -0
- package/cjs/utils/function-utils.test.js.map +1 -0
- package/cjs/utils/linked-list.test.d.ts +1 -0
- package/cjs/utils/linked-list.test.js +36 -0
- package/cjs/utils/linked-list.test.js.map +1 -0
- package/cjs/utils/links/bots.test.d.ts +1 -0
- package/cjs/utils/links/bots.test.js +152 -0
- package/cjs/utils/links/bots.test.js.map +1 -0
- package/cjs/utils/links/chat.test.d.ts +1 -0
- package/cjs/utils/links/chat.test.js +84 -0
- package/cjs/utils/links/chat.test.js.map +1 -0
- package/cjs/utils/links/misc.test.d.ts +1 -0
- package/cjs/utils/links/misc.test.js +153 -0
- package/cjs/utils/links/misc.test.js.map +1 -0
- package/cjs/utils/links/proxy.test.d.ts +1 -0
- package/cjs/utils/links/proxy.test.js +74 -0
- package/cjs/utils/links/proxy.test.js.map +1 -0
- package/cjs/utils/links/user.test.d.ts +1 -0
- package/cjs/utils/links/user.test.js +63 -0
- package/cjs/utils/links/user.test.js.map +1 -0
- package/cjs/utils/logger.test.d.ts +1 -0
- package/cjs/utils/logger.test.js +127 -0
- package/cjs/utils/logger.test.js.map +1 -0
- package/cjs/utils/long-utils.test.d.ts +1 -0
- package/cjs/utils/long-utils.test.js +158 -0
- package/cjs/utils/long-utils.test.js.map +1 -0
- package/cjs/utils/lru-map.test.d.ts +1 -0
- package/cjs/utils/lru-map.test.js +96 -0
- package/cjs/utils/lru-map.test.js.map +1 -0
- package/cjs/utils/lru-set.test.d.ts +1 -0
- package/cjs/utils/lru-set.test.js +77 -0
- package/cjs/utils/lru-set.test.js.map +1 -0
- package/cjs/utils/peer-utils.js +3 -1
- package/cjs/utils/peer-utils.js.map +1 -1
- package/cjs/utils/peer-utils.test.d.ts +1 -0
- package/cjs/utils/peer-utils.test.js +122 -0
- package/cjs/utils/peer-utils.test.js.map +1 -0
- package/cjs/utils/sorted-array.test.d.ts +1 -0
- package/cjs/utils/sorted-array.test.js +66 -0
- package/cjs/utils/sorted-array.test.js.map +1 -0
- package/cjs/utils/string-session.test.d.ts +1 -0
- package/cjs/utils/string-session.test.js +106 -0
- package/cjs/utils/string-session.test.js.map +1 -0
- package/cjs/utils/tl-json.test.d.ts +1 -0
- package/cjs/utils/tl-json.test.js +83 -0
- package/cjs/utils/tl-json.test.js.map +1 -0
- package/cjs/utils/type-assertions.test.d.ts +1 -0
- package/cjs/utils/type-assertions.test.js +67 -0
- package/cjs/utils/type-assertions.test.js.map +1 -0
- package/esm/base-client.d.ts +3 -6
- package/esm/base-client.js +2 -10
- package/esm/base-client.js.map +1 -1
- package/esm/network/auth-key.test.d.ts +1 -0
- package/esm/network/auth-key.test.js +106 -0
- package/esm/network/auth-key.test.js.map +1 -0
- package/esm/network/config-manager.js +2 -1
- package/esm/network/config-manager.js.map +1 -1
- package/esm/network/config-manager.test.d.ts +1 -0
- package/esm/network/config-manager.test.js +168 -0
- package/esm/network/config-manager.test.js.map +1 -0
- package/esm/network/index.d.ts +1 -1
- package/esm/network/index.js.map +1 -1
- package/esm/network/multi-session-connection.js +17 -4
- package/esm/network/multi-session-connection.js.map +1 -1
- package/esm/network/network-manager.d.ts +1 -1
- package/esm/network/network-manager.js +12 -5
- package/esm/network/network-manager.js.map +1 -1
- package/esm/network/persistent-connection.test.d.ts +1 -0
- package/esm/network/persistent-connection.test.js +155 -0
- package/esm/network/persistent-connection.test.js.map +1 -0
- package/esm/network/session-connection.js +3 -2
- package/esm/network/session-connection.js.map +1 -1
- package/esm/network/transports/intermediate.test.d.ts +1 -0
- package/esm/network/transports/intermediate.test.js +82 -0
- package/esm/network/transports/intermediate.test.js.map +1 -0
- package/esm/network/transports/obfuscated.js +1 -1
- package/esm/network/transports/obfuscated.js.map +1 -1
- package/esm/network/transports/obfuscated.test.d.ts +1 -0
- package/esm/network/transports/obfuscated.test.js +129 -0
- package/esm/network/transports/obfuscated.test.js.map +1 -0
- package/esm/network/transports/tcp.js +1 -1
- package/esm/network/transports/tcp.js.map +1 -1
- package/esm/network/transports/tcp.test.d.ts +1 -0
- package/esm/network/transports/tcp.test.js +101 -0
- package/esm/network/transports/tcp.test.js.map +1 -0
- package/esm/network/transports/websocket.test.d.ts +1 -0
- package/esm/network/transports/websocket.test.js +89 -0
- package/esm/network/transports/websocket.test.js.map +1 -0
- package/esm/storage/abstract.d.ts +18 -0
- package/esm/storage/abstract.js.map +1 -1
- package/esm/storage/idb.d.ts +101 -0
- package/esm/storage/idb.js +454 -0
- package/esm/storage/idb.js.map +1 -0
- package/esm/storage/idb.test.d.ts +1 -0
- package/esm/storage/idb.test.js +19 -0
- package/esm/storage/idb.test.js.map +1 -0
- package/esm/storage/index.d.ts +0 -4
- package/esm/storage/index.js +0 -4
- package/esm/storage/index.js.map +1 -1
- package/esm/storage/json-file.d.ts +12 -0
- package/esm/storage/json-file.js +12 -0
- package/esm/storage/json-file.js.map +1 -1
- package/esm/storage/json.js +3 -2
- package/esm/storage/json.js.map +1 -1
- package/esm/storage/json.test.d.ts +1 -0
- package/esm/storage/json.test.js +34 -0
- package/esm/storage/json.test.js.map +1 -0
- package/esm/storage/localstorage.d.ts +12 -0
- package/esm/storage/localstorage.js +12 -0
- package/esm/storage/localstorage.js.map +1 -1
- package/esm/storage/localstorage.test.d.ts +1 -0
- package/esm/storage/localstorage.test.js +21 -0
- package/esm/storage/localstorage.test.js.map +1 -0
- package/esm/storage/memory.d.ts +12 -1
- package/esm/storage/memory.js +65 -3
- package/esm/storage/memory.js.map +1 -1
- package/esm/storage/memory.test.d.ts +1 -0
- package/esm/storage/memory.test.js +46 -0
- package/esm/storage/memory.test.js.map +1 -0
- package/esm/utils/async-lock.test.d.ts +1 -0
- package/esm/utils/async-lock.test.js +23 -0
- package/esm/utils/async-lock.test.js.map +1 -0
- package/esm/utils/bigint-utils.test.d.ts +1 -0
- package/esm/utils/bigint-utils.test.js +148 -0
- package/esm/utils/bigint-utils.test.js.map +1 -0
- package/esm/utils/buffer-utils.test.d.ts +1 -0
- package/esm/utils/buffer-utils.test.js +67 -0
- package/esm/utils/buffer-utils.test.js.map +1 -0
- package/esm/utils/condition-variable.test.d.ts +1 -0
- package/esm/utils/condition-variable.test.js +25 -0
- package/esm/utils/condition-variable.test.js.map +1 -0
- package/esm/utils/controllable-promise.d.ts +0 -5
- package/esm/utils/controllable-promise.js +0 -5
- package/esm/utils/controllable-promise.js.map +1 -1
- package/esm/utils/controllable-promise.test.d.ts +1 -0
- package/esm/utils/controllable-promise.test.js +15 -0
- package/esm/utils/controllable-promise.test.js.map +1 -0
- package/esm/utils/crypto/keys.test.d.ts +1 -0
- package/esm/utils/crypto/keys.test.js +38 -0
- package/esm/utils/crypto/keys.test.js.map +1 -0
- package/esm/utils/crypto/miller-rabin.test.d.ts +1 -0
- package/esm/utils/crypto/miller-rabin.test.js +58 -0
- package/esm/utils/crypto/miller-rabin.test.js.map +1 -0
- package/esm/utils/crypto/mtproto.test.d.ts +1 -0
- package/esm/utils/crypto/mtproto.test.js +48 -0
- package/esm/utils/crypto/mtproto.test.js.map +1 -0
- package/esm/utils/crypto/node.test.d.ts +1 -0
- package/esm/utils/crypto/node.test.js +12 -0
- package/esm/utils/crypto/node.test.js.map +1 -0
- package/esm/utils/crypto/password.test.d.ts +1 -0
- package/esm/utils/crypto/password.test.js +90 -0
- package/esm/utils/crypto/password.test.js.map +1 -0
- package/esm/utils/crypto/utils.test.d.ts +1 -0
- package/esm/utils/crypto/utils.test.js +47 -0
- package/esm/utils/crypto/utils.test.js.map +1 -0
- package/esm/utils/crypto/web.test.d.ts +1 -0
- package/esm/utils/crypto/web.test.js +15 -0
- package/esm/utils/crypto/web.test.js.map +1 -0
- package/esm/utils/deque.test.d.ts +1 -0
- package/esm/utils/deque.test.js +126 -0
- package/esm/utils/deque.test.js.map +1 -0
- package/esm/utils/function-utils.test.d.ts +1 -0
- package/esm/utils/function-utils.test.js +21 -0
- package/esm/utils/function-utils.test.js.map +1 -0
- package/esm/utils/linked-list.test.d.ts +1 -0
- package/esm/utils/linked-list.test.js +34 -0
- package/esm/utils/linked-list.test.js.map +1 -0
- package/esm/utils/links/bots.test.d.ts +1 -0
- package/esm/utils/links/bots.test.js +150 -0
- package/esm/utils/links/bots.test.js.map +1 -0
- package/esm/utils/links/chat.test.d.ts +1 -0
- package/esm/utils/links/chat.test.js +82 -0
- package/esm/utils/links/chat.test.js.map +1 -0
- package/esm/utils/links/misc.test.d.ts +1 -0
- package/esm/utils/links/misc.test.js +151 -0
- package/esm/utils/links/misc.test.js.map +1 -0
- package/esm/utils/links/proxy.test.d.ts +1 -0
- package/esm/utils/links/proxy.test.js +72 -0
- package/esm/utils/links/proxy.test.js.map +1 -0
- package/esm/utils/links/user.test.d.ts +1 -0
- package/esm/utils/links/user.test.js +61 -0
- package/esm/utils/links/user.test.js.map +1 -0
- package/esm/utils/logger.test.d.ts +1 -0
- package/esm/utils/logger.test.js +122 -0
- package/esm/utils/logger.test.js.map +1 -0
- package/esm/utils/long-utils.test.d.ts +1 -0
- package/esm/utils/long-utils.test.js +153 -0
- package/esm/utils/long-utils.test.js.map +1 -0
- package/esm/utils/lru-map.test.d.ts +1 -0
- package/esm/utils/lru-map.test.js +94 -0
- package/esm/utils/lru-map.test.js.map +1 -0
- package/esm/utils/lru-set.test.d.ts +1 -0
- package/esm/utils/lru-set.test.js +72 -0
- package/esm/utils/lru-set.test.js.map +1 -0
- package/esm/utils/peer-utils.js +3 -1
- package/esm/utils/peer-utils.js.map +1 -1
- package/esm/utils/peer-utils.test.d.ts +1 -0
- package/esm/utils/peer-utils.test.js +117 -0
- package/esm/utils/peer-utils.test.js.map +1 -0
- package/esm/utils/sorted-array.test.d.ts +1 -0
- package/esm/utils/sorted-array.test.js +64 -0
- package/esm/utils/sorted-array.test.js.map +1 -0
- package/esm/utils/string-session.test.d.ts +1 -0
- package/esm/utils/string-session.test.js +104 -0
- package/esm/utils/string-session.test.js.map +1 -0
- package/esm/utils/tl-json.test.d.ts +1 -0
- package/esm/utils/tl-json.test.js +81 -0
- package/esm/utils/tl-json.test.js.map +1 -0
- package/esm/utils/type-assertions.test.d.ts +1 -0
- package/esm/utils/type-assertions.test.js +65 -0
- package/esm/utils/type-assertions.test.js.map +1 -0
- package/package.json +20 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deque.test.js","sourceRoot":"","sources":["../../../src/utils/deque.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { Deque } from './deque.js'\n\ndescribe('Deque', () => {\n function setupWrapping() {\n const d = new Deque<number>(Infinity, /* capacity: */ 8)\n\n for (let i = 1; i <= 7; i++) {\n d.pushBack(i)\n }\n\n // [1, 2, 3, 4, 5, 6, 7, _]\n\n d.popFront()\n d.popFront()\n d.popFront()\n\n // [_, _, _, 4, 5, 6, 7, _]\n\n d.pushBack(8)\n d.pushBack(9)\n d.pushBack(10)\n\n // [9, 10, _, 4, 5, 6, 7, 8]\n return d\n }\n\n it('should push items to the end correctly', () => {\n const d = new Deque<number>()\n\n d.pushBack(1)\n d.pushBack(2)\n d.pushBack(3)\n\n expect(d.toArray()).eql([1, 2, 3])\n expect([...d.iter()]).eql([1, 2, 3])\n })\n\n it('should push items to the start correctly', () => {\n const d = new Deque<number>()\n\n d.pushFront(1)\n d.pushFront(2)\n d.pushFront(3)\n\n expect(d.toArray()).eql([3, 2, 1])\n })\n\n it('should pop items from the end correctly', () => {\n const d = new Deque<number>()\n\n d.pushBack(1)\n d.pushBack(2)\n d.pushBack(3)\n\n expect(d.popBack()).eql(3)\n expect(d.popBack()).eql(2)\n expect(d.popBack()).eql(1)\n })\n\n it('should pop items from the start correctly', () => {\n const d = new Deque<number>()\n\n d.pushFront(1)\n d.pushFront(2)\n d.pushFront(3)\n\n expect(d.popFront()).eql(3)\n expect(d.popFront()).eql(2)\n expect(d.popFront()).eql(1)\n })\n\n it('should return the correct length', () => {\n const d = new Deque<number>()\n\n d.pushBack(1)\n d.pushBack(2)\n d.pushBack(3)\n\n expect(d.length).eql(3)\n })\n\n it('accessors should correctly wrap around', () => {\n const d = setupWrapping()\n\n expect(d.toArray()).eql([4, 5, 6, 7, 8, 9, 10])\n expect([...d.iter()]).eql([4, 5, 6, 7, 8, 9, 10])\n expect(d.at(6)).eql(10)\n })\n\n it('should handle maxLength by removing items from the other end', () => {\n const d = new Deque<number>(4)\n\n d.pushBack(1)\n d.pushBack(2)\n d.pushBack(3)\n d.pushBack(4)\n\n d.pushBack(5)\n expect(d.toArray()).eql([2, 3, 4, 5])\n\n d.pushFront(6)\n expect(d.toArray()).eql([6, 2, 3, 4])\n })\n\n it('should correctly resize', () => {\n const d = new Deque<number>(Infinity, /* capacity: */ 8)\n\n for (let i = 0; i <= 16; i++) {\n d.pushBack(i)\n }\n\n const expected = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]\n\n expect(d.length).eql(17)\n expect(d.toArray()).eql(expected)\n expect([...d.iter()]).eql(expected)\n expect(d.at(16)).eql(16)\n })\n\n it('should correctly remove items', () => {\n const d = new Deque<number>(Infinity, /* capacity: */ 16)\n\n d.pushBack(1)\n d.pushBack(2)\n d.pushBack(3)\n d.pushBack(4)\n d.pushBack(5)\n\n d.remove(1)\n d.remove(4)\n\n expect(d.toArray()).eql([2, 3, 5])\n })\n\n it('should correctly remove items by predicate (the first matched)', () => {\n const d = new Deque<number>(Infinity, /* capacity: */ 4)\n\n d.pushBack(1)\n d.pushBack(2)\n d.pushBack(3)\n d.pushBack(4)\n d.pushBack(5)\n\n d.removeBy((it) => it >= 2)\n\n expect(d.toArray()).eql([1, 3, 4, 5])\n })\n\n it('should correctly peek at edges', () => {\n const d = new Deque<number>()\n\n d.pushBack(1)\n d.pushBack(2)\n\n expect(d.peekFront()).eql(1)\n expect(d.peekBack()).eql(2)\n })\n\n it('should correctly clear', () => {\n const d = new Deque<number>()\n\n d.pushBack(1)\n d.pushBack(2)\n\n d.clear()\n\n expect(d.length).eql(0)\n expect(d.toArray()).eql([])\n expect([...d.iter()]).eql([])\n })\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const condition_variable_js_1 = require("./condition-variable.js");
|
|
5
|
+
const function_utils_js_1 = require("./function-utils.js");
|
|
6
|
+
(0, vitest_1.describe)('throttle', () => {
|
|
7
|
+
(0, vitest_1.it)('should throttle', async () => {
|
|
8
|
+
const cv = new condition_variable_js_1.ConditionVariable();
|
|
9
|
+
let count = 0;
|
|
10
|
+
const func = () => {
|
|
11
|
+
count++;
|
|
12
|
+
cv.notify();
|
|
13
|
+
};
|
|
14
|
+
const throttled = (0, function_utils_js_1.throttle)(func, 10);
|
|
15
|
+
throttled();
|
|
16
|
+
throttled();
|
|
17
|
+
throttled();
|
|
18
|
+
throttled();
|
|
19
|
+
await cv.wait();
|
|
20
|
+
(0, vitest_1.expect)(count).eq(1);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=function-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-utils.test.js","sourceRoot":"","sources":["../../../src/utils/function-utils.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,mEAA2D;AAC3D,2DAA8C;AAE9C,IAAA,iBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACtB,IAAA,WAAE,EAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,EAAE,GAAG,IAAI,yCAAiB,EAAE,CAAA;QAClC,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,MAAM,IAAI,GAAG,GAAG,EAAE;YACd,KAAK,EAAE,CAAA;YACP,EAAE,CAAC,MAAM,EAAE,CAAA;QACf,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,IAAA,4BAAQ,EAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAEpC,SAAS,EAAE,CAAA;QACX,SAAS,EAAE,CAAA;QACX,SAAS,EAAE,CAAA;QACX,SAAS,EAAE,CAAA;QAEX,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;QAEf,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { ConditionVariable } from './condition-variable.js'\nimport { throttle } from './function-utils.js'\n\ndescribe('throttle', () => {\n it('should throttle', async () => {\n const cv = new ConditionVariable()\n let count = 0\n\n const func = () => {\n count++\n cv.notify()\n }\n\n const throttled = throttle(func, 10)\n\n throttled()\n throttled()\n throttled()\n throttled()\n\n await cv.wait()\n\n expect(count).eq(1)\n })\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const linked_list_js_1 = require("./linked-list.js");
|
|
5
|
+
(0, vitest_1.describe)('SortedLinkedList', () => {
|
|
6
|
+
const ascendingComparator = (a, b) => a - b;
|
|
7
|
+
(0, vitest_1.it)('should add items in the correct order', () => {
|
|
8
|
+
const list = new linked_list_js_1.SortedLinkedList(ascendingComparator);
|
|
9
|
+
list.add(3);
|
|
10
|
+
list.add(1);
|
|
11
|
+
list.add(2);
|
|
12
|
+
(0, vitest_1.expect)(list.popFront()).eq(1);
|
|
13
|
+
(0, vitest_1.expect)(list.popFront()).eq(2);
|
|
14
|
+
(0, vitest_1.expect)(list.popFront()).eq(3);
|
|
15
|
+
});
|
|
16
|
+
(0, vitest_1.it)('should allow deleting nodes using _remove', () => {
|
|
17
|
+
const list = new linked_list_js_1.SortedLinkedList(ascendingComparator);
|
|
18
|
+
list.add(3);
|
|
19
|
+
list.add(1);
|
|
20
|
+
list.add(2);
|
|
21
|
+
const node = list._first.n;
|
|
22
|
+
list._remove(node);
|
|
23
|
+
(0, vitest_1.expect)(list.popFront()).eq(1);
|
|
24
|
+
(0, vitest_1.expect)(list.popFront()).eq(3);
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.it)('should clear', () => {
|
|
27
|
+
const list = new linked_list_js_1.SortedLinkedList(ascendingComparator);
|
|
28
|
+
list.add(3);
|
|
29
|
+
list.add(1);
|
|
30
|
+
list.add(2);
|
|
31
|
+
list.clear();
|
|
32
|
+
(0, vitest_1.expect)(list.length).eq(0);
|
|
33
|
+
(0, vitest_1.expect)(list.popFront()).eq(undefined);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=linked-list.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked-list.test.js","sourceRoot":"","sources":["../../../src/utils/linked-list.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,qDAAmD;AAEnD,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,MAAM,mBAAmB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;IAE3D,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,iCAAgB,CAAC,mBAAmB,CAAC,CAAA;QAEtD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEX,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,iCAAgB,CAAC,mBAAmB,CAAC,CAAA;QAEtD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEX,MAAM,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,CAAE,CAAA;QAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAElB,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,cAAc,EAAE,GAAG,EAAE;QACpB,MAAM,IAAI,GAAG,IAAI,iCAAgB,CAAC,mBAAmB,CAAC,CAAA;QAEtD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEX,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAA,eAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACzB,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { SortedLinkedList } from './linked-list.js'\n\ndescribe('SortedLinkedList', () => {\n const ascendingComparator = (a: number, b: number) => a - b\n\n it('should add items in the correct order', () => {\n const list = new SortedLinkedList(ascendingComparator)\n\n list.add(3)\n list.add(1)\n list.add(2)\n\n expect(list.popFront()).eq(1)\n expect(list.popFront()).eq(2)\n expect(list.popFront()).eq(3)\n })\n\n it('should allow deleting nodes using _remove', () => {\n const list = new SortedLinkedList(ascendingComparator)\n\n list.add(3)\n list.add(1)\n list.add(2)\n\n const node = list._first!.n!\n\n list._remove(node)\n\n expect(list.popFront()).eq(1)\n expect(list.popFront()).eq(3)\n })\n\n it('should clear', () => {\n const list = new SortedLinkedList(ascendingComparator)\n\n list.add(3)\n list.add(1)\n list.add(2)\n\n list.clear()\n\n expect(list.length).eq(0)\n expect(list.popFront()).eq(undefined)\n })\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const index_js_1 = require("./index.js");
|
|
6
|
+
(0, vitest_1.describe)('Deep links', function () {
|
|
7
|
+
(0, vitest_1.describe)('Bot start links', () => {
|
|
8
|
+
(0, vitest_1.it)('should generate t.me/username?start=parameter links', () => {
|
|
9
|
+
(0, vitest_1.expect)(index_js_1.links.botStart({ username: 'username', parameter: 'parameter' })).eq('https://t.me/username?start=parameter');
|
|
10
|
+
});
|
|
11
|
+
(0, vitest_1.it)('should generate tg://resolve?domain=username&start=parameter links', () => {
|
|
12
|
+
(0, vitest_1.expect)(index_js_1.links.botStart({ username: 'username', parameter: 'parameter', protocol: 'tg' })).eq('tg://resolve?domain=username&start=parameter');
|
|
13
|
+
});
|
|
14
|
+
(0, vitest_1.it)('should parse t.me/username?start=parameter links', () => {
|
|
15
|
+
(0, vitest_1.expect)(index_js_1.links.botStart.parse('https://t.me/username?start=parameter')).eql({
|
|
16
|
+
username: 'username',
|
|
17
|
+
parameter: 'parameter',
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.it)('should parse tg://resolve?domain=username&start=parameter links', () => {
|
|
21
|
+
(0, vitest_1.expect)(index_js_1.links.botStart.parse('tg://resolve?domain=username&start=parameter')).eql({
|
|
22
|
+
username: 'username',
|
|
23
|
+
parameter: 'parameter',
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.describe)('Bot add to group links', () => {
|
|
28
|
+
(0, vitest_1.it)('should generate t.me links', () => {
|
|
29
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username' })).eq('https://t.me/bot_username?startgroup');
|
|
30
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username', parameter: '' })).eq('https://t.me/bot_username?startgroup=');
|
|
31
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username', parameter: 'parameter' })).eq('https://t.me/bot_username?startgroup=parameter');
|
|
32
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username', admin: ['postStories'] })).eq('https://t.me/bot_username?startgroup&admin=post_stories');
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)('should generate tg://resolve links', () => {
|
|
35
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username', protocol: 'tg' })).eq('tg://resolve?domain=bot_username&startgroup');
|
|
36
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username', parameter: 'parameter', protocol: 'tg' })).eq('tg://resolve?domain=bot_username&startgroup=parameter');
|
|
37
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup({ bot: 'bot_username', admin: ['postStories'], protocol: 'tg' })).eq('tg://resolve?domain=bot_username&startgroup&admin=post_stories');
|
|
38
|
+
});
|
|
39
|
+
(0, vitest_1.it)('should parse t.me links', () => {
|
|
40
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup.parse('https://t.me/bot_username?startgroup')).eql({
|
|
41
|
+
bot: 'bot_username',
|
|
42
|
+
parameter: undefined,
|
|
43
|
+
admin: undefined,
|
|
44
|
+
});
|
|
45
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup.parse('https://t.me/bot_username?startgroup=parameter')).eql({
|
|
46
|
+
bot: 'bot_username',
|
|
47
|
+
parameter: 'parameter',
|
|
48
|
+
admin: undefined,
|
|
49
|
+
});
|
|
50
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup.parse('https://t.me/bot_username?startgroup&admin=post_stories')).eql({
|
|
51
|
+
bot: 'bot_username',
|
|
52
|
+
parameter: undefined,
|
|
53
|
+
admin: ['postStories'],
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.it)('should parse tg://resolve links', () => {
|
|
57
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup.parse('tg://resolve?domain=bot_username&startgroup')).eql({
|
|
58
|
+
bot: 'bot_username',
|
|
59
|
+
parameter: undefined,
|
|
60
|
+
admin: undefined,
|
|
61
|
+
});
|
|
62
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup.parse('tg://resolve?domain=bot_username&startgroup=parameter')).eql({
|
|
63
|
+
bot: 'bot_username',
|
|
64
|
+
parameter: 'parameter',
|
|
65
|
+
admin: undefined,
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToGroup.parse('tg://resolve?domain=bot_username&startgroup&admin=post_stories')).eql({
|
|
68
|
+
bot: 'bot_username',
|
|
69
|
+
parameter: undefined,
|
|
70
|
+
admin: ['postStories'],
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.describe)('Bot add to channel links', () => {
|
|
75
|
+
(0, vitest_1.it)('should generate t.me links', () => {
|
|
76
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel({ bot: 'bot_username' })).eq('https://t.me/bot_username?startchannel');
|
|
77
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel({ bot: 'bot_username', admin: ['postStories'] })).eq('https://t.me/bot_username?startchannel&admin=post_stories');
|
|
78
|
+
});
|
|
79
|
+
(0, vitest_1.it)('should generate tg://resolve links', () => {
|
|
80
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel({ bot: 'bot_username', protocol: 'tg' })).eq('tg://resolve?domain=bot_username&startchannel');
|
|
81
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel({ bot: 'bot_username', admin: ['postStories'], protocol: 'tg' })).eq('tg://resolve?domain=bot_username&startchannel&admin=post_stories');
|
|
82
|
+
});
|
|
83
|
+
(0, vitest_1.it)('should parse t.me links', () => {
|
|
84
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel.parse('https://t.me/bot_username?startchannel')).eql({
|
|
85
|
+
bot: 'bot_username',
|
|
86
|
+
admin: undefined,
|
|
87
|
+
});
|
|
88
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel.parse('https://t.me/bot_username?startchannel&admin=post_stories')).eql({
|
|
89
|
+
bot: 'bot_username',
|
|
90
|
+
admin: ['postStories'],
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
(0, vitest_1.it)('should parse tg://resolve links', () => {
|
|
94
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel.parse('tg://resolve?domain=bot_username&startchannel')).eql({
|
|
95
|
+
bot: 'bot_username',
|
|
96
|
+
admin: undefined,
|
|
97
|
+
});
|
|
98
|
+
(0, vitest_1.expect)(index_js_1.links.botAddToChannel.parse('tg://resolve?domain=bot_username&startchannel&admin=post_stories')).eql({ bot: 'bot_username', admin: ['postStories'] });
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
(0, vitest_1.describe)('Game links', () => {
|
|
102
|
+
(0, vitest_1.it)('should generate t.me links', () => {
|
|
103
|
+
(0, vitest_1.expect)(index_js_1.links.botGame({ bot: 'bot_username', game: 'short_name' })).eq('https://t.me/bot_username?game=short_name');
|
|
104
|
+
});
|
|
105
|
+
(0, vitest_1.it)('should generate tg://resolve links', () => {
|
|
106
|
+
(0, vitest_1.expect)(index_js_1.links.botGame({ bot: 'bot_username', game: 'short_name', protocol: 'tg' })).eq('tg://resolve?domain=bot_username&game=short_name');
|
|
107
|
+
});
|
|
108
|
+
(0, vitest_1.it)('should parse t.me links', () => {
|
|
109
|
+
(0, vitest_1.expect)(index_js_1.links.botGame.parse('https://t.me/bot_username?game=short_name')).eql({
|
|
110
|
+
bot: 'bot_username',
|
|
111
|
+
game: 'short_name',
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
(0, vitest_1.it)('should parse tg://resolve links', () => {
|
|
115
|
+
(0, vitest_1.expect)(index_js_1.links.botGame.parse('tg://resolve?domain=bot_username&game=short_name')).eql({
|
|
116
|
+
bot: 'bot_username',
|
|
117
|
+
game: 'short_name',
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
(0, vitest_1.describe)('Named web apps', () => {
|
|
122
|
+
(0, vitest_1.it)('should generate t.me links', () => {
|
|
123
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp({ bot: 'bot_username', app: 'short_name' })).eq('https://t.me/bot_username/short_name');
|
|
124
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp({ bot: 'bot_username', app: 'short_name', parameter: 'parameter' })).eq('https://t.me/bot_username/short_name?startapp=parameter');
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.it)('should generate tg://resolve links', () => {
|
|
127
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp({ bot: 'bot_username', app: 'short_name', protocol: 'tg' })).eq('tg://resolve?domain=bot_username&appname=short_name');
|
|
128
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp({ bot: 'bot_username', app: 'short_name', parameter: 'parameter', protocol: 'tg' })).eq('tg://resolve?domain=bot_username&appname=short_name&startapp=parameter');
|
|
129
|
+
});
|
|
130
|
+
(0, vitest_1.it)('should parse t.me links', () => {
|
|
131
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp.parse('https://t.me/bot_username/short_name')).eql({
|
|
132
|
+
bot: 'bot_username',
|
|
133
|
+
app: 'short_name',
|
|
134
|
+
parameter: undefined,
|
|
135
|
+
});
|
|
136
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp.parse('https://t.me/bot_username/short_name?startapp=parameter')).eql({
|
|
137
|
+
bot: 'bot_username',
|
|
138
|
+
app: 'short_name',
|
|
139
|
+
parameter: 'parameter',
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
(0, vitest_1.it)('should parse tg://resolve links', () => {
|
|
143
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp.parse('tg://resolve?domain=bot_username&appname=short_name')).eql({
|
|
144
|
+
bot: 'bot_username',
|
|
145
|
+
app: 'short_name',
|
|
146
|
+
parameter: undefined,
|
|
147
|
+
});
|
|
148
|
+
(0, vitest_1.expect)(index_js_1.links.botWebApp.parse('tg://resolve?domain=bot_username&appname=short_name&startapp=parameter')).eql({ bot: 'bot_username', app: 'short_name', parameter: 'parameter' });
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=bots.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bots.test.js","sourceRoot":"","sources":["../../../../src/utils/links/bots.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { describe, expect, it } from 'vitest'\n\nimport { links } from './index.js'\n\ndescribe('Deep links', function () {\n describe('Bot start links', () => {\n it('should generate t.me/username?start=parameter links', () => {\n expect(links.botStart({ username: 'username', parameter: 'parameter' })).eq(\n 'https://t.me/username?start=parameter',\n )\n })\n\n it('should generate tg://resolve?domain=username&start=parameter links', () => {\n expect(links.botStart({ username: 'username', parameter: 'parameter', protocol: 'tg' })).eq(\n 'tg://resolve?domain=username&start=parameter',\n )\n })\n\n it('should parse t.me/username?start=parameter links', () => {\n expect(links.botStart.parse('https://t.me/username?start=parameter')).eql({\n username: 'username',\n parameter: 'parameter',\n })\n })\n\n it('should parse tg://resolve?domain=username&start=parameter links', () => {\n expect(links.botStart.parse('tg://resolve?domain=username&start=parameter')).eql({\n username: 'username',\n parameter: 'parameter',\n })\n })\n })\n\n describe('Bot add to group links', () => {\n it('should generate t.me links', () => {\n expect(links.botAddToGroup({ bot: 'bot_username' })).eq('https://t.me/bot_username?startgroup')\n expect(links.botAddToGroup({ bot: 'bot_username', parameter: '' })).eq(\n 'https://t.me/bot_username?startgroup=',\n )\n expect(links.botAddToGroup({ bot: 'bot_username', parameter: 'parameter' })).eq(\n 'https://t.me/bot_username?startgroup=parameter',\n )\n expect(links.botAddToGroup({ bot: 'bot_username', admin: ['postStories'] })).eq(\n 'https://t.me/bot_username?startgroup&admin=post_stories',\n )\n })\n\n it('should generate tg://resolve links', () => {\n expect(links.botAddToGroup({ bot: 'bot_username', protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&startgroup',\n )\n expect(links.botAddToGroup({ bot: 'bot_username', parameter: 'parameter', protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&startgroup=parameter',\n )\n expect(links.botAddToGroup({ bot: 'bot_username', admin: ['postStories'], protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&startgroup&admin=post_stories',\n )\n })\n\n it('should parse t.me links', () => {\n expect(links.botAddToGroup.parse('https://t.me/bot_username?startgroup')).eql({\n bot: 'bot_username',\n parameter: undefined,\n admin: undefined,\n })\n expect(links.botAddToGroup.parse('https://t.me/bot_username?startgroup=parameter')).eql({\n bot: 'bot_username',\n parameter: 'parameter',\n admin: undefined,\n })\n expect(links.botAddToGroup.parse('https://t.me/bot_username?startgroup&admin=post_stories')).eql({\n bot: 'bot_username',\n parameter: undefined,\n admin: ['postStories'],\n })\n })\n\n it('should parse tg://resolve links', () => {\n expect(links.botAddToGroup.parse('tg://resolve?domain=bot_username&startgroup')).eql({\n bot: 'bot_username',\n parameter: undefined,\n admin: undefined,\n })\n expect(links.botAddToGroup.parse('tg://resolve?domain=bot_username&startgroup=parameter')).eql({\n bot: 'bot_username',\n parameter: 'parameter',\n admin: undefined,\n })\n expect(links.botAddToGroup.parse('tg://resolve?domain=bot_username&startgroup&admin=post_stories')).eql({\n bot: 'bot_username',\n parameter: undefined,\n admin: ['postStories'],\n })\n })\n })\n\n describe('Bot add to channel links', () => {\n it('should generate t.me links', () => {\n expect(links.botAddToChannel({ bot: 'bot_username' })).eq('https://t.me/bot_username?startchannel')\n expect(links.botAddToChannel({ bot: 'bot_username', admin: ['postStories'] })).eq(\n 'https://t.me/bot_username?startchannel&admin=post_stories',\n )\n })\n\n it('should generate tg://resolve links', () => {\n expect(links.botAddToChannel({ bot: 'bot_username', protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&startchannel',\n )\n expect(links.botAddToChannel({ bot: 'bot_username', admin: ['postStories'], protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&startchannel&admin=post_stories',\n )\n })\n\n it('should parse t.me links', () => {\n expect(links.botAddToChannel.parse('https://t.me/bot_username?startchannel')).eql({\n bot: 'bot_username',\n admin: undefined,\n })\n expect(links.botAddToChannel.parse('https://t.me/bot_username?startchannel&admin=post_stories')).eql({\n bot: 'bot_username',\n admin: ['postStories'],\n })\n })\n\n it('should parse tg://resolve links', () => {\n expect(links.botAddToChannel.parse('tg://resolve?domain=bot_username&startchannel')).eql({\n bot: 'bot_username',\n admin: undefined,\n })\n expect(links.botAddToChannel.parse('tg://resolve?domain=bot_username&startchannel&admin=post_stories')).eql(\n { bot: 'bot_username', admin: ['postStories'] },\n )\n })\n })\n\n describe('Game links', () => {\n it('should generate t.me links', () => {\n expect(links.botGame({ bot: 'bot_username', game: 'short_name' })).eq(\n 'https://t.me/bot_username?game=short_name',\n )\n })\n\n it('should generate tg://resolve links', () => {\n expect(links.botGame({ bot: 'bot_username', game: 'short_name', protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&game=short_name',\n )\n })\n\n it('should parse t.me links', () => {\n expect(links.botGame.parse('https://t.me/bot_username?game=short_name')).eql({\n bot: 'bot_username',\n game: 'short_name',\n })\n })\n\n it('should parse tg://resolve links', () => {\n expect(links.botGame.parse('tg://resolve?domain=bot_username&game=short_name')).eql({\n bot: 'bot_username',\n game: 'short_name',\n })\n })\n })\n\n describe('Named web apps', () => {\n it('should generate t.me links', () => {\n expect(links.botWebApp({ bot: 'bot_username', app: 'short_name' })).eq(\n 'https://t.me/bot_username/short_name',\n )\n expect(links.botWebApp({ bot: 'bot_username', app: 'short_name', parameter: 'parameter' })).eq(\n 'https://t.me/bot_username/short_name?startapp=parameter',\n )\n })\n\n it('should generate tg://resolve links', () => {\n expect(links.botWebApp({ bot: 'bot_username', app: 'short_name', protocol: 'tg' })).eq(\n 'tg://resolve?domain=bot_username&appname=short_name',\n )\n expect(\n links.botWebApp({ bot: 'bot_username', app: 'short_name', parameter: 'parameter', protocol: 'tg' }),\n ).eq('tg://resolve?domain=bot_username&appname=short_name&startapp=parameter')\n })\n\n it('should parse t.me links', () => {\n expect(links.botWebApp.parse('https://t.me/bot_username/short_name')).eql({\n bot: 'bot_username',\n app: 'short_name',\n parameter: undefined,\n })\n expect(links.botWebApp.parse('https://t.me/bot_username/short_name?startapp=parameter')).eql({\n bot: 'bot_username',\n app: 'short_name',\n parameter: 'parameter',\n })\n })\n\n it('should parse tg://resolve links', () => {\n expect(links.botWebApp.parse('tg://resolve?domain=bot_username&appname=short_name')).eql({\n bot: 'bot_username',\n app: 'short_name',\n parameter: undefined,\n })\n expect(links.botWebApp.parse('tg://resolve?domain=bot_username&appname=short_name&startapp=parameter')).eql(\n { bot: 'bot_username', app: 'short_name', parameter: 'parameter' },\n )\n })\n })\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const index_js_1 = require("./index.js");
|
|
6
|
+
(0, vitest_1.describe)('Deep links', function () {
|
|
7
|
+
(0, vitest_1.describe)('Chat invite links', () => {
|
|
8
|
+
(0, vitest_1.it)('should generate t.me/+hash links', () => {
|
|
9
|
+
(0, vitest_1.expect)(index_js_1.links.chatInvite({ hash: 'hash' })).eq('https://t.me/+hash');
|
|
10
|
+
});
|
|
11
|
+
(0, vitest_1.it)('should generate tg://join?invite=hash links', () => {
|
|
12
|
+
(0, vitest_1.expect)(index_js_1.links.chatInvite({ hash: 'hash', protocol: 'tg' })).eq('tg://join?invite=hash');
|
|
13
|
+
});
|
|
14
|
+
(0, vitest_1.it)('should parse t.me/joinchat/hash links', () => {
|
|
15
|
+
(0, vitest_1.expect)(index_js_1.links.chatInvite.parse('https://t.me/joinchat/hash')).eql({ hash: 'hash' });
|
|
16
|
+
});
|
|
17
|
+
(0, vitest_1.it)('should parse t.me/+hash links', () => {
|
|
18
|
+
(0, vitest_1.expect)(index_js_1.links.chatInvite.parse('https://t.me/+hash')).eql({ hash: 'hash' });
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.it)('should parse tg://join?invite=hash links', () => {
|
|
21
|
+
(0, vitest_1.expect)(index_js_1.links.chatInvite.parse('tg://join?invite=hash')).eql({ hash: 'hash' });
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.describe)('Chat folder links', () => {
|
|
25
|
+
(0, vitest_1.it)('should generate t.me/addlist/slug links', () => {
|
|
26
|
+
(0, vitest_1.expect)(index_js_1.links.chatFolder({ slug: 'slug' })).eq('https://t.me/addlist/slug');
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.it)('should generate tg://addlist?slug=slug links', () => {
|
|
29
|
+
(0, vitest_1.expect)(index_js_1.links.chatFolder({ slug: 'slug', protocol: 'tg' })).eq('tg://addlist?slug=slug');
|
|
30
|
+
});
|
|
31
|
+
(0, vitest_1.it)('should parse t.me/addlist/slug links', () => {
|
|
32
|
+
(0, vitest_1.expect)(index_js_1.links.chatFolder.parse('https://t.me/addlist/slug')).eql({ slug: 'slug' });
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)('should parse tg://addlist?slug=slug links', () => {
|
|
35
|
+
(0, vitest_1.expect)(index_js_1.links.chatFolder.parse('tg://addlist?slug=slug')).eql({ slug: 'slug' });
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
(0, vitest_1.describe)('Message links', () => {
|
|
39
|
+
const result = (it) => {
|
|
40
|
+
return {
|
|
41
|
+
threadId: undefined,
|
|
42
|
+
commentId: undefined,
|
|
43
|
+
mediaTimestamp: undefined,
|
|
44
|
+
single: false,
|
|
45
|
+
...it,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
(0, vitest_1.it)('should generate t.me/username/id links', () => {
|
|
49
|
+
(0, vitest_1.expect)(index_js_1.links.message({ username: 'username', id: 123 })).eq('https://t.me/username/123');
|
|
50
|
+
(0, vitest_1.expect)(index_js_1.links.message({ username: 'username', threadId: 123, id: 456 })).eq('https://t.me/username/123/456');
|
|
51
|
+
});
|
|
52
|
+
(0, vitest_1.it)('should generate tg:// links', () => {
|
|
53
|
+
(0, vitest_1.expect)(index_js_1.links.message({ username: 'username', id: 123, protocol: 'tg' })).eq('tg://resolve?domain=username&post=123');
|
|
54
|
+
(0, vitest_1.expect)(index_js_1.links.message({ username: 'username', threadId: 123, id: 456, protocol: 'tg' })).eq('tg://resolve?domain=username&post=456&thread=123');
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.it)('should generate t.me/c/channel/id links', () => {
|
|
57
|
+
(0, vitest_1.expect)(index_js_1.links.message({ channelId: 321, id: 123 })).eq('https://t.me/c/321/123');
|
|
58
|
+
(0, vitest_1.expect)(index_js_1.links.message({ channelId: 321, threadId: 123, id: 456 })).eq('https://t.me/c/321/123/456');
|
|
59
|
+
});
|
|
60
|
+
(0, vitest_1.it)('should generate tg://privatepost links', () => {
|
|
61
|
+
(0, vitest_1.expect)(index_js_1.links.message({ channelId: 321, id: 123, protocol: 'tg' })).eq('tg://privatepost?channel=321&post=123');
|
|
62
|
+
(0, vitest_1.expect)(index_js_1.links.message({ channelId: 321, threadId: 123, id: 456, protocol: 'tg' })).eq('tg://privatepost?channel=321&post=456&thread=123');
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.it)('should parse t.me/username/id links', () => {
|
|
65
|
+
(0, vitest_1.expect)(index_js_1.links.message.parse('https://t.me/username/123')).eql(result({ username: 'username', id: 123 }));
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)('should parse t.me/username/thread/id links', () => {
|
|
68
|
+
(0, vitest_1.expect)(index_js_1.links.message.parse('https://t.me/username/123/456')).eql(result({ username: 'username', threadId: 123, id: 456 }));
|
|
69
|
+
});
|
|
70
|
+
(0, vitest_1.it)('should parse tg://resolve links', () => {
|
|
71
|
+
(0, vitest_1.expect)(index_js_1.links.message.parse('tg://resolve?domain=username&post=123')).eql(result({ username: 'username', id: 123 }));
|
|
72
|
+
});
|
|
73
|
+
(0, vitest_1.it)('should parse t.me/c/channel/id links', () => {
|
|
74
|
+
(0, vitest_1.expect)(index_js_1.links.message.parse('https://t.me/c/666/123')).eql(result({ channelId: 666, id: 123 }));
|
|
75
|
+
});
|
|
76
|
+
(0, vitest_1.it)('should parse t.me/c/channel/thread/id links', () => {
|
|
77
|
+
(0, vitest_1.expect)(index_js_1.links.message.parse('https://t.me/c/666/123/456')).eql(result({ channelId: 666, threadId: 123, id: 456 }));
|
|
78
|
+
});
|
|
79
|
+
(0, vitest_1.it)('should parse tg://privatepost links', () => {
|
|
80
|
+
(0, vitest_1.expect)(index_js_1.links.message.parse('tg://privatepost?channel=666&post=123')).eql(result({ channelId: 666, id: 123 }));
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=chat.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.test.js","sourceRoot":"","sources":["../../../../src/utils/links/chat.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { describe, expect, it } from 'vitest'\n\nimport { links } from './index.js'\n\ndescribe('Deep links', function () {\n describe('Chat invite links', () => {\n it('should generate t.me/+hash links', () => {\n expect(links.chatInvite({ hash: 'hash' })).eq('https://t.me/+hash')\n })\n\n it('should generate tg://join?invite=hash links', () => {\n expect(links.chatInvite({ hash: 'hash', protocol: 'tg' })).eq('tg://join?invite=hash')\n })\n\n it('should parse t.me/joinchat/hash links', () => {\n expect(links.chatInvite.parse('https://t.me/joinchat/hash')).eql({ hash: 'hash' })\n })\n\n it('should parse t.me/+hash links', () => {\n expect(links.chatInvite.parse('https://t.me/+hash')).eql({ hash: 'hash' })\n })\n\n it('should parse tg://join?invite=hash links', () => {\n expect(links.chatInvite.parse('tg://join?invite=hash')).eql({ hash: 'hash' })\n })\n })\n\n describe('Chat folder links', () => {\n it('should generate t.me/addlist/slug links', () => {\n expect(links.chatFolder({ slug: 'slug' })).eq('https://t.me/addlist/slug')\n })\n\n it('should generate tg://addlist?slug=slug links', () => {\n expect(links.chatFolder({ slug: 'slug', protocol: 'tg' })).eq('tg://addlist?slug=slug')\n })\n\n it('should parse t.me/addlist/slug links', () => {\n expect(links.chatFolder.parse('https://t.me/addlist/slug')).eql({ slug: 'slug' })\n })\n\n it('should parse tg://addlist?slug=slug links', () => {\n expect(links.chatFolder.parse('tg://addlist?slug=slug')).eql({ slug: 'slug' })\n })\n })\n\n describe('Message links', () => {\n const result = (it: object) => {\n return {\n threadId: undefined,\n commentId: undefined,\n mediaTimestamp: undefined,\n single: false,\n ...it,\n }\n }\n\n it('should generate t.me/username/id links', () => {\n expect(links.message({ username: 'username', id: 123 })).eq('https://t.me/username/123')\n expect(links.message({ username: 'username', threadId: 123, id: 456 })).eq('https://t.me/username/123/456')\n })\n\n it('should generate tg:// links', () => {\n expect(links.message({ username: 'username', id: 123, protocol: 'tg' })).eq(\n 'tg://resolve?domain=username&post=123',\n )\n expect(links.message({ username: 'username', threadId: 123, id: 456, protocol: 'tg' })).eq(\n 'tg://resolve?domain=username&post=456&thread=123',\n )\n })\n\n it('should generate t.me/c/channel/id links', () => {\n expect(links.message({ channelId: 321, id: 123 })).eq('https://t.me/c/321/123')\n expect(links.message({ channelId: 321, threadId: 123, id: 456 })).eq('https://t.me/c/321/123/456')\n })\n\n it('should generate tg://privatepost links', () => {\n expect(links.message({ channelId: 321, id: 123, protocol: 'tg' })).eq(\n 'tg://privatepost?channel=321&post=123',\n )\n expect(links.message({ channelId: 321, threadId: 123, id: 456, protocol: 'tg' })).eq(\n 'tg://privatepost?channel=321&post=456&thread=123',\n )\n })\n\n it('should parse t.me/username/id links', () => {\n expect(links.message.parse('https://t.me/username/123')).eql(result({ username: 'username', id: 123 }))\n })\n\n it('should parse t.me/username/thread/id links', () => {\n expect(links.message.parse('https://t.me/username/123/456')).eql(\n result({ username: 'username', threadId: 123, id: 456 }),\n )\n })\n\n it('should parse tg://resolve links', () => {\n expect(links.message.parse('tg://resolve?domain=username&post=123')).eql(\n result({ username: 'username', id: 123 }),\n )\n })\n\n it('should parse t.me/c/channel/id links', () => {\n expect(links.message.parse('https://t.me/c/666/123')).eql(result({ channelId: 666, id: 123 }))\n })\n\n it('should parse t.me/c/channel/thread/id links', () => {\n expect(links.message.parse('https://t.me/c/666/123/456')).eql(\n result({ channelId: 666, threadId: 123, id: 456 }),\n )\n })\n\n it('should parse tg://privatepost links', () => {\n expect(links.message.parse('tg://privatepost?channel=666&post=123')).eql(\n result({ channelId: 666, id: 123 }),\n )\n })\n })\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const index_js_1 = require("./index.js");
|
|
6
|
+
(0, vitest_1.describe)('Deep links', function () {
|
|
7
|
+
(0, vitest_1.describe)('Video chat links', () => {
|
|
8
|
+
(0, vitest_1.it)('should generate t.me/username?videochat links', () => {
|
|
9
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username' })).eq('https://t.me/username?videochat');
|
|
10
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username', inviteHash: 'invite_hash' })).eq('https://t.me/username?videochat=invite_hash');
|
|
11
|
+
});
|
|
12
|
+
(0, vitest_1.it)('should generate t.me/username?livestream links', () => {
|
|
13
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username', isLivestream: true })).eq('https://t.me/username?livestream');
|
|
14
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username', inviteHash: 'invite_hash', isLivestream: true })).eq('https://t.me/username?livestream=invite_hash');
|
|
15
|
+
});
|
|
16
|
+
(0, vitest_1.it)('should generate tg://resolve?domain=username&videochat links', () => {
|
|
17
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username', protocol: 'tg' })).eq('tg://resolve?domain=username&videochat');
|
|
18
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username', inviteHash: 'invite_hash', protocol: 'tg' })).eq('tg://resolve?domain=username&videochat=invite_hash');
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.it)('should generate tg://resolve?domain=username&livestream links', () => {
|
|
21
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({ username: 'username', isLivestream: true, protocol: 'tg' })).eq('tg://resolve?domain=username&livestream');
|
|
22
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat({
|
|
23
|
+
username: 'username',
|
|
24
|
+
inviteHash: 'invite_hash',
|
|
25
|
+
isLivestream: true,
|
|
26
|
+
protocol: 'tg',
|
|
27
|
+
})).eq('tg://resolve?domain=username&livestream=invite_hash');
|
|
28
|
+
});
|
|
29
|
+
(0, vitest_1.it)('should parse t.me/username?videochat links', () => {
|
|
30
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('https://t.me/username?videochat')).eql({
|
|
31
|
+
username: 'username',
|
|
32
|
+
inviteHash: undefined,
|
|
33
|
+
isLivestream: false,
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('https://t.me/username?videochat=invite_hash')).eql({
|
|
36
|
+
username: 'username',
|
|
37
|
+
inviteHash: 'invite_hash',
|
|
38
|
+
isLivestream: false,
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
(0, vitest_1.it)('should parse t.me/username?livestream links', () => {
|
|
42
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('https://t.me/username?livestream')).eql({
|
|
43
|
+
username: 'username',
|
|
44
|
+
inviteHash: undefined,
|
|
45
|
+
isLivestream: true,
|
|
46
|
+
});
|
|
47
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('https://t.me/username?livestream=invite_hash')).eql({
|
|
48
|
+
username: 'username',
|
|
49
|
+
inviteHash: 'invite_hash',
|
|
50
|
+
isLivestream: true,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.it)('should parse tg://resolve?domain=username&videochat links', () => {
|
|
54
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('tg://resolve?domain=username&videochat')).eql({
|
|
55
|
+
username: 'username',
|
|
56
|
+
inviteHash: undefined,
|
|
57
|
+
isLivestream: false,
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('tg://resolve?domain=username&videochat=invite_hash')).eql({
|
|
60
|
+
username: 'username',
|
|
61
|
+
inviteHash: 'invite_hash',
|
|
62
|
+
isLivestream: false,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
(0, vitest_1.it)('should parse tg://resolve?domain=username&livestream links', () => {
|
|
66
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('tg://resolve?domain=username&livestream')).eql({
|
|
67
|
+
username: 'username',
|
|
68
|
+
inviteHash: undefined,
|
|
69
|
+
isLivestream: true,
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('tg://resolve?domain=username&livestream=invite_hash')).eql({
|
|
72
|
+
username: 'username',
|
|
73
|
+
inviteHash: 'invite_hash',
|
|
74
|
+
isLivestream: true,
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('should parse tg://resolve?domain=username&voicechat links', () => {
|
|
78
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('tg://resolve?domain=username&voicechat')).eql({
|
|
79
|
+
username: 'username',
|
|
80
|
+
inviteHash: undefined,
|
|
81
|
+
isLivestream: false,
|
|
82
|
+
});
|
|
83
|
+
(0, vitest_1.expect)(index_js_1.links.videoChat.parse('tg://resolve?domain=username&voicechat=invite_hash')).eql({
|
|
84
|
+
username: 'username',
|
|
85
|
+
inviteHash: 'invite_hash',
|
|
86
|
+
isLivestream: false,
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
(0, vitest_1.describe)('Share links', () => {
|
|
91
|
+
(0, vitest_1.it)('should generate t.me/share?url=link links', () => {
|
|
92
|
+
(0, vitest_1.expect)(index_js_1.links.share({ url: 'link' })).eq('https://t.me/share?url=link');
|
|
93
|
+
(0, vitest_1.expect)(index_js_1.links.share({ url: 'link', text: 'text' })).eq('https://t.me/share?url=link&text=text');
|
|
94
|
+
});
|
|
95
|
+
(0, vitest_1.it)('should generate tg://msg_url?url=link links', () => {
|
|
96
|
+
(0, vitest_1.expect)(index_js_1.links.share({ url: 'link', protocol: 'tg' })).eq('tg://msg_url?url=link');
|
|
97
|
+
(0, vitest_1.expect)(index_js_1.links.share({ url: 'link', text: 'text', protocol: 'tg' })).eq('tg://msg_url?url=link&text=text');
|
|
98
|
+
});
|
|
99
|
+
(0, vitest_1.it)('should parse t.me/share?url=link links', () => {
|
|
100
|
+
(0, vitest_1.expect)(index_js_1.links.share.parse('https://t.me/share?url=link')).eql({ url: 'link', text: undefined });
|
|
101
|
+
(0, vitest_1.expect)(index_js_1.links.share.parse('https://t.me/share?url=link&text=text')).eql({ url: 'link', text: 'text' });
|
|
102
|
+
});
|
|
103
|
+
(0, vitest_1.it)('should parse tg://msg_url?url=link links', () => {
|
|
104
|
+
(0, vitest_1.expect)(index_js_1.links.share.parse('tg://msg_url?url=link')).eql({ url: 'link', text: undefined });
|
|
105
|
+
(0, vitest_1.expect)(index_js_1.links.share.parse('tg://msg_url?url=link&text=text')).eql({ url: 'link', text: 'text' });
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
(0, vitest_1.describe)('Stickerset links', () => {
|
|
109
|
+
(0, vitest_1.it)('should generate t.me/addstickers/<slug> links', () => {
|
|
110
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset({ slug: 'slug' })).eq('https://t.me/addstickers/slug');
|
|
111
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset({ slug: 'slug', emoji: true })).eq('https://t.me/addemoji/slug');
|
|
112
|
+
});
|
|
113
|
+
(0, vitest_1.it)('should generate tg://addstickers?set=<slug> links', () => {
|
|
114
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset({ slug: 'slug', protocol: 'tg' })).eq('tg://addstickers?set=slug');
|
|
115
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset({ slug: 'slug', emoji: true, protocol: 'tg' })).eq('tg://addemoji?set=slug');
|
|
116
|
+
});
|
|
117
|
+
(0, vitest_1.it)('should parse t.me/addstickers/<slug> links', () => {
|
|
118
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset.parse('https://t.me/addstickers/slug')).eql({ slug: 'slug', emoji: false });
|
|
119
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset.parse('https://t.me/addemoji/slug')).eql({ slug: 'slug', emoji: true });
|
|
120
|
+
});
|
|
121
|
+
(0, vitest_1.it)('should parse tg://addstickers?set=<slug> links', () => {
|
|
122
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset.parse('tg://addstickers?set=slug')).eql({ slug: 'slug', emoji: false });
|
|
123
|
+
(0, vitest_1.expect)(index_js_1.links.stickerset.parse('tg://addemoji?set=slug')).eql({ slug: 'slug', emoji: true });
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.describe)('Boost links', () => {
|
|
127
|
+
(0, vitest_1.it)('should generate t.me/username?boost links', () => {
|
|
128
|
+
(0, vitest_1.expect)(index_js_1.links.boost({ username: 'username' })).eq('https://t.me/username?boost');
|
|
129
|
+
});
|
|
130
|
+
(0, vitest_1.it)('should generate t.me/c/id?boost links', () => {
|
|
131
|
+
(0, vitest_1.expect)(index_js_1.links.boost({ channelId: 123 })).eq('https://t.me/c/123?boost');
|
|
132
|
+
});
|
|
133
|
+
(0, vitest_1.it)('should generate tg://boost?domain=username links', () => {
|
|
134
|
+
(0, vitest_1.expect)(index_js_1.links.boost({ username: 'username', protocol: 'tg' })).eq('tg://boost?domain=username');
|
|
135
|
+
});
|
|
136
|
+
(0, vitest_1.it)('should generate tg://boost?channel=id links', () => {
|
|
137
|
+
(0, vitest_1.expect)(index_js_1.links.boost({ channelId: 123, protocol: 'tg' })).eq('tg://boost?channel=123');
|
|
138
|
+
});
|
|
139
|
+
(0, vitest_1.it)('should parse t.me/username?boost links', () => {
|
|
140
|
+
(0, vitest_1.expect)(index_js_1.links.boost.parse('https://t.me/username?boost')).eql({ username: 'username' });
|
|
141
|
+
});
|
|
142
|
+
(0, vitest_1.it)('should parse t.me/c/id?boost links', () => {
|
|
143
|
+
(0, vitest_1.expect)(index_js_1.links.boost.parse('https://t.me/c/123?boost')).eql({ channelId: 123 });
|
|
144
|
+
});
|
|
145
|
+
(0, vitest_1.it)('should parse tg://boost?domain=username links', () => {
|
|
146
|
+
(0, vitest_1.expect)(index_js_1.links.boost.parse('tg://boost?domain=username')).eql({ username: 'username' });
|
|
147
|
+
});
|
|
148
|
+
(0, vitest_1.it)('should parse tg://boost?channel=id links', () => {
|
|
149
|
+
(0, vitest_1.expect)(index_js_1.links.boost.parse('tg://boost?channel=123')).eql({ channelId: 123 });
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=misc.test.js.map
|