Suite of AT Protocol TypeScript libraries built on web standards
21
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix tests

+85 -2
-1
crypto/deno.json
··· 4 4 "exports": "./mod.ts", 5 5 "license": "MIT", 6 6 "imports": { 7 - "@atp/bytes": "../bytes/mod.ts", 8 7 "@noble/curves": "jsr:@noble/curves@^2.0.1", 9 8 "@noble/hashes": "jsr:@noble/hashes@^2.0.1", 10 9 "multiformats": "npm:multiformats@^13.4.1"
+76
deno.lock
··· 48 48 "npm:@did-plc/server@^0.0.1": "0.0.1_express@4.21.2", 49 49 "npm:@ipld/dag-cbor@^9.2.5": "9.2.5", 50 50 "npm:@types/node@*": "24.2.0", 51 + "npm:crossws@~0.4.1": "0.4.1", 51 52 "npm:get-port@^7.1.0": "7.1.0", 53 + "npm:http-errors@2": "2.0.0", 54 + "npm:key-encoder@^2.0.3": "2.0.3", 52 55 "npm:multiformats@^13.4.1": "13.4.1", 53 56 "npm:p-queue@^8.1.1": "8.1.1", 54 57 "npm:prettier@^3.6.2": "3.6.2", ··· 408 411 "@noble/secp256k1@1.7.2": { 409 412 "integrity": "sha512-/qzwYl5eFLH8OWIecQWM31qld2g1NfjgylK+TNhqtaUKP37Nm+Y+z30Fjhw0Ct8p9yCQEm2N3W/AckdIb3SMcQ==" 410 413 }, 414 + "@types/bn.js@5.2.0": { 415 + "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", 416 + "dependencies": [ 417 + "@types/node" 418 + ] 419 + }, 420 + "@types/elliptic@6.4.18": { 421 + "integrity": "sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==", 422 + "dependencies": [ 423 + "@types/bn.js" 424 + ] 425 + }, 411 426 "@types/node@24.2.0": { 412 427 "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", 413 428 "dependencies": [ ··· 430 445 "array-flatten@1.1.1": { 431 446 "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 432 447 }, 448 + "asn1.js@5.4.1": { 449 + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", 450 + "dependencies": [ 451 + "bn.js", 452 + "inherits", 453 + "minimalistic-assert", 454 + "safer-buffer" 455 + ] 456 + }, 433 457 "asynckit@0.4.0": { 434 458 "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 435 459 }, ··· 450 474 "big-integer@1.6.52": { 451 475 "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" 452 476 }, 477 + "bn.js@4.12.2": { 478 + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" 479 + }, 453 480 "body-parser@1.20.3": { 454 481 "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", 455 482 "dependencies": [ ··· 466 493 "type-is", 467 494 "unpipe" 468 495 ] 496 + }, 497 + "brorand@1.1.0": { 498 + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" 469 499 }, 470 500 "buffer@6.0.3": { 471 501 "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", ··· 549 579 "vary" 550 580 ] 551 581 }, 582 + "crossws@0.4.1": { 583 + "integrity": "sha512-E7WKBcHVhAVrY6JYD5kteNqVq1GSZxqGrdSiwXR9at+XHi43HJoCQKXcCczR5LBnBquFZPsB3o7HklulKoBU5w==" 584 + }, 552 585 "debug@2.6.9": { 553 586 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 554 587 "dependencies": [ ··· 581 614 "ee-first@1.1.1": { 582 615 "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 583 616 }, 617 + "elliptic@6.6.1": { 618 + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", 619 + "dependencies": [ 620 + "bn.js", 621 + "brorand", 622 + "hash.js", 623 + "hmac-drbg", 624 + "inherits", 625 + "minimalistic-assert", 626 + "minimalistic-crypto-utils" 627 + ] 628 + }, 584 629 "encodeurl@1.0.2": { 585 630 "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" 586 631 }, ··· 748 793 "has-symbols" 749 794 ] 750 795 }, 796 + "hash.js@1.1.7": { 797 + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 798 + "dependencies": [ 799 + "inherits", 800 + "minimalistic-assert" 801 + ] 802 + }, 751 803 "hasown@2.0.2": { 752 804 "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 753 805 "dependencies": [ 754 806 "function-bind" 807 + ] 808 + }, 809 + "hmac-drbg@1.0.1": { 810 + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", 811 + "dependencies": [ 812 + "hash.js", 813 + "minimalistic-assert", 814 + "minimalistic-crypto-utils" 755 815 ] 756 816 }, 757 817 "http-errors@2.0.0": { ··· 791 851 "iso-datestring-validator@2.2.2": { 792 852 "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==" 793 853 }, 854 + "key-encoder@2.0.3": { 855 + "integrity": "sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==", 856 + "dependencies": [ 857 + "@types/elliptic", 858 + "asn1.js", 859 + "bn.js", 860 + "elliptic" 861 + ] 862 + }, 794 863 "kysely@0.23.5": { 795 864 "integrity": "sha512-TH+b56pVXQq0tsyooYLeNfV11j6ih7D50dyN8tkM0e7ndiUH28Nziojiog3qRFlmEj9XePYdZUrNJ2079Qjdow==" 796 865 }, ··· 818 887 "mime@1.6.0": { 819 888 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 820 889 "bin": true 890 + }, 891 + "minimalistic-assert@1.0.1": { 892 + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 893 + }, 894 + "minimalistic-crypto-utils@1.0.1": { 895 + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" 821 896 }, 822 897 "ms@2.0.0": { 823 898 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" ··· 1293 1368 "jsr:@std/cbor@~0.1.8", 1294 1369 "jsr:@std/encoding@^1.0.10", 1295 1370 "jsr:@zod/zod@^4.1.11", 1371 + "npm:crossws@~0.4.1", 1296 1372 "npm:get-port@^7.1.0", 1297 1373 "npm:http-errors@2", 1298 1374 "npm:key-encoder@^2.0.3",
+1
xrpc-server/deno.json
··· 6 6 "imports": { 7 7 "@std/cbor": "jsr:@std/cbor@^0.1.8", 8 8 "@std/encoding": "jsr:@std/encoding@^1.0.10", 9 + "crossws": "npm:crossws@^0.4.1", 9 10 "get-port": "npm:get-port@^7.1.0", 10 11 "http-errors": "npm:http-errors@^2.0.0", 11 12 "key-encoder": "npm:key-encoder@^2.0.3",
+1 -1
xrpc-server/stream/server.ts
··· 1 - import { type ServerOptions, WebSocketServer } from "ws"; 1 + import { type ServerOptions, type WebSocket, WebSocketServer } from "ws"; 2 2 import { ErrorFrame, type Frame } from "./frames.ts"; 3 3 import { logger } from "../logger.ts"; 4 4 import { CloseCode, DisconnectError } from "./types.ts";
+7
xrpc-server/tests/stream_test.ts
··· 7 7 MessageFrame, 8 8 XrpcStreamServer, 9 9 } from "../mod.ts"; 10 + import { WebSocket } from "ws"; 10 11 import { assertEquals, assertInstanceOf } from "@std/assert"; 11 12 12 13 const wait = (ms: number) => new Promise((res) => setTimeout(res, ms)); ··· 187 188 error = err; 188 189 } 189 190 191 + // Wait for the close event in case the socket is still in CLOSING (2) state 192 + if (ws.readyState !== ws.CLOSED) { 193 + await new Promise<void>((resolve) => { 194 + ws.onclose = () => resolve(); 195 + }); 196 + } 190 197 assertEquals(ws.readyState, ws.CLOSED); 191 198 assertEquals(frames.length, 2); 192 199 assertEquals(frames, [new MessageFrame(1), new MessageFrame(2)]);