100 Commits
Author SHA1 Message Date
fiatjaf 7fa1ef45c5 fix "<forced-ping>" mismatch.
fixes https://github.com/nbd-wtf/nostr-tools/issues/539
2026-07-29 16:43:49 -03:00
fiatjaf 5609bab1ac check length on isHex32().
fixes https://github.com/nbd-wtf/nostr-tools/issues/540
2026-07-29 16:30:48 -03:00
fiatjaf fed4a55613 fix reconnection relay leakage and double onclose calls. 2026-07-21 14:38:15 -03:00
fiatjaf bd02fc3287 pass the relay URL to verifyEvent() so trusted-relay policies can be implemented. 2026-07-20 13:01:28 -03:00
fiatjaf c66469dc75 declare a missing type. 2026-07-17 20:55:14 -03:00
fiatjaf 05c2836218 add favorite follow sets kind. 2026-07-16 21:08:11 -03:00
fiatjaf fa21fd6671 replace ad-hoc regexes with isHex32(). 2026-07-16 20:24:50 -03:00
fiatjaf 585258516b blossom: optimize hash extraction from url. 2026-07-16 20:24:50 -03:00
fiatjaf cbb1b9688d subscribeMap's onClose is now called with {url, reason}[] instead of reason[]. 2026-07-14 13:17:35 -03:00
fiatjaf b1406da48e blossom: send content-type header when uploading. 2026-07-13 22:28:19 -03:00
fiatjaf 514678b102 automatically closed unused relay connections after a while. 2026-07-13 11:24:56 -03:00
fiatjaf 21d11f1496 export new modules to jsr. 2026-07-01 00:49:15 -03:00
fiatjaf 08b676a8a4 nip45 helpers and pool.countMany() with HLL. 2026-07-01 00:17:27 -03:00
fiatjaf e07ed919c5 relay.countWithHLL() 2026-06-30 23:43:51 -03:00
fiatjaf cf1c218bfc add a nipb0.ts with blossom helpers. 2026-06-26 19:00:17 -03:00
fiatjaf 73ff3660ac add a bunch of kind numbers. 2026-06-26 18:59:47 -03:00
fiatjaf c5f7f3cbe1 catch EVENT/COUNT sending errors. 2026-06-25 22:20:47 -03:00
fiatjaf e9b40dca7c nip46: support client metadata for the bunker:// flow. 2026-06-23 09:16:02 -03:00
fiatjaf dab630de34 nip10/nip22: guard against malformed tags. 2026-06-22 21:20:09 -03:00
fiatjaf 3575368176 nip19: TLV infinite loop again.
probably fixes https://github.com/nbd-wtf/nostr-tools/issues/223
2026-06-15 18:22:50 -03:00
fiatjaf e17366cd2e add AUTH recommendations to README.
fixes https://github.com/nbd-wtf/nostr-tools/issues/537
2026-06-10 22:09:28 -03:00
fiatjaf 5de4f4549b fix jsr export. 2026-05-18 21:11:05 -03:00
fiatjaf ed47ef8ef7 bump version. 2026-05-18 20:52:28 -03:00
fiatjaf a9e89e16e3 nip22: like nip10, but for kind:1111 and adjacent kinds. 2026-05-18 20:52:05 -03:00
fiatjaf 3cd26d7d76 nip44: fix test sha256. 2026-05-18 20:52:05 -03:00
fiatjaf 1c1e2cc51a verify event should catch exceptions from basic validation. 2026-02-26 18:10:39 -03:00
fiatjaf e45a9987e2 pool: prevent edge case with undefined subcloser. 2026-02-12 15:08:13 -03:00
fiatjaf 0c2c2cd4d8 nip13: improve mining by skipping hex. 2026-02-08 01:06:01 -03:00
fiatjaf 28f7553187 fix a type so jsr is happy. 2026-02-02 18:49:17 -03:00
fiatjaf ca29d9b515 ok, we need the prepareSubscription method. 2026-02-02 18:46:50 -03:00
fiatjaf ab802c8dbe automatic prune broken relay objects and keep track of relay idleness so they can be pruned. 2026-02-02 18:44:52 -03:00
fiatjaf 9db705d86c delete queue test since we don't have queues anymore. 2026-02-02 17:01:59 -03:00
fiatjaf be9b91318f relay: get rid of the message queue, because js is single-threaded. 2026-02-02 09:06:56 -03:00
fiatjaf c2423f7f31 nip27: fix hashtag parsing after newline or other characters. 2026-02-02 08:56:18 -03:00
fiatjaf 05b1fba511 export source files so they can be imported by other ts apps and libraries better. 2026-02-02 00:38:15 -03:00
fiatjaf 2d1345096b subscribeMany and subscribeManyEose are the same as subscribe/subscribeEose. 2026-02-01 17:19:58 -03:00
fiatjaf 6fc7788a4f utils: merging two (reverse) sorted lists of events. 2026-02-01 08:44:49 -03:00
fiatjaf 2180c7a1fe add onRelayConnectionSuccess to pair with onRelayConnectionFailure. 2026-01-31 19:27:45 -03:00
fiatjaf b4bec2097d finally stop reconnecting when the first connection fails once and for all. 2026-01-31 19:27:45 -03:00
fiatjaf fb7de7f1aa prevent reconnections when initial connection fails. 2026-01-31 13:57:33 -03:00
fiatjaf ccb9641fb9 pool: maxWaitForConnection parameter.
this was so obvious.
2026-01-31 00:27:55 -03:00
fiatjaf b624ad4059 pool: hooks to notify when a relay fails to connect, then ask whether a connection should be attempted. 2026-01-30 17:35:46 -03:00
fiatjaf b3d314643a make everything dependent on npm again. 2026-01-30 07:16:04 -03:00
fiatjaf 30ac8a02c2 readme to point only to jsr because npm is awful. 2026-01-28 17:28:27 -03:00
fiatjaf 42c9c7554d migrate to jsr dependencies for @noble and @scure. 2026-01-27 23:54:50 -03:00
fiatjaf 3588d30044 do the same for @noble/ciphers and @scure packages. 2026-01-27 22:43:54 -03:00
fiatjaf bfa40da316 nip46: improve fromURI() and implement "switch_relays". 2026-01-22 21:50:30 -03:00
fiatjaf 9078f45a64 optionally take an AbortSignal on subscriptions. 2026-01-22 21:49:39 -03:00
fiatjaf 6ebe59f123 nip27: support note1 entities for now, but treat them like nevent. 2025-12-17 17:48:35 -03:00
fiatjaf 0235b490fa nip27: fix trailing / in urls. 2025-12-11 21:23:32 -03:00
fiatjaf e290f98a86 label forced ping subscription. 2025-12-10 21:06:31 -03:00
fiatjaf 7a50d9328d add some more kinds. 2025-12-09 10:56:43 -03:00
fiatjaf 65412e5b85 NostrEvent > Event. 2025-12-06 12:21:56 -03:00
fiatjaf ca36ae9530 update README with new enableReconnect() behavior. 2025-12-05 21:59:52 -03:00
fiatjaf 0b6543e1a8 use setInterval() instead of nested setTimeout()s for pingpong.
prevent call stacks from building up
2025-12-05 21:46:16 -03:00
fiatjaf 693b262b7c CLOSED answers to dummyReq are also ok. 2025-12-05 21:03:34 -03:00
fiatjaf 85c964be3d enableReconnect() always update the filters to the time of the last received event on each subscription. 2025-12-05 13:24:49 -03:00
fiatjaf de7d459f6f only transform filters with enableReconnect() when we're actually reconnecting. 2025-12-05 09:22:33 -03:00
fiatjaf 21ec5bb2dc allow automatically performing AUTH against all relays. 2025-12-05 09:12:59 -03:00
fiatjaf e959409c14 fix classifyKind() test. 2025-11-25 22:21:46 -03:00
fiatjaf 8a76c4e329 fix normalizeUrl to make websocket urls out of http urls. 2025-11-25 22:20:38 -03:00
fiatjaf 34a1d8db47 kinds: more reliable regular/replaceable kind figuring. 2025-11-24 20:08:15 -03:00
fiatjaf d3ddd490c2 nip27: test emoji behavior when no tags. 2025-11-22 22:23:03 -03:00
fiatjaf 7730e321a5 nip27: support more image, audio and video extensions. 2025-11-22 20:36:04 -03:00
fiatjaf 400d132612 nip77: negentropy tests and small fixes. 2025-11-21 19:51:55 -03:00
fiatjaf 01880b6fb5 nip27: parse emoji shortcodes and hashtags too. 2025-11-21 00:37:40 -03:00
fiatjaf e87ffc433c build "core" although we shouldn't. 2025-11-21 00:37:40 -03:00
fiatjaf c45e861493 fire subscriptions.
this was broken during the negentropy stuff.

