diff --git a/packages/system/package.json b/packages/system/package.json index 8580b583..3701b7d9 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -35,7 +35,6 @@ "@noble/ciphers": "^0.6.0", "@noble/curves": "^1.4.0", "@noble/hashes": "^1.4.0", - "@nostr-dev-kit/ndk": "^2.8.2", "@scure/base": "^1.1.6", "@snort/shared": "^1.0.17", "@stablelib/xchacha20": "^1.0.1", diff --git a/packages/system/src/impl/nip7.ts b/packages/system/src/impl/nip7.ts index 30de070f..77779d6a 100644 --- a/packages/system/src/impl/nip7.ts +++ b/packages/system/src/impl/nip7.ts @@ -4,13 +4,19 @@ import { EventSigner, NostrEvent } from ".."; const Nip7Queue: Array = []; processWorkQueue(Nip7Queue); -declare interface Nip44Window { - nostr?: { - nip44?: { - encrypt(recipientHexPubKey: string, value: string): Promise; - decrypt(senderHexPubKey: string, value: string): Promise; +declare global { + interface NostrEncryptor { + encrypt(recipientHexPubKey: string, value: string): Promise; + decrypt(senderHexPubKey: string, value: string): Promise; + } + interface Window { + nostr?: { + getPublicKey: () => Promise; + signEvent: (ev: NostrEvent) => Promise; + nip04?: NostrEncryptor; + nip44?: NostrEncryptor; }; - }; + } } export class Nip7Signer implements EventSigner { @@ -56,7 +62,7 @@ export class Nip7Signer implements EventSigner { throw new Error("Cannot use NIP-07 signer, not found!"); } return await barrierQueue(Nip7Queue, async () => { - const window = globalThis.window as Nip44Window; + const window = globalThis.window; return await window.nostr!.nip44!.encrypt(key, content); }); } @@ -66,7 +72,7 @@ export class Nip7Signer implements EventSigner { throw new Error("Cannot use NIP-07 signer, not found!"); } return await barrierQueue(Nip7Queue, async () => { - const window = globalThis.window as Nip44Window; + const window = globalThis.window; return await window.nostr!.nip44!.decrypt(otherKey, content); }); } diff --git a/packages/system/src/index.ts b/packages/system/src/index.ts index 136e5c0f..fad89b48 100644 --- a/packages/system/src/index.ts +++ b/packages/system/src/index.ts @@ -1,5 +1,4 @@ export { NostrSystem } from "./nostr-system"; -export { NDKSystem } from "./ndk-system"; export { default as EventKind } from "./event-kind"; export * from "./system"; export * from "./nostr"; diff --git a/packages/system/src/ndk-system.ts b/packages/system/src/ndk-system.ts deleted file mode 100644 index 1588af0f..00000000 --- a/packages/system/src/ndk-system.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { EventEmitter } from "eventemitter3"; -import { QueryLike, SystemConfig, SystemInterface } from "./system"; -import { RelaySettings, SyncCommand } from "./connection"; -import { TaggedNostrEvent, NostrEvent, OkResponse, ReqCommand } from "./nostr"; -import { BuiltRawReqFilter, RequestBuilder } from "./request-builder"; -import NDK, { - NDKConstructorParams, - NDKEvent, - NDKFilter, - NDKRelay, - NDKSubscription, - NDKRelayStatus, -} from "@nostr-dev-kit/ndk"; -import { SystemBase } from "./system-base"; -import { ConnectionPool, ConnectionType, ConnectionTypeEvents, DefaultConnectionPool } from "./connection-pool"; -import { RelayMetadataLoader } from "./outbox"; -import { ProfileLoaderService } from "./profile-cache"; -import { RequestRouter } from "./request-router"; -import { RelayMetricHandler } from "./relay-metric-handler"; -import { RelayInfo } from "./relay-info"; -import { v4 as uuid } from "uuid"; -import { QueryManager } from "./query-manager"; -import debug from "debug"; - -class NDKConnection extends EventEmitter implements ConnectionType { - #id: string; - #settings: RelaySettings; - #ephemeral: boolean; - - constructor( - readonly ndk: NDK, - readonly relay: NDKRelay, - settings: RelaySettings, - ephemeral: boolean, - ) { - super(); - this.#id = uuid(); - this.#settings = settings; - this.#ephemeral = ephemeral; - } - - get id() { - return this.#id; - } - - get address() { - return this.relay.url; - } - - get settings() { - return this.#settings; - } - - set settings(v: RelaySettings) { - this.#settings = v; - } - - get ephemeral() { - return this.#ephemeral; - } - - get isDown() { - return this.relay.connectivity.status === NDKRelayStatus.FLAPPING; - } - - get isOpen() { - return this.relay.connectivity.status === NDKRelayStatus.CONNECTED; - } - - info: RelayInfo | undefined; - - async connect() { - await this.relay.connect(); - } - - close() { - this.relay.disconnect(); - } - - async publish(ev: NostrEvent, timeout?: number | undefined) { - const result = await this.relay.publish(new NDKEvent(undefined, ev), timeout); - return { - id: ev.id, - ok: result, - } as OkResponse; - } - - async request(req: ReqCommand | SyncCommand, cbSent?: (() => void) | undefined) { - if (req[0] === "REQ") { - const id = req[1]; - const filters = req.slice(2) as NDKFilter[]; - const sub = new NDKSubscription(this.ndk, filters); - sub.on("event", (ev: NDKEvent) => { - this.emit("event", id, ev.rawEvent() as TaggedNostrEvent); - }); - sub.on("eose", () => { - this.emit("eose", id); - }); - this.relay.subscribe(sub, filters); - } else if (req[0] === "SYNC") { - const id = req[1]; - const filters = req.slice(3) as NDKFilter[]; - const sub = new NDKSubscription(this.ndk, filters); - sub.on("event", (ev: NDKEvent) => { - this.emit("event", id, ev.rawEvent() as TaggedNostrEvent); - }); - sub.on("eose", () => { - debugger; - this.emit("eose", id); - }); - this.relay.subscribe(sub, filters); - } - } - - closeRequest(id: string) { - // idk.. - } -} - -class NDKConnectionPool extends DefaultConnectionPool { - constructor( - system: SystemInterface, - readonly ndk: NDK, - ) { - super(system, async (addr, opt, eph) => { - const relay = new NDKRelay(addr); - this.ndk.pool.addRelay(relay); - return new NDKConnection(this.ndk, relay, opt, eph); - }); - } -} - -export class NDKSystem extends SystemBase implements SystemInterface { - #log = debug("NDKSystem"); - #ndk: NDK; - #queryManager: QueryManager; - - readonly profileLoader: ProfileLoaderService; - readonly relayMetricsHandler: RelayMetricHandler; - readonly pool: ConnectionPool; - readonly relayLoader: RelayMetadataLoader; - readonly requestRouter: RequestRouter | undefined; - - constructor(system: Partial, ndk?: NDKConstructorParams) { - super(system); - this.#ndk = new NDK(ndk); - this.profileLoader = new ProfileLoaderService(this, this.profileCache); - this.relayMetricsHandler = new RelayMetricHandler(this.relayMetricsCache); - this.relayLoader = new RelayMetadataLoader(this, this.relayCache); - this.pool = new NDKConnectionPool(this, this.#ndk); - this.#queryManager = new QueryManager(this); - - // hook connection pool - this.pool.on("connected", (id, wasReconnect) => { - const c = this.pool.getConnection(id); - if (c) { - this.relayMetricsHandler.onConnect(c.address); - if (wasReconnect) { - for (const [, q] of this.#queryManager) { - q.connectionRestored(c); - } - } - } - }); - this.pool.on("connectFailed", address => { - this.relayMetricsHandler.onDisconnect(address, 0); - }); - this.pool.on("event", (_, sub, ev) => { - ev.relays?.length && this.relayMetricsHandler.onEvent(ev.relays[0]); - this.emit("event", sub, ev); - }); - this.pool.on("disconnect", (id, code) => { - const c = this.pool.getConnection(id); - if (c) { - this.relayMetricsHandler.onDisconnect(c.address, code); - for (const [, q] of this.#queryManager) { - q.connectionLost(c.id); - } - } - }); - this.pool.on("auth", (_, c, r, cb) => this.emit("auth", c, r, cb)); - this.pool.on("notice", (addr, msg) => { - this.#log("NOTICE: %s %s", addr, msg); - }); - //this.#queryManager.on("change", () => this.emit("change", this.takeSnapshot())); - this.#queryManager.on("trace", t => { - this.relayMetricsHandler.onTraceReport(t); - }); - this.#queryManager.on("request", (subId: string, f: BuiltRawReqFilter) => this.emit("request", subId, f)); - } - - async Init(follows?: string[] | undefined) { - await this.#ndk.connect(); - } - - GetQuery(id: string): QueryLike | undefined { - return this.#queryManager.get(id); - } - - Fetch(req: RequestBuilder, cb?: (evs: Array) => void) { - return this.#queryManager.fetch(req, cb); - } - - Query(req: RequestBuilder): QueryLike { - return this.#queryManager.query(req); - } - - async ConnectToRelay(address: string, options: RelaySettings) { - await this.pool.connect(address, options, false); - } - - ConnectEphemeralRelay(address: string) { - return this.pool.connect(address, { read: true, write: true }, true); - } - - DisconnectRelay(address: string) { - this.pool.disconnect(address); - } - - HandleEvent(subId: string, ev: TaggedNostrEvent): void { - this.emit("event", subId, ev); - } - - async BroadcastEvent(ev: NostrEvent, cb?: ((rsp: OkResponse) => void) | undefined): Promise { - return await this.pool.broadcast(ev, cb); - } - - async WriteOnceToRelay(relay: string, ev: NostrEvent): Promise { - return await this.pool.broadcastTo(relay, ev); - } -} diff --git a/yarn.lock b/yarn.lock index 90fab72a..1af22cc2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4141,15 +4141,6 @@ __metadata: languageName: node linkType: hard -"@noble/curves@npm:1.1.0, @noble/curves@npm:~1.1.0": - version: 1.1.0 - resolution: "@noble/curves@npm:1.1.0" - dependencies: - "@noble/hashes": "npm:1.3.1" - checksum: 10/7028e3f19a4a2a601f9159e5423f51ae86ab231bed79a6e40649b063e1ed7f55f5da0475f1377bd2c5a8e5fc485af9ce0549ad89da6b983d6af48e5d0a2041ca - languageName: node - linkType: hard - "@noble/curves@npm:1.2.0": version: 1.2.0 resolution: "@noble/curves@npm:1.2.0" @@ -4168,6 +4159,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:~1.1.0": + version: 1.1.0 + resolution: "@noble/curves@npm:1.1.0" + dependencies: + "@noble/hashes": "npm:1.3.1" + checksum: 10/7028e3f19a4a2a601f9159e5423f51ae86ab231bed79a6e40649b063e1ed7f55f5da0475f1377bd2c5a8e5fc485af9ce0549ad89da6b983d6af48e5d0a2041ca + languageName: node + linkType: hard + "@noble/curves@npm:~1.6.0": version: 1.6.0 resolution: "@noble/curves@npm:1.6.0" @@ -4191,7 +4191,7 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.4.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.4.0, @noble/hashes@npm:~1.4.0": +"@noble/hashes@npm:1.4.0, @noble/hashes@npm:^1.4.0, @noble/hashes@npm:~1.4.0": version: 1.4.0 resolution: "@noble/hashes@npm:1.4.0" checksum: 10/e156e65794c473794c52fa9d06baf1eb20903d0d96719530f523cc4450f6c721a957c544796e6efd0197b2296e7cd70efeb312f861465e17940a3e3c7e0febc6 @@ -4212,13 +4212,6 @@ __metadata: languageName: node linkType: hard -"@noble/secp256k1@npm:^2.0.0": - version: 2.1.0 - resolution: "@noble/secp256k1@npm:2.1.0" - checksum: 10/ffd7e7b555d253b2403a01939ab9d2d8d25c3aec89a7380d569385d1a36bd6f15234dcfa0ab215eda23590258454032f447b9847a9d2754ba31c70147a4cc4dd - languageName: node - linkType: hard - "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -4246,26 +4239,6 @@ __metadata: languageName: node linkType: hard -"@nostr-dev-kit/ndk@npm:^2.8.2": - version: 2.8.2 - resolution: "@nostr-dev-kit/ndk@npm:2.8.2" - dependencies: - "@noble/curves": "npm:^1.4.0" - "@noble/hashes": "npm:^1.3.1" - "@noble/secp256k1": "npm:^2.0.0" - "@scure/base": "npm:^1.1.1" - debug: "npm:^4.3.4" - light-bolt11-decoder: "npm:^3.0.0" - node-fetch: "npm:^3.3.1" - nostr-tools: "npm:^1.15.0" - tseep: "npm:^1.1.1" - typescript-lru-cache: "npm:^2.0.0" - utf8-buffer: "npm:^1.0.0" - websocket-polyfill: "npm:^0.0.3" - checksum: 10/4ee2513259800e4cedf88c772cfdf2e2c9652b9ecd432e25582363158635909c293ba7748d1cd314b612ca5344f1da820df456cdd6d908f6533856c0b038b648 - languageName: node - linkType: hard - "@npmcli/agent@npm:^2.0.0": version: 2.2.0 resolution: "@npmcli/agent@npm:2.2.0" @@ -4606,13 +4579,6 @@ __metadata: languageName: node linkType: hard -"@scure/base@npm:^1.1.1, @scure/base@npm:~1.1.0": - version: 1.1.3 - resolution: "@scure/base@npm:1.1.3" - checksum: 10/cb715fa8cdb043c4d96b6ba0666791d4eb4d033f7b5285a853aba25e0ba94914f05ff5d956029ad060005f9bdd02dab0caef9a0a63f07ed096a2c2a0c0cf9c36 - languageName: node - linkType: hard - "@scure/base@npm:^1.1.6, @scure/base@npm:~1.1.6": version: 1.1.6 resolution: "@scure/base@npm:1.1.6" @@ -4620,6 +4586,13 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:~1.1.0": + version: 1.1.3 + resolution: "@scure/base@npm:1.1.3" + checksum: 10/cb715fa8cdb043c4d96b6ba0666791d4eb4d033f7b5285a853aba25e0ba94914f05ff5d956029ad060005f9bdd02dab0caef9a0a63f07ed096a2c2a0c0cf9c36 + languageName: node + linkType: hard + "@scure/base@npm:~1.1.7, @scure/base@npm:~1.1.8": version: 1.1.8 resolution: "@scure/base@npm:1.1.8" @@ -4882,7 +4855,6 @@ __metadata: "@noble/ciphers": "npm:^0.6.0" "@noble/curves": "npm:^1.4.0" "@noble/hashes": "npm:^1.4.0" - "@nostr-dev-kit/ndk": "npm:^2.8.2" "@peculiar/webcrypto": "npm:^1.4.6" "@scure/base": "npm:^1.1.6" "@snort/shared": "npm:^1.0.17" @@ -6995,16 +6967,6 @@ __metadata: languageName: node linkType: hard -"bufferutil@npm:^4.0.1": - version: 4.0.8 - resolution: "bufferutil@npm:4.0.8" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10/d9337badc960a19d5a031db5de47159d7d8a11b6bab399bdfbf464ffa9ecd2972fef19bb61a7d2827e0c55f912c20713e12343386b86cb013f2b99c2324ab6a3 - languageName: node - linkType: hard - "builtin-modules@npm:^3.1.0": version: 3.3.0 resolution: "builtin-modules@npm:3.3.0" @@ -7692,16 +7654,6 @@ __metadata: languageName: node linkType: hard -"d@npm:1, d@npm:^1.0.1, d@npm:^1.0.2": - version: 1.0.2 - resolution: "d@npm:1.0.2" - dependencies: - es5-ext: "npm:^0.10.64" - type: "npm:^2.7.2" - checksum: 10/a3f45ef964622f683f6a1cb9b8dcbd75ce490cd2f4ac9794099db3d8f0e2814d412d84cd3fe522e58feb1f273117bb480f29c5381f6225f0abca82517caaa77a - languageName: node - linkType: hard - "damerau-levenshtein@npm:^1.0.8": version: 1.0.8 resolution: "damerau-levenshtein@npm:1.0.8" @@ -7718,13 +7670,6 @@ __metadata: languageName: node linkType: hard -"data-uri-to-buffer@npm:^4.0.0": - version: 4.0.1 - resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c - languageName: node - linkType: hard - "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -7781,15 +7726,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^2.2.0": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 - languageName: node - linkType: hard - "debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" @@ -8332,39 +8268,6 @@ __metadata: languageName: node linkType: hard -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.50, es5-ext@npm:^0.10.62, es5-ext@npm:^0.10.64, es5-ext@npm:~0.10.14": - version: 0.10.64 - resolution: "es5-ext@npm:0.10.64" - dependencies: - es6-iterator: "npm:^2.0.3" - es6-symbol: "npm:^3.1.3" - esniff: "npm:^2.0.1" - next-tick: "npm:^1.1.0" - checksum: 10/0c5d8657708b1695ddc4b06f4e0b9fbdda4d2fe46d037b6bedb49a7d1931e542ec9eecf4824d59e1d357e93229deab014bb4b86485db2d41b1d68e54439689ce - languageName: node - linkType: hard - -"es6-iterator@npm:^2.0.3": - version: 2.0.3 - resolution: "es6-iterator@npm:2.0.3" - dependencies: - d: "npm:1" - es5-ext: "npm:^0.10.35" - es6-symbol: "npm:^3.1.1" - checksum: 10/dbadecf3d0e467692815c2b438dfa99e5a97cbbecf4a58720adcb467a04220e0e36282399ba297911fd472c50ae4158fffba7ed0b7d4273fe322b69d03f9e3a5 - languageName: node - linkType: hard - -"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": - version: 3.1.4 - resolution: "es6-symbol@npm:3.1.4" - dependencies: - d: "npm:^1.0.2" - ext: "npm:^1.7.0" - checksum: 10/3743119fe61f89e2f049a6ce52bd82fab5f65d13e2faa72453b73f95c15292c3cb9bdf3747940d504517e675e45fd375554c6b5d35d2bcbefd35f5489ecba546 - languageName: node - linkType: hard - "esbuild@npm:^0.19.3": version: 0.19.5 resolution: "esbuild@npm:0.19.5" @@ -8894,18 +8797,6 @@ __metadata: languageName: node linkType: hard -"esniff@npm:^2.0.1": - version: 2.0.1 - resolution: "esniff@npm:2.0.1" - dependencies: - d: "npm:^1.0.1" - es5-ext: "npm:^0.10.62" - event-emitter: "npm:^0.3.5" - type: "npm:^2.7.2" - checksum: 10/f6a2abd2f8c5fe57c5fcf53e5407c278023313d0f6c3a92688e7122ab9ac233029fd424508a196ae5bc561aa1f67d23f4e2435b1a0d378030f476596129056ac - languageName: node - linkType: hard - "espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" @@ -8989,16 +8880,6 @@ __metadata: languageName: node linkType: hard -"event-emitter@npm:^0.3.5": - version: 0.3.5 - resolution: "event-emitter@npm:0.3.5" - dependencies: - d: "npm:1" - es5-ext: "npm:~0.10.14" - checksum: 10/a7f5ea80029193f4869782d34ef7eb43baa49cd397013add1953491b24588468efbe7e3cc9eb87d53f33397e7aab690fd74c079ec440bf8b12856f6bdb6e9396 - languageName: node - linkType: hard - "eventemitter3@npm:^4.0.1": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -9064,15 +8945,6 @@ __metadata: languageName: node linkType: hard -"ext@npm:^1.7.0": - version: 1.7.0 - resolution: "ext@npm:1.7.0" - dependencies: - type: "npm:^2.7.2" - checksum: 10/666a135980b002df0e75c8ac6c389140cdc59ac953db62770479ee2856d58ce69d2f845e5f2586716350b725400f6945e51e9159573158c39f369984c72dcd84 - languageName: node - linkType: hard - "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -9132,16 +9004,6 @@ __metadata: languageName: node linkType: hard -"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": - version: 3.2.0 - resolution: "fetch-blob@npm:3.2.0" - dependencies: - node-domexception: "npm:^1.0.0" - web-streams-polyfill: "npm:^3.0.3" - checksum: 10/5264ecceb5fdc19eb51d1d0359921f12730941e333019e673e71eb73921146dceabcb0b8f534582be4497312d656508a439ad0f5edeec2b29ab2e10c72a1f86b - languageName: node - linkType: hard - "fflate@npm:~0.6.10": version: 0.6.10 resolution: "fflate@npm:0.6.10" @@ -9244,15 +9106,6 @@ __metadata: languageName: node linkType: hard -"formdata-polyfill@npm:^4.0.10": - version: 4.0.10 - resolution: "formdata-polyfill@npm:4.0.10" - dependencies: - fetch-blob: "npm:^3.1.2" - checksum: 10/9b5001d2edef3c9449ac3f48bd4f8cc92e7d0f2e7c1a5c8ba555ad4e77535cc5cf621fabe49e97f304067037282dd9093b9160a3cb533e46420b446c4e6bc06f - languageName: node - linkType: hard - "fraction.js@npm:^4.3.6": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" @@ -10210,13 +10063,6 @@ __metadata: languageName: node linkType: hard -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c - languageName: node - linkType: hard - "is-weakmap@npm:^2.0.1": version: 2.0.1 resolution: "is-weakmap@npm:2.0.1" @@ -11670,13 +11516,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -11732,13 +11571,6 @@ __metadata: languageName: node linkType: hard -"next-tick@npm:^1.1.0": - version: 1.1.0 - resolution: "next-tick@npm:1.1.0" - checksum: 10/83b5cf36027a53ee6d8b7f9c0782f2ba87f4858d977342bfc3c20c21629290a2111f8374d13a81221179603ffc4364f38374b5655d17b6a8f8a8c77bdea4fe8b - languageName: node - linkType: hard - "ngraph.events@npm:^1.0.0, ngraph.events@npm:^1.2.1": version: 1.2.2 resolution: "ngraph.events@npm:1.2.2" @@ -11780,35 +11612,6 @@ __metadata: languageName: node linkType: hard -"node-domexception@npm:^1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: 10/e332522f242348c511640c25a6fc7da4f30e09e580c70c6b13cb0be83c78c3e71c8d4665af2527e869fc96848924a4316ae7ec9014c091e2156f41739d4fa233 - languageName: node - linkType: hard - -"node-fetch@npm:^3.3.1": - version: 3.3.2 - resolution: "node-fetch@npm:3.3.2" - dependencies: - data-uri-to-buffer: "npm:^4.0.0" - fetch-blob: "npm:^3.1.4" - formdata-polyfill: "npm:^4.0.10" - checksum: 10/24207ca8c81231c7c59151840e3fded461d67a31cf3e3b3968e12201a42f89ce4a0b5fb7079b1fa0a4655957b1ca9257553200f03a9f668b45ebad265ca5593d - languageName: node - linkType: hard - -"node-gyp-build@npm:^4.3.0": - version: 4.8.0 - resolution: "node-gyp-build@npm:4.8.0" - bin: - node-gyp-build: bin.js - node-gyp-build-optional: optional.js - node-gyp-build-test: build-test.js - checksum: 10/80f410ab412df38e84171d3634a5716b6c6f14ecfa4eb971424d289381fb76f8bcbe1b666419ceb2c81060e558fd7c6d70cc0f60832bcca6a1559098925d9657 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 10.0.1 resolution: "node-gyp@npm:10.0.1" @@ -11882,25 +11685,6 @@ __metadata: languageName: node linkType: hard -"nostr-tools@npm:^1.15.0": - version: 1.17.0 - resolution: "nostr-tools@npm:1.17.0" - dependencies: - "@noble/ciphers": "npm:0.2.0" - "@noble/curves": "npm:1.1.0" - "@noble/hashes": "npm:1.3.1" - "@scure/base": "npm:1.1.1" - "@scure/bip32": "npm:1.3.1" - "@scure/bip39": "npm:1.2.1" - peerDependencies: - typescript: ">=5.0.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/c903582f6df9b5a17a02bd2fef5a5bb2ab3e80800d6f6568be8e2c2d75bfc46fc2bcd50f3dd48c775682fe427904099d723141b5bde6578ccf56ff68eb89e3b5 - languageName: node - linkType: hard - "nostr-tools@npm:^2.0.2": version: 2.0.2 resolution: "nostr-tools@npm:2.0.2" @@ -14751,13 +14535,6 @@ __metadata: languageName: node linkType: hard -"tseep@npm:^1.1.1": - version: 1.2.1 - resolution: "tseep@npm:1.2.1" - checksum: 10/36b285d8aa333dc25b1ecb9f22ee751c4342694c2f1e0dba00d4a7c2011d796deb00122050760bf8a951b0c7aecaa2691dfc129a2757e793c15976bb32b28068 - languageName: node - linkType: hard - "tslib@npm:2.6.2, tslib@npm:^2.0.0, tslib@npm:^2.4.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -14779,13 +14556,6 @@ __metadata: languageName: node linkType: hard -"tstl@npm:^2.0.7": - version: 2.5.16 - resolution: "tstl@npm:2.5.16" - checksum: 10/aaff2582f6963f33f1891e3d06690f6535a3b74ee68f9323f3d791fbf6dbe414abfb562b852c790923322b4e374f9dbbad5d8c98755eba64282e6aa1d735f253 - languageName: node - linkType: hard - "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -14834,13 +14604,6 @@ __metadata: languageName: node linkType: hard -"type@npm:^2.7.2": - version: 2.7.2 - resolution: "type@npm:2.7.2" - checksum: 10/602f1b369fba60687fa4d0af6fcfb814075bcaf9ed3a87637fb384d9ff849e2ad15bc244a431f341374562e51a76c159527ffdb1f1f24b0f1f988f35a301c41d - languageName: node - linkType: hard - "typed-array-buffer@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-buffer@npm:1.0.0" @@ -14952,15 +14715,6 @@ __metadata: languageName: node linkType: hard -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: "npm:^1.0.0" - checksum: 10/7c850c3433fbdf4d04f04edfc751743b8f577828b8e1eb93b95a3bce782d156e267d83e20fb32b3b47813e69a69ab5e9b5342653332f7d21c7d1210661a7a72c - languageName: node - linkType: hard - "typedoc@npm:^0.25.7": version: 0.25.7 resolution: "typedoc@npm:0.25.7" @@ -15235,23 +14989,6 @@ __metadata: languageName: node linkType: hard -"utf-8-validate@npm:^5.0.2": - version: 5.0.10 - resolution: "utf-8-validate@npm:5.0.10" - dependencies: - node-gyp: "npm:latest" - node-gyp-build: "npm:^4.3.0" - checksum: 10/b89cbc13b4badad04828349ebb7aa2ab1edcb02b46ab12ce0ba5b2d6886d684ad4e93347819e3c8d36224c8742422d2dca69f5cc16c72ae4d7eeecc0c5cb544b - languageName: node - linkType: hard - -"utf8-buffer@npm:^1.0.0": - version: 1.0.0 - resolution: "utf8-buffer@npm:1.0.0" - checksum: 10/7028825ec46347042a9e82ad1189f487f08a562d4f006d66fccd6bc4504fe720f481c2ee351bdca9f8a0f829566efcb3c852ba0f19f6810ad730686ba9d3ae94 - languageName: node - linkType: hard - "util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -15545,13 +15282,6 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:^3.0.3": - version: 3.3.3 - resolution: "web-streams-polyfill@npm:3.3.3" - checksum: 10/8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 - languageName: node - linkType: hard - "webcrypto-core@npm:^1.7.9": version: 1.7.9 resolution: "webcrypto-core@npm:1.7.9" @@ -15588,30 +15318,6 @@ __metadata: languageName: node linkType: hard -"websocket-polyfill@npm:^0.0.3": - version: 0.0.3 - resolution: "websocket-polyfill@npm:0.0.3" - dependencies: - tstl: "npm:^2.0.7" - websocket: "npm:^1.0.28" - checksum: 10/c0e385c163978a95e70438fff37ac1534f91211c1f026deeedcbfd174c90db1a0cc5c1b30fe05aaf903210a8355bd6de4c4f6d956bbae36f621641d1f178e09b - languageName: node - linkType: hard - -"websocket@npm:^1.0.28": - version: 1.0.34 - resolution: "websocket@npm:1.0.34" - dependencies: - bufferutil: "npm:^4.0.1" - debug: "npm:^2.2.0" - es5-ext: "npm:^0.10.50" - typedarray-to-buffer: "npm:^3.1.5" - utf-8-validate: "npm:^5.0.2" - yaeti: "npm:^0.0.6" - checksum: 10/b72e3dcc3fa92b4a4511f0df89b25feed6ab06979cb9e522d2736f09855f4bf7588d826773b9405fcf3f05698200eb55ba9da7ef333584653d4912a5d3b13c18 - languageName: node - linkType: hard - "whatwg-encoding@npm:^2.0.0": version: 2.0.0 resolution: "whatwg-encoding@npm:2.0.0" @@ -16059,13 +15765,6 @@ __metadata: languageName: node linkType: hard -"yaeti@npm:^0.0.6": - version: 0.0.6 - resolution: "yaeti@npm:0.0.6" - checksum: 10/6db12c152f7c363b80071086a3ebf5032e03332604eeda988872be50d6c8469e1f13316175544fa320f72edad696c2d83843ad0ff370659045c1a68bcecfcfea - languageName: node - linkType: hard - "yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1"