diff --git a/package.json b/package.json index 12165d6..66ffefa 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ ], "sideEffects": false, "dependencies": { - "tiny-bilibili-ws": "^0.0.7" + "tiny-bilibili-ws": "^0.1.7" }, "devDependencies": { "tsup": "^6.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5883594..c37d693 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,20 +1,21 @@ -lockfileVersion: 5.4 - -specifiers: - tiny-bilibili-ws: ^0.0.7 - tsup: ^6.5.0 - typescript: ^4.9.4 +lockfileVersion: '6.0' dependencies: - tiny-bilibili-ws: 0.0.7 + tiny-bilibili-ws: + specifier: ^0.1.7 + version: 0.1.7 devDependencies: - tsup: 6.5.0_typescript@4.9.4 - typescript: 4.9.4 + tsup: + specifier: ^6.5.0 + version: 6.5.0(typescript@4.9.4) + typescript: + specifier: ^4.9.4 + version: 4.9.4 packages: - /@esbuild/linux-loong64/0.15.6: + /@esbuild/linux-loong64@0.15.6: resolution: {integrity: sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw==} engines: {node: '>=12'} cpu: [loong64] @@ -23,7 +24,7 @@ packages: dev: true optional: true - /@nodelib/fs.scandir/2.1.5: + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -31,12 +32,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.8: + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -44,11 +45,11 @@ packages: fastq: 1.13.0 dev: true - /any-promise/1.3.0: + /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true - /anymatch/3.1.2: + /anymatch@3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} dependencies: @@ -56,35 +57,35 @@ packages: picomatch: 2.3.1 dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /binary-extensions/2.2.0: + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - /bundle-require/3.1.2_esbuild@0.15.6: + /bundle-require@3.1.2(esbuild@0.15.6): resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: @@ -94,12 +95,12 @@ packages: load-tsconfig: 0.2.3 dev: true - /cac/6.7.14: + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true - /chokidar/3.5.3: + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: @@ -114,16 +115,16 @@ packages: fsevents: 2.3.2 dev: true - /commander/4.1.1: + /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} dev: true - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -132,7 +133,7 @@ packages: which: 2.0.2 dev: true - /debug/4.3.4: + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -144,14 +145,14 @@ packages: ms: 2.1.2 dev: true - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /esbuild-android-64/0.15.6: + /esbuild-android-64@0.15.6: resolution: {integrity: sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA==} engines: {node: '>=12'} cpu: [x64] @@ -160,7 +161,7 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.6: + /esbuild-android-arm64@0.15.6: resolution: {integrity: sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw==} engines: {node: '>=12'} cpu: [arm64] @@ -169,7 +170,7 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.6: + /esbuild-darwin-64@0.15.6: resolution: {integrity: sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw==} engines: {node: '>=12'} cpu: [x64] @@ -178,7 +179,7 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.6: + /esbuild-darwin-arm64@0.15.6: resolution: {integrity: sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA==} engines: {node: '>=12'} cpu: [arm64] @@ -187,7 +188,7 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.6: + /esbuild-freebsd-64@0.15.6: resolution: {integrity: sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg==} engines: {node: '>=12'} cpu: [x64] @@ -196,7 +197,7 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.6: + /esbuild-freebsd-arm64@0.15.6: resolution: {integrity: sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw==} engines: {node: '>=12'} cpu: [arm64] @@ -205,7 +206,7 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.6: + /esbuild-linux-32@0.15.6: resolution: {integrity: sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg==} engines: {node: '>=12'} cpu: [ia32] @@ -214,7 +215,7 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.6: + /esbuild-linux-64@0.15.6: resolution: {integrity: sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A==} engines: {node: '>=12'} cpu: [x64] @@ -223,25 +224,25 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.6: - resolution: {integrity: sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==} + /esbuild-linux-arm64@0.15.6: + resolution: {integrity: sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.15.6: - resolution: {integrity: sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA==} + /esbuild-linux-arm@0.15.6: + resolution: {integrity: sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.15.6: + /esbuild-linux-mips64le@0.15.6: resolution: {integrity: sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw==} engines: {node: '>=12'} cpu: [mips64el] @@ -250,7 +251,7 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.6: + /esbuild-linux-ppc64le@0.15.6: resolution: {integrity: sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw==} engines: {node: '>=12'} cpu: [ppc64] @@ -259,7 +260,7 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.6: + /esbuild-linux-riscv64@0.15.6: resolution: {integrity: sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw==} engines: {node: '>=12'} cpu: [riscv64] @@ -268,7 +269,7 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.6: + /esbuild-linux-s390x@0.15.6: resolution: {integrity: sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q==} engines: {node: '>=12'} cpu: [s390x] @@ -277,7 +278,7 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.6: + /esbuild-netbsd-64@0.15.6: resolution: {integrity: sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA==} engines: {node: '>=12'} cpu: [x64] @@ -286,7 +287,7 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.6: + /esbuild-openbsd-64@0.15.6: resolution: {integrity: sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw==} engines: {node: '>=12'} cpu: [x64] @@ -295,7 +296,7 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.6: + /esbuild-sunos-64@0.15.6: resolution: {integrity: sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg==} engines: {node: '>=12'} cpu: [x64] @@ -304,7 +305,7 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.6: + /esbuild-windows-32@0.15.6: resolution: {integrity: sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA==} engines: {node: '>=12'} cpu: [ia32] @@ -313,7 +314,7 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.6: + /esbuild-windows-64@0.15.6: resolution: {integrity: sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg==} engines: {node: '>=12'} cpu: [x64] @@ -322,7 +323,7 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.6: + /esbuild-windows-arm64@0.15.6: resolution: {integrity: sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg==} engines: {node: '>=12'} cpu: [arm64] @@ -331,7 +332,7 @@ packages: dev: true optional: true - /esbuild/0.15.6: + /esbuild@0.15.6: resolution: {integrity: sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w==} engines: {node: '>=12'} hasBin: true @@ -360,11 +361,7 @@ packages: esbuild-windows-arm64: 0.15.6 dev: true - /eventemitter3/5.0.0: - resolution: {integrity: sha512-riuVbElZZNXLeLEoprfNYoDSwTBRR44X3mnhdI1YcnENpWTCsTTVZ2zFuqQcpoyqPQIUXdiPEU0ECAq0KQRaHg==} - dev: false - - /execa/5.1.1: + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: @@ -379,7 +376,7 @@ packages: strip-final-newline: 2.0.0 dev: true - /fast-glob/3.2.11: + /fast-glob@3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} engines: {node: '>=8.6.0'} dependencies: @@ -390,24 +387,24 @@ packages: micromatch: 4.0.5 dev: true - /fastq/1.13.0: + /fastq@1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents/2.3.2: + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] @@ -415,19 +412,19 @@ packages: dev: true optional: true - /get-stream/6.0.1: + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /glob-parent/5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob/7.1.6: + /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: fs.realpath: 1.0.0 @@ -438,7 +435,7 @@ packages: path-is-absolute: 1.0.1 dev: true - /globby/11.1.0: + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: @@ -450,93 +447,93 @@ packages: slash: 3.0.0 dev: true - /human-signals/2.1.0: + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /ignore/5.2.0: + /ignore@5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} dev: true - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /is-binary-path/2.1.0: + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 dev: true - /is-extglob/2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /joycon/3.1.1: + /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} dev: true - /lilconfig/2.0.6: + /lilconfig@2.0.6: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} dev: true - /lines-and-columns/1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /load-tsconfig/0.2.3: + /load-tsconfig@0.2.3: resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lodash.sortby/4.7.0: + /lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -544,22 +541,22 @@ packages: picomatch: 2.3.1 dev: true - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /mz/2.7.0: + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 @@ -567,66 +564,66 @@ packages: thenify-all: 1.6.0 dev: true - /normalize-path/3.0.0: + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true - /object-assign/4.1.1: + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true - /pako/2.1.0: + /pako@2.1.0: resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} dev: false - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pirates/4.0.5: + /pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} dev: true - /postcss-load-config/3.1.4: + /postcss-load-config@3.1.4: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -642,33 +639,33 @@ packages: yaml: 1.10.2 dev: true - /punycode/2.1.1: + /punycode@2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /readdirp/3.6.0: + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true - /resolve-from/5.0.0: + /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} dev: true - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rollup/3.5.1: + /rollup@3.5.1: resolution: {integrity: sha512-hdQWTvPeiAbM6SUkxV70HdGUVxsgsc+CLy5fuh4KdgUBJ0SowXiix8gANgXoG3wEuLwfoJhCT2V+WwxfWq9Ikw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true @@ -676,46 +673,46 @@ packages: fsevents: 2.3.2 dev: true - /run-parallel/1.2.0: + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /source-map/0.8.0-beta.0: + /source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} dependencies: whatwg-url: 7.1.0 dev: true - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /sucrase/3.25.0: + /sucrase@3.25.0: resolution: {integrity: sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ==} engines: {node: '>=8'} hasBin: true @@ -728,53 +725,52 @@ packages: ts-interface-checker: 0.1.13 dev: true - /thenify-all/1.6.0: + /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 dev: true - /thenify/3.3.1: + /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 dev: true - /tiny-bilibili-ws/0.0.7: - resolution: {integrity: sha512-2ZtocYHXXATD2RaMKEkLU57OEm3NdOufOcOz9MQRkhjoD4yvBb9zmnHHepiHB0JMdzoqbLaePJqLF3kgIiVlAQ==} + /tiny-bilibili-ws@0.1.7: + resolution: {integrity: sha512-mwDjY8n7jS4B4iSErn4oyhHlSSPdxp5SljfbFSK28B6mpDFL39RCmHK0TvClx8z45TC/pTBeYS9F2fjmkL67Tg==} dependencies: - eventemitter3: 5.0.0 pako: 2.1.0 - ws: 8.11.0 + ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate dev: false - /to-regex-range/5.0.1: + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - /tr46/1.0.1: + /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: punycode: 2.1.1 dev: true - /tree-kill/1.2.2: + /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true - /ts-interface-checker/0.1.13: + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /tsup/6.5.0_typescript@4.9.4: + /tsup@6.5.0(typescript@4.9.4): resolution: {integrity: sha512-36u82r7rYqRHFkD15R20Cd4ercPkbYmuvRkz3Q1LCm5BsiFNUgpo36zbjVhCOgvjyxNBWNKHsaD5Rl8SykfzNA==} engines: {node: '>=14'} hasBin: true @@ -790,7 +786,7 @@ packages: typescript: optional: true dependencies: - bundle-require: 3.1.2_esbuild@0.15.6 + bundle-require: 3.1.2(esbuild@0.15.6) cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 @@ -810,17 +806,17 @@ packages: - ts-node dev: true - /typescript/4.9.4: + /typescript@4.9.4: resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /webidl-conversions/4.0.2: + /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: true - /whatwg-url/7.1.0: + /whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} dependencies: lodash.sortby: 4.7.0 @@ -828,7 +824,7 @@ packages: webidl-conversions: 4.0.2 dev: true - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -836,16 +832,16 @@ packages: isexe: 2.0.0 dev: true - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /ws/8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + /ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true @@ -853,7 +849,7 @@ packages: optional: true dev: false - /yaml/1.10.2: + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true diff --git a/src/listener/index.ts b/src/listener/index.ts index 910a3ee..84a1cb6 100644 --- a/src/listener/index.ts +++ b/src/listener/index.ts @@ -20,6 +20,7 @@ import { WATCHED_CHANGE, type WatchedChangeHandler, } from '../parser' import type { KeepLiveTCP, KeepLiveWS, Message as WSMessage } from 'tiny-bilibili-ws' +import type { KeepLiveWS as KeepLiveWSB } from 'tiny-bilibili-ws/browser' import { normalizeDanmu } from '../utils/message' export type MsgHandler = Partial< @@ -58,7 +59,7 @@ export type MsgHandler = Partial< } > -export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, handler?: MsgHandler) => { +export const listenAll = (instance: KeepLiveTCP | KeepLiveWS | KeepLiveWSB, roomId: number, handler?: MsgHandler) => { if (!handler) return // Raw message handler @@ -86,17 +87,17 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // HEARTBEAT if (handler[HEARTBEAT.handlerName] || rawHandlerNames.has(HEARTBEAT.eventName)) { rawHandlerNames.delete(HEARTBEAT.eventName) - instance.on(HEARTBEAT.eventName, (data: WSMessage) => { - isHandleRaw && rawHandler[HEARTBEAT.eventName]?.(data.data) - const parsedData = HEARTBEAT.parser(data.data) - handler[HEARTBEAT.handlerName]?.(normalizeDanmu(HEARTBEAT.eventName, parsedData, data.data)) + instance.on(HEARTBEAT.eventName, (data) => { + isHandleRaw && rawHandler[HEARTBEAT.eventName]?.(data) + const parsedData = HEARTBEAT.parser(data) + handler[HEARTBEAT.handlerName]?.(normalizeDanmu(HEARTBEAT.eventName, parsedData, data)) }) } // LIVE if (handler[LIVE.handlerName] || rawHandlerNames.has(LIVE.eventName)) { rawHandlerNames.delete(LIVE.eventName) - instance.on(LIVE.eventName as any, (data: WSMessage) => { + instance.on(LIVE.eventName, (data) => { isHandleRaw && rawHandler[LIVE.eventName]?.(data.data) const parsedData = LIVE.parser(data.data) handler[LIVE.handlerName]?.(normalizeDanmu(LIVE.eventName, parsedData, data.data)) @@ -106,7 +107,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // PREPARING if (handler[PREPARING.handlerName] || rawHandlerNames.has(PREPARING.eventName)) { rawHandlerNames.delete(LIVE.eventName) - instance.on(PREPARING.eventName as any, (data: WSMessage) => { + instance.on(PREPARING.eventName, (data) => { isHandleRaw && rawHandler[PREPARING.eventName]?.(data.data) const parsedData = PREPARING.parser(data.data) handler[PREPARING.handlerName]?.(normalizeDanmu(PREPARING.eventName, parsedData, data.data)) @@ -116,7 +117,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // ANCHOR_LOT_AWARD if (handler[ANCHOR_LOT_AWARD.handlerName] || rawHandlerNames.has(ANCHOR_LOT_AWARD.eventName)) { rawHandlerNames.delete(ANCHOR_LOT_AWARD.eventName) - instance.on(ANCHOR_LOT_AWARD.eventName as any, (data: WSMessage) => { + instance.on(ANCHOR_LOT_AWARD.eventName, (data) => { isHandleRaw && rawHandler[ANCHOR_LOT_AWARD.eventName]?.(data.data) const parsedData = ANCHOR_LOT_AWARD.parser(data.data, roomId) handler[ANCHOR_LOT_AWARD.handlerName]?.(normalizeDanmu(ANCHOR_LOT_AWARD.eventName, parsedData, data.data)) @@ -126,7 +127,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // ANCHOR_LOT_START if (handler[ANCHOR_LOT_START.handlerName] || rawHandlerNames.has(ANCHOR_LOT_START.eventName)) { rawHandlerNames.delete(ANCHOR_LOT_START.eventName) - instance.on(ANCHOR_LOT_START.eventName as any, (data: WSMessage) => { + instance.on(ANCHOR_LOT_START.eventName, (data) => { isHandleRaw && rawHandler[ANCHOR_LOT_START.eventName]?.(data.data) const parsedData = ANCHOR_LOT_START.parser(data.data, roomId) handler[ANCHOR_LOT_START.handlerName]?.(normalizeDanmu(ANCHOR_LOT_START.eventName, parsedData, data.data)) @@ -136,7 +137,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // DANMU_MSG if (handler[DANMU_MSG.handlerName] || rawHandlerNames.has(DANMU_MSG.eventName)) { rawHandlerNames.delete(DANMU_MSG.eventName) - instance.on(DANMU_MSG.eventName, (data: WSMessage) => { + instance.on(DANMU_MSG.eventName, (data) => { isHandleRaw && rawHandler[DANMU_MSG.eventName]?.(data.data) const parsedData = DANMU_MSG.parser(data.data, roomId) handler[DANMU_MSG.handlerName]?.(normalizeDanmu(DANMU_MSG.eventName, parsedData, data.data)) @@ -146,7 +147,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // GUARD_BUY if (handler[GUARD_BUY.handlerName] || rawHandlerNames.has(GUARD_BUY.eventName)) { rawHandlerNames.delete(GUARD_BUY.eventName) - instance.on(GUARD_BUY.eventName, (data: WSMessage) => { + instance.on(GUARD_BUY.eventName, (data) => { isHandleRaw && rawHandler[GUARD_BUY.eventName]?.(data.data) const parsedData = GUARD_BUY.parser(data.data) handler[GUARD_BUY.handlerName]?.(normalizeDanmu(GUARD_BUY.eventName, parsedData, data.data)) @@ -179,7 +180,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // LIKE_INFO_V3_UPDATE if (handler[LIKE_INFO_V3_UPDATE.handlerName] || rawHandlerNames.has(LIKE_INFO_V3_UPDATE.eventName)) { rawHandlerNames.delete(LIKE_INFO_V3_UPDATE.eventName) - instance.on(LIKE_INFO_V3_UPDATE.eventName, (data: WSMessage) => { + instance.on(LIKE_INFO_V3_UPDATE.eventName, (data) => { isHandleRaw && rawHandler[LIKE_INFO_V3_UPDATE.eventName]?.(data.data) const parsedData = LIKE_INFO_V3_UPDATE.parser(data.data) handler[LIKE_INFO_V3_UPDATE.handlerName]?.(normalizeDanmu(LIKE_INFO_V3_UPDATE.eventName, parsedData, data.data)) @@ -189,7 +190,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // ONLINE_RANK_COUNT if (handler[ONLINE_RANK_COUNT.handlerName] || rawHandlerNames.has(ONLINE_RANK_COUNT.eventName)) { rawHandlerNames.delete(ONLINE_RANK_COUNT.eventName) - instance.on(ONLINE_RANK_COUNT.eventName, (data: WSMessage) => { + instance.on(ONLINE_RANK_COUNT.eventName, (data) => { isHandleRaw && rawHandler[ONLINE_RANK_COUNT.eventName]?.(data.data) const parsedData = ONLINE_RANK_COUNT.parser(data.data) handler[ONLINE_RANK_COUNT.handlerName]?.(normalizeDanmu(ONLINE_RANK_COUNT.eventName, parsedData, data.data)) @@ -199,7 +200,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // POPULARITY_RED_POCKET_START if (handler[POPULARITY_RED_POCKET_START.handlerName] || rawHandlerNames.has(POPULARITY_RED_POCKET_START.eventName)) { rawHandlerNames.delete(POPULARITY_RED_POCKET_START.eventName) - instance.on(POPULARITY_RED_POCKET_START.eventName as any, (data: WSMessage) => { + instance.on(POPULARITY_RED_POCKET_START.eventName, (data) => { isHandleRaw && rawHandler[POPULARITY_RED_POCKET_START.eventName]?.(data.data) const parsedData = POPULARITY_RED_POCKET_START.parser(data.data, roomId) handler[POPULARITY_RED_POCKET_START.handlerName]?.(normalizeDanmu(POPULARITY_RED_POCKET_START.eventName, parsedData, data.data)) @@ -209,7 +210,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // POPULARITY_RED_POCKET_WINNER_LIST if (handler[POPULARITY_RED_POCKET_WINNER_LIST.handlerName] || rawHandlerNames.has(POPULARITY_RED_POCKET_WINNER_LIST.eventName)) { rawHandlerNames.delete(POPULARITY_RED_POCKET_WINNER_LIST.eventName) - instance.on(POPULARITY_RED_POCKET_WINNER_LIST.eventName as any, (data: WSMessage) => { + instance.on(POPULARITY_RED_POCKET_WINNER_LIST.eventName, (data) => { isHandleRaw && rawHandler[POPULARITY_RED_POCKET_WINNER_LIST.eventName]?.(data.data) const parsedData = POPULARITY_RED_POCKET_WINNER_LIST.parser(data.data, roomId) handler[POPULARITY_RED_POCKET_WINNER_LIST.handlerName]?.(normalizeDanmu(POPULARITY_RED_POCKET_WINNER_LIST.eventName, parsedData, data.data)) @@ -235,7 +236,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // ROOM_CHANGE if (handler[ROOM_CHANGE.handlerName] || rawHandlerNames.has(ROOM_CHANGE.eventName)) { rawHandlerNames.delete(ROOM_CHANGE.eventName) - instance.on(ROOM_CHANGE.eventName as any, (data: WSMessage) => { + instance.on(ROOM_CHANGE.eventName, (data) => { isHandleRaw && rawHandler[ROOM_CHANGE.eventName]?.(data.data) const parsedData = ROOM_CHANGE.parser(data.data) handler[ROOM_CHANGE.handlerName]?.(normalizeDanmu(ROOM_CHANGE.eventName, parsedData, data.data)) @@ -271,7 +272,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // SUPER_CHAT_MESSAGE if (handler[SUPER_CHAT_MESSAGE.handlerName] || rawHandlerNames.has(SUPER_CHAT_MESSAGE.eventName)) { rawHandlerNames.delete(SUPER_CHAT_MESSAGE.eventName) - instance.on(SUPER_CHAT_MESSAGE.eventName, (data: WSMessage) => { + instance.on(SUPER_CHAT_MESSAGE.eventName, (data) => { isHandleRaw && rawHandler[SUPER_CHAT_MESSAGE.eventName]?.(data.data) const parsedData = SUPER_CHAT_MESSAGE.parser(data.data, roomId) handler[SUPER_CHAT_MESSAGE.handlerName]?.(normalizeDanmu(SUPER_CHAT_MESSAGE.eventName, parsedData, data.data)) @@ -297,7 +298,7 @@ export const listenAll = (instance: KeepLiveTCP | KeepLiveWS, roomId: number, ha // WATCHED_CHANGE if (handler[WATCHED_CHANGE.handlerName] || rawHandlerNames.has(WATCHED_CHANGE.eventName)) { rawHandlerNames.delete(WATCHED_CHANGE.eventName) - instance.on(WATCHED_CHANGE.eventName, (data: WSMessage) => { + instance.on(WATCHED_CHANGE.eventName, (data) => { isHandleRaw && rawHandler[WATCHED_CHANGE.eventName]?.(data.data) const parsedData = WATCHED_CHANGE.parser(data.data) handler[WATCHED_CHANGE.handlerName]?.(normalizeDanmu(WATCHED_CHANGE.eventName, parsedData, data.data)) diff --git a/src/parser/ANCHOR_LOT_AWARD.ts b/src/parser/ANCHOR_LOT_AWARD.ts index 0c655ce..fdd25d2 100644 --- a/src/parser/ANCHOR_LOT_AWARD.ts +++ b/src/parser/ANCHOR_LOT_AWARD.ts @@ -1,4 +1,5 @@ import type { Message } from '../types/app' +import type { ANCHOR_LOT_AWARD as DataType } from 'tiny-bilibili-ws' export interface AnchorLotteryEndMsg { /** 天选抽奖id */ @@ -27,7 +28,7 @@ export interface AnchorLotteryEndMsg { })[] } -const parser = (data: any, roomId: number): AnchorLotteryEndMsg => { +const parser = (data: DataType, roomId: number): AnchorLotteryEndMsg => { const rawData = data.data return { @@ -35,7 +36,7 @@ const parser = (data: any, roomId: number): AnchorLotteryEndMsg => { award: { image: rawData.award_image, name: rawData.award_name, - virtual: rawData.award_type === 1, + virtual: (rawData as any).award_type === 1, }, winner: rawData.award_users.map((user: any) => ({ uid: user.uid, diff --git a/src/parser/ANCHOR_LOT_START.ts b/src/parser/ANCHOR_LOT_START.ts index 165665b..0137535 100644 --- a/src/parser/ANCHOR_LOT_START.ts +++ b/src/parser/ANCHOR_LOT_START.ts @@ -1,4 +1,5 @@ import type { Message } from '../types/app' +import type { ANCHOR_LOT_START as DataType } from 'tiny-bilibili-ws' export interface AnchorLotteryStartMsg { /** 天选抽奖id */ @@ -47,7 +48,7 @@ export interface AnchorLotteryStartMsg { } } -const parser = (data: any, roomId: number): AnchorLotteryStartMsg => { +const parser = (data: DataType, roomId: number): AnchorLotteryStartMsg => { const rawData = data.data return { @@ -58,13 +59,13 @@ const parser = (data: any, roomId: number): AnchorLotteryStartMsg => { image: rawData.award_image, name: rawData.award_name, num: rawData.award_num, - virtual: rawData.award_type === 1, - price_text: rawData.award_price_text || '', + virtual: (rawData as any).award_type === 1, + price_text: (rawData as any).award_price_text || '', }, require: { danmu: rawData.danmu || '', gift: rawData.gift_id ? { - id: rawData.gift_id, + id: `${rawData.gift_id}`, name: rawData.gift_name, num: rawData.gift_num, price: rawData.gift_price, diff --git a/src/parser/DANMU_MSG.ts b/src/parser/DANMU_MSG.ts index 1252d13..02041bc 100644 --- a/src/parser/DANMU_MSG.ts +++ b/src/parser/DANMU_MSG.ts @@ -1,5 +1,6 @@ import { intToColorHex } from '../utils/color' import type { Message, User } from '../types/app' +import type { DANMU_MSG as DataType } from 'tiny-bilibili-ws' export interface DanmuMsg { user: User @@ -27,7 +28,7 @@ export interface DanmuMsg { }> } -const parser = (data: any, roomId: number): DanmuMsg => { +const parser = (data: DataType, roomId: number): DanmuMsg => { const rawData = data.info const content = rawData[1] const shouldParseInMessageEmoticon = /\[.*?\]/.test(content) @@ -79,7 +80,7 @@ const parser = (data: any, roomId: number): DanmuMsg => { }, } : undefined, identity: { - rank: rawData[4][4], + rank: rawData[4][4] as any, guard_level: rawData[7], room_admin: rawData[2][2] === 1, }, @@ -87,11 +88,11 @@ const parser = (data: any, roomId: number): DanmuMsg => { content, timestamp: rawData[0][4], lottery: rawData[0][9] !== 0, - emoticon: rawData[0][13]?.emoticon_unique ? { - id: rawData[0][13].emoticon_unique, - height: rawData[0][13].height, - width: rawData[0][13].width, - url: rawData[0][13].url, + emoticon: (rawData[0][13] as any)?.emoticon_unique ? { + id: (rawData[0][13] as any).emoticon_unique, + height: (rawData[0][13] as any).height, + width: (rawData[0][13] as any).width, + url: (rawData[0][13] as any).url, } : undefined, in_message_emoticon: inMessageEmoticon, } diff --git a/src/parser/GUARD_BUY.ts b/src/parser/GUARD_BUY.ts index f0b0bd2..af9a2ca 100644 --- a/src/parser/GUARD_BUY.ts +++ b/src/parser/GUARD_BUY.ts @@ -1,5 +1,6 @@ import type { Message, User } from '../types/app' import type { GuardLevel } from '../types/const' +import type { GUARD_BUY as DataType } from 'tiny-bilibili-ws' export interface GuardBuyMsg { user: User @@ -17,7 +18,7 @@ export interface GuardBuyMsg { end_time: number } -const parser = (data: any): GuardBuyMsg => { +const parser = (data: DataType): GuardBuyMsg => { const rawData = data.data return { user: { @@ -42,4 +43,4 @@ export const GUARD_BUY = { export type Handler = { /** 舰长上舰消息 */ onGuardBuy: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/HEARTBEAT.ts b/src/parser/HEARTBEAT.ts index 6c0aaa4..47567ee 100644 --- a/src/parser/HEARTBEAT.ts +++ b/src/parser/HEARTBEAT.ts @@ -5,7 +5,7 @@ export interface AttentionChangeMsg { attention: number } -const parser = (data: any): AttentionChangeMsg => { +const parser = (data: number): AttentionChangeMsg => { return { attention: data, } diff --git a/src/parser/INTERACT_WORD_ENTRY_EFFECT.ts b/src/parser/INTERACT_WORD_ENTRY_EFFECT.ts index ed26486..53dcec2 100644 --- a/src/parser/INTERACT_WORD_ENTRY_EFFECT.ts +++ b/src/parser/INTERACT_WORD_ENTRY_EFFECT.ts @@ -1,5 +1,6 @@ import { intToColorHex } from '../utils/color' import type { Message, User } from '../types/app' +import type { INTERACT_WORD as DataType } from 'tiny-bilibili-ws' type UserAction = 'enter' | 'follow' | 'share' | 'like' | 'unknown' @@ -11,7 +12,7 @@ export interface UserActionMsg { timestamp: number } -const parserNormal = (data: any, roomId: number): UserActionMsg => { +const parserNormal = (data: DataType & { data: { face?: string } }, roomId: number): UserActionMsg => { const rawData = data.data let actionType: UserAction = 'unknown' if (rawData.msg_type === 1) { @@ -25,9 +26,9 @@ const parserNormal = (data: any, roomId: number): UserActionMsg => { user: { uid: rawData.uid, uname: rawData.uname, - face: rawData.face, + face: rawData?.face, badge: rawData.fans_medal?.target_id ? { - active: rawData.fans_medal?.is_lighted, + active: !!rawData.fans_medal?.is_lighted, name: rawData.fans_medal?.medal_name, level: rawData.fans_medal?.medal_level, color: intToColorHex(rawData.fans_medal?.medal_color), @@ -134,4 +135,4 @@ export const LIKE_INFO_V3_CLICK = { export type Handler = { /** 用户进入、关注、分享、点赞直播间 */ onUserAction: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/LIKE_INFO_V3_UPDATE.ts b/src/parser/LIKE_INFO_V3_UPDATE.ts index c1723dd..63b5fd4 100644 --- a/src/parser/LIKE_INFO_V3_UPDATE.ts +++ b/src/parser/LIKE_INFO_V3_UPDATE.ts @@ -1,11 +1,12 @@ import type { Message } from '../types/app' +import type { LIKE_INFO_V3_UPDATE as DataType } from 'tiny-bilibili-ws' export interface LikedChangeMsg { /** 直播间点赞人数 */ count: number } -const parser = (data: any): LikedChangeMsg => { +const parser = (data: DataType): LikedChangeMsg => { const rawData = data.data return { count: rawData.click_count, @@ -21,4 +22,4 @@ export const LIKE_INFO_V3_UPDATE = { export type Handler = { /** 累计点赞人数变化 */ onLikedChange: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/LIVE.ts b/src/parser/LIVE.ts index b690395..7aa8e5c 100644 --- a/src/parser/LIVE.ts +++ b/src/parser/LIVE.ts @@ -1,4 +1,5 @@ import type { Message } from '../types/app' +import type { LIVE as DataType } from 'tiny-bilibili-ws' export interface LiveStartMsg { /** 开播平台 */ @@ -7,7 +8,7 @@ export interface LiveStartMsg { room_id: number } -const parser = (data: any): LiveStartMsg => { +const parser = (data: DataType): LiveStartMsg => { return { live_platform: data.live_platform, room_id: data.roomid, @@ -23,4 +24,4 @@ export const LIVE = { export type Handler = { /** 直播开始消息 */ onLiveStart: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/ONLINE_RANK_COUNT.ts b/src/parser/ONLINE_RANK_COUNT.ts index bbf5e1f..34fdc36 100644 --- a/src/parser/ONLINE_RANK_COUNT.ts +++ b/src/parser/ONLINE_RANK_COUNT.ts @@ -1,11 +1,12 @@ import type { Message } from '../types/app' +import type { ONLINE_RANK_COUNT as DataType } from 'tiny-bilibili-ws' export interface RankCountChangeMsg { /** 高能用户人数 */ count: number } -const parser = (data: any): RankCountChangeMsg => { +const parser = (data: DataType): RankCountChangeMsg => { const rawData = data.data return { count: rawData.count, @@ -21,4 +22,4 @@ export const ONLINE_RANK_COUNT = { export type Handler = { /** 高能用户人数变化 */ onRankCountChange: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/POPULARITY_RED_POCKET_START.ts b/src/parser/POPULARITY_RED_POCKET_START.ts index 29c5b6d..d5d97d7 100644 --- a/src/parser/POPULARITY_RED_POCKET_START.ts +++ b/src/parser/POPULARITY_RED_POCKET_START.ts @@ -1,4 +1,5 @@ import type { Message, User } from '../types/app' +import type { POPULARITY_RED_POCKET_START as DataType } from 'tiny-bilibili-ws' export interface RedPocketStartMsg { /** 红包抽奖id */ @@ -32,7 +33,7 @@ interface RedPocketStartAward { num: number } -const parser = (data: any, roomId: number): RedPocketStartMsg => { +const parser = (data: DataType, roomId: number): RedPocketStartMsg => { const rawData = data.data return { diff --git a/src/parser/PREPARING.ts b/src/parser/PREPARING.ts index 0408f33..fc97aaa 100644 --- a/src/parser/PREPARING.ts +++ b/src/parser/PREPARING.ts @@ -1,11 +1,13 @@ import type { Message } from '../types/app' +import type { PREPARING as DataType } from 'tiny-bilibili-ws' + export interface LiveEndMsg { /** 房间号 */ room_id: number } -const parser = (data: any): LiveEndMsg => { +const parser = (data: DataType): LiveEndMsg => { return { room_id: parseInt(data.roomid), } @@ -20,4 +22,4 @@ export const PREPARING = { export type Handler = { /** 直播结束消息 */ onLiveEnd: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/ROOM_CHANGE.ts b/src/parser/ROOM_CHANGE.ts index 503f3e0..8ec6df1 100644 --- a/src/parser/ROOM_CHANGE.ts +++ b/src/parser/ROOM_CHANGE.ts @@ -1,4 +1,5 @@ import type { Message } from '../types/app' +import type { ROOM_CHANGE as DataType } from 'tiny-bilibili-ws' export interface RoomInfoChangeMsg { /** 直播间标题 */ @@ -13,7 +14,7 @@ export interface RoomInfoChangeMsg { area_name: string } -const parser = (data: any): RoomInfoChangeMsg => { +const parser = (data: DataType): RoomInfoChangeMsg => { const rawData = data.data return { title: rawData.title, @@ -33,4 +34,4 @@ export const ROOM_CHANGE = { export type Handler = { /** 直播间信息修改 */ onRoomInfoChange: (msg: Message) => void -} \ No newline at end of file +} diff --git a/src/parser/ROOM_SILENT.ts b/src/parser/ROOM_SILENT.ts index a9f051b..f3ca3e6 100644 --- a/src/parser/ROOM_SILENT.ts +++ b/src/parser/ROOM_SILENT.ts @@ -1,4 +1,6 @@ import type { Message } from '../types/app' +import type { ROOM_SILENT_OFF as ROOM_SILENT_OFF_TYPE, ROOM_SILENT_ON as ROOM_SILENT_ON_TYPE } from 'tiny-bilibili-ws' + export interface RoomSilentMsg { /** 禁言类型(按用户等级、勋章等级、全员、关闭) */ @@ -9,12 +11,12 @@ export interface RoomSilentMsg { second: number } -const parser = (data: any, roomId: number): RoomSilentMsg => { +const parser = (data: ROOM_SILENT_OFF_TYPE | ROOM_SILENT_ON_TYPE, roomId: number): RoomSilentMsg => { const msgType = data.cmd const rawData = data.data return { - type: msgType === 'ROOM_SILENT_OFF' ? 'off' : rawData.type, + type: msgType === 'ROOM_SILENT_OFF' ? 'off' : rawData.type as 'level' | 'medal' | 'member' | 'off', level: rawData.level, second: rawData.second, } diff --git a/src/parser/SUPER_CHAT_MESSAGE.ts b/src/parser/SUPER_CHAT_MESSAGE.ts index 5a0a4e0..da0339d 100644 --- a/src/parser/SUPER_CHAT_MESSAGE.ts +++ b/src/parser/SUPER_CHAT_MESSAGE.ts @@ -1,4 +1,5 @@ import type { Message, User } from '../types/app' +import type { SUPER_CHAT_MESSAGE as DataType } from 'tiny-bilibili-ws' export interface SuperChatMsg { /** 消息id */ @@ -15,7 +16,7 @@ export interface SuperChatMsg { time: number } -const parser = (data: any, roomId: number): SuperChatMsg => { +const parser = (data: DataType, roomId: number): SuperChatMsg => { const rawData = data.data const { medal_info, user_info } = data.data return { diff --git a/src/parser/WARNING_CUT_OFF.ts b/src/parser/WARNING_CUT_OFF.ts index 8ffe133..ea5b83b 100644 --- a/src/parser/WARNING_CUT_OFF.ts +++ b/src/parser/WARNING_CUT_OFF.ts @@ -1,4 +1,5 @@ import type { Message } from '../types/app' +import type { WARNING as DataType } from 'tiny-bilibili-ws' export interface RoomWarnMsg { /** 处理类型 */ @@ -7,7 +8,7 @@ export interface RoomWarnMsg { msg: string } -const parser = (data: any, roomId: number): RoomWarnMsg => { +const parser = (data: DataType, roomId: number): RoomWarnMsg => { const msgType = data.cmd const rawData = data diff --git a/src/parser/WATCHED_CHANGE.ts b/src/parser/WATCHED_CHANGE.ts index 2e55f7d..39add3a 100644 --- a/src/parser/WATCHED_CHANGE.ts +++ b/src/parser/WATCHED_CHANGE.ts @@ -1,4 +1,5 @@ import type { Message } from '../types/app' +import type { WATCHED_CHANGE as DataType } from 'tiny-bilibili-ws' export interface WatchedChangeMsg { /** 累计入场人数 */ @@ -7,7 +8,7 @@ export interface WatchedChangeMsg { text_small: string } -const parser = (data: any): WatchedChangeMsg => { +const parser = (data: DataType): WatchedChangeMsg => { const rawData = data.data return { num: rawData.num,