From 6aad26f3e38d9762cfa94b26e5fef6d727127e7b Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Thu, 17 Oct 2024 16:56:52 +0300 Subject: [PATCH 1/7] version update --- package-lock.json | 1914 ++++++++++++++++++--------- package.json | 9 +- src/StreamrClientFacade.ts | 6 +- src/api/MessageResolver.ts | 3 +- src/api/NodeResolver.ts | 2 +- src/crawler/Crawler.ts | 9 +- src/crawler/NetworkNodeFacade.ts | 6 +- src/crawler/Topology.ts | 3 +- src/crawler/messageRate.ts | 12 +- src/repository/MessageRepository.ts | 17 +- test/APIServer.test.ts | 14 +- test/Crawler.test.ts | 2 +- test/MessageRepository.test.ts | 7 +- test/Topology.test.ts | 4 +- test/end-to-end.test.ts | 5 +- test/messageRate.test.ts | 15 +- 16 files changed, 1335 insertions(+), 693 deletions(-) diff --git a/package-lock.json b/package-lock.json index f8b4406..3e50730 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,10 @@ "version": "1.0.0", "dependencies": { "@streamr/config": "^5.3.7", - "@streamr/dht": "100.2.4", - "@streamr/protocol": "100.2.4", - "@streamr/sdk": "100.2.4", - "@streamr/trackerless-network": "100.2.4", - "@streamr/utils": "100.2.4", + "@streamr/dht": "101.1.2", + "@streamr/sdk": "101.1.2", + "@streamr/trackerless-network": "101.1.2", + "@streamr/utils": "101.1.2", "@types/node-fetch": "^2.6.3", "class-validator": "^0.14.1", "cors": "^2.8.5", @@ -59,6 +58,11 @@ "node": ">=0.10.0" } }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -673,9 +677,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -684,9 +688,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.0.tgz", - "integrity": "sha512-HxiRMOncx3ly6f3fcZ1GVKf+/EROcI9qwPgmij8Czqy6Okm/0T37T4y2ZIlLUuEUFjtM7NRsfdCO8Y3tAiJZew==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.25.7.tgz", + "integrity": "sha512-gMmIEhg35sXk9Te5qbGp3W9YKrvLt3HV658/d3odWrHSqT0JeG5OzsJWFHRLiOohRyjRsJc/x03DhJm3i8VJxg==", "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -1607,6 +1611,114 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/fs-minipass/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2057,175 +2169,673 @@ } }, "node_modules/@lit-protocol/access-control-conditions": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/access-control-conditions/-/access-control-conditions-2.9.90.tgz", - "integrity": "sha512-oKEUZ0wiSI4uNPrdP6Gr440q0jeM33vnX1dHTOY8NaDincFhY3ss+r9NmqgDizwieMcwzn8Lakmb4PPKQSzChQ==", - "dependencies": { - "@lit-protocol/auth-helpers": "2.9.90", - "@lit-protocol/constants": "2.9.90", - "@lit-protocol/misc": "2.9.90", - "@lit-protocol/types": "2.9.90", - "@lit-protocol/uint8arrays": "2.9.90", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/access-control-conditions/-/access-control-conditions-2.2.5.tgz", + "integrity": "sha512-yL8kkXBTxXZzlK2WbhoRUeF3oPMfWmfIXm/hBnhgHqC7PzAb2tRLFJAky/o3MGkwt0DwR0lV++KNZgZGu4eG+w==", + "dependencies": { + "@lit-protocol/auth-helpers": "2.2.5", + "@lit-protocol/constants": "2.2.5", + "@lit-protocol/misc": "2.2.5", + "@lit-protocol/types": "2.2.5", + "@lit-protocol/uint8arrays": "2.2.5", "ethers": "^5.7.1", - "jszip": "^3.10.1", "siwe": "^2.0.5", "siwe-recap": "0.0.2-alpha.0", "tslib": "^2.3.0" } }, - "node_modules/@lit-protocol/accs-schemas": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@lit-protocol/accs-schemas/-/accs-schemas-0.0.6.tgz", - "integrity": "sha512-/NIZkAN+kgAarWefBX1a4DiNerUtv8JOdQmqUo45cnlDp89X9HkiK+8gm9z2p9gojtvxMqqId7wW8J8NHXVRDg==", + "node_modules/@lit-protocol/access-control-conditions/node_modules/@lit-protocol/uint8arrays": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-2.2.5.tgz", + "integrity": "sha512-+hFwgmZIy86fLAWhc2YkPT4DEsPi2pDPQUGLhSrp0kK7PSzeQvWmXBCLaBD3HdNtHp2DVDq4EtT0sEda+aAQxg==", + "dependencies": { + "tslib": "^2.3.0" + } + }, + "node_modules/@lit-protocol/access-control-conditions/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "ajv": "^8.12.0" + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/@lit-protocol/accs-schemas/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@lit-protocol/access-control-conditions/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "ethers": "^5.5.1" } }, - "node_modules/@lit-protocol/accs-schemas/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, "node_modules/@lit-protocol/auth-helpers": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/auth-helpers/-/auth-helpers-2.9.90.tgz", - "integrity": "sha512-GSBNvNhEEsu9sxxR5A+cYCCILyz/uCepHaZ6NWHtEHsO7jAJ+Ez2D6tRqf/iT3vfdmd31jw8DBZyvlYwIUzdFQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/auth-helpers/-/auth-helpers-2.2.5.tgz", + "integrity": "sha512-1FgMInnc6y6RKMN+NKKm26ruWmKf19QkaxkAzUAFGnfPAspyiGxxvQBbd9RyNbbyBxc0A8qyt+CVZWpZ9C88XQ==", "dependencies": { "siwe": "^2.0.5", "siwe-recap": "0.0.2-alpha.0", "tslib": "^2.3.0" } }, + "node_modules/@lit-protocol/auth-helpers/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@lit-protocol/auth-helpers/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "dependencies": { + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" + }, + "peerDependencies": { + "ethers": "^5.5.1" + } + }, "node_modules/@lit-protocol/bls-sdk": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/bls-sdk/-/bls-sdk-2.9.90.tgz", - "integrity": "sha512-WCucvwhgnFuL53L3Oif55zCZ3vNtr8gxH4N7lwMxrvdf/f6qZD2jFyDDsyBZww6ckfTNv1NAyVkf37GbtI1r2w==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/bls-sdk/-/bls-sdk-2.2.5.tgz", + "integrity": "sha512-w7UWXy7d1EJfOAPm09krdWLfV7BWkCXXf9ISketjrZrXv4vAb3TVM0GDKLx8FNyOJkDHSQgDiUQumB70s3xNEw==", "dependencies": { "pako": "^2.1.0", "tslib": "^2.3.0" } }, "node_modules/@lit-protocol/constants": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/constants/-/constants-2.9.90.tgz", - "integrity": "sha512-Yk0KLpTZNAJyvauAhGdYhOjbZkJs16gI22wWAHGr06cvC4r3t2tqIHzF75FlbdxohZqOx7wCMyq21aZ3EBK4kQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/constants/-/constants-2.2.5.tgz", + "integrity": "sha512-CgeJ7uBQ5arSHi+yTCJRzjeAeqcNpI5VfYVHwSroz79sLoq3vIObEVpzZQkdchLnrq2Ssx3L+WtofbTuLAgH4A==", "dependencies": { - "@lit-protocol/auth-helpers": "2.9.90", - "@lit-protocol/types": "2.9.90", - "ethers": "^5.7.1", - "jszip": "^3.10.1", + "@lit-protocol/auth-helpers": "2.2.5", + "@lit-protocol/types": "2.2.5", "siwe": "^2.0.5", "siwe-recap": "0.0.2-alpha.0", "tslib": "^2.3.0" } }, - "node_modules/@lit-protocol/core": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/core/-/core-2.9.90.tgz", - "integrity": "sha512-71/yIg0O7elftL3U+PwWZZ+L0WoV3KWoILWUkUOAUaKahvmbJ9iJHSCI18AV1eX2XP3BopCnMDuwX1rYpQIK0w==", - "dependencies": { - "@lit-protocol/access-control-conditions": "2.9.90", - "@lit-protocol/auth-helpers": "2.9.90", - "@lit-protocol/bls-sdk": "2.9.90", - "@lit-protocol/constants": "2.9.90", - "@lit-protocol/crypto": "2.9.90", - "@lit-protocol/ecdsa-sdk": "2.9.90", - "@lit-protocol/misc": "2.9.90", - "@lit-protocol/nacl": "2.9.90", - "@lit-protocol/types": "2.9.90", - "@lit-protocol/uint8arrays": "2.9.90", - "ethers": "^5.7.1", - "jszip": "^3.10.1", - "siwe": "^2.0.5", - "siwe-recap": "0.0.2-alpha.0", - "tslib": "^2.3.0" + "node_modules/@lit-protocol/constants/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/@lit-protocol/crypto": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/crypto/-/crypto-2.9.90.tgz", - "integrity": "sha512-Uz7tQpWvUD5LZnYg7l1Z83/A8S6oKRoVgeneZGCi0COh3u7Wb4m45Fn+rc1SEvqLY3h56OpjmCKbqbcSffAQuw==", - "dependencies": { - "@lit-protocol/auth-helpers": "2.9.90", - "@lit-protocol/bls-sdk": "2.9.90", - "@lit-protocol/constants": "2.9.90", - "@lit-protocol/ecdsa-sdk": "2.9.90", - "@lit-protocol/misc": "2.9.90", - "@lit-protocol/nacl": "2.9.90", - "@lit-protocol/types": "2.9.90", - "@lit-protocol/uint8arrays": "2.9.90", + "node_modules/@lit-protocol/constants/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "dependencies": { + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" + }, + "peerDependencies": { + "ethers": "^5.5.1" + } + }, + "node_modules/@lit-protocol/contracts": { + "version": "0.0.63", + "resolved": "https://registry.npmjs.org/@lit-protocol/contracts/-/contracts-0.0.63.tgz", + "integrity": "sha512-CAorNt72ybIY/g//dDeR837izNGuYQR99XwPSK2X2AJ6c+aZX1kdXCrOnxsbY40BzFrOk/dIFo+ymJ9E3qh48w==", + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@lit-protocol/core": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/core/-/core-2.2.5.tgz", + "integrity": "sha512-REsJ4SM3SQfvTSlrSzG6SUoTpU+l2vmcQK1gabG+kSGQt0uwcOjOX58XYdAk86OStoxBWdbnl7T3Q+5TXuJ8Lw==", + "dependencies": { + "@lit-protocol/access-control-conditions": "2.2.5", + "@lit-protocol/auth-helpers": "2.2.5", + "@lit-protocol/bls-sdk": "2.2.5", + "@lit-protocol/constants": "2.2.5", + "@lit-protocol/crypto": "2.2.5", + "@lit-protocol/ecdsa-sdk": "2.2.5", + "@lit-protocol/misc": "2.2.5", + "@lit-protocol/nacl": "2.2.5", + "@lit-protocol/types": "2.2.5", + "@lit-protocol/uint8arrays": "2.2.5", "ethers": "^5.7.1", - "jszip": "^3.10.1", "siwe": "^2.0.5", "siwe-recap": "0.0.2-alpha.0", "tslib": "^2.3.0" } }, - "node_modules/@lit-protocol/ecdsa-sdk": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/ecdsa-sdk/-/ecdsa-sdk-2.9.90.tgz", - "integrity": "sha512-GD7bsK+iSzn5ByIXimRzvP+PfUb9U4HMttGVkWD41V9uaKOrybuCpSgN8hj41fG4koWnAuJWxuxQkGsJlGETpg==", + "node_modules/@lit-protocol/core/node_modules/@lit-protocol/uint8arrays": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-2.2.5.tgz", + "integrity": "sha512-+hFwgmZIy86fLAWhc2YkPT4DEsPi2pDPQUGLhSrp0kK7PSzeQvWmXBCLaBD3HdNtHp2DVDq4EtT0sEda+aAQxg==", "dependencies": { "tslib": "^2.3.0" } }, - "node_modules/@lit-protocol/misc": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/misc/-/misc-2.9.90.tgz", - "integrity": "sha512-h/h0/29KXDWYCvkQ0AfnvVcfzmbTtlkefBs/S1MbduxVmgtx0HlHK422XAw42zm3MZ1+O74jO9VDheCl9IpFRw==", + "node_modules/@lit-protocol/core/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "@lit-protocol/auth-helpers": "2.9.90", - "@lit-protocol/constants": "2.9.90", - "@lit-protocol/types": "2.9.90", + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@lit-protocol/core/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "dependencies": { + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" + }, + "peerDependencies": { + "ethers": "^5.5.1" + } + }, + "node_modules/@lit-protocol/crypto": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/crypto/-/crypto-2.2.5.tgz", + "integrity": "sha512-7xE8hG6bvf3szz8r20qkD6hJyqu+PylRyoix3V9qMofLsPUgER5VQgj07bXV1YbfsYJ5nupZB+3AwPXtPg1Bcg==", + "dependencies": { + "@lit-protocol/auth-helpers": "2.2.5", + "@lit-protocol/bls-sdk": "2.2.5", + "@lit-protocol/constants": "2.2.5", + "@lit-protocol/ecdsa-sdk": "2.2.5", + "@lit-protocol/misc": "2.2.5", + "@lit-protocol/nacl": "2.2.5", + "@lit-protocol/types": "2.2.5", + "@lit-protocol/uint8arrays": "2.2.5", + "ethers": "^5.7.1", + "siwe": "^2.0.5", + "siwe-recap": "0.0.2-alpha.0", + "tslib": "^2.3.0" + } + }, + "node_modules/@lit-protocol/crypto/node_modules/@lit-protocol/uint8arrays": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-2.2.5.tgz", + "integrity": "sha512-+hFwgmZIy86fLAWhc2YkPT4DEsPi2pDPQUGLhSrp0kK7PSzeQvWmXBCLaBD3HdNtHp2DVDq4EtT0sEda+aAQxg==", + "dependencies": { + "tslib": "^2.3.0" + } + }, + "node_modules/@lit-protocol/crypto/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@lit-protocol/crypto/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "dependencies": { + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" + }, + "peerDependencies": { + "ethers": "^5.5.1" + } + }, + "node_modules/@lit-protocol/ecdsa-sdk": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/ecdsa-sdk/-/ecdsa-sdk-2.2.5.tgz", + "integrity": "sha512-lf7rejaExJZdT29dPZLNefkT/eBp2zvQZ0uGtA7uG6GqNxwX0/4l3irYf7xzuuCi60t8MOAreRdV1A1/vuXvtQ==", + "dependencies": { + "tslib": "^2.3.0" + } + }, + "node_modules/@lit-protocol/misc": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/misc/-/misc-2.2.5.tgz", + "integrity": "sha512-MK2R7syAoSNNwTarFqakfKAASHRf7VoxRwt16O8qympZjJVL0Kj6eSkHdm7ymZWIQgxgD+4BysUZ4rABheD84g==", + "dependencies": { + "@lit-protocol/auth-helpers": "2.2.5", + "@lit-protocol/constants": "2.2.5", + "@lit-protocol/types": "2.2.5", "ethers": "^5.7.1", - "jszip": "^3.10.1", "siwe": "^2.0.5", "siwe-recap": "0.0.2-alpha.0", "tslib": "^2.3.0" } }, + "node_modules/@lit-protocol/misc/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@lit-protocol/misc/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "dependencies": { + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" + }, + "peerDependencies": { + "ethers": "^5.5.1" + } + }, "node_modules/@lit-protocol/nacl": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/nacl/-/nacl-2.9.90.tgz", - "integrity": "sha512-nx0wpqKcOBRrgJpzR/RFfNnxKxtVn6HuMuluZds5tLTOWRPvZb8A994IFAUZEy1815ze+L1ejrshJMGQ4rciEg==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/nacl/-/nacl-2.2.5.tgz", + "integrity": "sha512-ai71eWazYAehxTRIFdzBOCDoo9V9Tot5gaFozXER0oj7fp0XCarDyv0M5Ro41O1Qn+WGWB6qodPGlP1nNNKteQ==", "dependencies": { "tslib": "^2.3.0" } }, "node_modules/@lit-protocol/types": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/types/-/types-2.9.90.tgz", - "integrity": "sha512-yBqPfZjwbObPLQZCm7D9i/OVeUhfzQSRJBDdfILC3FFf3uMMXl+47a8Zz1UIG6zOu6wQ6u+M5ForVYdxGtPpNA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@lit-protocol/types/-/types-2.2.5.tgz", + "integrity": "sha512-r8BXn59/p0gbsGQIWvw6jRfK9OKQd4MoDby1+9NLKO0ZnZ2oWnGaPLa8j50OVXY8FvkyiI32y1Mc5sXBDwEqZA==", "dependencies": { - "@lit-protocol/auth-helpers": "2.9.90", - "ethers": "^5.7.1", - "jszip": "^3.10.1", + "@lit-protocol/auth-helpers": "2.2.5", "siwe": "^2.0.5", "siwe-recap": "0.0.2-alpha.0", "tslib": "^2.3.0" } }, + "node_modules/@lit-protocol/types/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@lit-protocol/types/node_modules/siwe-recap": { + "version": "0.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", + "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "dependencies": { + "canonicalize": "^2.0.0", + "multiformats": "^11.0.2", + "siwe": "^2.1.4" + }, + "peerDependencies": { + "ethers": "^5.5.1" + } + }, "node_modules/@lit-protocol/uint8arrays": { - "version": "2.9.90", - "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-2.9.90.tgz", - "integrity": "sha512-6P2MeTp3HB0vXQt/p+/TnywwDo//aqxCpNtTOqx23SV/4Q7a0ImEqd7g2Hjzo+eq5/N5skoB49opf8l3gRf7HQ==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-6.10.0.tgz", + "integrity": "sha512-sk4INYrunRe9wNgQvmy9n+liltA5tjSA5rZ1HH6jA4GZ0j6DiZ9kJKuPnImnZS7Wl1O+tRIffa/oxsK6CTXGPA==", "dependencies": { - "tslib": "^2.3.0" + "@ethersproject/abstract-provider": "5.7.0", + "@lit-protocol/contracts": "^0.0.63", + "ethers": "^5.7.1", + "jszip": "^3.10.1", + "siwe": "^2.0.5", + "tslib": "1.14.1" + } + }, + "node_modules/@lit-protocol/uint8arrays/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@lit-protocol/uint8arrays/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@nodelib/fs.scandir": { @@ -2287,6 +2897,15 @@ "node": ">=10" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@protobuf-ts/runtime": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.3.tgz", @@ -2305,198 +2924,6 @@ "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==" }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2557,124 +2984,231 @@ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" }, "node_modules/@streamr/autocertifier-client": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/autocertifier-client/-/autocertifier-client-100.2.4.tgz", - "integrity": "sha512-hxMxwmlewc1E5SqiLy5+AKMotLbI5g/mD4C4+AkJoBW8Oqmelkme2n7YPm6xIxD1ii1+wCylzZskS7qvKueXQw==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/autocertifier-client/-/autocertifier-client-101.1.2.tgz", + "integrity": "sha512-jiVjBlYJxa27HvaV0+i52dHnCZi4JfCq6JUk2H/f4h11fSQk8LpOTeYRrW3Gs5cgfULNEkEM1RNHOj4sRLDr+Q==", "dependencies": { "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/utils": "100.2.4", + "@streamr/utils": "101.1.2", "eventemitter3": "^5.0.0", "node-forge": "^1.3.1", "request": "^2.88.2" } }, "node_modules/@streamr/cdn-location": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/cdn-location/-/cdn-location-100.2.4.tgz", - "integrity": "sha512-SnHMLyMYMjICtgwFL6vOjxhgVdNzclb+WiyuM4wKnJsjlgrvSekQCSwb5ArH4qoXe8EADjZ+rF7dh+o2k6RmSQ==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/cdn-location/-/cdn-location-101.1.2.tgz", + "integrity": "sha512-0ISdxZYjTVjAL+IkqcBKY1Wtha8A0+s+pjwNHTm+T5RkS4Jf8jGseIZXvBv+X93wws5jzmvsFZ6WPzMW8RUmgw==", "dependencies": { + "@streamr/utils": "101.1.2", "haversine": "^1.1.1" } }, "node_modules/@streamr/config": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/@streamr/config/-/config-5.3.7.tgz", - "integrity": "sha512-armwgqdp8qkDg6rYVeO5TGTROQ+SDd5XjetQZtR7mA/eh4jToEbdOMZAfyWPcQxI+wiLEUEIGdaBKgG/S+eZeA==" + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@streamr/config/-/config-5.4.0.tgz", + "integrity": "sha512-MdCBFffBRVPgGlaUN6kXfuNWXU20OuK+oQK4YKrdm7bkR/hyx3O78NbH8Mm/LhwQJhKVvl28s+WCr/TgH+uvrw==" }, "node_modules/@streamr/dht": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/dht/-/dht-100.2.4.tgz", - "integrity": "sha512-EBk2MpFuFOf7ID3a4mHemI7EudOAeSJX+evxkBAm+/GxkdGiWxdmLetwApnxxrC1y3Pi23wC5tRxV8uGaCj6bQ==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/dht/-/dht-101.1.2.tgz", + "integrity": "sha512-RkgXrOKy2Py0SRSc+NzwIkMSDbm4Ll84JtGUF0zxbofyMDIS7t8dxakwRULex1jsk7WnxBADSqiViZTKEqCIrg==", "dependencies": { "@js-sdsl/ordered-map": "^4.4.2", "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/autocertifier-client": "100.2.4", - "@streamr/cdn-location": "100.2.4", - "@streamr/geoip-location": "100.2.4", - "@streamr/proto-rpc": "100.2.4", - "@streamr/utils": "100.2.4", + "@streamr/autocertifier-client": "101.1.2", + "@streamr/cdn-location": "101.1.2", + "@streamr/geoip-location": "101.1.2", + "@streamr/proto-rpc": "101.1.2", + "@streamr/utils": "101.1.2", "eventemitter3": "^5.0.0", "heap": "^0.2.6", "ipaddr.js": "^2.0.1", "k-bucket": "^5.1.0", "lodash": "^4.17.21", - "lru-cache": "10.2.0", - "node-datachannel": "^0.8.0", + "lru-cache": "11.0.0", + "node-datachannel": "^0.10.1", "querystring": "0.2.1", - "uuid": "^9.0.1", + "uuid": "^10.0.0", "websocket": "^1.0.34", - "ws": "^8.16.0" + "ws": "^8.18.0" }, "optionalDependencies": { "bufferutil": "^4.0.8", "utf-8-validate": "^6.0.3" } }, - "node_modules/@streamr/geoip-location": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/geoip-location/-/geoip-location-100.2.4.tgz", - "integrity": "sha512-SonhDfhJu4qGlsvjEec3kyrFQh+g5RRfr+I1aDkbunbBnoKvJmCDDGYcw5ZG1jqIXNrR1ZA5zOwRlymcZXF/pw==", - "dependencies": { - "@streamr/utils": "100.2.4", - "long-timeout": "^0.1.1", - "mmdb-lib": "^2.1.0", - "tar": "^6.2.1", - "uuid": "^9.0.1" + "node_modules/@streamr/geoip-location": { + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/geoip-location/-/geoip-location-101.1.2.tgz", + "integrity": "sha512-UWLxbJGTVMvjE3QR0Fcfchj1M1WWRXNK48mlxPThbtZl8g8km1Bldz+t3G4LtDpDlKZIkddFoK+1iDglnh8P7w==", + "dependencies": { + "@streamr/utils": "101.1.2", + "eventemitter3": "^5.0.0", + "long-timeout": "^0.1.1", + "mmdb-lib": "^2.1.1", + "tar": "^7.4.3", + "uuid": "^10.0.0" + } + }, + "node_modules/@streamr/geoip-location/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@streamr/geoip-location/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@streamr/geoip-location/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@streamr/geoip-location/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@streamr/geoip-location/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@streamr/geoip-location/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@streamr/geoip-location/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@streamr/geoip-location/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@streamr/geoip-location/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@streamr/geoip-location/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "engines": { + "node": ">=18" } }, "node_modules/@streamr/proto-rpc": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/proto-rpc/-/proto-rpc-100.2.4.tgz", - "integrity": "sha512-Wnh7FJfIH409cXbEseItKqee6bL2kAM4TdKBpBqWG+0VpWyzhBNZosWL7qIAE9mRFK1IYpzfuwtNQMgy6toNAA==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/proto-rpc/-/proto-rpc-101.1.2.tgz", + "integrity": "sha512-D4eKPYKosumEBaFKhRNiV8dCwDLqZ1WlJO/7BtD57VVObeue8WukKPq/ih0RFJF2U+PbRDwvw5I+BqUnT/jx4Q==", "dependencies": { "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/utils": "100.2.4", + "@streamr/utils": "101.1.2", "eventemitter3": "^5.0.0", "lodash": "^4.17.21", - "uuid": "^9.0.1" + "uuid": "^10.0.0" }, "optionalDependencies": { "bufferutil": "^4.0.8", "utf-8-validate": "^6.0.3" } }, - "node_modules/@streamr/protocol": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/protocol/-/protocol-100.2.4.tgz", - "integrity": "sha512-/tvLb7abtN0DrPB9uuqkBxueF+WrPU4fWyUwmkzuRgnSeg72eQ9EPirbou4UY7Gew04Aw03M7zhvpVWYT6EFfw==", - "dependencies": { - "@streamr/utils": "100.2.4" - } - }, "node_modules/@streamr/sdk": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/sdk/-/sdk-100.2.4.tgz", - "integrity": "sha512-TEKI11bqgPkBjllbdwsHcOOvo3E8kTI9t1uhnPLxCUVPfABcnuyTrNHikarlMluHGxui4YUD5gWKTiceT1nrwg==", - "dependencies": { - "@babel/runtime": "^7.24.0", - "@babel/runtime-corejs3": "^7.24.0", - "@ethersproject/abi": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/contracts": "^5.5.0", - "@ethersproject/providers": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/wallet": "^5.5.0", - "@ethersproject/web": "^5.5.0", - "@lit-protocol/core": "^2.2.5", - "@lit-protocol/uint8arrays": "^3.2.3", - "@streamr/config": "^5.3.7", - "@streamr/dht": "100.2.4", - "@streamr/protocol": "100.2.4", - "@streamr/trackerless-network": "100.2.4", - "@streamr/utils": "100.2.4", - "core-js": "^3.36.0", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/sdk/-/sdk-101.1.2.tgz", + "integrity": "sha512-l8ExwUh++RRg9GAX/54+pvjkclKC1WGTURHe3ORESlhMxHclfwp5W9oSo6ZDHOgCY5EjvNMMM1NlzihHLsR1Kg==", + "dependencies": { + "@babel/runtime": "^7.25.6", + "@babel/runtime-corejs3": "^7.25.6", + "@lit-protocol/core": "2.2.5", + "@lit-protocol/uint8arrays": "^6.4.10", + "@protobuf-ts/runtime": "^2.8.2", + "@protobuf-ts/runtime-rpc": "^2.8.2", + "@streamr/config": "^5.3.13", + "@streamr/dht": "101.1.2", + "@streamr/proto-rpc": "101.1.2", + "@streamr/trackerless-network": "101.1.2", + "@streamr/utils": "101.1.2", + "core-js": "^3.38.1", "env-paths": "^2.2.1", + "ethers": "^6.13.0", "eventemitter3": "^5.0.0", "idb": "^8.0.0", "lit-siwe": "^1.1.8", @@ -2686,71 +3220,78 @@ "quick-lru": "^7.0.0", "readable-stream": "^4.5.2", "reflect-metadata": "^0.2.1", - "sha3": "^2.1.4", "sqlite": "^5.1.1", "sqlite3": "^5.1.7", - "ts-essentials": "^9.4.1", + "ts-essentials": "^10.0.2", "ts-toolbelt": "^9.6.0", "tsyringe": "^4.8.0", - "uuid": "^9.0.1" + "uuid": "^10.0.0", + "zod": "^3.22.4" }, "optionalDependencies": { "bufferutil": "^4.0.8", "utf-8-validate": "^6.0.3" } }, - "node_modules/@streamr/sdk/node_modules/@lit-protocol/uint8arrays": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-3.2.6.tgz", - "integrity": "sha512-Qfq9tr0JlkplICUr+S6RSUd8m+qj3onz9rBdZYX7lu0r4E1XK/zOR2eXmLNY/DR8HpvrinjD2IgtQRjwqjKcGQ==", - "dependencies": { - "@ethersproject/abstract-provider": "5.7.0", - "@lit-protocol/accs-schemas": "0.0.6", - "ethers": "^5.7.1", - "jszip": "^3.10.1", - "siwe": "^2.0.5", - "siwe-recap": "0.0.2-alpha.0", - "tslib": "^2.3.0" + "node_modules/@streamr/sdk/node_modules/ts-essentials": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-10.0.2.tgz", + "integrity": "sha512-Xwag0TULqriaugXqVdDiGZ5wuZpqABZlpwQ2Ho4GDyiu/R2Xjkp/9+zcFxL7uzeLl/QCPrflnvpVYyS3ouT7Zw==", + "peerDependencies": { + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@streamr/test-utils": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/test-utils/-/test-utils-100.2.4.tgz", - "integrity": "sha512-jkZR6Rj6pGNDxXHm40hzCaxPhIB43pxmB1r/NvmuzKsd17YZP+Xc9yCi6IKZioR5MkHRron3wgATtugDLQdvNA==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/test-utils/-/test-utils-101.1.2.tgz", + "integrity": "sha512-g/yZ8ETXivoR+NrKbL2aSb83t6jg0CcRkXQUg1UduYHaX8YPyyOLX1kOJ0h6EfVFXQJRI4by55fHY/Nqi6lxhw==", "dependencies": { - "@ethersproject/wallet": "^5.5.0", - "@streamr/utils": "100.2.4", + "@streamr/utils": "101.1.2", "cors": "^2.8.5", - "express": "^4.19.2" + "ethers": "^6.13.0", + "express": "^4.19.2", + "node-fetch": "^2.7.0" } }, "node_modules/@streamr/trackerless-network": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/trackerless-network/-/trackerless-network-100.2.4.tgz", - "integrity": "sha512-PHjIZG4uV57IptZ9wnAMXJt1O7gHCiZsdCYhBFt5UE3EAiXx3gyZIpYTQpZXesSUATN7seedDmjsqjpmTQjCcw==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/trackerless-network/-/trackerless-network-101.1.2.tgz", + "integrity": "sha512-Cag1qql64IIvblrJFIAsiT8vR8PRHH2i7JoTarpwWLI3RQRc/z4YX50zuHcybQ36YWKTyRkjG3fgnGTKEA2XNg==", "dependencies": { "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/dht": "100.2.4", - "@streamr/proto-rpc": "100.2.4", - "@streamr/protocol": "100.2.4", - "@streamr/test-utils": "100.2.4", - "@streamr/utils": "100.2.4", + "@streamr/dht": "101.1.2", + "@streamr/proto-rpc": "101.1.2", + "@streamr/test-utils": "101.1.2", + "@streamr/utils": "101.1.2", "eventemitter3": "^5.0.0", "lodash": "^4.17.21", - "uuid": "^9.0.1", - "yallist": "^4.0.0" + "uuid": "^10.0.0", + "yallist": "^5.0.0" + } + }, + "node_modules/@streamr/trackerless-network/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "engines": { + "node": ">=18" } }, "node_modules/@streamr/utils": { - "version": "100.2.4", - "resolved": "https://registry.npmjs.org/@streamr/utils/-/utils-100.2.4.tgz", - "integrity": "sha512-G8wfutp9twKHGp9KfhMl37eAoe5Nje4ucCcCfaAIQew+q6hP+SC5xKxKfPepDHtN+evtLIsKEdeVFbzUmfcvYg==", + "version": "101.1.2", + "resolved": "https://registry.npmjs.org/@streamr/utils/-/utils-101.1.2.tgz", + "integrity": "sha512-Y5sfGNAnfvrVuQuLe6RtGn7b5kNvqdTU2Esr+rnRPeR7KNbR7Nl3F55rLpD8DZef4O1rGtpNlcXqWE8MOg9lZg==", "dependencies": { "eventemitter3": "^5.0.0", "lodash": "^4.17.21", - "pino": "^8.19.0", - "pino-pretty": "^10.3.1", + "pino": "^9.3.2", + "pino-pretty": "^11.2.2", "secp256k1": "^5.0.0", "sha3": "^2.1.4" } @@ -2863,11 +3404,6 @@ "@types/node": "*" } }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -3395,7 +3931,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, "engines": { "node": ">=8" } @@ -3537,9 +4072,9 @@ } }, "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" }, "node_modules/babel-jest": { "version": "29.7.0", @@ -3754,9 +4289,9 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -3766,7 +4301,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -4212,9 +4747,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -4225,9 +4760,9 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-js": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", - "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz", + "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -4235,9 +4770,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz", - "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz", + "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -4292,7 +4827,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4512,6 +5046,11 @@ "node": ">=6.0.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4571,13 +5110,12 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "devOptional": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -4961,13 +5499,13 @@ } }, "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "version": "6.13.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz", + "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "url": "https://github.com/sponsors/ethers-io/" }, { "type": "individual", @@ -4975,36 +5513,54 @@ } ], "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/ethers/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/ethers/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/event-emitter": { @@ -5094,36 +5650,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -5291,12 +5847,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -5356,6 +5912,32 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -5418,6 +6000,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -6072,7 +6655,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true, "engines": { "node": ">=8" } @@ -6152,8 +6734,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "devOptional": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isstream": { "version": "0.1.2", @@ -6226,6 +6807,20 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -7091,11 +7686,11 @@ "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==" }, "node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/make-dir": { @@ -7187,9 +7782,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -7411,9 +8009,9 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/mmdb-lib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mmdb-lib/-/mmdb-lib-2.1.0.tgz", - "integrity": "sha512-tdDTZmnI5G4UoSctv2KxM/3VQt2XRj4CmR5R4VsAWsOUcS3LysHR34wtixWm/pXxXdkBDuN92auxkC0T2+qd1Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mmdb-lib/-/mmdb-lib-2.1.1.tgz", + "integrity": "sha512-yx8H/1H5AfnufiLnzzPqPf4yr/dKU9IFT1rPVwSkrKWHsQEeVVd6+X+L0nUbXhlEFTu3y/7hu38CFmEVgzvyeg==", "engines": { "node": ">=10", "npm": ">=6" @@ -7537,14 +8135,13 @@ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" }, "node_modules/node-datachannel": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.8.0.tgz", - "integrity": "sha512-05vYthhjESfO5qumWRbqHI1PN71rc19DJjc14ofOLapJrTCnmhx0JYw0G5wcL56b57uHQP9WjEak3+XklrB+Og==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.10.1.tgz", + "integrity": "sha512-rhxb1iQgbFLY6HMt3W6Xcs8Q1k4jIMgI7KduXcYvIn2UMKYK6e/eegya2caF/+XYAqTeo1743gOr11CXvJ/DJA==", "hasInstallScript": true, "dependencies": { "node-domexception": "^2.0.1", - "prebuild-install": "^7.0.1", - "rollup": "^4.14.1" + "prebuild-install": "^7.0.1" }, "engines": { "node": ">=16.0.0" @@ -7709,9 +8306,12 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7907,6 +8507,11 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", @@ -7971,7 +8576,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -7982,10 +8586,38 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/path-type": { "version": "4.0.0", @@ -8025,53 +8657,52 @@ } }, "node_modules/pino": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", - "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.2.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^3.0.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.6.0" + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "dependencies": { - "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, "node_modules/pino-pretty": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.3.1.tgz", - "integrity": "sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.3.0.tgz", + "integrity": "sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==", "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", - "fast-copy": "^3.0.0", + "fast-copy": "^3.0.2", "fast-safe-stringify": "^2.1.1", "help-me": "^5.0.0", "joycon": "^3.1.1", "minimist": "^1.2.6", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", + "pino-abstract-transport": "^2.0.0", "pump": "^3.0.0", "readable-stream": "^4.0.0", "secure-json-parse": "^2.4.0", - "sonic-boom": "^3.0.0", + "sonic-boom": "^4.0.1", "strip-json-comments": "^3.1.1" }, "bin": { @@ -8079,9 +8710,9 @@ } }, "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==" }, "node_modules/pirates": { "version": "4.0.6", @@ -8230,9 +8861,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==" }, "node_modules/promise-inflight": { "version": "1.0.1", @@ -8325,11 +8956,11 @@ ] }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -8544,14 +9175,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -8642,40 +9265,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", - "fsevents": "~2.3.2" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8719,9 +9308,9 @@ ] }, "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", "engines": { "node": ">=10" } @@ -8781,9 +9370,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -8816,6 +9405,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -8827,14 +9424,14 @@ "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -8847,16 +9444,16 @@ "optional": true }, "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8884,7 +9481,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -8896,7 +9492,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -8974,11 +9569,11 @@ "dev": true }, "node_modules/siwe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/siwe/-/siwe-2.1.4.tgz", - "integrity": "sha512-Dke1Qqa3mgiLm3vjqw/+SQ7dl8WV/Pfk3AlQBF94cBFydTYhztngqYrikzE3X5UTsJ6565dfVbQptszsuYZNYg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/siwe/-/siwe-2.3.2.tgz", + "integrity": "sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==", "dependencies": { - "@spruceid/siwe-parser": "*", + "@spruceid/siwe-parser": "^2.1.2", "@stablelib/random": "^1.0.1", "uri-js": "^4.4.1", "valid-url": "^1.0.9" @@ -8987,17 +9582,15 @@ "ethers": "^5.6.8 || ^6.0.8" } }, - "node_modules/siwe-recap": { - "version": "0.0.2-alpha.0", - "resolved": "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz", - "integrity": "sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==", + "node_modules/siwe/node_modules/@spruceid/siwe-parser": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz", + "integrity": "sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==", "dependencies": { - "canonicalize": "^2.0.0", - "multiformats": "^11.0.2", - "siwe": "^2.1.4" - }, - "peerDependencies": { - "ethers": "^5.5.1" + "@noble/hashes": "^1.1.2", + "apg-js": "^4.3.0", + "uri-js": "^4.4.1", + "valid-url": "^1.0.9" } }, "node_modules/slash": { @@ -9067,9 +9660,9 @@ "optional": true }, "node_modules/sonic-boom": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", - "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -9245,7 +9838,20 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -9259,7 +9865,18 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "devOptional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9408,9 +10025,9 @@ "dev": true }, "node_modules/thread-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", - "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "dependencies": { "real-require": "^0.2.0" } @@ -9572,9 +10189,9 @@ "integrity": "sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==" }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -9732,7 +10349,6 @@ "version": "5.1.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", - "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9837,9 +10453,9 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -9970,7 +10586,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "devOptional": true, "dependencies": { "isexe": "^2.0.0" }, @@ -10007,6 +10622,23 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -10026,9 +10658,9 @@ } }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { "node": ">=10.0.0" }, @@ -10122,6 +10754,14 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index b95da33..26b466f 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,10 @@ "author": "Streamr Network AG ", "dependencies": { "@streamr/config": "^5.3.7", - "@streamr/dht": "100.2.4", - "@streamr/protocol": "100.2.4", - "@streamr/sdk": "100.2.4", - "@streamr/trackerless-network": "100.2.4", - "@streamr/utils": "100.2.4", + "@streamr/dht": "101.1.2", + "@streamr/sdk": "101.1.2", + "@streamr/trackerless-network": "101.1.2", + "@streamr/utils": "101.1.2", "@types/node-fetch": "^2.6.3", "class-validator": "^0.14.1", "cors": "^2.8.5", diff --git a/src/StreamrClientFacade.ts b/src/StreamrClientFacade.ts index 760b4c6..20f25f4 100644 --- a/src/StreamrClientFacade.ts +++ b/src/StreamrClientFacade.ts @@ -76,16 +76,16 @@ export class StreamrClientFacade { return stream.getMetadata() } - on(name: 'createStream', listener: (payload: StreamCreationEvent) => void): void { + on(name: 'streamCreated', listener: (payload: StreamCreationEvent) => void): void { this.client.on(name, listener) } - off(name: 'createStream', listener: (payload: StreamCreationEvent) => void): void { + off(name: 'streamCreated', listener: (payload: StreamCreationEvent) => void): void { this.client.off(name, listener) } async getNetworkNodeFacade(): Promise { - const node = (await this.client.getNode()) as NetworkNode + const node = (await this.client.getNode().getNode()) as NetworkNode return new NetworkNodeFacade(node, this.config) } diff --git a/src/api/MessageResolver.ts b/src/api/MessageResolver.ts index b615e7c..f16b3da 100644 --- a/src/api/MessageResolver.ts +++ b/src/api/MessageResolver.ts @@ -1,9 +1,8 @@ +import { binaryToUtf8, toStreamID } from '@streamr/utils' import { Arg, Query, Resolver } from 'type-graphql' import { Inject, Service } from 'typedi' import { ContentType, Message } from '../entities/Message' import { MessageRepository } from '../repository/MessageRepository' -import { toStreamID } from '@streamr/protocol' -import { binaryToUtf8 } from '@streamr/utils' @Resolver() @Service() diff --git a/src/api/NodeResolver.ts b/src/api/NodeResolver.ts index bcc2458..3468474 100644 --- a/src/api/NodeResolver.ts +++ b/src/api/NodeResolver.ts @@ -1,5 +1,5 @@ -import { StreamPartIDUtils, toStreamID } from '@streamr/protocol' import { DhtAddress } from '@streamr/sdk' +import { StreamPartIDUtils, toStreamID } from '@streamr/utils' import { DeepOmit } from 'ts-essentials' import { Arg, FieldResolver, Int, Query, Resolver, Root } from 'type-graphql' import { Inject, Service } from 'typedi' diff --git a/src/crawler/Crawler.ts b/src/crawler/Crawler.ts index 9ee1d0b..0395e9a 100644 --- a/src/crawler/Crawler.ts +++ b/src/crawler/Crawler.ts @@ -1,13 +1,13 @@ import { PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht' -import { StreamID, StreamPartID, StreamPartIDUtils, toStreamPartID } from '@streamr/protocol' import { DhtAddress, Stream, StreamCreationEvent, StreamMetadata, StreamPermission } from '@streamr/sdk' import { NodeInfo } from '@streamr/trackerless-network' -import { Logger, binaryToHex, wait } from '@streamr/utils' +import { Logger, StreamID, StreamPartID, StreamPartIDUtils, binaryToHex, toStreamPartID, wait } from '@streamr/utils' import { difference, range, sortBy } from 'lodash' import pLimit from 'p-limit' import { Inject, Service } from 'typedi' import { CONFIG_TOKEN, Config } from '../Config' import { StreamrClientFacade } from '../StreamrClientFacade' +import { MessageRepository, convertStreamMessageToMessageRow } from '../repository/MessageRepository' import { NodeRepository } from '../repository/NodeRepository' import { StreamRepository } from '../repository/StreamRepository' import { collect, retry } from '../utils' @@ -15,7 +15,6 @@ import { NetworkNodeFacade } from './NetworkNodeFacade' import { MAX_SUBSCRIPTION_COUNT, SubscribeGate } from './SubscribeGate' import { Topology } from './Topology' import { getMessageRate } from './messageRate' -import { MessageRepository, convertStreamMessageToMessageRow } from '../repository/MessageRepository' const logger = new Logger(module) @@ -134,7 +133,7 @@ export class Crawler { const networkNodeFacade = await this.client.getNetworkNodeFacade() this.subscribeGate = new SubscribeGate(networkNodeFacade) this.onStreamCreated = (payload) => this.createNewStreamListener(payload, networkNodeFacade) - this.client.on('createStream', this.onStreamCreated) + this.client.on('streamCreated', this.onStreamCreated) let iterationIndex = 0 // eslint-disable-next-line no-constant-condition while (true) { @@ -290,7 +289,7 @@ export class Crawler { stop(): void { logger.info('Stop') - this.client.off('createStream', this.onStreamCreated!) + this.client.off('streamCreated', this.onStreamCreated!) this.subscribeGate!.destroy() } } diff --git a/src/crawler/NetworkNodeFacade.ts b/src/crawler/NetworkNodeFacade.ts index d932f26..6205dfc 100644 --- a/src/crawler/NetworkNodeFacade.ts +++ b/src/crawler/NetworkNodeFacade.ts @@ -1,6 +1,6 @@ import { PeerDescriptor } from '@streamr/dht' -import { StreamMessage, StreamPartID } from '@streamr/sdk' -import { NetworkNode, NodeInfo, streamPartIdToDataKey } from '@streamr/trackerless-network' +import { NetworkNode, NodeInfo, StreamMessage, streamPartIdToDataKey } from '@streamr/trackerless-network' +import { StreamPartID } from '@streamr/utils' import EventEmitter3 from 'eventemitter3' import { Config } from '../Config' @@ -52,7 +52,7 @@ export class NetworkNodeFacade { async fetchStreamPartEntryPoints(streamPartId: StreamPartID): Promise { const key = streamPartIdToDataKey(streamPartId) - return (await this.node.stack.getLayer0Node().fetchDataFromDht(key)) + return (await this.node.stack.getControlLayerNode().fetchDataFromDht(key)) .filter((entry) => !entry.deleted) .map((entry) => PeerDescriptor.fromBinary(entry.data!.value)) } diff --git a/src/crawler/Topology.ts b/src/crawler/Topology.ts index ee13231..dd289e9 100644 --- a/src/crawler/Topology.ts +++ b/src/crawler/Topology.ts @@ -1,8 +1,7 @@ import { getNodeIdFromPeerDescriptor } from '@streamr/dht' -import { StreamPartIDUtils } from '@streamr/protocol' import { DhtAddress, StreamPartID } from '@streamr/sdk' import { NodeInfo } from '@streamr/trackerless-network' -import { Multimap, numberToIpv4 } from '@streamr/utils' +import { Multimap, numberToIpv4, StreamPartIDUtils } from '@streamr/utils' export interface Node { id: DhtAddress diff --git a/src/crawler/messageRate.ts b/src/crawler/messageRate.ts index d87b69c..44f7b3d 100644 --- a/src/crawler/messageRate.ts +++ b/src/crawler/messageRate.ts @@ -1,6 +1,5 @@ -import { StreamID, toStreamPartID } from '@streamr/protocol' -import { StreamMessage } from '@streamr/sdk' -import { Gate, Logger, wait } from '@streamr/utils' +import { StreamMessage } from '@streamr/trackerless-network' +import { Gate, Logger, StreamID, toStreamPartID, wait } from '@streamr/utils' import { sampleSize } from 'lodash' import { Config } from '../Config' import { NetworkNodeFacade } from './NetworkNodeFacade' @@ -30,10 +29,11 @@ export const getMessageRate = async ( let bytesSum = 0 let sampleMessage: StreamMessage | undefined = undefined const messageListener = (msg: StreamMessage) => { - if (msg.getStreamId() === streamId) { + if ((msg.messageId!.streamId === streamId) && (msg.body.oneofKind === 'contentMessage')) { messageCount++ - bytesSum += msg.content.length - if ((sampleMessage === undefined) && isPublicStream && (msg.content.length <= MAX_MESSAGE_SIZE)) { + const content = msg.body.contentMessage.content + bytesSum += content.length + if ((sampleMessage === undefined) && isPublicStream && (content.length <= MAX_MESSAGE_SIZE)) { sampleMessage = msg } } diff --git a/src/repository/MessageRepository.ts b/src/repository/MessageRepository.ts index 507cd1b..c9fcb12 100644 --- a/src/repository/MessageRepository.ts +++ b/src/repository/MessageRepository.ts @@ -1,8 +1,8 @@ +import { StreamMessage, ContentType as StreamMessageContentType } from '@streamr/trackerless-network' +import { StreamID } from '@streamr/utils' import { Inject, Service } from 'typedi' -import { ConnectionPool } from './ConnectionPool' -import { StreamID } from '@streamr/protocol' import { ContentType } from '../entities/Message' -import { StreamMessage, ContentType as StreamMessageContentType } from '@streamr/protocol' +import { ConnectionPool } from './ConnectionPool' export interface MessageRow { content: Uint8Array @@ -10,16 +10,19 @@ export interface MessageRow { } export const convertStreamMessageToMessageRow = (msg: StreamMessage): MessageRow => { + if (msg.body.oneofKind !== 'contentMessage') { + throw new Error('Assertion failed: must be content message') + } let contentType - if (msg.contentType === StreamMessageContentType.JSON) { + if (msg.body.contentMessage.contentType === StreamMessageContentType.JSON) { contentType = ContentType.JSON - } else if (msg.contentType === StreamMessageContentType.BINARY) { + } else if (msg.body.contentMessage.contentType === StreamMessageContentType.BINARY) { contentType = ContentType.BINARY } else { - throw new Error(`Assertion failed: unknown content type ${msg.contentType}`) + throw new Error(`Assertion failed: unknown content type ${msg.body.contentMessage.contentType}`) } return { - content: msg.content, + content: msg.body.contentMessage.content, contentType } } diff --git a/test/APIServer.test.ts b/test/APIServer.test.ts index e61d649..8bb9fa8 100644 --- a/test/APIServer.test.ts +++ b/test/APIServer.test.ts @@ -1,20 +1,18 @@ import 'reflect-metadata' +import { createRandomDhtAddress, DhtAddress } from '@streamr/dht' +import { Multimap, StreamID, StreamPartID, StreamPartIDUtils, utf8ToBinary } from '@streamr/utils' import { range, without } from 'lodash' import Container from 'typedi' import { APIServer } from '../src/api/APIServer' import { CONFIG_TOKEN } from '../src/Config' -import { StreamrClientFacade } from '../src/StreamrClientFacade' +import { ContentType } from '../src/entities/Message' +import { MessageRepository } from '../src/repository/MessageRepository' +import { NodeRepository } from '../src/repository/NodeRepository' import { StreamRepository } from '../src/repository/StreamRepository' +import { StreamrClientFacade } from '../src/StreamrClientFacade' import { createDatabase, queryAPI } from '../src/utils' import { dropTestDatabaseIfExists, TEST_DATABASE_NAME } from './utils' -import { NodeRepository } from '../src/repository/NodeRepository' -import { DhtAddress, createRandomDhtAddress } from '@streamr/dht' -import { Multimap, utf8ToBinary } from '@streamr/utils' -import { StreamPartID, StreamPartIDUtils } from '@streamr/protocol' -import { MessageRepository } from '../src/repository/MessageRepository' -import { ContentType } from '../src/entities/Message' -import { StreamID } from '@streamr/protocol' const storeTestTopology = async ( streamParts: { diff --git a/test/Crawler.test.ts b/test/Crawler.test.ts index 14d6bfc..0ae771b 100644 --- a/test/Crawler.test.ts +++ b/test/Crawler.test.ts @@ -1,8 +1,8 @@ import { DhtAddress, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht' import { NodeInfo } from '@streamr/trackerless-network' +import { StreamPartIDUtils } from '@streamr/utils' import { crawlTopology } from '../src/crawler/Crawler' import { createTestPeerDescriptor } from './utils' -import { StreamPartIDUtils } from '@streamr/protocol' const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0') diff --git a/test/MessageRepository.test.ts b/test/MessageRepository.test.ts index 9088175..f6a8e10 100644 --- a/test/MessageRepository.test.ts +++ b/test/MessageRepository.test.ts @@ -1,13 +1,12 @@ import 'reflect-metadata' +import { StreamID, utf8ToBinary } from '@streamr/utils' import Container from 'typedi' import { CONFIG_TOKEN } from '../src/Config' +import { ContentType } from '../src/entities/Message' +import { MessageRepository, MessageRow } from '../src/repository/MessageRepository' import { createDatabase } from '../src/utils' import { TEST_DATABASE_NAME, dropTestDatabaseIfExists } from './utils' -import { StreamID } from '@streamr/protocol' -import { MessageRepository, MessageRow } from '../src/repository/MessageRepository' -import { utf8ToBinary } from '@streamr/utils' -import { ContentType } from '../src/entities/Message' const createTestMessage = (msg: { content: Uint8Array, contentType: ContentType }): MessageRow => { return { diff --git a/test/Topology.test.ts b/test/Topology.test.ts index d5717c8..1b2fc5c 100644 --- a/test/Topology.test.ts +++ b/test/Topology.test.ts @@ -1,7 +1,7 @@ import { PeerDescriptor, createRandomDhtAddress, getNodeIdFromPeerDescriptor, getRawFromDhtAddress } from '@streamr/dht' -import { Topology } from '../src/crawler/Topology' -import { StreamPartIDUtils } from '@streamr/protocol' +import { StreamPartIDUtils } from '@streamr/utils' import { range } from 'lodash' +import { Topology } from '../src/crawler/Topology' const STREAM_PART_ID_1 = StreamPartIDUtils.parse('stream#1') const STREAM_PART_ID_2 = StreamPartIDUtils.parse('stream#2') diff --git a/test/end-to-end.test.ts b/test/end-to-end.test.ts index 2ca8fcb..1b911ec 100644 --- a/test/end-to-end.test.ts +++ b/test/end-to-end.test.ts @@ -1,20 +1,19 @@ import 'reflect-metadata' import { DhtAddress, NodeType, createRandomDhtAddress, getDhtAddressFromRaw, getRawFromDhtAddress } from '@streamr/dht' -import { StreamPartID, toStreamPartID } from '@streamr/protocol' import StreamrClient, { CONFIG_TEST, NetworkNodeType, PeerDescriptor, StreamID, StreamPermission, StreamrClientConfig } from '@streamr/sdk' import { NetworkNode, createNetworkNode } from '@streamr/trackerless-network' -import { setAbortableInterval, waitForCondition } from '@streamr/utils' +import { StreamPartID, setAbortableInterval, toStreamPartID, waitForCondition } from '@streamr/utils' import { sample, uniq, without } from 'lodash' import Container from 'typedi' import { CONFIG_TOKEN } from '../src/Config' import { APIServer } from '../src/api/APIServer' import { Crawler } from '../src/crawler/Crawler' +import { Message } from '../src/entities/Message' import { Node } from '../src/entities/Node' import { Stream } from '../src/entities/Stream' import { createDatabase, queryAPI } from '../src/utils' import { TEST_DATABASE_NAME, dropTestDatabaseIfExists } from './utils' -import { Message } from '../src/entities/Message' const PUBLISHER_PRIVATE_KEY = '0x0000000000000000000000000000000000000000000000000000000000000001' const SUBSCRIBER_PRIVATE_KEY = '0x0000000000000000000000000000000000000000000000000000000000000002' diff --git a/test/messageRate.test.ts b/test/messageRate.test.ts index 9cbf68b..c281e98 100644 --- a/test/messageRate.test.ts +++ b/test/messageRate.test.ts @@ -1,5 +1,5 @@ -import { StreamMessage, toStreamID, toStreamPartID } from '@streamr/protocol' -import { Gate } from '@streamr/utils' +import { StreamMessage } from '@streamr/trackerless-network' +import { Gate, toStreamID, toStreamPartID } from '@streamr/utils' import { range } from 'lodash' import { MAX_PARTITION_COUNT, getMessageRate } from '../src/crawler/messageRate' @@ -8,8 +8,15 @@ const CONTENT_LENGTH = 100 const createMockMessage = (): Partial => { return { - getStreamId: () => STREAM_ID, - content: new Uint8Array(range(CONTENT_LENGTH)) + messageId: { + streamId: STREAM_ID, + } as any, + body: { + oneofKind: 'contentMessage', + contentMessage: { + content: new Uint8Array(range(CONTENT_LENGTH)) + } as any + } } } From babaf755c71df27a93d599cc122f407a09e09af4 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Thu, 17 Oct 2024 18:24:50 +0300 Subject: [PATCH 2/7] version update --- package-lock.json | 487 +++++++------------------------ package.json | 11 +- src/StreamrClientFacade.ts | 4 +- src/crawler/Crawler.ts | 29 +- src/crawler/NetworkNodeFacade.ts | 27 +- src/crawler/Topology.ts | 12 +- test/APIServer.test.ts | 22 +- test/Crawler.test.ts | 32 +- test/NetworkNodeFacade.test.ts | 90 ++++++ test/Topology.test.ts | 23 +- test/end-to-end.test.ts | 10 +- test/utils.ts | 4 +- 12 files changed, 305 insertions(+), 446 deletions(-) create mode 100644 test/NetworkNodeFacade.test.ts diff --git a/package-lock.json b/package-lock.json index 3e50730..911d465 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,10 @@ "version": "1.0.0", "dependencies": { "@streamr/config": "^5.3.7", - "@streamr/dht": "101.1.2", - "@streamr/sdk": "101.1.2", - "@streamr/trackerless-network": "101.1.2", - "@streamr/utils": "101.1.2", + "@streamr/dht": "102.0.0-beta.0", + "@streamr/sdk": "102.0.0-beta.0", + "@streamr/trackerless-network": "102.0.0-beta.0", + "@streamr/utils": "102.0.0-beta.0", "@types/node-fetch": "^2.6.3", "class-validator": "^0.14.1", "cors": "^2.8.5", @@ -26,6 +26,7 @@ "node-fetch": "^2.6.7", "p-limit": "3.1.0", "reflect-metadata": "^0.2.1", + "semver": "^7.6.3", "ts-essentials": "^9.4.1", "type-graphql": "^2.0.0-beta.6", "typedi": "^0.10.0" @@ -67,7 +68,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -80,7 +80,6 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -93,7 +92,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -105,7 +103,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -119,7 +116,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -127,14 +123,12 @@ "node_modules/@babel/code-frame/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -143,7 +137,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -152,7 +145,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -164,7 +156,6 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -173,7 +164,6 @@ "version": "7.23.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -203,7 +193,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -212,7 +201,6 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, "dependencies": { "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", @@ -227,7 +215,6 @@ "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -243,7 +230,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -252,7 +238,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -260,14 +245,12 @@ "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -276,7 +259,6 @@ "version": "7.23.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -289,7 +271,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -301,7 +282,6 @@ "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -313,7 +293,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -332,7 +311,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -341,7 +319,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -353,7 +330,6 @@ "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -365,7 +341,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -374,7 +349,6 @@ "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -383,7 +357,6 @@ "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -392,7 +365,6 @@ "version": "7.23.9", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", - "dev": true, "dependencies": { "@babel/template": "^7.23.9", "@babel/traverse": "^7.23.9", @@ -406,7 +378,6 @@ "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -420,7 +391,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -432,7 +402,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -446,7 +415,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -454,14 +422,12 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -470,7 +436,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -479,7 +444,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -491,7 +455,6 @@ "version": "7.23.9", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -503,7 +466,6 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -515,7 +477,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -527,7 +488,6 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -539,7 +499,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -551,7 +510,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -563,7 +521,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -578,7 +535,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -590,7 +546,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -602,7 +557,6 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -614,7 +568,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -626,7 +579,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -638,7 +590,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -650,7 +601,6 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -665,7 +615,6 @@ "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -703,7 +652,6 @@ "version": "7.23.9", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.23.9", @@ -717,7 +665,6 @@ "version": "7.23.9", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -738,7 +685,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, "engines": { "node": ">=4" } @@ -747,7 +693,6 @@ "version": "7.23.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", - "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -760,14 +705,13 @@ "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -779,7 +723,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1723,7 +1667,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1739,7 +1682,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -1748,7 +1690,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1761,7 +1702,6 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1774,7 +1714,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -1786,7 +1725,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -1801,7 +1739,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -1813,7 +1750,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, "engines": { "node": ">=8" } @@ -1821,14 +1757,12 @@ "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, "engines": { "node": ">=8" } @@ -1837,7 +1771,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -1854,7 +1787,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -1901,7 +1833,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -1916,7 +1847,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -1929,7 +1859,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, "dependencies": { "jest-get-type": "^29.6.3" }, @@ -1941,7 +1870,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -1958,7 +1886,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -1973,7 +1900,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -2016,7 +1942,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2028,7 +1953,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -2042,7 +1966,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -2057,7 +1980,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -2072,7 +1994,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -2098,7 +2019,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -2115,7 +2035,6 @@ "version": "0.3.4", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2129,7 +2048,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -2138,7 +2056,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -2146,14 +2063,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.23", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2927,14 +2842,12 @@ "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, "dependencies": { "type-detect": "4.0.8" } @@ -2943,7 +2856,6 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } @@ -2984,23 +2896,23 @@ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" }, "node_modules/@streamr/autocertifier-client": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/autocertifier-client/-/autocertifier-client-101.1.2.tgz", - "integrity": "sha512-jiVjBlYJxa27HvaV0+i52dHnCZi4JfCq6JUk2H/f4h11fSQk8LpOTeYRrW3Gs5cgfULNEkEM1RNHOj4sRLDr+Q==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/autocertifier-client/-/autocertifier-client-102.0.0-beta.0.tgz", + "integrity": "sha512-5qgHQLG3Og0YKa9ZfYHPbO5x4VFajoCDGcyRTh1im0evuVMIUq+/8oIMGPzpldVkGLUg6RhcxXMXrSx4OqX3mA==", "dependencies": { "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/utils": "101.1.2", + "@streamr/utils": "102.0.0-beta.0", "eventemitter3": "^5.0.0", "node-forge": "^1.3.1", "request": "^2.88.2" } }, "node_modules/@streamr/cdn-location": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/cdn-location/-/cdn-location-101.1.2.tgz", - "integrity": "sha512-0ISdxZYjTVjAL+IkqcBKY1Wtha8A0+s+pjwNHTm+T5RkS4Jf8jGseIZXvBv+X93wws5jzmvsFZ6WPzMW8RUmgw==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/cdn-location/-/cdn-location-102.0.0-beta.0.tgz", + "integrity": "sha512-B8aO+nNLpxfYxc2oLhvkFreU8iGFQiDpNa+jfZmZ854+DL7mQBJ3+/uvtqUf7NfVgXSE3uB1qRLd5x4YWRGA0g==", "dependencies": { - "@streamr/utils": "101.1.2", + "@streamr/utils": "102.0.0-beta.0", "haversine": "^1.1.1" } }, @@ -3010,24 +2922,24 @@ "integrity": "sha512-MdCBFffBRVPgGlaUN6kXfuNWXU20OuK+oQK4YKrdm7bkR/hyx3O78NbH8Mm/LhwQJhKVvl28s+WCr/TgH+uvrw==" }, "node_modules/@streamr/dht": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/dht/-/dht-101.1.2.tgz", - "integrity": "sha512-RkgXrOKy2Py0SRSc+NzwIkMSDbm4Ll84JtGUF0zxbofyMDIS7t8dxakwRULex1jsk7WnxBADSqiViZTKEqCIrg==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/dht/-/dht-102.0.0-beta.0.tgz", + "integrity": "sha512-foOeC8jU2WgTu4JROoc5Tt5NsKK8T69trjaOAlaNPEe+j19GOjp7jB3O9gGW/sXq55qL4oX4JdBw4b5XRDK3Wg==", "dependencies": { "@js-sdsl/ordered-map": "^4.4.2", "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/autocertifier-client": "101.1.2", - "@streamr/cdn-location": "101.1.2", - "@streamr/geoip-location": "101.1.2", - "@streamr/proto-rpc": "101.1.2", - "@streamr/utils": "101.1.2", + "@streamr/autocertifier-client": "102.0.0-beta.0", + "@streamr/cdn-location": "102.0.0-beta.0", + "@streamr/geoip-location": "102.0.0-beta.0", + "@streamr/proto-rpc": "102.0.0-beta.0", + "@streamr/utils": "102.0.0-beta.0", "eventemitter3": "^5.0.0", "heap": "^0.2.6", "ipaddr.js": "^2.0.1", "k-bucket": "^5.1.0", "lodash": "^4.17.21", - "lru-cache": "11.0.0", + "lru-cache": "11.0.1", "node-datachannel": "^0.10.1", "querystring": "0.2.1", "uuid": "^10.0.0", @@ -3040,11 +2952,11 @@ } }, "node_modules/@streamr/geoip-location": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/geoip-location/-/geoip-location-101.1.2.tgz", - "integrity": "sha512-UWLxbJGTVMvjE3QR0Fcfchj1M1WWRXNK48mlxPThbtZl8g8km1Bldz+t3G4LtDpDlKZIkddFoK+1iDglnh8P7w==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/geoip-location/-/geoip-location-102.0.0-beta.0.tgz", + "integrity": "sha512-Q5N9ej5jLhT78yttIOxV2rHUqe6qJjj7POVIVI6Cggditt3blWRSy9Sq3Zoq9W2wUXBzNxrUjek+Pfgw7otf/A==", "dependencies": { - "@streamr/utils": "101.1.2", + "@streamr/utils": "102.0.0-beta.0", "eventemitter3": "^5.0.0", "long-timeout": "^0.1.1", "mmdb-lib": "^2.1.1", @@ -3174,13 +3086,13 @@ } }, "node_modules/@streamr/proto-rpc": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/proto-rpc/-/proto-rpc-101.1.2.tgz", - "integrity": "sha512-D4eKPYKosumEBaFKhRNiV8dCwDLqZ1WlJO/7BtD57VVObeue8WukKPq/ih0RFJF2U+PbRDwvw5I+BqUnT/jx4Q==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/proto-rpc/-/proto-rpc-102.0.0-beta.0.tgz", + "integrity": "sha512-AntWMGfeXuD5iOMv61Td/p92oAQVdzjOFJb3M4R6E+h9B7UWHRY5qcPURban8x8kGAd8mV01qfO0Zd4J6MWYFw==", "dependencies": { "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/utils": "101.1.2", + "@streamr/utils": "102.0.0-beta.0", "eventemitter3": "^5.0.0", "lodash": "^4.17.21", "uuid": "^10.0.0" @@ -3191,21 +3103,21 @@ } }, "node_modules/@streamr/sdk": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/sdk/-/sdk-101.1.2.tgz", - "integrity": "sha512-l8ExwUh++RRg9GAX/54+pvjkclKC1WGTURHe3ORESlhMxHclfwp5W9oSo6ZDHOgCY5EjvNMMM1NlzihHLsR1Kg==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/sdk/-/sdk-102.0.0-beta.0.tgz", + "integrity": "sha512-hdjg/kHyR0PhjnoGtooOJLIP/1qX+WtqiwK2wUPMtmPeToREtcwlnkvEShtje3ShFYd0vbhyP7XK1fnrqDAG/w==", "dependencies": { - "@babel/runtime": "^7.25.6", - "@babel/runtime-corejs3": "^7.25.6", + "@babel/runtime": "^7.25.7", + "@babel/runtime-corejs3": "^7.25.7", "@lit-protocol/core": "2.2.5", - "@lit-protocol/uint8arrays": "^6.4.10", + "@lit-protocol/uint8arrays": "^6.10.0", "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/config": "^5.3.13", - "@streamr/dht": "101.1.2", - "@streamr/proto-rpc": "101.1.2", - "@streamr/trackerless-network": "101.1.2", - "@streamr/utils": "101.1.2", + "@streamr/config": "^5.4.0", + "@streamr/dht": "102.0.0-beta.0", + "@streamr/proto-rpc": "102.0.0-beta.0", + "@streamr/trackerless-network": "102.0.0-beta.0", + "@streamr/utils": "102.0.0-beta.0", "core-js": "^3.38.1", "env-paths": "^2.2.1", "ethers": "^6.13.0", @@ -3247,28 +3159,30 @@ } }, "node_modules/@streamr/test-utils": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/test-utils/-/test-utils-101.1.2.tgz", - "integrity": "sha512-g/yZ8ETXivoR+NrKbL2aSb83t6jg0CcRkXQUg1UduYHaX8YPyyOLX1kOJ0h6EfVFXQJRI4by55fHY/Nqi6lxhw==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/test-utils/-/test-utils-102.0.0-beta.0.tgz", + "integrity": "sha512-mhuTt/XpTFpp5iS8NVYDIxKrGS7nBsDyQtSgzaq1xiSzCk6rY6l/dfYI8c9XNfYUQfOwHB+wDToRn+vTtkBkXg==", "dependencies": { - "@streamr/utils": "101.1.2", + "@streamr/utils": "102.0.0-beta.0", "cors": "^2.8.5", "ethers": "^6.13.0", - "express": "^4.19.2", + "express": "^4.21.1", + "jest": "^29.7.0", + "jest-matcher-utils": "^29.7.0", "node-fetch": "^2.7.0" } }, "node_modules/@streamr/trackerless-network": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/trackerless-network/-/trackerless-network-101.1.2.tgz", - "integrity": "sha512-Cag1qql64IIvblrJFIAsiT8vR8PRHH2i7JoTarpwWLI3RQRc/z4YX50zuHcybQ36YWKTyRkjG3fgnGTKEA2XNg==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/trackerless-network/-/trackerless-network-102.0.0-beta.0.tgz", + "integrity": "sha512-GKrhU3r+PrvTteV3JZvDh/VeDmtCtSFY0KDPC4JFPUx78eVa1Utd6B3qXQoavVCtpeiiPTLtrNsoPxDOEuQeJw==", "dependencies": { "@protobuf-ts/runtime": "^2.8.2", "@protobuf-ts/runtime-rpc": "^2.8.2", - "@streamr/dht": "101.1.2", - "@streamr/proto-rpc": "101.1.2", - "@streamr/test-utils": "101.1.2", - "@streamr/utils": "101.1.2", + "@streamr/dht": "102.0.0-beta.0", + "@streamr/proto-rpc": "102.0.0-beta.0", + "@streamr/test-utils": "102.0.0-beta.0", + "@streamr/utils": "102.0.0-beta.0", "eventemitter3": "^5.0.0", "lodash": "^4.17.21", "uuid": "^10.0.0", @@ -3284,13 +3198,13 @@ } }, "node_modules/@streamr/utils": { - "version": "101.1.2", - "resolved": "https://registry.npmjs.org/@streamr/utils/-/utils-101.1.2.tgz", - "integrity": "sha512-Y5sfGNAnfvrVuQuLe6RtGn7b5kNvqdTU2Esr+rnRPeR7KNbR7Nl3F55rLpD8DZef4O1rGtpNlcXqWE8MOg9lZg==", + "version": "102.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@streamr/utils/-/utils-102.0.0-beta.0.tgz", + "integrity": "sha512-jQev1QJuxEv7q8r8p3WSmLWyRD1Ick+dHIg6+stoLrJMWlhz0L7JW/nzfAsDK++/33po11xvT3z2zlevrciuZQ==", "dependencies": { "eventemitter3": "^5.0.0", "lodash": "^4.17.21", - "pino": "^9.3.2", + "pino": "^9.4.0", "pino-pretty": "^11.2.2", "secp256k1": "^5.0.0", "sha3": "^2.1.4" @@ -3309,25 +3223,25 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node20": { "version": "20.1.2", @@ -3339,7 +3253,6 @@ "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -3352,7 +3265,6 @@ "version": "7.6.8", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -3361,7 +3273,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -3371,7 +3282,6 @@ "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dev": true, "dependencies": { "@babel/types": "^7.20.7" } @@ -3438,7 +3348,6 @@ "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, "dependencies": { "@types/node": "*" } @@ -3452,14 +3361,12 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -3468,7 +3375,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } @@ -3559,8 +3465,7 @@ "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" }, "node_modules/@types/validator": { "version": "13.11.9", @@ -3571,7 +3476,6 @@ "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, "dependencies": { "@types/yargs-parser": "*" } @@ -3579,8 +3483,7 @@ "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", @@ -3817,7 +3720,7 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, + "devOptional": true, "bin": { "acorn": "bin/acorn" }, @@ -3838,7 +3741,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.4.0" } @@ -3904,7 +3807,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -3919,7 +3821,6 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, "engines": { "node": ">=10" }, @@ -3953,7 +3854,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4004,7 +3904,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "devOptional": true }, "node_modules/argparse": { "version": "2.0.1", @@ -4080,7 +3980,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -4101,7 +4000,6 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -4117,7 +4015,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -4133,7 +4030,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -4142,7 +4038,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -4157,7 +4052,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -4180,7 +4074,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -4337,7 +4230,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -4354,7 +4246,6 @@ "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4398,7 +4289,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, "dependencies": { "node-int64": "^0.4.0" } @@ -4437,8 +4327,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/bufferutil": { "version": "4.0.8", @@ -4523,7 +4412,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -4532,7 +4420,6 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, "engines": { "node": ">=6" } @@ -4541,7 +4428,6 @@ "version": "1.0.30001591", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4586,7 +4472,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, "engines": { "node": ">=10" } @@ -4603,7 +4488,6 @@ "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, "funding": [ { "type": "github", @@ -4617,8 +4501,7 @@ "node_modules/cjs-module-lexer": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" }, "node_modules/class-validator": { "version": "0.14.1", @@ -4643,7 +4526,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -4657,7 +4539,6 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -4666,8 +4547,7 @@ "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" }, "node_modules/color-convert": { "version": "2.0.1", @@ -4743,8 +4623,7 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/cookie": { "version": "0.7.1", @@ -4800,7 +4679,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -4821,7 +4699,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "devOptional": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -4868,7 +4746,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "devOptional": true, "dependencies": { "ms": "2.1.2" }, @@ -4899,7 +4776,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -4927,7 +4803,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4999,7 +4874,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, "engines": { "node": ">=8" } @@ -5008,7 +4882,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.3.1" } @@ -5017,7 +4891,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -5073,8 +4946,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.682", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.682.tgz", - "integrity": "sha512-oCglfs8yYKs9RQjJFOHonSnhikPK3y+0SvSYc/YpYJV//6rqc0/hbwd0c7vgK4vrl6y2gJAwjkhkSGWK+z4KRA==", - "dev": true + "integrity": "sha512-oCglfs8yYKs9RQjJFOHonSnhikPK3y+0SvSYc/YpYJV//6rqc0/hbwd0c7vgK4vrl6y2gJAwjkhkSGWK+z4KRA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -5099,7 +4971,6 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, "engines": { "node": ">=12" }, @@ -5167,7 +5038,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -5229,7 +5099,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, "engines": { "node": ">=6" } @@ -5421,7 +5290,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -5597,7 +5465,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -5620,7 +5487,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -5637,7 +5503,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -5804,7 +5669,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, "dependencies": { "bser": "2.1.1" } @@ -5838,7 +5702,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6000,7 +5863,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -6049,7 +5911,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -6086,7 +5947,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -6113,7 +5973,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, "engines": { "node": ">=8.0.0" } @@ -6122,7 +5981,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, "engines": { "node": ">=10" }, @@ -6223,8 +6081,7 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "devOptional": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -6393,8 +6250,7 @@ "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "node_modules/http-cache-semantics": { "version": "4.1.1", @@ -6462,7 +6318,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, "engines": { "node": ">=10.17.0" } @@ -6545,7 +6400,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -6564,7 +6418,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "devOptional": true, "engines": { "node": ">=0.8.19" } @@ -6627,14 +6480,12 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -6663,7 +6514,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, "engines": { "node": ">=6" } @@ -6690,7 +6540,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -6713,7 +6562,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, "engines": { "node": ">=8" }, @@ -6745,7 +6593,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, "engines": { "node": ">=8" } @@ -6754,7 +6601,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -6770,7 +6616,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -6784,7 +6629,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -6798,7 +6642,6 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -6825,7 +6668,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -6851,7 +6693,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -6865,7 +6706,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -6896,7 +6736,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -6929,7 +6768,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -6974,7 +6812,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -6989,7 +6826,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -7001,7 +6837,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -7017,7 +6852,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -7055,7 +6889,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -7064,7 +6897,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -7089,7 +6921,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -7102,7 +6933,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -7117,7 +6947,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -7137,7 +6966,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -7151,7 +6979,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, "engines": { "node": ">=6" }, @@ -7168,7 +6995,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -7177,7 +7003,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -7197,7 +7022,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -7210,7 +7034,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -7242,7 +7065,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -7275,7 +7097,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -7306,7 +7127,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -7323,7 +7143,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -7340,7 +7159,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, "engines": { "node": ">=10" }, @@ -7352,7 +7170,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -7371,7 +7188,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -7386,7 +7202,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7413,8 +7228,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -7437,7 +7251,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -7454,8 +7267,7 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema": { "version": "0.4.0", @@ -7482,7 +7294,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -7568,7 +7379,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, "engines": { "node": ">=6" } @@ -7585,7 +7395,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, "engines": { "node": ">=6" } @@ -7619,8 +7428,7 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/lit-siwe": { "version": "1.1.8", @@ -7686,9 +7494,9 @@ "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==" }, "node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", + "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", "engines": { "node": "20 || >=22" } @@ -7697,7 +7505,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, "dependencies": { "semver": "^7.5.3" }, @@ -7712,7 +7519,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "devOptional": true }, "node_modules/make-fetch-happen": { "version": "9.1.0", @@ -7757,7 +7564,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, "dependencies": { "tmpl": "1.0.5" } @@ -7792,8 +7598,7 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -7816,7 +7621,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -7859,7 +7663,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -8020,8 +7823,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multiformats": { "version": "11.0.2", @@ -8096,8 +7898,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/natural-compare-lite": { "version": "1.4.0", @@ -8229,14 +8030,12 @@ "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/nopt": { "version": "5.0.0", @@ -8257,7 +8056,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8266,7 +8064,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -8347,7 +8144,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -8533,7 +8329,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -8559,7 +8354,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -8583,8 +8377,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.11.1", @@ -8641,14 +8434,12 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -8718,7 +8509,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, "engines": { "node": ">= 6" } @@ -8727,7 +8517,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, "dependencies": { "find-up": "^4.0.0" }, @@ -8739,7 +8528,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -8752,7 +8540,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -8764,7 +8551,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -8779,7 +8565,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -8825,7 +8610,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -8839,7 +8623,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, "engines": { "node": ">=10" }, @@ -8888,7 +8671,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -8943,7 +8725,6 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "dev": true, "funding": [ { "type": "individual", @@ -9069,8 +8850,7 @@ "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/readable-stream": { "version": "4.5.2", @@ -9170,7 +8950,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9179,7 +8958,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -9196,7 +8974,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -9208,7 +8985,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, "engines": { "node": ">=8" } @@ -9226,7 +9002,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, "engines": { "node": ">=10" } @@ -9345,12 +9120,9 @@ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -9358,17 +9130,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/send": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", @@ -9516,8 +9277,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-concat": { "version": "1.0.1", @@ -9565,8 +9325,7 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/siwe": { "version": "2.3.2", @@ -9597,7 +9356,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, "engines": { "node": ">=8" } @@ -9671,7 +9429,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9680,7 +9437,6 @@ "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -9788,7 +9544,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -9800,7 +9555,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, "engines": { "node": ">=8" } @@ -9825,7 +9579,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -9888,7 +9641,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, "engines": { "node": ">=8" } @@ -9897,7 +9649,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, "engines": { "node": ">=6" } @@ -9928,7 +9679,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -10008,7 +9758,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -10035,14 +9784,12 @@ "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -10051,7 +9798,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -10144,7 +9890,7 @@ "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, + "devOptional": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -10267,7 +10013,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, "engines": { "node": ">=4" } @@ -10392,7 +10137,6 @@ "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -10468,13 +10212,12 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "devOptional": true }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -10522,7 +10265,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, "dependencies": { "makeerror": "1.0.12" } @@ -10609,7 +10351,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10648,7 +10389,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -10681,7 +10421,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "engines": { "node": ">=10" } @@ -10703,7 +10442,6 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -10721,7 +10459,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "engines": { "node": ">=12" } @@ -10739,7 +10476,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index 26b466f..99df067 100644 --- a/package.json +++ b/package.json @@ -12,23 +12,24 @@ "author": "Streamr Network AG ", "dependencies": { "@streamr/config": "^5.3.7", - "@streamr/dht": "101.1.2", - "@streamr/sdk": "101.1.2", - "@streamr/trackerless-network": "101.1.2", - "@streamr/utils": "101.1.2", + "@streamr/dht": "102.0.0-beta.0", + "@streamr/sdk": "102.0.0-beta.0", + "@streamr/trackerless-network": "102.0.0-beta.0", + "@streamr/utils": "102.0.0-beta.0", "@types/node-fetch": "^2.6.3", "class-validator": "^0.14.1", "cors": "^2.8.5", "eventemitter3": "^5.0.1", "express": "^4.18.2", - "graphql": "^16.8.1", "geoip-lite": "^1.4.10", + "graphql": "^16.8.1", "graphql-http": "^1.22.0", "lodash": "^4.17.21", "mysql2": "^3.9.2", "node-fetch": "^2.6.7", "p-limit": "3.1.0", "reflect-metadata": "^0.2.1", + "semver": "^7.6.3", "ts-essentials": "^9.4.1", "type-graphql": "^2.0.0-beta.6", "typedi": "^0.10.0" diff --git a/src/StreamrClientFacade.ts b/src/StreamrClientFacade.ts index 20f25f4..dc6483f 100644 --- a/src/StreamrClientFacade.ts +++ b/src/StreamrClientFacade.ts @@ -1,4 +1,4 @@ -import { DhtAddress, NodeType, getRawFromDhtAddress } from '@streamr/dht' +import { DhtAddress, NodeType, toDhtAddressRaw } from '@streamr/dht' import { NetworkNodeType, NetworkPeerDescriptor, @@ -20,7 +20,7 @@ export const peerDescriptorTranslator = (json: NetworkPeerDescriptor): PeerDescr const type = json.type === NetworkNodeType.BROWSER ? NodeType.BROWSER : NodeType.NODEJS return { ...json, - nodeId: getRawFromDhtAddress(json.nodeId as DhtAddress), + nodeId: toDhtAddressRaw(json.nodeId as DhtAddress), type } } diff --git a/src/crawler/Crawler.ts b/src/crawler/Crawler.ts index 0395e9a..e105813 100644 --- a/src/crawler/Crawler.ts +++ b/src/crawler/Crawler.ts @@ -1,6 +1,5 @@ -import { PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht' +import { PeerDescriptor, toNodeId } from '@streamr/dht' import { DhtAddress, Stream, StreamCreationEvent, StreamMetadata, StreamPermission } from '@streamr/sdk' -import { NodeInfo } from '@streamr/trackerless-network' import { Logger, StreamID, StreamPartID, StreamPartIDUtils, binaryToHex, toStreamPartID, wait } from '@streamr/utils' import { difference, range, sortBy } from 'lodash' import pLimit from 'p-limit' @@ -11,7 +10,7 @@ import { MessageRepository, convertStreamMessageToMessageRow } from '../reposito import { NodeRepository } from '../repository/NodeRepository' import { StreamRepository } from '../repository/StreamRepository' import { collect, retry } from '../utils' -import { NetworkNodeFacade } from './NetworkNodeFacade' +import { NetworkNodeFacade, NormalizedNodeInfo } from './NetworkNodeFacade' import { MAX_SUBSCRIPTION_COUNT, SubscribeGate } from './SubscribeGate' import { Topology } from './Topology' import { getMessageRate } from './messageRate' @@ -35,7 +34,7 @@ const RECOVERY_DELAY = 5 * 60 * 1000 // TODO from config const createPeerDescriptorLogOutput = (peerDescriptor: PeerDescriptor) => { return { - nodeId: getNodeIdFromPeerDescriptor(peerDescriptor), + nodeId: toNodeId(peerDescriptor), type: peerDescriptor.type, udp: peerDescriptor.udp, tcp: peerDescriptor.tcp, @@ -47,17 +46,17 @@ const createPeerDescriptorLogOutput = (peerDescriptor: PeerDescriptor) => { } } -const createNodeInfoLogOutput = (nodeInfo: NodeInfo) => { +const createNodeInfoLogOutput = (nodeInfo: NormalizedNodeInfo) => { return { peerDescriptor: createPeerDescriptorLogOutput(nodeInfo.peerDescriptor), controlLayer: { - neighbors: nodeInfo.controlLayer!.neighbors.map((n: PeerDescriptor) => getNodeIdFromPeerDescriptor(n)), - connections: nodeInfo.controlLayer!.connections.map((n: PeerDescriptor) => getNodeIdFromPeerDescriptor(n)) + neighbors: nodeInfo.controlLayer!.neighbors.map((n: PeerDescriptor) => toNodeId(n)), + connections: nodeInfo.controlLayer!.connections.map((n: PeerDescriptor) => toNodeId(n)) }, streamPartitions: nodeInfo.streamPartitions.map((sp: any) => ({ id: sp.id, - controlLayerNeighbors: sp.controlLayerNeighbors.map((n: PeerDescriptor) => getNodeIdFromPeerDescriptor(n)), - contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n: PeerDescriptor) => getNodeIdFromPeerDescriptor(n)) + controlLayerNeighbors: sp.controlLayerNeighbors.map((n: PeerDescriptor) => toNodeId(n)), + contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n: any) => toNodeId(n.peerDescriptor)) // TODO better type })), version: nodeInfo.version } @@ -66,13 +65,13 @@ const createNodeInfoLogOutput = (nodeInfo: NodeInfo) => { export const crawlTopology = async ( localNode: NetworkNodeFacade, entryPoints: PeerDescriptor[], - getNeighbors: (nodeInfo: NodeInfo) => PeerDescriptor[], + getNeighbors: (nodeInfo: NormalizedNodeInfo) => PeerDescriptor[], runId: string ): Promise => { - const nodeInfos: Map = new Map() + const nodeInfos: Map = new Map() const errorNodes: Set = new Set() const processNode = async (peerDescriptor: PeerDescriptor): Promise => { - const nodeId = getNodeIdFromPeerDescriptor(peerDescriptor) + const nodeId = toNodeId(peerDescriptor) const processed = nodeInfos.has(nodeId) || errorNodes.has(nodeId) if (processed) { return @@ -141,7 +140,7 @@ export class Crawler { const topology = await crawlTopology( networkNodeFacade, this.client.getEntryPoints(), - (nodeInfo: NodeInfo) => nodeInfo.controlLayer!.neighbors, + (nodeInfo: NormalizedNodeInfo) => nodeInfo.controlLayer!.neighbors, `full-${Date.now()}` ) await this.nodeRepository.replaceNetworkTopology(topology) @@ -270,11 +269,11 @@ export class Crawler { const entryPoints = (await Promise.all(range(payload.metadata.partitions) .map((p) => toStreamPartID(payload.streamId, p)) .map((sp) => localNode.fetchStreamPartEntryPoints(sp)))).flat() - const topology = await crawlTopology(localNode, entryPoints, (nodeInfo: NodeInfo) => { + const topology = await crawlTopology(localNode, entryPoints, (nodeInfo: NormalizedNodeInfo) => { const streamPartitions = nodeInfo.streamPartitions.filter( (sp) => StreamPartIDUtils.getStreamID(sp.id as StreamPartID) === payload.streamId ) - return (streamPartitions.map((sp) => sp.contentDeliveryLayerNeighbors)).flat() + return (streamPartitions.map((sp) => sp.contentDeliveryLayerNeighbors.map((n) => n.peerDescriptor!))).flat() }, `stream-${payload.streamId}-${Date.now()}`) // TODO could add new nodes and neighbors to NodeRepository? await this.analyzeStream(payload.streamId, payload.metadata, topology, this.subscribeGate!) diff --git a/src/crawler/NetworkNodeFacade.ts b/src/crawler/NetworkNodeFacade.ts index 6205dfc..28ccf2a 100644 --- a/src/crawler/NetworkNodeFacade.ts +++ b/src/crawler/NetworkNodeFacade.ts @@ -2,6 +2,7 @@ import { PeerDescriptor } from '@streamr/dht' import { NetworkNode, NodeInfo, StreamMessage, streamPartIdToDataKey } from '@streamr/trackerless-network' import { StreamPartID } from '@streamr/utils' import EventEmitter3 from 'eventemitter3' +import semver from 'semver' import { Config } from '../Config' export interface Events { @@ -9,6 +10,27 @@ export interface Events { unsubscribe: () => void } +type ArrayElement = + ArrayType extends readonly (infer ElementType)[] ? ElementType : never + +export type NormalizedNodeInfo = Omit + & { streamPartitions: Omit, 'deprecatedContentDeliveryLayerNeighbors'>[] } + +const toNormalizeNodeInfo = (info: NodeInfo): NormalizedNodeInfo => { + const isLegacyFormat = semver.satisfies(info.version, '< 102.0.0') + return { + ...info, + streamPartitions: info.streamPartitions.map((sp) => ({ + ...sp, + contentDeliveryLayerNeighbors: !isLegacyFormat + ? sp.contentDeliveryLayerNeighbors + : sp.deprecatedContentDeliveryLayerNeighbors.map((n) => ({ + peerDescriptor: n + })) + })) + } +} + export class NetworkNodeFacade { private readonly node: NetworkNode @@ -46,8 +68,9 @@ export class NetworkNodeFacade { return Array.from(this.node.getStreamParts()).length } - async fetchNodeInfo(peerDescriptor: PeerDescriptor): Promise { - return await this.node.fetchNodeInfo(peerDescriptor) + async fetchNodeInfo(peerDescriptor: PeerDescriptor): Promise { + const info = await this.node.fetchNodeInfo(peerDescriptor) + return toNormalizeNodeInfo(info) } async fetchStreamPartEntryPoints(streamPartId: StreamPartID): Promise { diff --git a/src/crawler/Topology.ts b/src/crawler/Topology.ts index dd289e9..f6509d9 100644 --- a/src/crawler/Topology.ts +++ b/src/crawler/Topology.ts @@ -1,7 +1,7 @@ -import { getNodeIdFromPeerDescriptor } from '@streamr/dht' +import { toNodeId } from '@streamr/dht' import { DhtAddress, StreamPartID } from '@streamr/sdk' -import { NodeInfo } from '@streamr/trackerless-network' import { Multimap, numberToIpv4, StreamPartIDUtils } from '@streamr/utils' +import { NormalizedNodeInfo } from './NetworkNodeFacade' export interface Node { id: DhtAddress @@ -13,17 +13,17 @@ export class Topology { private nodes: Map = new Map() - constructor(infos: NodeInfo[]) { - const nodeIds = new Set(...[infos.map((info) => getNodeIdFromPeerDescriptor(info.peerDescriptor))]) + constructor(infos: NormalizedNodeInfo[]) { + const nodeIds = new Set(...[infos.map((info) => toNodeId(info.peerDescriptor))]) for (const info of infos) { const streamPartNeighbors: Multimap = new Multimap() for (const streamPartitionInfo of info.streamPartitions) { const neighbors = streamPartitionInfo.contentDeliveryLayerNeighbors - .map((n) => getNodeIdFromPeerDescriptor(n)) + .map((n) => toNodeId(n.peerDescriptor!)) .filter((id) => nodeIds.has(id)) streamPartNeighbors.addAll(StreamPartIDUtils.parse(streamPartitionInfo.id), neighbors) } - const nodeId = getNodeIdFromPeerDescriptor(info.peerDescriptor) + const nodeId = toNodeId(info.peerDescriptor) this.nodes.set(nodeId, { id: nodeId, streamPartNeighbors, diff --git a/test/APIServer.test.ts b/test/APIServer.test.ts index 8bb9fa8..a10a713 100644 --- a/test/APIServer.test.ts +++ b/test/APIServer.test.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { createRandomDhtAddress, DhtAddress } from '@streamr/dht' +import { randomDhtAddress, DhtAddress } from '@streamr/dht' import { Multimap, StreamID, StreamPartID, StreamPartIDUtils, utf8ToBinary } from '@streamr/utils' import { range, without } from 'lodash' import Container from 'typedi' @@ -338,15 +338,15 @@ describe('APIServer', () => { describe('nodes', () => { - const node1 = createRandomDhtAddress() - const node2 = createRandomDhtAddress() - const node3 = createRandomDhtAddress() + const node1 = randomDhtAddress() + const node2 = randomDhtAddress() + const node3 = randomDhtAddress() beforeEach(async () => { await storeTestTopology([ { id: StreamPartIDUtils.parse('stream1#0'), nodeIds: [node1, node2] }, { id: StreamPartIDUtils.parse('stream1#1'), nodeIds: [node2, node3] }, - { id: StreamPartIDUtils.parse('stream2#0'), nodeIds: [createRandomDhtAddress(), createRandomDhtAddress()] } + { id: StreamPartIDUtils.parse('stream2#0'), nodeIds: [randomDhtAddress(), randomDhtAddress()] } ]) }) @@ -393,11 +393,11 @@ describe('APIServer', () => { describe('neighbors', () => { - const node1 = createRandomDhtAddress() - const node2 = createRandomDhtAddress() - const node3 = createRandomDhtAddress() - const node4 = createRandomDhtAddress() - const node5 = createRandomDhtAddress() + const node1 = randomDhtAddress() + const node2 = randomDhtAddress() + const node3 = randomDhtAddress() + const node4 = randomDhtAddress() + const node5 = randomDhtAddress() beforeEach(async () => { await storeTestTopology([ @@ -486,7 +486,7 @@ describe('APIServer', () => { publisherCount: null, subscriberCount: null }) - await storeTestTopology([{ id: StreamPartIDUtils.parse('stream#0'), nodeIds: [createRandomDhtAddress(), createRandomDhtAddress()] }]) + await storeTestTopology([{ id: StreamPartIDUtils.parse('stream#0'), nodeIds: [randomDhtAddress(), randomDhtAddress()] }]) const summary = await queryAPI(`{ summary { streamCount diff --git a/test/Crawler.test.ts b/test/Crawler.test.ts index 0ae771b..bbaf07a 100644 --- a/test/Crawler.test.ts +++ b/test/Crawler.test.ts @@ -1,8 +1,8 @@ -import { DhtAddress, PeerDescriptor, getNodeIdFromPeerDescriptor } from '@streamr/dht' -import { NodeInfo } from '@streamr/trackerless-network' +import { DhtAddress, PeerDescriptor, toNodeId } from '@streamr/dht' import { StreamPartIDUtils } from '@streamr/utils' import { crawlTopology } from '../src/crawler/Crawler' import { createTestPeerDescriptor } from './utils' +import { NormalizedNodeInfo } from '../src/crawler/NetworkNodeFacade' const STREAM_PART_ID = StreamPartIDUtils.parse('stream#0') @@ -11,19 +11,21 @@ describe('Crawler', () => { let nodes: PeerDescriptor[] let neighbors: Map - const createMockNodeInfo = (peerDescriptor: PeerDescriptor): NodeInfo => { + const createMockNodeInfo = (peerDescriptor: PeerDescriptor): NormalizedNodeInfo => { return { peerDescriptor, controlLayer: { neighbors: [], connections: [] }, - streamPartitions: [{ + streamPartitions: [{ id: STREAM_PART_ID, controlLayerNeighbors: [], - contentDeliveryLayerNeighbors: neighbors.get(getNodeIdFromPeerDescriptor(peerDescriptor)) ?? [] + contentDeliveryLayerNeighbors: neighbors.get(toNodeId(peerDescriptor))!.map((n) => ({ + peerDescriptor: n + })) ?? [] }], - version: '' + version: '102.0.0' } } @@ -38,13 +40,13 @@ describe('Crawler', () => { createTestPeerDescriptor() ] neighbors = new Map() - neighbors.set(getNodeIdFromPeerDescriptor(nodes[0]), [nodes[1], nodes[2]]) - neighbors.set(getNodeIdFromPeerDescriptor(nodes[1]), [nodes[4]]) - neighbors.set(getNodeIdFromPeerDescriptor(nodes[2]), [nodes[3]]) - neighbors.set(getNodeIdFromPeerDescriptor(nodes[3]), []) - neighbors.set(getNodeIdFromPeerDescriptor(nodes[4]), [nodes[1], nodes[2], nodes[5]]) - neighbors.set(getNodeIdFromPeerDescriptor(nodes[5]), [nodes[6]]) - neighbors.set(getNodeIdFromPeerDescriptor(nodes[6]), []) + neighbors.set(toNodeId(nodes[0]), [nodes[1], nodes[2]]) + neighbors.set(toNodeId(nodes[1]), [nodes[4]]) + neighbors.set(toNodeId(nodes[2]), [nodes[3]]) + neighbors.set(toNodeId(nodes[3]), []) + neighbors.set(toNodeId(nodes[4]), [nodes[1], nodes[2], nodes[5]]) + neighbors.set(toNodeId(nodes[5]), [nodes[6]]) + neighbors.set(toNodeId(nodes[6]), []) }) it('crawlTopology', async () => { @@ -58,10 +60,10 @@ describe('Crawler', () => { const topology = await crawlTopology( localNode as any, [nodes[0], nodes[5]], - (response: NodeInfo) => response.streamPartitions[0].contentDeliveryLayerNeighbors, + (response: NormalizedNodeInfo) => response.streamPartitions[0].contentDeliveryLayerNeighbors.map((n) => n.peerDescriptor!), '' ) expect(localNode.fetchNodeInfo).toHaveBeenCalledTimes(nodes.length) - expect([...topology.getPeers(STREAM_PART_ID)!]).toIncludeSameMembers(nodes.map((n) => getNodeIdFromPeerDescriptor(n))) + expect([...topology.getPeers(STREAM_PART_ID)!]).toIncludeSameMembers(nodes.map((n) => toNodeId(n))) }) }) diff --git a/test/NetworkNodeFacade.test.ts b/test/NetworkNodeFacade.test.ts new file mode 100644 index 0000000..25aafac --- /dev/null +++ b/test/NetworkNodeFacade.test.ts @@ -0,0 +1,90 @@ +import { randomDhtAddress, toDhtAddressRaw } from '@streamr/dht' +import { NetworkNode, NodeInfo } from '@streamr/trackerless-network' +import { randomBytes } from 'crypto' +import { NetworkNodeFacade } from '../src/crawler/NetworkNodeFacade' + +const createTestPeerDescriptor = () => { + return { + nodeId: toDhtAddressRaw(randomDhtAddress()), + type: 1, + region: 2, + ipAddress: 3, + publicKey: randomBytes(10), + signature: randomBytes(10) + } +} + +const NORMAL_INFO = { + peerDescriptor: createTestPeerDescriptor(), + controlLayer: { + neighbors: [createTestPeerDescriptor()], + connections: [createTestPeerDescriptor()] + }, + streamPartitions: [{ + id: 'mock-stream-id', + controlLayerNeighbors: [createTestPeerDescriptor()], + deprecatedContentDeliveryLayerNeighbors: [], + contentDeliveryLayerNeighbors: [{ + peerDescriptor: createTestPeerDescriptor(), + rtt: 123 + }] + }], + version: '102.0.0-beta.0' +} +const LEGACY_INFO = { + peerDescriptor: createTestPeerDescriptor(), + controlLayer: { + neighbors: [createTestPeerDescriptor()], + connections: [createTestPeerDescriptor()] + }, + streamPartitions: [{ + id: 'mock-stream-id', + controlLayerNeighbors: [createTestPeerDescriptor()], + deprecatedContentDeliveryLayerNeighbors: [createTestPeerDescriptor()], + contentDeliveryLayerNeighbors: [] + }], + version: '101.1.2' +} + +const createMockNode = (rawNodeInfo: NodeInfo): Partial => { + return { + fetchNodeInfo: async () => { + return rawNodeInfo + } + } +} + +describe('NetworkNodeFacade', () => { + + describe('fetch node info', () => { + + it('normal', async () => { + const node = createMockNode(NORMAL_INFO) + const facade = new NetworkNodeFacade(node as any, undefined as any) + const info = await facade.fetchNodeInfo(undefined as any) + expect(info.streamPartitions).toHaveLength(1) + expect(info.streamPartitions[0]).toMatchObject({ + id: 'mock-stream-id', + controlLayerNeighbors: expect.toBeArray(), + contentDeliveryLayerNeighbors: [{ + peerDescriptor: expect.toBeObject(), + rtt: 123 + }] + }) + }) + + it('legacy', async () => { + const node = createMockNode(LEGACY_INFO) + const facade = new NetworkNodeFacade(node as any, undefined as any) + const info = await facade.fetchNodeInfo(undefined as any) + expect(info.streamPartitions).toHaveLength(1) + expect(info.streamPartitions[0]).toMatchObject({ + id: 'mock-stream-id', + controlLayerNeighbors: expect.toBeArray(), + contentDeliveryLayerNeighbors: [{ + peerDescriptor: expect.toBeObject() + }] + }) + }) + }) +}) diff --git a/test/Topology.test.ts b/test/Topology.test.ts index 1b2fc5c..217a8a7 100644 --- a/test/Topology.test.ts +++ b/test/Topology.test.ts @@ -1,4 +1,4 @@ -import { PeerDescriptor, createRandomDhtAddress, getNodeIdFromPeerDescriptor, getRawFromDhtAddress } from '@streamr/dht' +import { PeerDescriptor, randomDhtAddress, toNodeId, toDhtAddressRaw } from '@streamr/dht' import { StreamPartIDUtils } from '@streamr/utils' import { range } from 'lodash' import { Topology } from '../src/crawler/Topology' @@ -10,26 +10,33 @@ describe('Topology', () => { it('ignore unknown neighbors', () => { const nodes: PeerDescriptor[] = range(3).map(() => ({ - nodeId: getRawFromDhtAddress(createRandomDhtAddress()), + nodeId: toDhtAddressRaw(randomDhtAddress()), } as any)) const topology = new Topology([{ peerDescriptor: nodes[0], streamPartitions: [{ id: STREAM_PART_ID_1, - contentDeliveryLayerNeighbors: [nodes[1], nodes[2]] + contentDeliveryLayerNeighbors: [ + { peerDescriptor: nodes[1] }, + { peerDescriptor: nodes[2] } + ] }] }, { peerDescriptor: nodes[2], streamPartitions: [{ id: STREAM_PART_ID_2, - contentDeliveryLayerNeighbors: [nodes[0], nodes[1], nodes[2]] + contentDeliveryLayerNeighbors: [ + { peerDescriptor: nodes[0] }, + { peerDescriptor: nodes[1] }, + { peerDescriptor: nodes[2] } + ] }] }] as any) - expect([...topology.getNeighbors(getNodeIdFromPeerDescriptor(nodes[0]), STREAM_PART_ID_1)]).toIncludeSameMembers([ - getNodeIdFromPeerDescriptor(nodes[2]) + expect([...topology.getNeighbors(toNodeId(nodes[0]), STREAM_PART_ID_1)]).toIncludeSameMembers([ + toNodeId(nodes[2]) ]) - expect([...topology.getNeighbors(getNodeIdFromPeerDescriptor(nodes[2]), STREAM_PART_ID_2)]).toIncludeSameMembers([ - getNodeIdFromPeerDescriptor(nodes[0]), getNodeIdFromPeerDescriptor(nodes[2]) + expect([...topology.getNeighbors(toNodeId(nodes[2]), STREAM_PART_ID_2)]).toIncludeSameMembers([ + toNodeId(nodes[0]), toNodeId(nodes[2]) ]) }) }) diff --git a/test/end-to-end.test.ts b/test/end-to-end.test.ts index 1b911ec..9d5a935 100644 --- a/test/end-to-end.test.ts +++ b/test/end-to-end.test.ts @@ -1,6 +1,6 @@ import 'reflect-metadata' -import { DhtAddress, NodeType, createRandomDhtAddress, getDhtAddressFromRaw, getRawFromDhtAddress } from '@streamr/dht' +import { DhtAddress, NodeType, randomDhtAddress, toDhtAddress, toDhtAddressRaw } from '@streamr/dht' import StreamrClient, { CONFIG_TEST, NetworkNodeType, PeerDescriptor, StreamID, StreamPermission, StreamrClientConfig } from '@streamr/sdk' import { NetworkNode, createNetworkNode } from '@streamr/trackerless-network' import { StreamPartID, setAbortableInterval, toStreamPartID, waitForCondition } from '@streamr/utils' @@ -24,7 +24,7 @@ const DOCKER_DEV_LOOPBACK_IP_ADDRESS = '10.200.10.1' const startEntryPoint = async (): Promise => { const peerDescriptor = { - nodeId: getRawFromDhtAddress(createRandomDhtAddress()), + nodeId: toDhtAddressRaw(randomDhtAddress()), type: NodeType.NODEJS, websocket: { host: '10.200.10.1', @@ -34,7 +34,7 @@ const startEntryPoint = async (): Promise => { } const node = createNetworkNode({ layer0: { - nodeId: getDhtAddressFromRaw(peerDescriptor.nodeId), + nodeId: toDhtAddress(peerDescriptor.nodeId), websocketHost: peerDescriptor.websocket.host, websocketPortRange: { min: peerDescriptor.websocket.port, @@ -56,7 +56,7 @@ const createClientConfig = (entryPointPeerDescriptor: PeerDescriptor): StreamrCl controlLayer: { ...CONFIG_TEST.network!.controlLayer, entryPoints: [{ - nodeId: getDhtAddressFromRaw(entryPointPeerDescriptor.nodeId), + nodeId: toDhtAddress(entryPointPeerDescriptor.nodeId), type: NetworkNodeType.NODEJS, websocket: entryPointPeerDescriptor.websocket }] @@ -216,7 +216,7 @@ describe('end-to-end', () => { Container.reset() }) - it('happy path', async () => { + it.only('happy path', async () => { const publishingAbortControler = new AbortController() const privateStream = await createTestStream(false) diff --git a/test/utils.ts b/test/utils.ts index 01fcacd..5e84a71 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -4,13 +4,13 @@ import { Server } from 'http' import { omit } from 'lodash' import { Config } from '../src/Config' import { createDatabaseConnection } from '../src/utils' -import { DhtAddress, NodeType, PeerDescriptor, createRandomDhtAddress, getRawFromDhtAddress } from '@streamr/dht' +import { DhtAddress, NodeType, PeerDescriptor, randomDhtAddress, toDhtAddressRaw } from '@streamr/dht' export const TEST_DATABASE_NAME = 'stream_metrics_index_test' export const createTestPeerDescriptor = (nodeId?: DhtAddress): PeerDescriptor => { return { - nodeId: getRawFromDhtAddress(nodeId ?? createRandomDhtAddress()), + nodeId: toDhtAddressRaw(nodeId ?? randomDhtAddress()), type: NodeType.NODEJS } } From 05e6119c62c6a98faf36bbfca802e534b1963d87 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Thu, 17 Oct 2024 19:36:35 +0300 Subject: [PATCH 3/7] fix version handling analysis --- src/crawler/NetworkNodeFacade.ts | 2 +- test/NetworkNodeFacade.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/crawler/NetworkNodeFacade.ts b/src/crawler/NetworkNodeFacade.ts index 28ccf2a..efc0eee 100644 --- a/src/crawler/NetworkNodeFacade.ts +++ b/src/crawler/NetworkNodeFacade.ts @@ -17,7 +17,7 @@ export type NormalizedNodeInfo = Omit & { streamPartitions: Omit, 'deprecatedContentDeliveryLayerNeighbors'>[] } const toNormalizeNodeInfo = (info: NodeInfo): NormalizedNodeInfo => { - const isLegacyFormat = semver.satisfies(info.version, '< 102.0.0') + const isLegacyFormat = semver.satisfies(semver.coerce(info.version)!, '< 102.0.0') return { ...info, streamPartitions: info.streamPartitions.map((sp) => ({ diff --git a/test/NetworkNodeFacade.test.ts b/test/NetworkNodeFacade.test.ts index 25aafac..36a3193 100644 --- a/test/NetworkNodeFacade.test.ts +++ b/test/NetworkNodeFacade.test.ts @@ -43,7 +43,7 @@ const LEGACY_INFO = { deprecatedContentDeliveryLayerNeighbors: [createTestPeerDescriptor()], contentDeliveryLayerNeighbors: [] }], - version: '101.1.2' + version: '101.1.1-beta.1' } const createMockNode = (rawNodeInfo: NodeInfo): Partial => { From 89fdfcfe670c87994fee3746dcc7ca7b21835594 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Thu, 17 Oct 2024 23:15:54 +0300 Subject: [PATCH 4/7] update test --- test/end-to-end.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/end-to-end.test.ts b/test/end-to-end.test.ts index 9d5a935..54c9006 100644 --- a/test/end-to-end.test.ts +++ b/test/end-to-end.test.ts @@ -216,7 +216,7 @@ describe('end-to-end', () => { Container.reset() }) - it.only('happy path', async () => { + it('happy path', async () => { const publishingAbortControler = new AbortController() const privateStream = await createTestStream(false) From 5cbb0557264485fec7fcb2d435584dfa12f9ce48 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Tue, 22 Oct 2024 14:28:09 +0300 Subject: [PATCH 5/7] pass toNodeId as argument --- src/crawler/Crawler.ts | 6 +++--- test/Crawler.test.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/crawler/Crawler.ts b/src/crawler/Crawler.ts index e105813..d16cf25 100644 --- a/src/crawler/Crawler.ts +++ b/src/crawler/Crawler.ts @@ -50,12 +50,12 @@ const createNodeInfoLogOutput = (nodeInfo: NormalizedNodeInfo) => { return { peerDescriptor: createPeerDescriptorLogOutput(nodeInfo.peerDescriptor), controlLayer: { - neighbors: nodeInfo.controlLayer!.neighbors.map((n: PeerDescriptor) => toNodeId(n)), - connections: nodeInfo.controlLayer!.connections.map((n: PeerDescriptor) => toNodeId(n)) + neighbors: nodeInfo.controlLayer!.neighbors.map(toNodeId), + connections: nodeInfo.controlLayer!.connections.map(toNodeId) }, streamPartitions: nodeInfo.streamPartitions.map((sp: any) => ({ id: sp.id, - controlLayerNeighbors: sp.controlLayerNeighbors.map((n: PeerDescriptor) => toNodeId(n)), + controlLayerNeighbors: sp.controlLayerNeighbors.map(toNodeId), contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n: any) => toNodeId(n.peerDescriptor)) // TODO better type })), version: nodeInfo.version diff --git a/test/Crawler.test.ts b/test/Crawler.test.ts index bbaf07a..aea4835 100644 --- a/test/Crawler.test.ts +++ b/test/Crawler.test.ts @@ -64,6 +64,6 @@ describe('Crawler', () => { '' ) expect(localNode.fetchNodeInfo).toHaveBeenCalledTimes(nodes.length) - expect([...topology.getPeers(STREAM_PART_ID)!]).toIncludeSameMembers(nodes.map((n) => toNodeId(n))) + expect([...topology.getPeers(STREAM_PART_ID)!]).toIncludeSameMembers(nodes.map(toNodeId)) }) }) From f985d5c9886d2416baac947b6353741260089b9a Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Thu, 24 Oct 2024 02:23:05 +0300 Subject: [PATCH 6/7] types from latest monorepo --- src/crawler/Crawler.ts | 7 +++++-- src/crawler/NetworkNodeFacade.ts | 15 +++++++-------- test/end-to-end.test.ts | 6 ++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/crawler/Crawler.ts b/src/crawler/Crawler.ts index d16cf25..8af9817 100644 --- a/src/crawler/Crawler.ts +++ b/src/crawler/Crawler.ts @@ -53,10 +53,13 @@ const createNodeInfoLogOutput = (nodeInfo: NormalizedNodeInfo) => { neighbors: nodeInfo.controlLayer!.neighbors.map(toNodeId), connections: nodeInfo.controlLayer!.connections.map(toNodeId) }, - streamPartitions: nodeInfo.streamPartitions.map((sp: any) => ({ + streamPartitions: nodeInfo.streamPartitions.map((sp) => ({ id: sp.id, controlLayerNeighbors: sp.controlLayerNeighbors.map(toNodeId), - contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n: any) => toNodeId(n.peerDescriptor)) // TODO better type + contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n) => ({ + nodeId: toNodeId(n.peerDescriptor), + rtt: n.rtt + })) })), version: nodeInfo.version } diff --git a/src/crawler/NetworkNodeFacade.ts b/src/crawler/NetworkNodeFacade.ts index efc0eee..1369dc8 100644 --- a/src/crawler/NetworkNodeFacade.ts +++ b/src/crawler/NetworkNodeFacade.ts @@ -1,6 +1,6 @@ import { PeerDescriptor } from '@streamr/dht' -import { NetworkNode, NodeInfo, StreamMessage, streamPartIdToDataKey } from '@streamr/trackerless-network' -import { StreamPartID } from '@streamr/utils' +import { NetworkNode, NodeInfo, StreamMessage, streamPartIdToDataKey, StreamPartitionInfo } from '@streamr/trackerless-network' +import { ChangeFieldType, StreamPartID } from '@streamr/utils' import EventEmitter3 from 'eventemitter3' import semver from 'semver' import { Config } from '../Config' @@ -10,17 +10,16 @@ export interface Events { unsubscribe: () => void } -type ArrayElement = - ArrayType extends readonly (infer ElementType)[] ? ElementType : never - -export type NormalizedNodeInfo = Omit - & { streamPartitions: Omit, 'deprecatedContentDeliveryLayerNeighbors'>[] } +export type NormalizedNodeInfo = ChangeFieldType< + NodeInfo, + 'streamPartitions', + Omit[]> const toNormalizeNodeInfo = (info: NodeInfo): NormalizedNodeInfo => { const isLegacyFormat = semver.satisfies(semver.coerce(info.version)!, '< 102.0.0') return { ...info, - streamPartitions: info.streamPartitions.map((sp) => ({ + streamPartitions: info.streamPartitions.map((sp: StreamPartitionInfo) => ({ ...sp, contentDeliveryLayerNeighbors: !isLegacyFormat ? sp.contentDeliveryLayerNeighbors diff --git a/test/end-to-end.test.ts b/test/end-to-end.test.ts index 54c9006..7d4c0f3 100644 --- a/test/end-to-end.test.ts +++ b/test/end-to-end.test.ts @@ -1,7 +1,7 @@ import 'reflect-metadata' import { DhtAddress, NodeType, randomDhtAddress, toDhtAddress, toDhtAddressRaw } from '@streamr/dht' -import StreamrClient, { CONFIG_TEST, NetworkNodeType, PeerDescriptor, StreamID, StreamPermission, StreamrClientConfig } from '@streamr/sdk' +import StreamrClient, { NetworkNodeType, PeerDescriptor, StreamID, StreamPermission, StreamrClientConfig } from '@streamr/sdk' import { NetworkNode, createNetworkNode } from '@streamr/trackerless-network' import { StreamPartID, setAbortableInterval, toStreamPartID, waitForCondition } from '@streamr/utils' import { sample, uniq, without } from 'lodash' @@ -50,11 +50,9 @@ const startEntryPoint = async (): Promise => { const createClientConfig = (entryPointPeerDescriptor: PeerDescriptor): StreamrClientConfig => { return { - ...CONFIG_TEST, + environment:'dev2', network: { - ...CONFIG_TEST.network, controlLayer: { - ...CONFIG_TEST.network!.controlLayer, entryPoints: [{ nodeId: toDhtAddress(entryPointPeerDescriptor.nodeId), type: NetworkNodeType.NODEJS, From d4443de71f1cb0b76c9538f03f822b6a57f82602 Mon Sep 17 00:00:00 2001 From: Teo Gebhard Date: Thu, 24 Oct 2024 16:14:52 +0300 Subject: [PATCH 7/7] Revert "types from latest monorepo" This reverts commit f985d5c9886d2416baac947b6353741260089b9a. --- src/crawler/Crawler.ts | 7 ++----- src/crawler/NetworkNodeFacade.ts | 15 ++++++++------- test/end-to-end.test.ts | 6 ++++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/crawler/Crawler.ts b/src/crawler/Crawler.ts index 8af9817..d16cf25 100644 --- a/src/crawler/Crawler.ts +++ b/src/crawler/Crawler.ts @@ -53,13 +53,10 @@ const createNodeInfoLogOutput = (nodeInfo: NormalizedNodeInfo) => { neighbors: nodeInfo.controlLayer!.neighbors.map(toNodeId), connections: nodeInfo.controlLayer!.connections.map(toNodeId) }, - streamPartitions: nodeInfo.streamPartitions.map((sp) => ({ + streamPartitions: nodeInfo.streamPartitions.map((sp: any) => ({ id: sp.id, controlLayerNeighbors: sp.controlLayerNeighbors.map(toNodeId), - contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n) => ({ - nodeId: toNodeId(n.peerDescriptor), - rtt: n.rtt - })) + contentDeliveryLayerNeighbors: sp.contentDeliveryLayerNeighbors.map((n: any) => toNodeId(n.peerDescriptor)) // TODO better type })), version: nodeInfo.version } diff --git a/src/crawler/NetworkNodeFacade.ts b/src/crawler/NetworkNodeFacade.ts index 1369dc8..efc0eee 100644 --- a/src/crawler/NetworkNodeFacade.ts +++ b/src/crawler/NetworkNodeFacade.ts @@ -1,6 +1,6 @@ import { PeerDescriptor } from '@streamr/dht' -import { NetworkNode, NodeInfo, StreamMessage, streamPartIdToDataKey, StreamPartitionInfo } from '@streamr/trackerless-network' -import { ChangeFieldType, StreamPartID } from '@streamr/utils' +import { NetworkNode, NodeInfo, StreamMessage, streamPartIdToDataKey } from '@streamr/trackerless-network' +import { StreamPartID } from '@streamr/utils' import EventEmitter3 from 'eventemitter3' import semver from 'semver' import { Config } from '../Config' @@ -10,16 +10,17 @@ export interface Events { unsubscribe: () => void } -export type NormalizedNodeInfo = ChangeFieldType< - NodeInfo, - 'streamPartitions', - Omit[]> +type ArrayElement = + ArrayType extends readonly (infer ElementType)[] ? ElementType : never + +export type NormalizedNodeInfo = Omit + & { streamPartitions: Omit, 'deprecatedContentDeliveryLayerNeighbors'>[] } const toNormalizeNodeInfo = (info: NodeInfo): NormalizedNodeInfo => { const isLegacyFormat = semver.satisfies(semver.coerce(info.version)!, '< 102.0.0') return { ...info, - streamPartitions: info.streamPartitions.map((sp: StreamPartitionInfo) => ({ + streamPartitions: info.streamPartitions.map((sp) => ({ ...sp, contentDeliveryLayerNeighbors: !isLegacyFormat ? sp.contentDeliveryLayerNeighbors diff --git a/test/end-to-end.test.ts b/test/end-to-end.test.ts index 8b619fd..8960634 100644 --- a/test/end-to-end.test.ts +++ b/test/end-to-end.test.ts @@ -1,7 +1,7 @@ import 'reflect-metadata' import { DhtAddress, NodeType, randomDhtAddress, toDhtAddress, toDhtAddressRaw } from '@streamr/dht' -import StreamrClient, { NetworkNodeType, PeerDescriptor, StreamID, StreamPermission, StreamrClientConfig } from '@streamr/sdk' +import StreamrClient, { CONFIG_TEST, NetworkNodeType, PeerDescriptor, StreamID, StreamPermission, StreamrClientConfig } from '@streamr/sdk' import { NetworkNode, createNetworkNode } from '@streamr/trackerless-network' import { StreamPartID, collect, setAbortableInterval, toStreamPartID, waitForCondition } from '@streamr/utils' import { sample, uniq, without } from 'lodash' @@ -50,9 +50,11 @@ const startEntryPoint = async (): Promise => { const createClientConfig = (entryPointPeerDescriptor: PeerDescriptor): StreamrClientConfig => { return { - environment:'dev2', + ...CONFIG_TEST, network: { + ...CONFIG_TEST.network, controlLayer: { + ...CONFIG_TEST.network!.controlLayer, entryPoints: [{ nodeId: toDhtAddress(entryPointPeerDescriptor.nodeId), type: NetworkNodeType.NODEJS,