nostr-websocket-utils 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -7
- package/dist/__mocks__/extendedWsMock.d.ts +31 -14
- package/dist/__mocks__/extendedWsMock.d.ts.map +1 -0
- package/dist/__mocks__/extendedWsMock.js +7 -6
- package/dist/__mocks__/extendedWsMock.js.map +1 -0
- package/dist/__mocks__/mockLogger.d.ts +8 -7
- package/dist/__mocks__/mockLogger.d.ts.map +1 -0
- package/dist/__mocks__/mockLogger.js +1 -0
- package/dist/__mocks__/mockLogger.js.map +1 -0
- package/dist/__mocks__/mockserver.d.ts +7 -11
- package/dist/__mocks__/mockserver.d.ts.map +1 -0
- package/dist/__mocks__/mockserver.js +1 -0
- package/dist/__mocks__/mockserver.js.map +1 -0
- package/dist/__mocks__/wsMock.d.ts +1 -2
- package/dist/__mocks__/wsMock.d.ts.map +1 -0
- package/dist/__mocks__/wsMock.js +1 -0
- package/dist/__mocks__/wsMock.js.map +1 -0
- package/dist/cjs/__mocks__/extendedWsMock.d.ts +52 -0
- package/dist/cjs/__mocks__/extendedWsMock.d.ts.map +1 -0
- package/dist/cjs/__mocks__/extendedWsMock.js +161 -0
- package/dist/cjs/__mocks__/extendedWsMock.js.map +1 -0
- package/dist/cjs/__mocks__/mockLogger.d.ts +42 -0
- package/dist/cjs/__mocks__/mockLogger.d.ts.map +1 -0
- package/dist/cjs/__mocks__/mockLogger.js +53 -0
- package/dist/cjs/__mocks__/mockLogger.js.map +1 -0
- package/dist/cjs/__mocks__/mockserver.d.ts +27 -0
- package/dist/cjs/__mocks__/mockserver.d.ts.map +1 -0
- package/dist/cjs/__mocks__/mockserver.js +44 -0
- package/dist/cjs/__mocks__/mockserver.js.map +1 -0
- package/dist/cjs/__mocks__/wsMock.d.ts +25 -0
- package/dist/cjs/__mocks__/wsMock.d.ts.map +1 -0
- package/dist/cjs/__mocks__/wsMock.js +123 -0
- package/dist/cjs/__mocks__/wsMock.js.map +1 -0
- package/dist/cjs/core/client.d.ts +35 -0
- package/dist/cjs/core/client.d.ts.map +1 -0
- package/dist/cjs/core/client.js +161 -0
- package/dist/cjs/core/client.js.map +1 -0
- package/dist/{nostr-server.d.ts → cjs/core/nostr-server.d.ts} +3 -6
- package/dist/cjs/core/nostr-server.d.ts.map +1 -0
- package/dist/cjs/core/nostr-server.js +101 -0
- package/dist/cjs/core/nostr-server.js.map +1 -0
- package/dist/cjs/core/queue.d.ts +38 -0
- package/dist/cjs/core/queue.d.ts.map +1 -0
- package/dist/cjs/core/queue.js +105 -0
- package/dist/cjs/core/queue.js.map +1 -0
- package/dist/cjs/core/server.d.ts +29 -0
- package/dist/cjs/core/server.d.ts.map +1 -0
- package/dist/cjs/core/server.js +134 -0
- package/dist/cjs/core/server.js.map +1 -0
- package/dist/cjs/crypto/bech32.d.ts +27 -0
- package/dist/cjs/crypto/bech32.d.ts.map +1 -0
- package/dist/cjs/crypto/bech32.js +170 -0
- package/dist/cjs/crypto/bech32.js.map +1 -0
- package/dist/cjs/crypto/handlers.d.ts +19 -0
- package/dist/cjs/crypto/handlers.d.ts.map +1 -0
- package/dist/cjs/crypto/handlers.js +65 -0
- package/dist/cjs/crypto/handlers.js.map +1 -0
- package/dist/cjs/crypto/index.d.ts +6 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +22 -0
- package/dist/cjs/crypto/index.js.map +1 -0
- package/dist/cjs/endpoints/metrics.d.ts +30 -0
- package/dist/cjs/endpoints/metrics.d.ts.map +1 -0
- package/dist/cjs/endpoints/metrics.js +106 -0
- package/dist/cjs/endpoints/metrics.js.map +1 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +40 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/nips/index.d.ts +20 -0
- package/dist/cjs/nips/index.d.ts.map +1 -0
- package/dist/cjs/nips/index.js +51 -0
- package/dist/cjs/nips/index.js.map +1 -0
- package/dist/cjs/nips/nip-01.d.ts +35 -0
- package/dist/cjs/nips/nip-01.d.ts.map +1 -0
- package/dist/cjs/nips/nip-01.js +142 -0
- package/dist/cjs/nips/nip-01.js.map +1 -0
- package/dist/cjs/nips/nip-02.d.ts +83 -0
- package/dist/cjs/nips/nip-02.d.ts.map +1 -0
- package/dist/cjs/nips/nip-02.js +119 -0
- package/dist/cjs/nips/nip-02.js.map +1 -0
- package/dist/cjs/nips/nip-04.d.ts +37 -0
- package/dist/cjs/nips/nip-04.d.ts.map +1 -0
- package/dist/cjs/nips/nip-04.js +104 -0
- package/dist/cjs/nips/nip-04.js.map +1 -0
- package/dist/cjs/nips/nip-05.d.ts +88 -0
- package/dist/cjs/nips/nip-05.d.ts.map +1 -0
- package/dist/cjs/nips/nip-05.js +158 -0
- package/dist/cjs/nips/nip-05.js.map +1 -0
- package/dist/cjs/nips/nip-09.d.ts +93 -0
- package/dist/cjs/nips/nip-09.d.ts.map +1 -0
- package/dist/cjs/nips/nip-09.js +180 -0
- package/dist/cjs/nips/nip-09.js.map +1 -0
- package/dist/cjs/nips/nip-11.d.ts +65 -0
- package/dist/cjs/nips/nip-11.d.ts.map +1 -0
- package/dist/cjs/nips/nip-11.js +161 -0
- package/dist/cjs/nips/nip-11.js.map +1 -0
- package/dist/cjs/nips/nip-13.d.ts +74 -0
- package/dist/cjs/nips/nip-13.d.ts.map +1 -0
- package/dist/cjs/nips/nip-13.js +136 -0
- package/dist/cjs/nips/nip-13.js.map +1 -0
- package/dist/cjs/nips/nip-15.d.ts +84 -0
- package/dist/cjs/nips/nip-15.d.ts.map +1 -0
- package/dist/cjs/nips/nip-15.js +102 -0
- package/dist/cjs/nips/nip-15.js.map +1 -0
- package/dist/cjs/nips/nip-16.d.ts +89 -0
- package/dist/cjs/nips/nip-16.d.ts.map +1 -0
- package/dist/cjs/nips/nip-16.js +157 -0
- package/dist/cjs/nips/nip-16.js.map +1 -0
- package/dist/cjs/nips/nip-19.d.ts +29 -0
- package/dist/cjs/nips/nip-19.d.ts.map +1 -0
- package/dist/cjs/nips/nip-19.js +112 -0
- package/dist/cjs/nips/nip-19.js.map +1 -0
- package/dist/cjs/nips/nip-20.d.ts +60 -0
- package/dist/cjs/nips/nip-20.d.ts.map +1 -0
- package/dist/cjs/nips/nip-20.js +102 -0
- package/dist/cjs/nips/nip-20.js.map +1 -0
- package/dist/cjs/nips/nip-22.d.ts +90 -0
- package/dist/cjs/nips/nip-22.d.ts.map +1 -0
- package/dist/cjs/nips/nip-22.js +149 -0
- package/dist/cjs/nips/nip-22.js.map +1 -0
- package/dist/cjs/nips/nip-26.d.ts +53 -0
- package/dist/cjs/nips/nip-26.d.ts.map +1 -0
- package/dist/cjs/nips/nip-26.js +147 -0
- package/dist/cjs/nips/nip-26.js.map +1 -0
- package/dist/cjs/nips/nip-28.d.ts +104 -0
- package/dist/cjs/nips/nip-28.d.ts.map +1 -0
- package/dist/cjs/nips/nip-28.js +164 -0
- package/dist/cjs/nips/nip-28.js.map +1 -0
- package/dist/cjs/nips/nip-33.d.ts +95 -0
- package/dist/cjs/nips/nip-33.d.ts.map +1 -0
- package/dist/cjs/nips/nip-33.js +135 -0
- package/dist/cjs/nips/nip-33.js.map +1 -0
- package/dist/cjs/transport/base.d.ts +54 -0
- package/dist/cjs/transport/base.d.ts.map +1 -0
- package/dist/cjs/transport/base.js +109 -0
- package/dist/cjs/transport/base.js.map +1 -0
- package/dist/cjs/transport/websocket.d.ts +24 -0
- package/dist/cjs/transport/websocket.d.ts.map +1 -0
- package/dist/cjs/transport/websocket.js +136 -0
- package/dist/cjs/transport/websocket.js.map +1 -0
- package/dist/cjs/types/events.d.ts +74 -0
- package/dist/cjs/types/events.d.ts.map +1 -0
- package/dist/cjs/types/events.js +7 -0
- package/dist/cjs/types/events.js.map +1 -0
- package/dist/cjs/types/filters.d.ts +20 -0
- package/dist/cjs/types/filters.d.ts.map +1 -0
- package/dist/cjs/types/filters.js +7 -0
- package/dist/cjs/types/filters.js.map +1 -0
- package/dist/cjs/types/handlers.d.ts +81 -0
- package/dist/cjs/types/handlers.d.ts.map +1 -0
- package/dist/cjs/types/handlers.js +7 -0
- package/dist/cjs/types/handlers.js.map +1 -0
- package/dist/cjs/types/index.d.ts +144 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +37 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/logger.d.ts +41 -0
- package/dist/cjs/types/logger.d.ts.map +1 -0
- package/dist/cjs/types/logger.js +7 -0
- package/dist/cjs/types/logger.js.map +1 -0
- package/dist/cjs/types/messages.d.ts +133 -0
- package/dist/cjs/types/messages.d.ts.map +1 -0
- package/dist/cjs/types/messages.js +46 -0
- package/dist/cjs/types/messages.js.map +1 -0
- package/dist/cjs/types/nostr.d.ts +134 -0
- package/dist/cjs/types/nostr.d.ts.map +1 -0
- package/dist/cjs/types/nostr.js +7 -0
- package/dist/cjs/types/nostr.js.map +1 -0
- package/dist/cjs/types/options.d.ts +155 -0
- package/dist/cjs/types/options.d.ts.map +1 -0
- package/dist/cjs/types/options.js +7 -0
- package/dist/cjs/types/options.js.map +1 -0
- package/dist/cjs/types/priority.d.ts +13 -0
- package/dist/cjs/types/priority.d.ts.map +1 -0
- package/dist/cjs/types/priority.js +17 -0
- package/dist/cjs/types/priority.js.map +1 -0
- package/dist/cjs/types/relays.d.ts +27 -0
- package/dist/cjs/types/relays.d.ts.map +1 -0
- package/dist/cjs/types/relays.js +7 -0
- package/dist/cjs/types/relays.js.map +1 -0
- package/dist/cjs/types/scoring.d.ts +59 -0
- package/dist/cjs/types/scoring.d.ts.map +1 -0
- package/dist/cjs/types/scoring.js +34 -0
- package/dist/cjs/types/scoring.js.map +1 -0
- package/dist/cjs/types/socket.d.ts +98 -0
- package/dist/cjs/types/socket.d.ts.map +1 -0
- package/dist/cjs/types/socket.js +7 -0
- package/dist/cjs/types/socket.js.map +1 -0
- package/dist/cjs/types/transport.d.ts +98 -0
- package/dist/cjs/types/transport.d.ts.map +1 -0
- package/dist/cjs/types/transport.js +7 -0
- package/dist/cjs/types/transport.js.map +1 -0
- package/dist/cjs/types/validation.d.ts +51 -0
- package/dist/cjs/types/validation.d.ts.map +1 -0
- package/dist/cjs/types/validation.js +7 -0
- package/dist/cjs/types/validation.js.map +1 -0
- package/dist/cjs/types/websocket.d.ts +250 -0
- package/dist/cjs/types/websocket.d.ts.map +1 -0
- package/dist/cjs/types/websocket.js +7 -0
- package/dist/cjs/types/websocket.js.map +1 -0
- package/dist/cjs/utils/http.d.ts +11 -0
- package/dist/cjs/utils/http.d.ts.map +1 -0
- package/dist/cjs/utils/http.js +28 -0
- package/dist/cjs/utils/http.js.map +1 -0
- package/dist/cjs/utils/logger.d.ts +26 -0
- package/dist/cjs/utils/logger.d.ts.map +1 -0
- package/dist/cjs/utils/logger.js +43 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/cjs/utils/metrics.d.ts +81 -0
- package/dist/cjs/utils/metrics.d.ts.map +1 -0
- package/dist/cjs/utils/metrics.js +211 -0
- package/dist/cjs/utils/metrics.js.map +1 -0
- package/dist/cjs/utils/rate-limiter.d.ts +86 -0
- package/dist/cjs/utils/rate-limiter.d.ts.map +1 -0
- package/dist/cjs/utils/rate-limiter.js +183 -0
- package/dist/cjs/utils/rate-limiter.js.map +1 -0
- package/dist/core/client.d.ts +21 -80
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +110 -316
- package/dist/core/client.js.map +1 -0
- package/dist/core/nostr-server.d.ts +1 -0
- package/dist/core/nostr-server.d.ts.map +1 -0
- package/dist/core/nostr-server.js +1 -0
- package/dist/core/nostr-server.js.map +1 -0
- package/dist/core/queue.d.ts +22 -45
- package/dist/core/queue.d.ts.map +1 -0
- package/dist/core/queue.js +72 -79
- package/dist/core/queue.js.map +1 -0
- package/dist/core/server.d.ts +2 -0
- package/dist/core/server.d.ts.map +1 -0
- package/dist/core/server.js +29 -13
- package/dist/core/server.js.map +1 -0
- package/dist/crypto/bech32.d.ts +1 -0
- package/dist/crypto/bech32.d.ts.map +1 -0
- package/dist/crypto/bech32.js +1 -0
- package/dist/crypto/bech32.js.map +1 -0
- package/dist/crypto/handlers.d.ts +8 -0
- package/dist/crypto/handlers.d.ts.map +1 -0
- package/dist/crypto/handlers.js +27 -2
- package/dist/crypto/handlers.js.map +1 -0
- package/dist/crypto/index.d.ts +1 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +1 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/endpoints/metrics.d.ts +1 -0
- package/dist/endpoints/metrics.d.ts.map +1 -0
- package/dist/endpoints/metrics.js +1 -0
- package/dist/endpoints/metrics.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/nips/index.d.ts +1 -0
- package/dist/nips/index.d.ts.map +1 -0
- package/dist/nips/index.js +1 -0
- package/dist/nips/index.js.map +1 -0
- package/dist/nips/nip-01.d.ts +4 -3
- package/dist/nips/nip-01.d.ts.map +1 -0
- package/dist/nips/nip-01.js +18 -29
- package/dist/nips/nip-01.js.map +1 -0
- package/dist/nips/nip-02.d.ts +2 -2
- package/dist/nips/nip-02.d.ts.map +1 -0
- package/dist/nips/nip-02.js +14 -25
- package/dist/nips/nip-02.js.map +1 -0
- package/dist/nips/nip-04.d.ts +1 -0
- package/dist/nips/nip-04.d.ts.map +1 -0
- package/dist/nips/nip-04.js +16 -23
- package/dist/nips/nip-04.js.map +1 -0
- package/dist/nips/nip-05.d.ts +4 -2
- package/dist/nips/nip-05.d.ts.map +1 -0
- package/dist/nips/nip-05.js +1 -0
- package/dist/nips/nip-05.js.map +1 -0
- package/dist/nips/nip-09.d.ts +2 -1
- package/dist/nips/nip-09.d.ts.map +1 -0
- package/dist/nips/nip-09.js +7 -25
- package/dist/nips/nip-09.js.map +1 -0
- package/dist/nips/nip-11.d.ts +1 -0
- package/dist/nips/nip-11.d.ts.map +1 -0
- package/dist/nips/nip-11.js +1 -0
- package/dist/nips/nip-11.js.map +1 -0
- package/dist/nips/nip-13.d.ts +1 -0
- package/dist/nips/nip-13.d.ts.map +1 -0
- package/dist/nips/nip-13.js +3 -2
- package/dist/nips/nip-13.js.map +1 -0
- package/dist/nips/nip-15.d.ts +1 -0
- package/dist/nips/nip-15.d.ts.map +1 -0
- package/dist/nips/nip-15.js +2 -6
- package/dist/nips/nip-15.js.map +1 -0
- package/dist/nips/nip-16.d.ts +1 -0
- package/dist/nips/nip-16.d.ts.map +1 -0
- package/dist/nips/nip-16.js +3 -2
- package/dist/nips/nip-16.js.map +1 -0
- package/dist/nips/nip-19.d.ts +1 -0
- package/dist/nips/nip-19.d.ts.map +1 -0
- package/dist/nips/nip-19.js +1 -0
- package/dist/nips/nip-19.js.map +1 -0
- package/dist/nips/nip-20.d.ts +2 -1
- package/dist/nips/nip-20.d.ts.map +1 -0
- package/dist/nips/nip-20.js +20 -20
- package/dist/nips/nip-20.js.map +1 -0
- package/dist/nips/nip-22.d.ts +1 -0
- package/dist/nips/nip-22.d.ts.map +1 -0
- package/dist/nips/nip-22.js +4 -3
- package/dist/nips/nip-22.js.map +1 -0
- package/dist/nips/nip-26.d.ts +1 -0
- package/dist/nips/nip-26.d.ts.map +1 -0
- package/dist/nips/nip-26.js +1 -0
- package/dist/nips/nip-26.js.map +1 -0
- package/dist/nips/nip-28.d.ts +1 -0
- package/dist/nips/nip-28.d.ts.map +1 -0
- package/dist/nips/nip-28.js +17 -31
- package/dist/nips/nip-28.js.map +1 -0
- package/dist/nips/nip-33.d.ts +1 -0
- package/dist/nips/nip-33.d.ts.map +1 -0
- package/dist/nips/nip-33.js +7 -12
- package/dist/nips/nip-33.js.map +1 -0
- package/dist/transport/base.d.ts +4 -4
- package/dist/transport/base.d.ts.map +1 -0
- package/dist/transport/base.js +1 -0
- package/dist/transport/base.js.map +1 -0
- package/dist/transport/websocket.d.ts +2 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/transport/websocket.js +7 -0
- package/dist/transport/websocket.js.map +1 -0
- package/dist/types/events.d.ts +12 -1
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +2 -1
- package/dist/types/events.js.map +1 -0
- package/dist/types/filters.d.ts +1 -0
- package/dist/types/filters.d.ts.map +1 -0
- package/dist/types/filters.js +1 -0
- package/dist/types/filters.js.map +1 -0
- package/dist/types/handlers.d.ts +1 -0
- package/dist/types/handlers.d.ts.map +1 -0
- package/dist/types/handlers.js +1 -0
- package/dist/types/handlers.js.map +1 -0
- package/dist/types/index.d.ts +13 -6
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -3
- package/dist/types/index.js.map +1 -0
- package/dist/types/logger.d.ts +1 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/logger.js +1 -0
- package/dist/types/logger.js.map +1 -0
- package/dist/types/messages.d.ts +68 -70
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +28 -26
- package/dist/types/messages.js.map +1 -0
- package/dist/types/nostr.d.ts +3 -2
- package/dist/types/nostr.d.ts.map +1 -0
- package/dist/types/nostr.js +1 -0
- package/dist/types/nostr.js.map +1 -0
- package/dist/types/options.d.ts +1 -0
- package/dist/types/options.d.ts.map +1 -0
- package/dist/types/options.js +1 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/priority.d.ts +13 -0
- package/dist/types/priority.d.ts.map +1 -0
- package/dist/types/priority.js +14 -0
- package/dist/types/priority.js.map +1 -0
- package/dist/types/relays.d.ts +1 -0
- package/dist/types/relays.d.ts.map +1 -0
- package/dist/types/relays.js +1 -0
- package/dist/types/relays.js.map +1 -0
- package/dist/types/scoring.d.ts +19 -7
- package/dist/types/scoring.d.ts.map +1 -0
- package/dist/types/scoring.js +2 -1
- package/dist/types/scoring.js.map +1 -0
- package/dist/types/socket.d.ts +1 -2
- package/dist/types/socket.d.ts.map +1 -0
- package/dist/types/socket.js +1 -0
- package/dist/types/socket.js.map +1 -0
- package/dist/types/transport.d.ts +1 -0
- package/dist/types/transport.d.ts.map +1 -0
- package/dist/types/transport.js +1 -0
- package/dist/types/transport.js.map +1 -0
- package/dist/types/validation.d.ts +1 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +1 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/types/websocket.d.ts +116 -38
- package/dist/types/websocket.d.ts.map +1 -0
- package/dist/types/websocket.js +2 -1
- package/dist/types/websocket.js.map +1 -0
- package/dist/utils/http.d.ts +1 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +1 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/logger.d.ts +17 -2
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +24 -10
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/metrics.d.ts +1 -1
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +1 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +1 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +6 -4
- package/dist/utils/rate-limiter.js.map +1 -0
- package/package.json +14 -2
- package/dist/__mocks__/logger.d.ts +0 -9
- package/dist/__mocks__/logger.js +0 -6
- package/dist/client.d.ts +0 -129
- package/dist/client.js +0 -259
- package/dist/crypto/schnorr.d.ts +0 -16
- package/dist/crypto/schnorr.js +0 -51
- package/dist/nostr-server.js +0 -107
- package/dist/server.d.ts +0 -27
- package/dist/server.js +0 -132
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,uBAAuB,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,uBAAuB,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,oBAAoB,IAAI,mBAAmB,CAAC;IAE5C;;OAEG;IACH,sBAAsB,IAAI,qBAAqB,CAAC;CACjD"}
|
package/dist/types/validation.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file WebSocket type definitions
|
|
2
|
+
* @file WebSocket type definitions
|
|
3
3
|
* @module types/websocket
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
5
|
+
import { WebSocket } from 'ws';
|
|
6
|
+
import { MessageType, NostrWSMessage } from './messages';
|
|
7
|
+
import { MessagePriority } from './priority';
|
|
8
8
|
import { RateLimitConfig } from '../utils/rate-limiter';
|
|
9
|
-
import
|
|
9
|
+
import { Logger } from 'pino';
|
|
10
10
|
/**
|
|
11
11
|
* Extended WebSocket interface with additional properties
|
|
12
12
|
* @interface ExtendedWebSocket
|
|
@@ -38,33 +38,96 @@ export interface ExtendedWebSocket extends WebSocket {
|
|
|
38
38
|
lastPong?: number;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
42
|
-
* @interface NostrWSOptions
|
|
41
|
+
* WebSocket client configuration options
|
|
43
42
|
*/
|
|
44
|
-
export interface
|
|
43
|
+
export interface NostrWSClientOptions {
|
|
45
44
|
/**
|
|
46
|
-
*
|
|
47
|
-
* @default 30000
|
|
45
|
+
* Logger instance
|
|
48
46
|
*/
|
|
49
|
-
|
|
47
|
+
logger?: Logger;
|
|
50
48
|
/**
|
|
51
|
-
*
|
|
52
|
-
* @default 5000
|
|
49
|
+
* Connection timeout in milliseconds
|
|
53
50
|
*/
|
|
54
|
-
|
|
51
|
+
connectionTimeout?: number;
|
|
55
52
|
/**
|
|
56
|
-
*
|
|
57
|
-
* @default 10
|
|
53
|
+
* Number of retry attempts for reconnection
|
|
58
54
|
*/
|
|
59
|
-
|
|
55
|
+
retryAttempts?: number;
|
|
60
56
|
/**
|
|
61
|
-
*
|
|
57
|
+
* Delay between retry attempts in milliseconds
|
|
62
58
|
*/
|
|
63
|
-
|
|
59
|
+
retryDelay?: number;
|
|
64
60
|
/**
|
|
65
|
-
*
|
|
61
|
+
* Maximum queue size
|
|
66
62
|
*/
|
|
67
|
-
|
|
63
|
+
queueSize?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Maximum number of retries for sending messages
|
|
66
|
+
*/
|
|
67
|
+
maxRetries?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Message handler callback
|
|
70
|
+
*/
|
|
71
|
+
onMessage?: (message: string) => void;
|
|
72
|
+
/**
|
|
73
|
+
* Error handler callback
|
|
74
|
+
*/
|
|
75
|
+
onError?: (error: Error) => void;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* WebSocket client event handlers
|
|
79
|
+
*/
|
|
80
|
+
export interface NostrWSEventHandlers {
|
|
81
|
+
/**
|
|
82
|
+
* Message handler callback
|
|
83
|
+
*/
|
|
84
|
+
onMessage?: (message: string) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Error handler callback
|
|
87
|
+
*/
|
|
88
|
+
onError?: (error: Error) => void;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Queue configuration options
|
|
92
|
+
*/
|
|
93
|
+
export interface QueueOptions {
|
|
94
|
+
/**
|
|
95
|
+
* Maximum size of the queue
|
|
96
|
+
*/
|
|
97
|
+
maxSize?: number;
|
|
98
|
+
/**
|
|
99
|
+
* Maximum number of retries for failed messages
|
|
100
|
+
*/
|
|
101
|
+
maxRetries?: number;
|
|
102
|
+
/**
|
|
103
|
+
* Delay between retries in milliseconds
|
|
104
|
+
*/
|
|
105
|
+
retryDelay?: number;
|
|
106
|
+
/**
|
|
107
|
+
* Timeout for stale messages in milliseconds
|
|
108
|
+
*/
|
|
109
|
+
staleTimeout?: number;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Message queue item
|
|
113
|
+
*/
|
|
114
|
+
export interface QueueItem {
|
|
115
|
+
/**
|
|
116
|
+
* Message to be sent
|
|
117
|
+
*/
|
|
118
|
+
message: NostrWSMessage;
|
|
119
|
+
/**
|
|
120
|
+
* Message priority
|
|
121
|
+
*/
|
|
122
|
+
priority: MessagePriority;
|
|
123
|
+
/**
|
|
124
|
+
* Timestamp when the message was queued
|
|
125
|
+
*/
|
|
126
|
+
queuedAt: number;
|
|
127
|
+
/**
|
|
128
|
+
* Number of retries for the message
|
|
129
|
+
*/
|
|
130
|
+
retryCount?: number;
|
|
68
131
|
}
|
|
69
132
|
/**
|
|
70
133
|
* State of the NostrWSClient connection
|
|
@@ -118,11 +181,15 @@ export interface NostrWSServerOptions {
|
|
|
118
181
|
*/
|
|
119
182
|
rateLimits?: RateLimitConfig;
|
|
120
183
|
/**
|
|
121
|
-
*
|
|
184
|
+
* Logger instance
|
|
122
185
|
*/
|
|
123
|
-
|
|
186
|
+
logger?: Logger;
|
|
124
187
|
/**
|
|
125
|
-
*
|
|
188
|
+
* Message handler callback
|
|
189
|
+
*/
|
|
190
|
+
onMessage?: (message: NostrWSMessage, socket: NostrWSServerSocket) => void;
|
|
191
|
+
/**
|
|
192
|
+
* Error handler callback
|
|
126
193
|
*/
|
|
127
194
|
onError?: (error: Error, socket: NostrWSServerSocket) => void;
|
|
128
195
|
/**
|
|
@@ -138,35 +205,46 @@ export interface NostrWSServerOptions {
|
|
|
138
205
|
* Server message structure
|
|
139
206
|
* @interface NostrWSServerMessage
|
|
140
207
|
*/
|
|
141
|
-
export
|
|
142
|
-
/**
|
|
143
|
-
* Message type
|
|
144
|
-
*/
|
|
145
|
-
type: MessageType;
|
|
208
|
+
export type NostrWSServerMessage = NostrWSMessage & {
|
|
146
209
|
/**
|
|
147
|
-
*
|
|
148
|
-
*/
|
|
149
|
-
data?: unknown;
|
|
150
|
-
/**
|
|
151
|
-
* Error message if applicable
|
|
210
|
+
* Unique client identifier
|
|
152
211
|
*/
|
|
153
|
-
|
|
154
|
-
}
|
|
212
|
+
clientId?: string;
|
|
213
|
+
};
|
|
155
214
|
/**
|
|
156
215
|
* Extended WebSocket interface for Nostr server
|
|
157
216
|
* @interface NostrWSServerSocket
|
|
158
217
|
*/
|
|
159
218
|
export interface NostrWSServerSocket extends WebSocket {
|
|
219
|
+
/**
|
|
220
|
+
* Unique client identifier
|
|
221
|
+
*/
|
|
160
222
|
clientId: string;
|
|
223
|
+
/**
|
|
224
|
+
* Set of subscription channels
|
|
225
|
+
*/
|
|
161
226
|
subscriptions: Set<string>;
|
|
227
|
+
/**
|
|
228
|
+
* Timestamp of the last ping message
|
|
229
|
+
*/
|
|
162
230
|
lastPing?: number;
|
|
231
|
+
/**
|
|
232
|
+
* Whether the WebSocket connection is alive
|
|
233
|
+
*/
|
|
163
234
|
isAlive: boolean;
|
|
164
235
|
}
|
|
165
236
|
/**
|
|
166
237
|
* Nostr WebSocket server message with client info
|
|
167
238
|
* @interface NostrWSServerClientMessage
|
|
168
239
|
*/
|
|
169
|
-
export
|
|
240
|
+
export type NostrWSServerClientMessage = [MessageType, ...unknown[]] & {
|
|
241
|
+
/**
|
|
242
|
+
* Unique client identifier
|
|
243
|
+
*/
|
|
170
244
|
clientId?: string;
|
|
245
|
+
/**
|
|
246
|
+
* Timestamp of the message
|
|
247
|
+
*/
|
|
171
248
|
timestamp?: number;
|
|
172
|
-
}
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/types/websocket.ts"],"names":[],"mappings":"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"}
|
package/dist/types/websocket.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/types/websocket.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/utils/http.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAW1D"}
|
package/dist/utils/http.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,GAAW;IAC5C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAO,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACrD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -2,10 +2,25 @@
|
|
|
2
2
|
* @file Logger utility
|
|
3
3
|
* @module utils/logger
|
|
4
4
|
*/
|
|
5
|
-
import { Logger } from '
|
|
5
|
+
import { Logger } from 'pino';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Create a new logger instance
|
|
8
|
+
* @param name Name of the logger
|
|
9
|
+
* @returns Logger instance
|
|
10
|
+
*/
|
|
11
|
+
export declare function createLogger(name: string): Logger;
|
|
12
|
+
/**
|
|
13
|
+
* Get a logger instance for a specific component
|
|
8
14
|
* @param component Component name for the logger
|
|
9
15
|
* @returns Logger instance
|
|
10
16
|
*/
|
|
11
17
|
export declare function getLogger(component: string): Logger;
|
|
18
|
+
/**
|
|
19
|
+
* Get a child logger instance
|
|
20
|
+
* @param parent Parent logger instance
|
|
21
|
+
* @param bindings Additional bindings for the child logger
|
|
22
|
+
* @returns Child logger instance
|
|
23
|
+
*/
|
|
24
|
+
export declare function getChildLogger(parent: Logger, bindings: object): Logger;
|
|
25
|
+
export { Logger };
|
|
26
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAa,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -3,19 +3,33 @@
|
|
|
3
3
|
* @module utils/logger
|
|
4
4
|
*/
|
|
5
5
|
import pino from 'pino';
|
|
6
|
-
const rootLogger = pino({
|
|
7
|
-
level: process.env.LOG_LEVEL || 'info',
|
|
8
|
-
timestamp: true,
|
|
9
|
-
formatters: {
|
|
10
|
-
level: (label) => ({ level: label }),
|
|
11
|
-
bindings: (bindings) => bindings,
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
6
|
/**
|
|
15
|
-
*
|
|
7
|
+
* Create a new logger instance
|
|
8
|
+
* @param name Name of the logger
|
|
9
|
+
* @returns Logger instance
|
|
10
|
+
*/
|
|
11
|
+
export function createLogger(name) {
|
|
12
|
+
return pino({
|
|
13
|
+
name,
|
|
14
|
+
level: process.env.LOG_LEVEL || 'info',
|
|
15
|
+
timestamp: pino.stdTimeFunctions.isoTime
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a logger instance for a specific component
|
|
16
20
|
* @param component Component name for the logger
|
|
17
21
|
* @returns Logger instance
|
|
18
22
|
*/
|
|
19
23
|
export function getLogger(component) {
|
|
20
|
-
return
|
|
24
|
+
return createLogger(component);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get a child logger instance
|
|
28
|
+
* @param parent Parent logger instance
|
|
29
|
+
* @param bindings Additional bindings for the child logger
|
|
30
|
+
* @returns Child logger instance
|
|
31
|
+
*/
|
|
32
|
+
export function getChildLogger(parent, bindings) {
|
|
33
|
+
return parent.child(bindings);
|
|
21
34
|
}
|
|
35
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAgB,MAAM,MAAM,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC;QACV,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,QAAgB;IAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/utils/metrics.d.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* @file Metrics tracking for Nostr WebSocket connections
|
|
3
3
|
* @module metrics
|
|
4
4
|
*/
|
|
5
|
-
/// <reference types="node" />
|
|
6
5
|
import { EventEmitter } from 'events';
|
|
7
6
|
export interface RelayMetrics {
|
|
8
7
|
totalConnections: number;
|
|
@@ -79,3 +78,4 @@ export declare class RelayMetricsTracker extends EventEmitter {
|
|
|
79
78
|
getPrometheusMetrics(): string;
|
|
80
79
|
}
|
|
81
80
|
export declare const metricsTracker: RelayMetricsTracker;
|
|
81
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,WAAW,YAAY;IAE3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAGlB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,SAAS,CAAsB;;IAQvC;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAOtD;;OAEG;IACI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAIjD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IAY3D;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAalE;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IASvD;;OAEG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAQhD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,cAAc,EAAE,IAAI,EAAE,OAAO;IAWzF;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACI,kBAAkB,CAAC,SAAS,GAAE,MAAW,GAAG,MAAM,EAAE;IAM3D;;OAEG;IACI,oBAAoB,IAAI,MAAM;CA2CtC;AAGD,eAAO,MAAM,cAAc,qBAA4B,CAAC"}
|
package/dist/utils/metrics.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IACpE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAoB/D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,YAAsB,EAC7D,OAAO,EAAE,MAAM,GACd,WAAW,CAMb;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE;IACN,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB,EACD,MAAM,EAAE,MAAM,GACb,qBAAqB,CAsFvB;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,EAAE,eAAe;IAQ5B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IASvC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAO9D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAQnE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAI5C"}
|
|
@@ -142,10 +142,10 @@ export class RateLimiterImpl {
|
|
|
142
142
|
return true;
|
|
143
143
|
}
|
|
144
144
|
// Get requests for message type
|
|
145
|
-
const requests = state.requests.get(message
|
|
145
|
+
const requests = state.requests.get(message[0]) || [];
|
|
146
146
|
const validRequests = requests.filter(time => time > now - this.config.windowMs);
|
|
147
147
|
// Update requests
|
|
148
|
-
state.requests.set(message
|
|
148
|
+
state.requests.set(message[0], validRequests);
|
|
149
149
|
// Check if limit exceeded
|
|
150
150
|
if (validRequests.length >= this.config.maxRequests) {
|
|
151
151
|
state.blockedUntil = now + this.config.blockDurationMs;
|
|
@@ -153,13 +153,14 @@ export class RateLimiterImpl {
|
|
|
153
153
|
}
|
|
154
154
|
// Add new request
|
|
155
155
|
validRequests.push(now);
|
|
156
|
+
state.requests.set(message[0], validRequests);
|
|
156
157
|
return false;
|
|
157
158
|
}
|
|
158
159
|
recordRequest(clientId, message) {
|
|
159
160
|
const state = this.getClientState(clientId);
|
|
160
|
-
const requests = state.requests.get(message
|
|
161
|
+
const requests = state.requests.get(message[0]) || [];
|
|
161
162
|
requests.push(Date.now());
|
|
162
|
-
state.requests.set(message
|
|
163
|
+
state.requests.set(message[0], requests);
|
|
163
164
|
}
|
|
164
165
|
getRemainingRequests(clientId, messageType) {
|
|
165
166
|
const state = this.getClientState(clientId);
|
|
@@ -173,3 +174,4 @@ export class RateLimiterImpl {
|
|
|
173
174
|
return !!state.blockedUntil && state.blockedUntil > Date.now();
|
|
174
175
|
}
|
|
175
176
|
}
|
|
177
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nostr-websocket-utils",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Robust WebSocket utilities for Nostr applications with automatic reconnection, channel-based messaging, and type-safe handlers. Features heartbeat monitoring, message queueing, and comprehensive error handling.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/cjs/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./crypto": {
|
|
15
|
+
"import": "./dist/crypto/index.js",
|
|
16
|
+
"require": "./dist/cjs/crypto/index.js",
|
|
17
|
+
"types": "./dist/crypto/index.d.ts"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
8
20
|
"scripts": {
|
|
9
|
-
"build": "tsc",
|
|
21
|
+
"build": "tsc && tsc -p tsconfig.cjs.json",
|
|
10
22
|
"test": "vitest",
|
|
11
23
|
"test:coverage": "vitest run --coverage",
|
|
12
24
|
"lint": "eslint src --ext .ts",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type LoggerFunction = (message: string, ...args: unknown[]) => void;
|
|
2
|
-
interface MockLogger {
|
|
3
|
-
debug: LoggerFunction;
|
|
4
|
-
info: LoggerFunction;
|
|
5
|
-
warn: LoggerFunction;
|
|
6
|
-
error: LoggerFunction;
|
|
7
|
-
}
|
|
8
|
-
export declare const getLogger: (_name: string) => MockLogger;
|
|
9
|
-
export {};
|
package/dist/__mocks__/logger.js
DELETED
package/dist/client.d.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { EventEmitter } from 'events';
|
|
3
|
-
import type { NostrWSOptions, NostrWSMessage } from './types/index.js';
|
|
4
|
-
/**
|
|
5
|
-
* WebSocket client implementation for Nostr protocol communication
|
|
6
|
-
* Extends EventEmitter to provide event-based message handling
|
|
7
|
-
*
|
|
8
|
-
* @extends EventEmitter
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* const client = new NostrWSClient('wss://relay.example.com', {
|
|
12
|
-
* logger: console,
|
|
13
|
-
* heartbeatInterval: 30000,
|
|
14
|
-
* handlers: {
|
|
15
|
-
* message: async (msg) => console.log('Received:', msg),
|
|
16
|
-
* error: (err) => console.error('Error:', err),
|
|
17
|
-
* close: () => console.log('Connection closed')
|
|
18
|
-
* }
|
|
19
|
-
* });
|
|
20
|
-
*
|
|
21
|
-
* await client.connect();
|
|
22
|
-
* client.send({ type: 'EVENT', data: { ... } });
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export declare class NostrWSClient extends EventEmitter {
|
|
26
|
-
private url;
|
|
27
|
-
private ws;
|
|
28
|
-
private options;
|
|
29
|
-
private reconnectTimeout;
|
|
30
|
-
private heartbeatInterval;
|
|
31
|
-
private reconnectAttempts;
|
|
32
|
-
private messageQueue;
|
|
33
|
-
private clientId;
|
|
34
|
-
/**
|
|
35
|
-
* Creates a new NostrWSClient instance
|
|
36
|
-
*
|
|
37
|
-
* @param {string} url - The WebSocket server URL to connect to
|
|
38
|
-
* @param {Partial<NostrWSOptions>} options - Configuration options
|
|
39
|
-
* @param {number} [options.heartbeatInterval=30000] - Interval for sending heartbeat messages in milliseconds
|
|
40
|
-
* @param {object} options.logger - Logger instance (required)
|
|
41
|
-
* @param {Function} [options.WebSocketImpl=WebSocket] - WebSocket implementation to use
|
|
42
|
-
* @param {object} [options.handlers] - Event handlers
|
|
43
|
-
* @param {Function} [options.handlers.message] - Message handler function
|
|
44
|
-
* @param {Function} [options.handlers.error] - Error handler function
|
|
45
|
-
* @param {Function} [options.handlers.close] - Connection close handler function
|
|
46
|
-
* @throws {Error} If logger is not provided
|
|
47
|
-
*/
|
|
48
|
-
constructor(url: string, options?: Partial<NostrWSOptions>);
|
|
49
|
-
/**
|
|
50
|
-
* Establishes a connection to the WebSocket server
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* client.connect();
|
|
55
|
-
* ```
|
|
56
|
-
*/
|
|
57
|
-
connect(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Sets up event handlers for the WebSocket connection
|
|
60
|
-
*
|
|
61
|
-
* @private
|
|
62
|
-
*/
|
|
63
|
-
private setupEventHandlers;
|
|
64
|
-
/**
|
|
65
|
-
* Starts sending heartbeat messages at the specified interval
|
|
66
|
-
*
|
|
67
|
-
* @private
|
|
68
|
-
*/
|
|
69
|
-
private startHeartbeat;
|
|
70
|
-
/**
|
|
71
|
-
* Stops sending heartbeat messages
|
|
72
|
-
*
|
|
73
|
-
* @private
|
|
74
|
-
*/
|
|
75
|
-
private stopHeartbeat;
|
|
76
|
-
/**
|
|
77
|
-
* Handles reconnecting to the WebSocket server after a disconnection
|
|
78
|
-
*
|
|
79
|
-
* @private
|
|
80
|
-
*/
|
|
81
|
-
private handleReconnect;
|
|
82
|
-
/**
|
|
83
|
-
* Subscribes to a channel with optional filter
|
|
84
|
-
*
|
|
85
|
-
* @param {string} channel - Channel name
|
|
86
|
-
* @param {unknown} [filter] - Filter data
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* client.subscribe('channel-name', { ...filterData });
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
subscribe(channel: string, filter?: unknown): void;
|
|
93
|
-
/**
|
|
94
|
-
* Unsubscribes from a channel
|
|
95
|
-
*
|
|
96
|
-
* @param {string} channel - Channel name
|
|
97
|
-
* @example
|
|
98
|
-
* ```typescript
|
|
99
|
-
* client.unsubscribe('channel-name');
|
|
100
|
-
* ```
|
|
101
|
-
*/
|
|
102
|
-
unsubscribe(channel: string): void;
|
|
103
|
-
/**
|
|
104
|
-
* Flushes the message queue by sending pending messages
|
|
105
|
-
*
|
|
106
|
-
* @private
|
|
107
|
-
*/
|
|
108
|
-
private flushMessageQueue;
|
|
109
|
-
/**
|
|
110
|
-
* Sends a message to the WebSocket server
|
|
111
|
-
*
|
|
112
|
-
* @param {NostrWSMessage} message - Message to send
|
|
113
|
-
* @returns {Promise<void>}
|
|
114
|
-
* @example
|
|
115
|
-
* ```typescript
|
|
116
|
-
* client.send({ type: 'EVENT', data: { ... } });
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
send(message: NostrWSMessage): Promise<void>;
|
|
120
|
-
/**
|
|
121
|
-
* Closes the WebSocket connection
|
|
122
|
-
*
|
|
123
|
-
* @example
|
|
124
|
-
* ```typescript
|
|
125
|
-
* client.close();
|
|
126
|
-
* ```
|
|
127
|
-
*/
|
|
128
|
-
close(): void;
|
|
129
|
-
}
|