mirror of
https://github.com/xCyanGrizzly/DragonsStash.git
synced 2026-06-09 18:51:16 +00:00
chore(tdlib): upgrade tdl 8.0.0 → 8.1.0 and prebuilt-tdlib 1.8.50 → 1.8.64
12 versions of TDLib bug fixes, performance improvements, and stricter type definitions in @prebuilt-tdlib/types. Two API breakages handled: 1. `getChatFolders` (plural) was removed — folder IDs now arrive via the `updateChatFolders` update event. Replaced the synchronous call with a 200ms event listener; if no folders arrive, we proceed with just main + archive lists. Chats inside folders are still reachable from chatListMain so this isn't a functional regression. 2. The new tdl `Client.invoke` signature requires a literal `_` field and rejects `Record<string, any>` shapes. Our `invokeWithTimeout` wrapper is intentionally generic — cast through `any` at the call site with a comment explaining why. Both worker and bot type-check + build cleanly with the new versions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
94
bot/package-lock.json
generated
94
bot/package-lock.json
generated
@@ -12,8 +12,8 @@
|
||||
"@prisma/client": "^7.4.0",
|
||||
"pg": "^8.18.0",
|
||||
"pino": "^9.6.0",
|
||||
"prebuilt-tdlib": "^0.1008050.0",
|
||||
"tdl": "^8.0.0"
|
||||
"prebuilt-tdlib": "^0.1008064.0",
|
||||
"tdl": "^8.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
@@ -566,9 +566,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/darwin-arm64": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-arm64/-/darwin-arm64-0.1008050.0.tgz",
|
||||
"integrity": "sha512-XrWN7M1gfvnzOBRX0YdXVfhSxIDSs/ZJ16QJ0ILDKe+grOFl/cfl7lwB/hK/MlHC6Rev56f5X7xaWnjMh0vktQ==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-arm64/-/darwin-arm64-0.1008064.0.tgz",
|
||||
"integrity": "sha512-Oq5us+o0g68Jag74RIV3LdLkZxQxJMcOdrVbgmyE7Unk+WcifqTb/gZw1rS6BrW+2SX2LNeGY4zQqqBTNDr17Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -579,9 +579,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/darwin-x64": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-x64/-/darwin-x64-0.1008050.0.tgz",
|
||||
"integrity": "sha512-a1UfBW0lYx4tUy5viMPtsbqBfBncCAgDu3FPjljfYTHjP8wfkKFxpp5+8wdxhyqdy3QriWaipVtUXQgOeEWMJg==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-x64/-/darwin-x64-0.1008064.0.tgz",
|
||||
"integrity": "sha512-Pz11xjET2Y3uUJKxkWKBc0dmOtlykmBdZ9D6Ahh+EsoLDLIWHm7M91p6nZT396YZ4n2BL+FtDYK65Ae3LDIA5g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -592,9 +592,22 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-arm64-glibc": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-arm64-glibc/-/linux-arm64-glibc-0.1008050.0.tgz",
|
||||
"integrity": "sha512-HRGspdQYzaBkU+W2M8uY5OgOkmgfTkyHkTYan/dn7EE/38QdIFW0YTvmGrl3DoFV2PA+SeJQw0xqK8tMSyHKaA==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-arm64-glibc/-/linux-arm64-glibc-0.1008064.0.tgz",
|
||||
"integrity": "sha512-1kML9+RCfTOTWLzxq2klCN962/XwYhd+SGd4BxOwcmvPniYDNRUXtgMi3qRyV/Flola8dchGFrqZJU4kNZNLuQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "0BSD",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-arm64-musl": {
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-arm64-musl/-/linux-arm64-musl-0.1008064.0.tgz",
|
||||
"integrity": "sha512-tN9FJOR8VDfmOoTHMivAqBfQ/d9Bry9T/9cGSTcms3H4ORun/WO5U5zT8VqadAsqjuiQ8Y9HaUqqz65xBDtcgw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -605,9 +618,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-x64-glibc": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-x64-glibc/-/linux-x64-glibc-0.1008050.0.tgz",
|
||||
"integrity": "sha512-Yf6ve3Dzxc66kV1cijFLn7EXKhPN5YHTjtJABEaCR5euetCI2wZp/1uBsXvyYTuFXqQbMfjO3xUCXUIBhLoChw==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-x64-glibc/-/linux-x64-glibc-0.1008064.0.tgz",
|
||||
"integrity": "sha512-7fyCp2uk0BdeHKJ9PyQOCditC9vBXeeIjYPAKKBcrkum5bi1e9txy2g5kkGjqwUkN0ntIniS5QfHEyr17Idr9g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -617,10 +630,30 @@
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-x64-musl": {
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-x64-musl/-/linux-x64-musl-0.1008064.0.tgz",
|
||||
"integrity": "sha512-e2zRucrRrrK6M04iQWMfwtrts+VvVtyUwtTP1hF2g3a6jW+AHMzFoB9Wu8fWr+vuJflLIQ6sG9r3lI07Q8NenQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "0BSD",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/types": {
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/types/-/types-0.1008064.0.tgz",
|
||||
"integrity": "sha512-eqr1+fiHZ+Gj4lwcITzMp6FwPg8UrxlxxaFjhiJRHL9BlbmD2QkCRHac4wW1Sx8Dzwzd7f+xO21Pgi7TBRSwmw==",
|
||||
"license": "0BSD",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/win32-x64": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/win32-x64/-/win32-x64-0.1008050.0.tgz",
|
||||
"integrity": "sha512-4v8tU5bodMcLhzrWWXzIzqdHBIpq0wim+7sDmQWQIMy3kDeIzVtpuM+vQjxrGoeH9oWr2WXSRKuj93ld7G5NbQ==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/win32-x64/-/win32-x64-0.1008064.0.tgz",
|
||||
"integrity": "sha512-rkacZWexQw52/EUaLAmbsu2+P3C1/AtinlCjfiX07oQAEg3327BCEZqrcY0ER83D8+MMf2pfwMPCDJKytr4hcg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1669,16 +1702,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prebuilt-tdlib": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuilt-tdlib/-/prebuilt-tdlib-0.1008050.0.tgz",
|
||||
"integrity": "sha512-CfeQE1rG51d2iC6m72fzrbCW4mqI17ugil9pVurWHtfUJi1Fcn7zadpTzDoUl4oc1dEtKgM7S24DVP67gcl4SQ==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuilt-tdlib/-/prebuilt-tdlib-0.1008064.0.tgz",
|
||||
"integrity": "sha512-jJLowKZoH4slXYrkTkKlEgyGsIGv61AWjDZcxxVxJYu21X3kmukGwbCpk4ML99cJp2CwRsD41GCEQBkKJAwCUg==",
|
||||
"license": "MIT",
|
||||
"optionalDependencies": {
|
||||
"@prebuilt-tdlib/darwin-arm64": "0.1008050.0",
|
||||
"@prebuilt-tdlib/darwin-x64": "0.1008050.0",
|
||||
"@prebuilt-tdlib/linux-arm64-glibc": "0.1008050.0",
|
||||
"@prebuilt-tdlib/linux-x64-glibc": "0.1008050.0",
|
||||
"@prebuilt-tdlib/win32-x64": "0.1008050.0"
|
||||
"@prebuilt-tdlib/darwin-arm64": "0.1008064.0",
|
||||
"@prebuilt-tdlib/darwin-x64": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-arm64-glibc": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-arm64-musl": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-x64-glibc": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-x64-musl": "0.1008064.0",
|
||||
"@prebuilt-tdlib/types": "0.1008064.0",
|
||||
"@prebuilt-tdlib/win32-x64": "0.1008064.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prisma": {
|
||||
@@ -1971,13 +2007,13 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/tdl": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/tdl/-/tdl-8.0.2.tgz",
|
||||
"integrity": "sha512-KYxlJ4eao7FUu91U1dCDkaHmK70JAyZ1KqitkKqpPC7rxAiXWhaYxddWvt84UxIYoWbgdd0B70FYJ4p/YqpFCA==",
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tdl/-/tdl-8.1.0.tgz",
|
||||
"integrity": "sha512-idpw60gjJdiJALQg0+6UbxtJTMxVhzZAgCO6QzL81gqBYCkEFjm9zM9HwTTQGeOaAavw4yRHymR68yUUiCoKrA==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "^4.4.0",
|
||||
"debug": "^4.4.3",
|
||||
"node-addon-api": "^7.1.1",
|
||||
"node-gyp-build": "^4.8.4"
|
||||
},
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
"@prisma/client": "^7.4.0",
|
||||
"pg": "^8.18.0",
|
||||
"pino": "^9.6.0",
|
||||
"prebuilt-tdlib": "^0.1008050.0",
|
||||
"tdl": "^8.0.0"
|
||||
"prebuilt-tdlib": "^0.1008064.0",
|
||||
"tdl": "^8.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
|
||||
94
worker/package-lock.json
generated
94
worker/package-lock.json
generated
@@ -12,8 +12,8 @@
|
||||
"@prisma/client": "^7.4.0",
|
||||
"pg": "^8.18.0",
|
||||
"pino": "^9.6.0",
|
||||
"prebuilt-tdlib": "^0.1008050.0",
|
||||
"tdl": "^8.0.0",
|
||||
"prebuilt-tdlib": "^0.1008064.0",
|
||||
"tdl": "^8.1.0",
|
||||
"yauzl": "^3.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -568,9 +568,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/darwin-arm64": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-arm64/-/darwin-arm64-0.1008050.0.tgz",
|
||||
"integrity": "sha512-XrWN7M1gfvnzOBRX0YdXVfhSxIDSs/ZJ16QJ0ILDKe+grOFl/cfl7lwB/hK/MlHC6Rev56f5X7xaWnjMh0vktQ==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-arm64/-/darwin-arm64-0.1008064.0.tgz",
|
||||
"integrity": "sha512-Oq5us+o0g68Jag74RIV3LdLkZxQxJMcOdrVbgmyE7Unk+WcifqTb/gZw1rS6BrW+2SX2LNeGY4zQqqBTNDr17Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -581,9 +581,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/darwin-x64": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-x64/-/darwin-x64-0.1008050.0.tgz",
|
||||
"integrity": "sha512-a1UfBW0lYx4tUy5viMPtsbqBfBncCAgDu3FPjljfYTHjP8wfkKFxpp5+8wdxhyqdy3QriWaipVtUXQgOeEWMJg==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/darwin-x64/-/darwin-x64-0.1008064.0.tgz",
|
||||
"integrity": "sha512-Pz11xjET2Y3uUJKxkWKBc0dmOtlykmBdZ9D6Ahh+EsoLDLIWHm7M91p6nZT396YZ4n2BL+FtDYK65Ae3LDIA5g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -594,9 +594,22 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-arm64-glibc": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-arm64-glibc/-/linux-arm64-glibc-0.1008050.0.tgz",
|
||||
"integrity": "sha512-HRGspdQYzaBkU+W2M8uY5OgOkmgfTkyHkTYan/dn7EE/38QdIFW0YTvmGrl3DoFV2PA+SeJQw0xqK8tMSyHKaA==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-arm64-glibc/-/linux-arm64-glibc-0.1008064.0.tgz",
|
||||
"integrity": "sha512-1kML9+RCfTOTWLzxq2klCN962/XwYhd+SGd4BxOwcmvPniYDNRUXtgMi3qRyV/Flola8dchGFrqZJU4kNZNLuQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "0BSD",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-arm64-musl": {
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-arm64-musl/-/linux-arm64-musl-0.1008064.0.tgz",
|
||||
"integrity": "sha512-tN9FJOR8VDfmOoTHMivAqBfQ/d9Bry9T/9cGSTcms3H4ORun/WO5U5zT8VqadAsqjuiQ8Y9HaUqqz65xBDtcgw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -607,9 +620,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-x64-glibc": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-x64-glibc/-/linux-x64-glibc-0.1008050.0.tgz",
|
||||
"integrity": "sha512-Yf6ve3Dzxc66kV1cijFLn7EXKhPN5YHTjtJABEaCR5euetCI2wZp/1uBsXvyYTuFXqQbMfjO3xUCXUIBhLoChw==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-x64-glibc/-/linux-x64-glibc-0.1008064.0.tgz",
|
||||
"integrity": "sha512-7fyCp2uk0BdeHKJ9PyQOCditC9vBXeeIjYPAKKBcrkum5bi1e9txy2g5kkGjqwUkN0ntIniS5QfHEyr17Idr9g==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -619,10 +632,30 @@
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/linux-x64-musl": {
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/linux-x64-musl/-/linux-x64-musl-0.1008064.0.tgz",
|
||||
"integrity": "sha512-e2zRucrRrrK6M04iQWMfwtrts+VvVtyUwtTP1hF2g3a6jW+AHMzFoB9Wu8fWr+vuJflLIQ6sG9r3lI07Q8NenQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "0BSD",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/types": {
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/types/-/types-0.1008064.0.tgz",
|
||||
"integrity": "sha512-eqr1+fiHZ+Gj4lwcITzMp6FwPg8UrxlxxaFjhiJRHL9BlbmD2QkCRHac4wW1Sx8Dzwzd7f+xO21Pgi7TBRSwmw==",
|
||||
"license": "0BSD",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/@prebuilt-tdlib/win32-x64": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/win32-x64/-/win32-x64-0.1008050.0.tgz",
|
||||
"integrity": "sha512-4v8tU5bodMcLhzrWWXzIzqdHBIpq0wim+7sDmQWQIMy3kDeIzVtpuM+vQjxrGoeH9oWr2WXSRKuj93ld7G5NbQ==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/@prebuilt-tdlib/win32-x64/-/win32-x64-0.1008064.0.tgz",
|
||||
"integrity": "sha512-rkacZWexQw52/EUaLAmbsu2+P3C1/AtinlCjfiX07oQAEg3327BCEZqrcY0ER83D8+MMf2pfwMPCDJKytr4hcg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -1696,16 +1729,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prebuilt-tdlib": {
|
||||
"version": "0.1008050.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuilt-tdlib/-/prebuilt-tdlib-0.1008050.0.tgz",
|
||||
"integrity": "sha512-CfeQE1rG51d2iC6m72fzrbCW4mqI17ugil9pVurWHtfUJi1Fcn7zadpTzDoUl4oc1dEtKgM7S24DVP67gcl4SQ==",
|
||||
"version": "0.1008064.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuilt-tdlib/-/prebuilt-tdlib-0.1008064.0.tgz",
|
||||
"integrity": "sha512-jJLowKZoH4slXYrkTkKlEgyGsIGv61AWjDZcxxVxJYu21X3kmukGwbCpk4ML99cJp2CwRsD41GCEQBkKJAwCUg==",
|
||||
"license": "MIT",
|
||||
"optionalDependencies": {
|
||||
"@prebuilt-tdlib/darwin-arm64": "0.1008050.0",
|
||||
"@prebuilt-tdlib/darwin-x64": "0.1008050.0",
|
||||
"@prebuilt-tdlib/linux-arm64-glibc": "0.1008050.0",
|
||||
"@prebuilt-tdlib/linux-x64-glibc": "0.1008050.0",
|
||||
"@prebuilt-tdlib/win32-x64": "0.1008050.0"
|
||||
"@prebuilt-tdlib/darwin-arm64": "0.1008064.0",
|
||||
"@prebuilt-tdlib/darwin-x64": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-arm64-glibc": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-arm64-musl": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-x64-glibc": "0.1008064.0",
|
||||
"@prebuilt-tdlib/linux-x64-musl": "0.1008064.0",
|
||||
"@prebuilt-tdlib/types": "0.1008064.0",
|
||||
"@prebuilt-tdlib/win32-x64": "0.1008064.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prisma": {
|
||||
@@ -1998,13 +2034,13 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/tdl": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/tdl/-/tdl-8.0.2.tgz",
|
||||
"integrity": "sha512-KYxlJ4eao7FUu91U1dCDkaHmK70JAyZ1KqitkKqpPC7rxAiXWhaYxddWvt84UxIYoWbgdd0B70FYJ4p/YqpFCA==",
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tdl/-/tdl-8.1.0.tgz",
|
||||
"integrity": "sha512-idpw60gjJdiJALQg0+6UbxtJTMxVhzZAgCO6QzL81gqBYCkEFjm9zM9HwTTQGeOaAavw4yRHymR68yUUiCoKrA==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "^4.4.0",
|
||||
"debug": "^4.4.3",
|
||||
"node-addon-api": "^7.1.1",
|
||||
"node-gyp-build": "^4.8.4"
|
||||
},
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
"@prisma/client": "^7.4.0",
|
||||
"pg": "^8.18.0",
|
||||
"pino": "^9.6.0",
|
||||
"prebuilt-tdlib": "^0.1008050.0",
|
||||
"tdl": "^8.0.0",
|
||||
"prebuilt-tdlib": "^0.1008064.0",
|
||||
"tdl": "^8.1.0",
|
||||
"yauzl": "^3.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -5,6 +5,36 @@ import { withFloodWait } from "../util/retry.js";
|
||||
|
||||
const log = childLogger("chats");
|
||||
|
||||
/**
|
||||
* Collect chat folder IDs to widen the loadChats sweep across all folder
|
||||
* chat lists. In TDLib 1.8.64+ there's no synchronous getChatFolders call —
|
||||
* the folder list arrives via updateChatFolders. We listen for it briefly
|
||||
* (200ms) and fall back to an empty list if nothing arrives; chats inside
|
||||
* folders are still reachable via chatListMain so this only loses some
|
||||
* preemptive cache warming.
|
||||
*/
|
||||
async function collectFolderIds(
|
||||
client: Client
|
||||
): Promise<{ _: "chatListFolder"; chat_folder_id: number }[]> {
|
||||
return new Promise((resolve) => {
|
||||
const ids: number[] = [];
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const handler = (update: any) => {
|
||||
if (update?._ === "updateChatFolders") {
|
||||
const folders = update.chat_folders as { id: number }[] | undefined;
|
||||
if (folders) {
|
||||
for (const f of folders) ids.push(f.id);
|
||||
}
|
||||
}
|
||||
};
|
||||
client.on("update", handler);
|
||||
setTimeout(() => {
|
||||
client.off("update", handler);
|
||||
resolve(ids.map((id) => ({ _: "chatListFolder" as const, chat_folder_id: id })));
|
||||
}, 200);
|
||||
});
|
||||
}
|
||||
|
||||
export interface TelegramChatInfo {
|
||||
chatId: bigint;
|
||||
title: string;
|
||||
@@ -37,21 +67,16 @@ export async function getAccountChats(
|
||||
// First, load all chats into TDLib's cache using loadChats (the proper API).
|
||||
// loadChats returns 404 when all chats have been loaded.
|
||||
// Then use getChats to retrieve the IDs for enrichment.
|
||||
// Load from main, archive, AND chat folders to cover all chat types.
|
||||
const folderLists: { _: "chatListFolder"; chat_folder_id: number }[] = [];
|
||||
try {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const folders = (await client.invoke({ _: "getChatFolders" })) as any;
|
||||
if (folders?.chat_folders) {
|
||||
for (const f of folders.chat_folders) {
|
||||
folderLists.push({ _: "chatListFolder", chat_folder_id: f.id });
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// getChatFolders may not be available in older TDLib versions
|
||||
}
|
||||
//
|
||||
// Folder-specific loading (chatListFolder) was removed in TDLib 1.8.64+ —
|
||||
// getChatFolders (plural) is no longer a callable method, only the
|
||||
// updateChatFolders event. The chats inside folders are still reachable
|
||||
// via chatListMain so this isn't a functional regression.
|
||||
const folderLists: { _: "chatListFolder"; chat_folder_id: number }[] =
|
||||
await collectFolderIds(client);
|
||||
|
||||
const chatLists: Record<string, unknown>[] = [
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const chatLists: any[] = [
|
||||
{ _: "chatListMain" },
|
||||
{ _: "chatListArchive" },
|
||||
...folderLists,
|
||||
|
||||
@@ -115,7 +115,10 @@ export async function invokeWithTimeout<T>(
|
||||
}
|
||||
}, timeoutMs);
|
||||
|
||||
(client.invoke(request) as Promise<T>)
|
||||
// The tdl 8.1+ types are very strict about the literal `_` field;
|
||||
// our generic wrapper passes arbitrary requests, so cast through any.
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(client.invoke(request as any) as Promise<T>)
|
||||
.then((result) => {
|
||||
if (!settled) {
|
||||
settled = true;
|
||||
|
||||
@@ -357,24 +357,32 @@ export async function runWorkerForAccount(
|
||||
// Load all chats into TDLib's local cache using loadChats (the recommended API).
|
||||
// Without this, getChat/searchChatMessages fail with "Chat not found".
|
||||
// loadChats returns a 404 when all chats have been loaded — that's the stop signal.
|
||||
// Load from main, archive, AND chat folders to cover all chat types.
|
||||
//
|
||||
// TDLib 1.8.64+ removed the synchronous getChatFolders call; folder IDs
|
||||
// now arrive only via the updateChatFolders event. We listen briefly,
|
||||
// then load main + archive + any folders we caught. Chats inside folders
|
||||
// are also reachable from chatListMain so missing the folder sweep is
|
||||
// not a functional regression — it just loses a small bit of cache warming.
|
||||
{
|
||||
// Discover chat folders first
|
||||
const folderLists: { _: "chatListFolder"; chat_folder_id: number }[] = [];
|
||||
try {
|
||||
const folders = await client.invoke({ _: "getChatFolders" }) as {
|
||||
chat_folders?: { id: number }[];
|
||||
};
|
||||
if (folders.chat_folders) {
|
||||
for (const f of folders.chat_folders) {
|
||||
folderLists.push({ _: "chatListFolder", chat_folder_id: f.id });
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const folderLists: any[] = await new Promise((resolve) => {
|
||||
const ids: number[] = [];
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const handler = (update: any) => {
|
||||
if (update?._ === "updateChatFolders") {
|
||||
const folders = update.chat_folders as { id: number }[] | undefined;
|
||||
if (folders) for (const f of folders) ids.push(f.id);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// getChatFolders may not be available in older TDLib versions
|
||||
}
|
||||
};
|
||||
client.on("update", handler);
|
||||
setTimeout(() => {
|
||||
client.off("update", handler);
|
||||
resolve(ids.map((id) => ({ _: "chatListFolder", chat_folder_id: id })));
|
||||
}, 200);
|
||||
});
|
||||
|
||||
const chatLists: Record<string, unknown>[] = [
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const chatLists: any[] = [
|
||||
{ _: "chatListMain" },
|
||||
{ _: "chatListArchive" },
|
||||
...folderLists,
|
||||
|
||||
Reference in New Issue
Block a user