fixes https://github.com/nbd-wtf/nostr-tools/issues/517
2025-11-19 14:53:24 -03:00
fiatjaf 66cc55c7f0 nip77: negentropy implementation and nip77 interface.
supersedes https://github.com/nbd-wtf/nostr-tools/pull/516
2025-11-18 09:33:11 -03:00
fiatjaf 5841b0936b throw when subscription is created without filters.
fixes https://github.com/nbd-wtf/nostr-tools/pull/497
2025-11-18 08:09:45 -03:00
fiatjaf c9ff51e278 subscribeMap() now sends multiple filters to the same relay in the same REQ.
because the initiative to get rid of multiple filters went down.
2025-09-20 16:54:12 -03:00
fiatjaf 86235314c4 deduplicate relay URLs in pool.subscribe() and pool.subscribeMany() 2025-08-06 10:37:36 -03:00
fiatjaf 929d62bbbb nip57: cleanup useless tests. 2025-08-01 20:28:49 -03:00
fiatjaf b575e47844 nip57: include "k" tag. 2025-08-01 19:38:03 -03:00
fiatjaf b076c34a2f tag new minor because of the pingpong stuff. 2025-08-01 14:12:53 -03:00
fiatjaf 4bb3eb2d40 remove unnecessary normalizeURL() call that can throw sometimes. 2025-08-01 14:11:44 -03:00
fiatjaf 4b6cc19b9c cleanup. 2025-07-23 16:22:25 -03:00
fiatjaf b2f3a01439 nip46: remove deprecated getRelays() 2025-07-23 16:22:16 -03:00
fiatjaf d706ef961f pool: closed relays must be eliminated. 2025-07-17 23:39:16 -03:00
fiatjaf f0357805c3 catch errors on function passed to auth() and log them. 2025-06-10 10:20:20 -03:00
fiatjaf ffa7fb926e remove deprecated unused _onauth hook. 2025-06-10 10:16:11 -03:00
fiatjaf 12acb900ab SubCloser.close() can take a reason string optionally. 2025-06-10 10:15:58 -03:00
fiatjaf d773012658 proper auth support on pool.publish(). 2025-06-06 22:36:07 -03:00
fiatjaf b8f91c37fa and there was an error in jsr.json 2025-06-05 14:37:56 -03:00
fiatjaf 2da3528362 forgot to expose blossom, as usual. 2025-06-05 01:29:54 -03:00
fiatjaf 315e9a472c expose signer module. 2025-06-04 21:47:17 -03:00
fiatjaf a2b1bf0338 blossom test. 2025-06-04 21:45:43 -03:00
fiatjaf 861a77e2b3 nipB7 (blossom) and a generic signer interface. 2025-06-04 21:28:33 -03:00
fiatjaf ae2f97655b remove two deprecated things. 2025-05-31 20:04:46 -03:00
fiatjaf 5b78a829c7 ignore error when sending on a CLOSE to a closed connection. 2025-05-31 12:29:24 -03:00
fiatjaf de26ee98c5 failed to connect to a websocket should reject the promise. 2025-05-31 11:16:22 -03:00
fiatjaf 1437bbdb0f update removed function in test. 2025-05-28 14:52:36 -03:00
fiatjaf 57354b9fb4 expose hexToBytes and bytesToHex helpers. 2025-05-28 14:50:25 -03:00
fiatjaf 924075b803 nip57: get sats amount from bolt11 helper. 2025-05-20 09:25:31 -03:00
fiatjaf eff9ea9579 remove deprecated subscribeManyMap() 2025-05-17 18:52:01 -03:00
fiatjaf ca174e6cd8 publish to jsr before npm. 2025-05-12 05:27:16 -03:00
fiatjaf 4ba9c8886b forgot to remove nip96 from export lists. 2025-05-12 05:24:57 -03:00
fiatjaf 7dbd86eb5c fix types from latest nip19 type change. 2025-05-12 05:23:54 -03:00
fiatjaf 3e839db6f2 tag v2.13.0 (breaking because stuff is removed). 2025-05-12 05:20:45 -03:00
fiatjaf 52079f6e75 saner nip19 types.
@staab should be happy now.
2025-04-26 09:00:28 -03:00