@mtcute/convert 0.16.7 → 0.16.9

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.
Files changed (172) hide show
  1. package/{cjs/dcs.d.ts → dcs.d.ts} +1 -1
  2. package/gramjs/__fixtures__/session.d.ts +1 -0
  3. package/{esm/gramjs → gramjs}/convert.d.ts +2 -2
  4. package/{cjs/gramjs → gramjs}/parse.d.ts +1 -1
  5. package/{cjs/gramjs → gramjs}/serialize.d.ts +1 -1
  6. package/gramjs/serialize.test.d.ts +1 -0
  7. package/index.cjs +493 -0
  8. package/index.d.ts +5 -1
  9. package/index.js +488 -1
  10. package/mtkruto/__fixtures__/session.d.ts +1 -0
  11. package/{cjs/mtkruto → mtkruto}/convert.d.ts +2 -2
  12. package/mtkruto/convert.test.d.ts +1 -0
  13. package/{esm/mtkruto → mtkruto}/parse.d.ts +1 -1
  14. package/mtkruto/parse.test.d.ts +1 -0
  15. package/{cjs/mtkruto → mtkruto}/serialize.d.ts +1 -1
  16. package/mtkruto/serialize.test.d.ts +1 -0
  17. package/package.json +27 -23
  18. package/pyrogram/__fixtures__/session.d.ts +1 -0
  19. package/pyrogram/__fixtures__/session_old.d.ts +1 -0
  20. package/{esm/pyrogram → pyrogram}/convert.d.ts +2 -2
  21. package/pyrogram/convert.test.d.ts +1 -0
  22. package/{esm/pyrogram → pyrogram}/parse.d.ts +1 -1
  23. package/pyrogram/parse.test.d.ts +1 -0
  24. package/{esm/pyrogram → pyrogram}/serialize.d.ts +1 -1
  25. package/pyrogram/serialize.test.d.ts +1 -0
  26. package/telethon/__fixtures__/session.d.ts +1 -0
  27. package/telethon/__fixtures__/session_v6.d.ts +1 -0
  28. package/{esm/telethon → telethon}/convert.d.ts +2 -2
  29. package/telethon/convert.test.d.ts +1 -0
  30. package/{esm/telethon → telethon}/parse.d.ts +1 -1
  31. package/telethon/parse.test.d.ts +1 -0
  32. package/{esm/telethon → telethon}/serialize.d.ts +1 -1
  33. package/telethon/serialize.test.d.ts +1 -0
  34. package/types.d.ts +0 -0
  35. package/cjs/dcs.js +0 -113
  36. package/cjs/dcs.js.map +0 -1
  37. package/cjs/gramjs/convert.d.ts +0 -4
  38. package/cjs/gramjs/convert.js +0 -27
  39. package/cjs/gramjs/convert.js.map +0 -1
  40. package/cjs/gramjs/index.js +0 -21
  41. package/cjs/gramjs/index.js.map +0 -1
  42. package/cjs/gramjs/parse.js +0 -30
  43. package/cjs/gramjs/parse.js.map +0 -1
  44. package/cjs/gramjs/serialize.js +0 -23
  45. package/cjs/gramjs/serialize.js.map +0 -1
  46. package/cjs/gramjs/types.js +0 -3
  47. package/cjs/gramjs/types.js.map +0 -1
  48. package/cjs/index.js +0 -28
  49. package/cjs/index.js.map +0 -1
  50. package/cjs/mtkruto/convert.js +0 -30
  51. package/cjs/mtkruto/convert.js.map +0 -1
  52. package/cjs/mtkruto/index.js +0 -21
  53. package/cjs/mtkruto/index.js.map +0 -1
  54. package/cjs/mtkruto/parse.d.ts +0 -2
  55. package/cjs/mtkruto/parse.js +0 -27
  56. package/cjs/mtkruto/parse.js.map +0 -1
  57. package/cjs/mtkruto/serialize.js +0 -14
  58. package/cjs/mtkruto/serialize.js.map +0 -1
  59. package/cjs/mtkruto/types.js +0 -3
  60. package/cjs/mtkruto/types.js.map +0 -1
  61. package/cjs/package.json +0 -3
  62. package/cjs/pyrogram/convert.d.ts +0 -6
  63. package/cjs/pyrogram/convert.js +0 -39
  64. package/cjs/pyrogram/convert.js.map +0 -1
  65. package/cjs/pyrogram/index.js +0 -21
  66. package/cjs/pyrogram/index.js.map +0 -1
  67. package/cjs/pyrogram/parse.d.ts +0 -2
  68. package/cjs/pyrogram/parse.js +0 -55
  69. package/cjs/pyrogram/parse.js.map +0 -1
  70. package/cjs/pyrogram/serialize.d.ts +0 -2
  71. package/cjs/pyrogram/serialize.js +0 -39
  72. package/cjs/pyrogram/serialize.js.map +0 -1
  73. package/cjs/pyrogram/types.js +0 -3
  74. package/cjs/pyrogram/types.js.map +0 -1
  75. package/cjs/telethon/convert.d.ts +0 -4
  76. package/cjs/telethon/convert.js +0 -43
  77. package/cjs/telethon/convert.js.map +0 -1
  78. package/cjs/telethon/index.js +0 -21
  79. package/cjs/telethon/index.js.map +0 -1
  80. package/cjs/telethon/parse.d.ts +0 -2
  81. package/cjs/telethon/parse.js +0 -32
  82. package/cjs/telethon/parse.js.map +0 -1
  83. package/cjs/telethon/serialize.d.ts +0 -2
  84. package/cjs/telethon/serialize.js +0 -33
  85. package/cjs/telethon/serialize.js.map +0 -1
  86. package/cjs/telethon/types.js +0 -3
  87. package/cjs/telethon/types.js.map +0 -1
  88. package/cjs/types.js +0 -3
  89. package/cjs/types.js.map +0 -1
  90. package/cjs/utils/ip.js +0 -44
  91. package/cjs/utils/ip.js.map +0 -1
  92. package/cjs/utils/rle.js +0 -54
  93. package/cjs/utils/rle.js.map +0 -1
  94. package/esm/dcs.d.ts +0 -4
  95. package/esm/dcs.js +0 -109
  96. package/esm/dcs.js.map +0 -1
  97. package/esm/gramjs/convert.js +0 -23
  98. package/esm/gramjs/convert.js.map +0 -1
  99. package/esm/gramjs/index.d.ts +0 -4
  100. package/esm/gramjs/index.js +0 -5
  101. package/esm/gramjs/index.js.map +0 -1
  102. package/esm/gramjs/parse.d.ts +0 -2
  103. package/esm/gramjs/parse.js +0 -27
  104. package/esm/gramjs/parse.js.map +0 -1
  105. package/esm/gramjs/serialize.d.ts +0 -2
  106. package/esm/gramjs/serialize.js +0 -20
  107. package/esm/gramjs/serialize.js.map +0 -1
  108. package/esm/gramjs/types.d.ts +0 -7
  109. package/esm/gramjs/types.js +0 -2
  110. package/esm/gramjs/types.js.map +0 -1
  111. package/esm/index.d.ts +0 -5
  112. package/esm/index.js +0 -6
  113. package/esm/index.js.map +0 -1
  114. package/esm/mtkruto/convert.d.ts +0 -4
  115. package/esm/mtkruto/convert.js +0 -26
  116. package/esm/mtkruto/convert.js.map +0 -1
  117. package/esm/mtkruto/index.d.ts +0 -4
  118. package/esm/mtkruto/index.js +0 -5
  119. package/esm/mtkruto/index.js.map +0 -1
  120. package/esm/mtkruto/parse.js +0 -24
  121. package/esm/mtkruto/parse.js.map +0 -1
  122. package/esm/mtkruto/serialize.d.ts +0 -2
  123. package/esm/mtkruto/serialize.js +0 -11
  124. package/esm/mtkruto/serialize.js.map +0 -1
  125. package/esm/mtkruto/types.d.ts +0 -5
  126. package/esm/mtkruto/types.js +0 -2
  127. package/esm/mtkruto/types.js.map +0 -1
  128. package/esm/pyrogram/convert.js +0 -35
  129. package/esm/pyrogram/convert.js.map +0 -1
  130. package/esm/pyrogram/index.d.ts +0 -4
  131. package/esm/pyrogram/index.js +0 -5
  132. package/esm/pyrogram/index.js.map +0 -1
  133. package/esm/pyrogram/parse.js +0 -52
  134. package/esm/pyrogram/parse.js.map +0 -1
  135. package/esm/pyrogram/serialize.js +0 -36
  136. package/esm/pyrogram/serialize.js.map +0 -1
  137. package/esm/pyrogram/types.d.ts +0 -8
  138. package/esm/pyrogram/types.js +0 -2
  139. package/esm/pyrogram/types.js.map +0 -1
  140. package/esm/telethon/convert.js +0 -39
  141. package/esm/telethon/convert.js.map +0 -1
  142. package/esm/telethon/index.d.ts +0 -4
  143. package/esm/telethon/index.js +0 -5
  144. package/esm/telethon/index.js.map +0 -1
  145. package/esm/telethon/parse.js +0 -29
  146. package/esm/telethon/parse.js.map +0 -1
  147. package/esm/telethon/serialize.js +0 -30
  148. package/esm/telethon/serialize.js.map +0 -1
  149. package/esm/telethon/types.d.ts +0 -7
  150. package/esm/telethon/types.js +0 -2
  151. package/esm/telethon/types.js.map +0 -1
  152. package/esm/types.js +0 -2
  153. package/esm/types.js.map +0 -1
  154. package/esm/utils/ip.d.ts +0 -3
  155. package/esm/utils/ip.js +0 -39
  156. package/esm/utils/ip.js.map +0 -1
  157. package/esm/utils/rle.d.ts +0 -3
  158. package/esm/utils/rle.js +0 -49
  159. package/esm/utils/rle.js.map +0 -1
  160. /package/{cjs/types.d.ts → gramjs/convert.test.d.ts} +0 -0
  161. /package/{cjs/gramjs → gramjs}/index.d.ts +0 -0
  162. /package/{esm/types.d.ts → gramjs/parse.test.d.ts} +0 -0
  163. /package/{cjs/gramjs → gramjs}/types.d.ts +0 -0
  164. /package/{cjs/index.d.ts → index.d.cts} +0 -0
  165. /package/{cjs/mtkruto → mtkruto}/index.d.ts +0 -0
  166. /package/{cjs/mtkruto → mtkruto}/types.d.ts +0 -0
  167. /package/{cjs/pyrogram → pyrogram}/index.d.ts +0 -0
  168. /package/{cjs/pyrogram → pyrogram}/types.d.ts +0 -0
  169. /package/{cjs/telethon → telethon}/index.d.ts +0 -0
  170. /package/{cjs/telethon → telethon}/types.d.ts +0 -0
  171. /package/{cjs/utils → utils}/ip.d.ts +0 -0
  172. /package/{cjs/utils → utils}/rle.d.ts +0 -0
package/esm/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './dcs.js';
2
- export * from './gramjs/index.js';
3
- export * from './mtkruto/index.js';
4
- export * from './pyrogram/index.js';
5
- export * from './telethon/index.js';
package/esm/index.js DELETED
@@ -1,6 +0,0 @@
1
- export * from './dcs.js';
2
- export * from './gramjs/index.js';
3
- export * from './mtkruto/index.js';
4
- export * from './pyrogram/index.js';
5
- export * from './telethon/index.js';
6
- //# sourceMappingURL=index.js.map
package/esm/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA","sourcesContent":["export * from './dcs.js'\nexport * from './gramjs/index.js'\nexport * from './mtkruto/index.js'\nexport * from './pyrogram/index.js'\nexport * from './telethon/index.js'\n"]}
@@ -1,4 +0,0 @@
1
- import type { StringSessionData } from '@mtcute/core/utils.js';
2
- import type { MtkrutoSession } from './types.js';
3
- export declare function convertFromMtkrutoSession(session: MtkrutoSession | string): StringSessionData;
4
- export declare function convertToMtkrutoSession(session: StringSessionData | string): string;
@@ -1,26 +0,0 @@
1
- import { readStringSession } from '@mtcute/core/utils.js';
2
- import { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js';
3
- import { parseMtkrutoSession } from './parse.js';
4
- import { serializeMtkrutoSession } from './serialize.js';
5
- export function convertFromMtkrutoSession(session) {
6
- if (typeof session === 'string') {
7
- session = parseMtkrutoSession(session);
8
- }
9
- return {
10
- version: 3,
11
- testMode: session.isTest,
12
- primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],
13
- authKey: session.authKey,
14
- };
15
- }
16
- export function convertToMtkrutoSession(session) {
17
- if (typeof session === 'string') {
18
- session = readStringSession(session);
19
- }
20
- return serializeMtkrutoSession({
21
- dcId: session.primaryDcs.main.id,
22
- isTest: session.testMode,
23
- authKey: session.authKey,
24
- });
25
- }
26
- //# sourceMappingURL=convert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/mtkruto/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAGxD,MAAM,UAAU,yBAAyB,CAAC,OAAgC;IACtE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9E,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAA;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAmC;IACvE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,uBAAuB,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import type { StringSessionData } from '@mtcute/core/utils.js'\nimport { readStringSession } from '@mtcute/core/utils.js'\n\nimport { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js'\n\nimport { parseMtkrutoSession } from './parse.js'\nimport { serializeMtkrutoSession } from './serialize.js'\nimport type { MtkrutoSession } from './types.js'\n\nexport function convertFromMtkrutoSession(session: MtkrutoSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parseMtkrutoSession(session)\n }\n\n return {\n version: 3,\n testMode: session.isTest,\n primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],\n authKey: session.authKey,\n }\n}\n\nexport function convertToMtkrutoSession(session: StringSessionData | string): string {\n if (typeof session === 'string') {\n session = readStringSession(session)\n }\n\n return serializeMtkrutoSession({\n dcId: session.primaryDcs.main.id,\n isTest: session.testMode,\n authKey: session.authKey,\n })\n}\n"]}
@@ -1,4 +0,0 @@
1
- export * from './convert.js';
2
- export * from './parse.js';
3
- export * from './serialize.js';
4
- export * from './types.js';
@@ -1,5 +0,0 @@
1
- export * from './convert.js';
2
- export * from './parse.js';
3
- export * from './serialize.js';
4
- export * from './types.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mtkruto/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
@@ -1,24 +0,0 @@
1
- import { MtArgumentError } from '@mtcute/core';
2
- import { getPlatform } from '@mtcute/core/platform.js';
3
- import { TlBinaryReader } from '@mtcute/core/utils.js';
4
- import { telegramRleDecode } from '../utils/rle.js';
5
- export function parseMtkrutoSession(session) {
6
- const data = telegramRleDecode(getPlatform().base64Decode(session, true));
7
- const reader = TlBinaryReader.manual(data);
8
- let dcIdStr = reader.string();
9
- const authKey = reader.bytes();
10
- const isTest = dcIdStr.endsWith('-test');
11
- if (isTest) {
12
- dcIdStr = dcIdStr.slice(0, -5);
13
- }
14
- const dcId = Number(dcIdStr);
15
- if (Number.isNaN(dcId)) {
16
- throw new MtArgumentError(`Invalid DC ID: ${dcIdStr}`);
17
- }
18
- return {
19
- dcId,
20
- isTest,
21
- authKey,
22
- };
23
- }
24
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mtkruto/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAInD,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAE1C,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO;QACH,IAAI;QACJ,MAAM;QACN,OAAO;KACV,CAAA;AACL,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { TlBinaryReader } from '@mtcute/core/utils.js'\n\nimport { telegramRleDecode } from '../utils/rle.js'\n\nimport type { MtkrutoSession } from './types.js'\n\nexport function parseMtkrutoSession(session: string): MtkrutoSession {\n const data = telegramRleDecode(getPlatform().base64Decode(session, true))\n const reader = TlBinaryReader.manual(data)\n\n let dcIdStr = reader.string()\n const authKey = reader.bytes()\n\n const isTest = dcIdStr.endsWith('-test')\n\n if (isTest) {\n dcIdStr = dcIdStr.slice(0, -5)\n }\n const dcId = Number(dcIdStr)\n\n if (Number.isNaN(dcId)) {\n throw new MtArgumentError(`Invalid DC ID: ${dcIdStr}`)\n }\n\n return {\n dcId,\n isTest,\n authKey,\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import type { MtkrutoSession } from './types.js';
2
- export declare function serializeMtkrutoSession(session: MtkrutoSession): string;
@@ -1,11 +0,0 @@
1
- import { getPlatform } from '@mtcute/core/platform.js';
2
- import { TlBinaryWriter } from '@mtcute/core/utils.js';
3
- import { telegramRleEncode } from '../utils/rle.js';
4
- export function serializeMtkrutoSession(session) {
5
- const dcIdStr = `${session.dcId}${session.isTest ? '-test' : ''}`;
6
- const writer = TlBinaryWriter.manual(session.authKey.length + dcIdStr.length + 8);
7
- writer.string(dcIdStr);
8
- writer.bytes(session.authKey);
9
- return getPlatform().base64Encode(telegramRleEncode(writer.result()), true);
10
- }
11
- //# sourceMappingURL=serialize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/mtkruto/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAInD,MAAM,UAAU,uBAAuB,CAAC,OAAuB;IAC3D,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEjE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7B,OAAO,WAAW,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AAC/E,CAAC","sourcesContent":["import { getPlatform } from '@mtcute/core/platform.js'\nimport { TlBinaryWriter } from '@mtcute/core/utils.js'\n\nimport { telegramRleEncode } from '../utils/rle.js'\n\nimport type { MtkrutoSession } from './types.js'\n\nexport function serializeMtkrutoSession(session: MtkrutoSession): string {\n const dcIdStr = `${session.dcId}${session.isTest ? '-test' : ''}`\n\n const writer = TlBinaryWriter.manual(session.authKey.length + dcIdStr.length + 8)\n\n writer.string(dcIdStr)\n writer.bytes(session.authKey)\n\n return getPlatform().base64Encode(telegramRleEncode(writer.result()), true)\n}\n"]}
@@ -1,5 +0,0 @@
1
- export interface MtkrutoSession {
2
- dcId: number;
3
- isTest: boolean;
4
- authKey: Uint8Array;
5
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mtkruto/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface MtkrutoSession {\n dcId: number\n isTest: boolean\n authKey: Uint8Array\n}\n"]}
@@ -1,35 +0,0 @@
1
- import { readStringSession } from '@mtcute/core/utils.js';
2
- import { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js';
3
- import { parsePyrogramSession } from './parse.js';
4
- import { serializePyrogramSession } from './serialize.js';
5
- export function convertFromPyrogramSession(session) {
6
- if (typeof session === 'string') {
7
- session = parsePyrogramSession(session);
8
- }
9
- return {
10
- version: 3,
11
- testMode: session.isTest,
12
- primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],
13
- authKey: session.authKey,
14
- self: {
15
- userId: session.userId,
16
- isBot: session.isBot,
17
- isPremium: false,
18
- usernames: [],
19
- },
20
- };
21
- }
22
- export function convertToPyrogramSession(session, params) {
23
- if (typeof session === 'string') {
24
- session = readStringSession(session);
25
- }
26
- return serializePyrogramSession({
27
- apiId: params?.apiId,
28
- isBot: session.self?.isBot ?? false,
29
- isTest: session.testMode,
30
- userId: session.self?.userId ?? 0,
31
- dcId: session.primaryDcs.main.id,
32
- authKey: session.authKey,
33
- });
34
- }
35
- //# sourceMappingURL=convert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/pyrogram/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAGzD,MAAM,UAAU,0BAA0B,CAAC,OAAiC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9E,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE;YACF,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SAChB;KACJ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,OAAmC,EACnC,MAEC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC5B,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,KAAK;QACnC,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;QACjC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import type { StringSessionData } from '@mtcute/core/utils.js'\nimport { readStringSession } from '@mtcute/core/utils.js'\n\nimport { DC_MAPPING_PROD, DC_MAPPING_TEST } from '../dcs.js'\n\nimport { parsePyrogramSession } from './parse.js'\nimport { serializePyrogramSession } from './serialize.js'\nimport type { PyrogramSession } from './types.js'\n\nexport function convertFromPyrogramSession(session: PyrogramSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parsePyrogramSession(session)\n }\n\n return {\n version: 3,\n testMode: session.isTest,\n primaryDcs: (session.isTest ? DC_MAPPING_TEST : DC_MAPPING_PROD)[session.dcId],\n authKey: session.authKey,\n self: {\n userId: session.userId,\n isBot: session.isBot,\n isPremium: false,\n usernames: [],\n },\n }\n}\n\nexport function convertToPyrogramSession(\n session: StringSessionData | string,\n params?: {\n apiId?: number\n },\n): string {\n if (typeof session === 'string') {\n session = readStringSession(session)\n }\n\n return serializePyrogramSession({\n apiId: params?.apiId,\n isBot: session.self?.isBot ?? false,\n isTest: session.testMode,\n userId: session.self?.userId ?? 0,\n dcId: session.primaryDcs.main.id,\n authKey: session.authKey,\n })\n}\n"]}
@@ -1,4 +0,0 @@
1
- export * from './convert.js';
2
- export * from './parse.js';
3
- export * from './serialize.js';
4
- export * from './types.js';
@@ -1,5 +0,0 @@
1
- export * from './convert.js';
2
- export * from './parse.js';
3
- export * from './serialize.js';
4
- export * from './types.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pyrogram/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
@@ -1,52 +0,0 @@
1
- // source: https://github.com/pyrogram/pyrogram/blob/master/pyrogram/storage/storage.py
2
- import { Long } from '@mtcute/core';
3
- import { getPlatform } from '@mtcute/core/platform.js';
4
- import { dataViewFromBuffer, longFromBuffer } from '@mtcute/core/utils.js';
5
- const SESSION_STRING_SIZE = 351;
6
- const SESSION_STRING_SIZE_64 = 356;
7
- export function parsePyrogramSession(session) {
8
- const data = getPlatform().base64Decode(session, true);
9
- const dv = dataViewFromBuffer(data);
10
- if (session.length === SESSION_STRING_SIZE || session.length === SESSION_STRING_SIZE_64) {
11
- // old format
12
- // const OLD_SESSION_STRING_FORMAT = '>B?256sI?'
13
- // const OLD_SESSION_STRING_FORMAT_64 = '>B?256sQ?'
14
- const dcId = dv.getUint8(0);
15
- const isTest = dv.getUint8(1) !== 0;
16
- const authKey = data.subarray(2, 258);
17
- let userId;
18
- if (data.length === SESSION_STRING_SIZE) {
19
- userId = dv.getUint32(258);
20
- }
21
- else {
22
- const high = dv.getUint32(258);
23
- const low = dv.getUint32(262);
24
- userId = Long.fromBits(low, high).toNumber();
25
- }
26
- const isBot = dv.getUint8(data.length - 1) !== 0;
27
- return {
28
- dcId,
29
- isTest,
30
- authKey,
31
- userId,
32
- isBot,
33
- };
34
- }
35
- // new format
36
- // const SESSION_STRING_FORMAT = '>BI?256sQ?'
37
- const dcId = dv.getUint8(0);
38
- const apiId = dv.getUint32(1);
39
- const isTest = dv.getUint8(5) !== 0;
40
- const authKey = data.subarray(6, 262);
41
- const userId = longFromBuffer(data.subarray(262, 270), true, false).toNumber();
42
- const isBot = dv.getUint8(270) !== 0;
43
- return {
44
- dcId,
45
- apiId,
46
- isTest,
47
- authKey,
48
- userId,
49
- isBot,
50
- };
51
- }
52
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/pyrogram/parse.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAEvF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI1E,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAA;AAElC,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;QACtF,aAAa;QACb,gDAAgD;QAChD,mDAAmD;QACnD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAErC,IAAI,MAAM,CAAA;QAEV,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;QAChD,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;QAEhD,OAAO;YACH,IAAI;YACJ,MAAM;YACN,OAAO;YACP,MAAM;YACN,KAAK;SACR,CAAA;IACL,CAAC;IAED,aAAa;IACb,6CAA6C;IAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAEpC,OAAO;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;KACR,CAAA;AACL,CAAC","sourcesContent":["// source: https://github.com/pyrogram/pyrogram/blob/master/pyrogram/storage/storage.py\n\nimport { Long } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer, longFromBuffer } from '@mtcute/core/utils.js'\n\nimport type { PyrogramSession } from './types.js'\n\nconst SESSION_STRING_SIZE = 351\nconst SESSION_STRING_SIZE_64 = 356\n\nexport function parsePyrogramSession(session: string): PyrogramSession {\n const data = getPlatform().base64Decode(session, true)\n const dv = dataViewFromBuffer(data)\n\n if (session.length === SESSION_STRING_SIZE || session.length === SESSION_STRING_SIZE_64) {\n // old format\n // const OLD_SESSION_STRING_FORMAT = '>B?256sI?'\n // const OLD_SESSION_STRING_FORMAT_64 = '>B?256sQ?'\n const dcId = dv.getUint8(0)\n const isTest = dv.getUint8(1) !== 0\n const authKey = data.subarray(2, 258)\n\n let userId\n\n if (data.length === SESSION_STRING_SIZE) {\n userId = dv.getUint32(258)\n } else {\n const high = dv.getUint32(258)\n const low = dv.getUint32(262)\n userId = Long.fromBits(low, high).toNumber()\n }\n\n const isBot = dv.getUint8(data.length - 1) !== 0\n\n return {\n dcId,\n isTest,\n authKey,\n userId,\n isBot,\n }\n }\n\n // new format\n // const SESSION_STRING_FORMAT = '>BI?256sQ?'\n const dcId = dv.getUint8(0)\n const apiId = dv.getUint32(1)\n const isTest = dv.getUint8(5) !== 0\n const authKey = data.subarray(6, 262)\n const userId = longFromBuffer(data.subarray(262, 270), true, false).toNumber()\n const isBot = dv.getUint8(270) !== 0\n\n return {\n dcId,\n apiId,\n isTest,\n authKey,\n userId,\n isBot,\n }\n}\n"]}
@@ -1,36 +0,0 @@
1
- import { Long, MtArgumentError } from '@mtcute/core';
2
- import { getPlatform } from '@mtcute/core/platform.js';
3
- import { dataViewFromBuffer } from '@mtcute/core/utils.js';
4
- const SESSION_STRING_SIZE_OLD = 267;
5
- const SESSION_STRING_SIZE = 271;
6
- export function serializePyrogramSession(session) {
7
- if (session.authKey.length !== 256) {
8
- throw new MtArgumentError('authKey must be 256 bytes long');
9
- }
10
- const userIdLong = Long.fromNumber(session.userId, true);
11
- let u8;
12
- if (session.apiId === undefined) {
13
- // old format
14
- u8 = new Uint8Array(SESSION_STRING_SIZE_OLD);
15
- const dv = dataViewFromBuffer(u8);
16
- dv.setUint8(0, session.dcId);
17
- dv.setUint8(1, session.isTest ? 1 : 0);
18
- u8.set(session.authKey, 2);
19
- dv.setUint32(258, userIdLong.high);
20
- dv.setUint32(262, userIdLong.low);
21
- dv.setUint8(266, session.isBot ? 1 : 0);
22
- }
23
- else {
24
- u8 = new Uint8Array(SESSION_STRING_SIZE);
25
- const dv = dataViewFromBuffer(u8);
26
- dv.setUint8(0, session.dcId);
27
- dv.setUint32(1, session.apiId);
28
- dv.setUint8(5, session.isTest ? 1 : 0);
29
- u8.set(session.authKey, 6);
30
- dv.setUint32(262, userIdLong.high);
31
- dv.setUint32(266, userIdLong.low);
32
- dv.setUint8(270, session.isBot ? 1 : 0);
33
- }
34
- return getPlatform().base64Encode(u8, true);
35
- }
36
- //# sourceMappingURL=serialize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/pyrogram/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAExD,IAAI,EAAc,CAAA;IAElB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,aAAa;QACb,EAAE,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,CAAA;QAC5C,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAC1B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;SAAM,CAAC;QACJ,EAAE,GAAG,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAA;QACxC,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9B,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAE1B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;QACjC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AAC/C,CAAC","sourcesContent":["import { Long, MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport type { PyrogramSession } from './types.js'\n\nconst SESSION_STRING_SIZE_OLD = 267\nconst SESSION_STRING_SIZE = 271\n\nexport function serializePyrogramSession(session: PyrogramSession): string {\n if (session.authKey.length !== 256) {\n throw new MtArgumentError('authKey must be 256 bytes long')\n }\n\n const userIdLong = Long.fromNumber(session.userId, true)\n\n let u8: Uint8Array\n\n if (session.apiId === undefined) {\n // old format\n u8 = new Uint8Array(SESSION_STRING_SIZE_OLD)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n dv.setUint8(1, session.isTest ? 1 : 0)\n u8.set(session.authKey, 2)\n dv.setUint32(258, userIdLong.high)\n dv.setUint32(262, userIdLong.low)\n dv.setUint8(266, session.isBot ? 1 : 0)\n } else {\n u8 = new Uint8Array(SESSION_STRING_SIZE)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n dv.setUint32(1, session.apiId)\n dv.setUint8(5, session.isTest ? 1 : 0)\n u8.set(session.authKey, 6)\n\n dv.setUint32(262, userIdLong.high)\n dv.setUint32(266, userIdLong.low)\n dv.setUint8(270, session.isBot ? 1 : 0)\n }\n\n return getPlatform().base64Encode(u8, true)\n}\n"]}
@@ -1,8 +0,0 @@
1
- export interface PyrogramSession {
2
- apiId?: number;
3
- dcId: number;
4
- isTest: boolean;
5
- authKey: Uint8Array;
6
- userId: number;
7
- isBot: boolean;
8
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pyrogram/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface PyrogramSession {\n apiId?: number\n dcId: number\n isTest: boolean\n authKey: Uint8Array\n userId: number\n isBot: boolean\n}\n"]}
@@ -1,39 +0,0 @@
1
- import { readStringSession } from '@mtcute/core/utils.js';
2
- import { isTestDc } from '../dcs.js';
3
- import { parseTelethonSession } from './parse.js';
4
- import { serializeTelethonSession } from './serialize.js';
5
- export function convertFromTelethonSession(session) {
6
- if (typeof session === 'string') {
7
- session = parseTelethonSession(session);
8
- }
9
- const dc = {
10
- id: session.dcId,
11
- ipAddress: session.ipAddress,
12
- port: session.port,
13
- ipv6: session.ipv6,
14
- };
15
- return {
16
- version: 3,
17
- // we don't exactly have that information. try to deduce it from DC_MAPPING_TEST
18
- // todo: we should maybe check this at connect?
19
- testMode: isTestDc(session.ipAddress),
20
- primaryDcs: {
21
- main: dc,
22
- media: dc,
23
- },
24
- authKey: session.authKey,
25
- };
26
- }
27
- export function convertToTelethonSession(session) {
28
- if (typeof session === 'string') {
29
- session = readStringSession(session);
30
- }
31
- return serializeTelethonSession({
32
- dcId: session.primaryDcs.main.id,
33
- ipAddress: session.primaryDcs.main.ipAddress,
34
- port: session.primaryDcs.main.port,
35
- ipv6: session.primaryDcs.main.ipv6 ?? false,
36
- authKey: session.authKey,
37
- });
38
- }
39
- //# sourceMappingURL=convert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/telethon/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAGzD,MAAM,UAAU,0BAA0B,CAAC,OAAiC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,EAAE,GAAkB;QACtB,EAAE,EAAE,OAAO,CAAC,IAAI;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACrB,CAAA;IAED,OAAO;QACH,OAAO,EAAE,CAAC;QACV,gFAAgF;QAChF,+CAA+C;QAC/C,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,UAAU,EAAE;YACR,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACZ;QACD,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAA;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAmC;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC5B,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAChC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS;QAC5C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;QAClC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;AACN,CAAC","sourcesContent":["import type { BasicDcOption, StringSessionData } from '@mtcute/core/utils.js'\nimport { readStringSession } from '@mtcute/core/utils.js'\n\nimport { isTestDc } from '../dcs.js'\n\nimport { parseTelethonSession } from './parse.js'\nimport { serializeTelethonSession } from './serialize.js'\nimport type { TelethonSession } from './types.js'\n\nexport function convertFromTelethonSession(session: TelethonSession | string): StringSessionData {\n if (typeof session === 'string') {\n session = parseTelethonSession(session)\n }\n\n const dc: BasicDcOption = {\n id: session.dcId,\n ipAddress: session.ipAddress,\n port: session.port,\n ipv6: session.ipv6,\n }\n\n return {\n version: 3,\n // we don't exactly have that information. try to deduce it from DC_MAPPING_TEST\n // todo: we should maybe check this at connect?\n testMode: isTestDc(session.ipAddress),\n primaryDcs: {\n main: dc,\n media: dc,\n },\n authKey: session.authKey,\n }\n}\n\nexport function convertToTelethonSession(session: StringSessionData | string): string {\n if (typeof session === 'string') {\n session = readStringSession(session)\n }\n\n return serializeTelethonSession({\n dcId: session.primaryDcs.main.id,\n ipAddress: session.primaryDcs.main.ipAddress,\n port: session.primaryDcs.main.port,\n ipv6: session.primaryDcs.main.ipv6 ?? false,\n authKey: session.authKey,\n })\n}\n"]}
@@ -1,4 +0,0 @@
1
- export * from './convert.js';
2
- export * from './parse.js';
3
- export * from './serialize.js';
4
- export * from './types.js';
@@ -1,5 +0,0 @@
1
- export * from './convert.js';
2
- export * from './parse.js';
3
- export * from './serialize.js';
4
- export * from './types.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telethon/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA","sourcesContent":["export * from './convert.js'\nexport * from './parse.js'\nexport * from './serialize.js'\nexport * from './types.js'\n"]}
@@ -1,29 +0,0 @@
1
- import { MtArgumentError } from '@mtcute/core';
2
- import { getPlatform } from '@mtcute/core/platform.js';
3
- import { dataViewFromBuffer } from '@mtcute/core/utils.js';
4
- import { parseIpFromBytes } from '../utils/ip.js';
5
- export function parseTelethonSession(session) {
6
- if (session[0] !== '1') {
7
- // version
8
- throw new MtArgumentError(`Invalid session string (version = ${session[0]})`);
9
- }
10
- session = session.slice(1);
11
- const data = getPlatform().base64Decode(session, true);
12
- const dv = dataViewFromBuffer(data);
13
- const dcId = dv.getUint8(0);
14
- const ipSize = session.length === 352 ? 4 : 16;
15
- let pos = 1 + ipSize;
16
- const ipBytes = data.subarray(1, pos);
17
- const port = dv.getUint16(pos);
18
- pos += 2;
19
- const authKey = data.subarray(pos, pos + 256);
20
- const ip = parseIpFromBytes(ipBytes);
21
- return {
22
- dcId,
23
- ipAddress: ip,
24
- ipv6: ipSize === 16,
25
- port,
26
- authKey,
27
- };
28
- }
29
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/telethon/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAIjD,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACrB,UAAU;QACV,MAAM,IAAI,eAAe,CAAC,qCAAqC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAA;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9B,GAAG,IAAI,CAAC,CAAA;IACR,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;IAE7C,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEpC,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,MAAM,KAAK,EAAE;QACnB,IAAI;QACJ,OAAO;KACV,CAAA;AACL,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { parseIpFromBytes } from '../utils/ip.js'\n\nimport type { TelethonSession } from './types.js'\n\nexport function parseTelethonSession(session: string): TelethonSession {\n if (session[0] !== '1') {\n // version\n throw new MtArgumentError(`Invalid session string (version = ${session[0]})`)\n }\n\n session = session.slice(1)\n\n const data = getPlatform().base64Decode(session, true)\n const dv = dataViewFromBuffer(data)\n\n const dcId = dv.getUint8(0)\n\n const ipSize = session.length === 352 ? 4 : 16\n let pos = 1 + ipSize\n\n const ipBytes = data.subarray(1, pos)\n const port = dv.getUint16(pos)\n pos += 2\n const authKey = data.subarray(pos, pos + 256)\n\n const ip = parseIpFromBytes(ipBytes)\n\n return {\n dcId,\n ipAddress: ip,\n ipv6: ipSize === 16,\n port,\n authKey,\n }\n}\n"]}
@@ -1,30 +0,0 @@
1
- import { MtArgumentError } from '@mtcute/core';
2
- import { getPlatform } from '@mtcute/core/platform.js';
3
- import { dataViewFromBuffer } from '@mtcute/core/utils.js';
4
- import { serializeIpv4ToBytes, serializeIpv6ToBytes } from '../utils/ip.js';
5
- export function serializeTelethonSession(session) {
6
- if (session.authKey.length !== 256) {
7
- throw new MtArgumentError('authKey must be 256 bytes long');
8
- }
9
- const ipSize = session.ipv6 ? 16 : 4;
10
- const u8 = new Uint8Array(259 + ipSize);
11
- const dv = dataViewFromBuffer(u8);
12
- dv.setUint8(0, session.dcId);
13
- let pos;
14
- if (session.ipv6) {
15
- serializeIpv6ToBytes(session.ipAddress, u8.subarray(1, 17));
16
- pos = 17;
17
- }
18
- else {
19
- serializeIpv4ToBytes(session.ipAddress, u8.subarray(1, 5));
20
- pos = 5;
21
- }
22
- dv.setUint16(pos, session.port);
23
- pos += 2;
24
- u8.set(session.authKey, pos);
25
- let b64 = getPlatform().base64Encode(u8, true);
26
- while (b64.length % 4 !== 0)
27
- b64 += '='; // for some reason telethon uses padding
28
- return `1${b64}`;
29
- }
30
- //# sourceMappingURL=serialize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/telethon/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAI3E,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC7D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAEjC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5B,IAAI,GAAG,CAAA;IAEP,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3D,GAAG,GAAG,EAAE,CAAA;IACZ,CAAC;SAAM,CAAC;QACJ,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,GAAG,GAAG,CAAC,CAAA;IACX,CAAC;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,GAAG,IAAI,CAAC,CAAA;IACR,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE5B,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9C,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,GAAG,IAAI,GAAG,CAAA,CAAC,wCAAwC;IAEhF,OAAO,IAAI,GAAG,EAAE,CAAA;AACpB,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\nimport { getPlatform } from '@mtcute/core/platform.js'\nimport { dataViewFromBuffer } from '@mtcute/core/utils.js'\n\nimport { serializeIpv4ToBytes, serializeIpv6ToBytes } from '../utils/ip.js'\n\nimport type { TelethonSession } from './types.js'\n\nexport function serializeTelethonSession(session: TelethonSession) {\n if (session.authKey.length !== 256) {\n throw new MtArgumentError('authKey must be 256 bytes long')\n }\n\n const ipSize = session.ipv6 ? 16 : 4\n const u8 = new Uint8Array(259 + ipSize)\n const dv = dataViewFromBuffer(u8)\n\n dv.setUint8(0, session.dcId)\n\n let pos\n\n if (session.ipv6) {\n serializeIpv6ToBytes(session.ipAddress, u8.subarray(1, 17))\n pos = 17\n } else {\n serializeIpv4ToBytes(session.ipAddress, u8.subarray(1, 5))\n pos = 5\n }\n\n dv.setUint16(pos, session.port)\n pos += 2\n u8.set(session.authKey, pos)\n\n let b64 = getPlatform().base64Encode(u8, true)\n while (b64.length % 4 !== 0) b64 += '=' // for some reason telethon uses padding\n\n return `1${b64}`\n}\n"]}
@@ -1,7 +0,0 @@
1
- export interface TelethonSession {
2
- dcId: number;
3
- ipAddress: string;
4
- ipv6: boolean;
5
- port: number;
6
- authKey: Uint8Array;
7
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/telethon/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface TelethonSession {\n dcId: number\n ipAddress: string\n ipv6: boolean\n port: number\n authKey: Uint8Array\n}\n"]}
package/esm/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/esm/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":[""]}
package/esm/utils/ip.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export declare function parseIpFromBytes(data: Uint8Array): string;
2
- export declare function serializeIpv4ToBytes(ip: string, buf: Uint8Array): void;
3
- export declare function serializeIpv6ToBytes(ip: string, buf: Uint8Array): void;
package/esm/utils/ip.js DELETED
@@ -1,39 +0,0 @@
1
- import { MtArgumentError } from '@mtcute/core';
2
- export function parseIpFromBytes(data) {
3
- if (data.length === 4) {
4
- return `${data[0]}.${data[1]}.${data[2]}.${data[3]}`;
5
- }
6
- if (data.length === 16) {
7
- let res = '';
8
- for (let i = 0; i < 16; i += 2) {
9
- res += data[i].toString(16).padStart(2, '0');
10
- res += data[i + 1].toString(16).padStart(2, '0');
11
- if (i < 14)
12
- res += ':';
13
- }
14
- return res;
15
- }
16
- throw new MtArgumentError('Invalid IP address length');
17
- }
18
- export function serializeIpv4ToBytes(ip, buf) {
19
- const parts = ip.split('.');
20
- if (parts.length !== 4) {
21
- throw new MtArgumentError('Invalid IPv4 address');
22
- }
23
- buf[0] = Number(parts[0]);
24
- buf[1] = Number(parts[1]);
25
- buf[2] = Number(parts[2]);
26
- buf[3] = Number(parts[3]);
27
- }
28
- export function serializeIpv6ToBytes(ip, buf) {
29
- const parts = ip.split(':');
30
- if (parts.length !== 8) {
31
- throw new MtArgumentError('Invalid IPv6 address');
32
- }
33
- for (let i = 0; i < 8; i++) {
34
- const val = Number.parseInt(parts[i], 16);
35
- buf[i * 2] = val >> 8;
36
- buf[i * 2 + 1] = val & 0xFF;
37
- }
38
- }
39
- //# sourceMappingURL=ip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ip.js","sourceRoot":"","sources":["../../../src/utils/ip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,EAAE,CAAA;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC5C,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAChD,IAAI,CAAC,GAAG,EAAE;gBAAE,GAAG,IAAI,GAAG,CAAA;QAC1B,CAAC;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,GAAe;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACrD,CAAC;IAED,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EAAU,EAAE,GAAe;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACzC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACrB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;IAC/B,CAAC;AACL,CAAC","sourcesContent":["import { MtArgumentError } from '@mtcute/core'\n\nexport function parseIpFromBytes(data: Uint8Array): string {\n if (data.length === 4) {\n return `${data[0]}.${data[1]}.${data[2]}.${data[3]}`\n }\n\n if (data.length === 16) {\n let res = ''\n\n for (let i = 0; i < 16; i += 2) {\n res += data[i].toString(16).padStart(2, '0')\n res += data[i + 1].toString(16).padStart(2, '0')\n if (i < 14) res += ':'\n }\n\n return res\n }\n\n throw new MtArgumentError('Invalid IP address length')\n}\n\nexport function serializeIpv4ToBytes(ip: string, buf: Uint8Array): void {\n const parts = ip.split('.')\n\n if (parts.length !== 4) {\n throw new MtArgumentError('Invalid IPv4 address')\n }\n\n buf[0] = Number(parts[0])\n buf[1] = Number(parts[1])\n buf[2] = Number(parts[2])\n buf[3] = Number(parts[3])\n}\n\nexport function serializeIpv6ToBytes(ip: string, buf: Uint8Array): void {\n const parts = ip.split(':')\n\n if (parts.length !== 8) {\n throw new MtArgumentError('Invalid IPv6 address')\n }\n\n for (let i = 0; i < 8; i++) {\n const val = Number.parseInt(parts[i], 16)\n buf[i * 2] = val >> 8\n buf[i * 2 + 1] = val & 0xFF\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- export declare function telegramRleEncode(buf: Uint8Array): Uint8Array;
2
- export declare function telegramRleDecode(buf: Uint8Array): Uint8Array;
3
- export declare function assertNever(_: never): never;
package/esm/utils/rle.js DELETED
@@ -1,49 +0,0 @@
1
- // tdlib's RLE only encodes consecutive \x00
2
- export function telegramRleEncode(buf) {
3
- const len = buf.length;
4
- const ret = [];
5
- let count = 0;
6
- for (let i = 0; i < len; i++) {
7
- const cur = buf[i];
8
- if (cur === 0) {
9
- count += 1;
10
- }
11
- else {
12
- if (count > 0) {
13
- ret.push(0, count);
14
- count = 0;
15
- }
16
- ret.push(cur);
17
- }
18
- }
19
- if (count > 0) {
20
- ret.push(0, count);
21
- }
22
- return new Uint8Array(ret);
23
- }
24
- export function telegramRleDecode(buf) {
25
- const len = buf.length;
26
- const ret = [];
27
- let prev = -1;
28
- for (let i = 0; i < len; i++) {
29
- const cur = buf[i];
30
- if (prev === 0) {
31
- for (let j = 0; j < cur; j++) {
32
- ret.push(prev);
33
- }
34
- prev = -1;
35
- }
36
- else {
37
- if (prev !== -1)
38
- ret.push(prev);
39
- prev = cur;
40
- }
41
- }
42
- if (prev !== -1)
43
- ret.push(prev);
44
- return new Uint8Array(ret);
45
- }
46
- export function assertNever(_) {
47
- throw new Error('unreachable');
48
- }
49
- //# sourceMappingURL=rle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rle.js","sourceRoot":"","sources":["../../../src/utils/rle.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC,CAAA;QACd,CAAC;aAAM,CAAC;YACJ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBAClB,KAAK,GAAG,CAAC,CAAA;YACb,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;IACL,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAElB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,CAAC;YACD,IAAI,GAAG,CAAC,CAAC,CAAA;QACb,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,KAAK,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,GAAG,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IAED,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE/B,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAQ;IAChC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC","sourcesContent":["// tdlib's RLE only encodes consecutive \\x00\n\nexport function telegramRleEncode(buf: Uint8Array): Uint8Array {\n const len = buf.length\n const ret: number[] = []\n let count = 0\n\n for (let i = 0; i < len; i++) {\n const cur = buf[i]\n\n if (cur === 0) {\n count += 1\n } else {\n if (count > 0) {\n ret.push(0, count)\n count = 0\n }\n\n ret.push(cur)\n }\n }\n\n if (count > 0) {\n ret.push(0, count)\n }\n\n return new Uint8Array(ret)\n}\n\nexport function telegramRleDecode(buf: Uint8Array): Uint8Array {\n const len = buf.length\n const ret: number[] = []\n let prev = -1\n\n for (let i = 0; i < len; i++) {\n const cur = buf[i]\n\n if (prev === 0) {\n for (let j = 0; j < cur; j++) {\n ret.push(prev)\n }\n prev = -1\n } else {\n if (prev !== -1) ret.push(prev)\n prev = cur\n }\n }\n\n if (prev !== -1) ret.push(prev)\n\n return new Uint8Array(ret)\n}\n\nexport function assertNever(_: never): never {\n throw new Error('unreachable')\n}\n"]}
File without changes