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,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file WebSocket transport implementation
|
|
4
|
+
* @module transport/websocket
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.WebSocketTransport = void 0;
|
|
11
|
+
const ws_1 = __importDefault(require("ws"));
|
|
12
|
+
const base_1 = require("./base");
|
|
13
|
+
const logger_1 = require("../utils/logger");
|
|
14
|
+
const logger = (0, logger_1.getLogger)('WebSocketTransport');
|
|
15
|
+
class WebSocketTransport extends base_1.BaseTransport {
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.connections = new Map();
|
|
19
|
+
}
|
|
20
|
+
async connect(endpoint) {
|
|
21
|
+
if (this.connections.has(endpoint)) {
|
|
22
|
+
logger.warn({ endpoint }, 'Already connected to endpoint');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const ws = new ws_1.default(endpoint);
|
|
27
|
+
ws.on('open', () => {
|
|
28
|
+
this.trackMetric(endpoint, 'connection', true);
|
|
29
|
+
this.trackMetric(endpoint, 'openHandshake', Date.now());
|
|
30
|
+
});
|
|
31
|
+
ws.on('close', () => {
|
|
32
|
+
this.trackMetric(endpoint, 'connection', false);
|
|
33
|
+
this.trackMetric(endpoint, 'closeHandshake', Date.now());
|
|
34
|
+
this.connections.delete(endpoint);
|
|
35
|
+
});
|
|
36
|
+
ws.on('message', (data) => {
|
|
37
|
+
const length = data instanceof Buffer ? data.length :
|
|
38
|
+
data instanceof ArrayBuffer ? data.byteLength :
|
|
39
|
+
data instanceof Array ? data.reduce((acc, buf) => acc + buf.length, 0) : 0;
|
|
40
|
+
this.trackMetric(endpoint, 'messageReceived', length);
|
|
41
|
+
});
|
|
42
|
+
ws.on('error', (error) => {
|
|
43
|
+
this.trackMetric(endpoint, 'error', error);
|
|
44
|
+
logger.error({ error, endpoint }, 'WebSocket error');
|
|
45
|
+
});
|
|
46
|
+
// Track ping/pong for latency
|
|
47
|
+
ws.on('ping', () => {
|
|
48
|
+
this.trackMetric(endpoint, 'ping', Date.now());
|
|
49
|
+
});
|
|
50
|
+
ws.on('pong', () => {
|
|
51
|
+
if (!this.metricsEnabled || !this.metricsProvider)
|
|
52
|
+
return;
|
|
53
|
+
const now = Date.now();
|
|
54
|
+
const metrics = this.metricsProvider.getMetrics(endpoint);
|
|
55
|
+
if (!metrics || !metrics.lastSeen)
|
|
56
|
+
return;
|
|
57
|
+
this.trackMetric(endpoint, 'latency', now - metrics.lastSeen);
|
|
58
|
+
});
|
|
59
|
+
this.connections.set(endpoint, ws);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
this.trackMetric(endpoint, 'connectionError', error);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async disconnect(endpoint) {
|
|
67
|
+
const ws = this.connections.get(endpoint);
|
|
68
|
+
if (!ws)
|
|
69
|
+
return;
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
ws.close();
|
|
72
|
+
ws.on('close', () => {
|
|
73
|
+
this.connections.delete(endpoint);
|
|
74
|
+
resolve();
|
|
75
|
+
});
|
|
76
|
+
ws.on('error', reject);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async send(endpoint, data) {
|
|
80
|
+
const ws = this.connections.get(endpoint);
|
|
81
|
+
if (!ws)
|
|
82
|
+
throw new Error(`Not connected to ${endpoint}`);
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
ws.send(data, (error) => {
|
|
85
|
+
if (error) {
|
|
86
|
+
this.trackMetric(endpoint, 'sendError', error);
|
|
87
|
+
reject(error);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.trackMetric(endpoint, 'messageSent', data.length);
|
|
91
|
+
resolve();
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
trackMetric(endpoint, metric, value) {
|
|
97
|
+
if (this.metricsProvider && this.metricsEnabled) {
|
|
98
|
+
const metricValue = value instanceof Error ? value.message : String(value);
|
|
99
|
+
this.metricsProvider.trackMetric(endpoint, metric, metricValue);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async checkEndpointHealth(endpoint) {
|
|
103
|
+
try {
|
|
104
|
+
if (!this.metricsEnabled || !this.metricsProvider) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
const metrics = this.metricsProvider.getMetrics(endpoint);
|
|
108
|
+
if (!metrics || !metrics.lastSeen) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
const now = Date.now();
|
|
112
|
+
const elapsed = now - metrics.lastSeen;
|
|
113
|
+
// If we haven't seen a ping response in 30 seconds, consider unhealthy
|
|
114
|
+
return elapsed < 30000;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
logger.error('Error checking endpoint health:', error);
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get all active WebSocket connections
|
|
123
|
+
*/
|
|
124
|
+
getActiveConnections() {
|
|
125
|
+
return Array.from(this.connections.keys());
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Check if connected to endpoint
|
|
129
|
+
*/
|
|
130
|
+
isConnected(endpoint) {
|
|
131
|
+
const ws = this.connections.get(endpoint);
|
|
132
|
+
return ws?.readyState === ws_1.default.OPEN;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.WebSocketTransport = WebSocketTransport;
|
|
136
|
+
//# sourceMappingURL=websocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Nostr event type definitions
|
|
3
|
+
* @module types/events
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Base Nostr event interface following NIP-01 specification
|
|
7
|
+
* @see https://github.com/nostr-protocol/nips/blob/master/01.md
|
|
8
|
+
*/
|
|
9
|
+
export interface NostrEvent {
|
|
10
|
+
/** Event ID in hex format */
|
|
11
|
+
id: string;
|
|
12
|
+
/** Public key of the event creator in hex format */
|
|
13
|
+
pubkey: string;
|
|
14
|
+
/** Unix timestamp in seconds */
|
|
15
|
+
created_at: number;
|
|
16
|
+
/** Event kind number */
|
|
17
|
+
kind: number;
|
|
18
|
+
/** Array of tags */
|
|
19
|
+
tags: string[][];
|
|
20
|
+
/** Event content */
|
|
21
|
+
content: string;
|
|
22
|
+
/** Signature of the event data in hex format */
|
|
23
|
+
sig: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Signed Nostr event with id and signature
|
|
27
|
+
* @extends NostrEvent
|
|
28
|
+
*/
|
|
29
|
+
export interface SignedNostrEvent extends NostrEvent {
|
|
30
|
+
/** Event ID in hex format */
|
|
31
|
+
id: string;
|
|
32
|
+
/** Signature of the event data in hex format */
|
|
33
|
+
sig: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Event validation result
|
|
37
|
+
*/
|
|
38
|
+
export interface NostrEventValidationResult {
|
|
39
|
+
valid: boolean;
|
|
40
|
+
error?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Event subscription filter
|
|
44
|
+
*/
|
|
45
|
+
export interface NostrEventFilter {
|
|
46
|
+
ids?: string[];
|
|
47
|
+
authors?: string[];
|
|
48
|
+
kinds?: number[];
|
|
49
|
+
since?: number;
|
|
50
|
+
until?: number;
|
|
51
|
+
limit?: number;
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Nostr subscription event interface
|
|
56
|
+
* Used for creating subscription messages to relays
|
|
57
|
+
*/
|
|
58
|
+
export interface NostrSubscriptionEvent {
|
|
59
|
+
/** Subscription ID */
|
|
60
|
+
subscriptionId: string;
|
|
61
|
+
/** Array of filters */
|
|
62
|
+
filters: NostrEventFilter[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Event handler interface for WebSocket client
|
|
66
|
+
*/
|
|
67
|
+
export interface NostrWSEventHandlers {
|
|
68
|
+
onMessage?: (message: string) => void;
|
|
69
|
+
onError?: (error: Error) => void;
|
|
70
|
+
onConnect?: () => void;
|
|
71
|
+
onDisconnect?: () => void;
|
|
72
|
+
onReconnect?: () => void;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IAEjB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Filter type definitions
|
|
3
|
+
* @module types/filters
|
|
4
|
+
*/
|
|
5
|
+
import { NostrEventFilter } from './events';
|
|
6
|
+
/**
|
|
7
|
+
* Subscription request filter
|
|
8
|
+
*/
|
|
9
|
+
export interface NostrSubscriptionFilter extends NostrEventFilter {
|
|
10
|
+
subscriptionId?: string;
|
|
11
|
+
limit?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Filter validation result
|
|
15
|
+
*/
|
|
16
|
+
export interface NostrFilterValidationResult {
|
|
17
|
+
valid: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/types/filters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/types/filters.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Handler type definitions for WebSocket events
|
|
3
|
+
* @module types/handlers
|
|
4
|
+
*/
|
|
5
|
+
import type { WebSocket } from 'ws';
|
|
6
|
+
import type { NostrWSMessage } from './messages';
|
|
7
|
+
import type { ExtendedWebSocket } from './websocket';
|
|
8
|
+
/**
|
|
9
|
+
* Events emitted by the NostrWSClient
|
|
10
|
+
* @interface NostrWSClientEvents
|
|
11
|
+
*/
|
|
12
|
+
export interface NostrWSClientEvents {
|
|
13
|
+
/**
|
|
14
|
+
* Emitted when the client connects to the relay
|
|
15
|
+
*/
|
|
16
|
+
connect: () => void;
|
|
17
|
+
/**
|
|
18
|
+
* Emitted when the client disconnects from the relay
|
|
19
|
+
*/
|
|
20
|
+
disconnect: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Emitted when the client reconnects to the relay
|
|
23
|
+
*/
|
|
24
|
+
reconnect: () => void;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted when a message is received from the relay
|
|
27
|
+
* @param message - The received message
|
|
28
|
+
*/
|
|
29
|
+
message: (message: NostrWSMessage) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Emitted when an error occurs
|
|
32
|
+
* @param error - The error object
|
|
33
|
+
*/
|
|
34
|
+
error: (error: Error) => void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Events emitted by the NostrWSServer
|
|
38
|
+
* @interface NostrWSServerEvents
|
|
39
|
+
*/
|
|
40
|
+
export interface NostrWSServerEvents {
|
|
41
|
+
/**
|
|
42
|
+
* Emitted when a client connects to the server
|
|
43
|
+
* @param client - The connected client
|
|
44
|
+
*/
|
|
45
|
+
connection: (client: ExtendedWebSocket) => void;
|
|
46
|
+
/**
|
|
47
|
+
* Emitted when a message is received from a client
|
|
48
|
+
* @param message - The received message
|
|
49
|
+
* @param client - The client that sent the message
|
|
50
|
+
*/
|
|
51
|
+
message: (message: NostrWSMessage, client: ExtendedWebSocket) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Emitted when an error occurs
|
|
54
|
+
* @param error - The error object
|
|
55
|
+
*/
|
|
56
|
+
error: (error: Error) => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Configuration options for WebSocket handlers
|
|
60
|
+
* @interface NostrWSHandlers
|
|
61
|
+
*/
|
|
62
|
+
export interface NostrWSHandlers {
|
|
63
|
+
/**
|
|
64
|
+
* Handler for incoming messages
|
|
65
|
+
* @param ws - The WebSocket instance
|
|
66
|
+
* @param message - The received message
|
|
67
|
+
*/
|
|
68
|
+
message: (ws: ExtendedWebSocket, message: NostrWSMessage) => Promise<void> | void;
|
|
69
|
+
/**
|
|
70
|
+
* Handler for WebSocket errors
|
|
71
|
+
* @param ws - The WebSocket instance
|
|
72
|
+
* @param error - The error object
|
|
73
|
+
*/
|
|
74
|
+
error?: (ws: WebSocket, error: Error) => void;
|
|
75
|
+
/**
|
|
76
|
+
* Handler for WebSocket connection close
|
|
77
|
+
* @param ws - The WebSocket instance
|
|
78
|
+
*/
|
|
79
|
+
close?: (ws: WebSocket) => void;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/types/handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAE3C;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAEhD;;;;OAIG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAEtE;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAElF;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE9C;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,IAAI,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/types/handlers.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Core type definitions
|
|
3
|
+
* @module types
|
|
4
|
+
*/
|
|
5
|
+
import type { WebSocket } from 'ws';
|
|
6
|
+
import type { Logger } from './logger';
|
|
7
|
+
import type { NostrWSMessage, NostrEvent as MessageNostrEvent } from './messages';
|
|
8
|
+
export { NostrWSMessage } from './messages';
|
|
9
|
+
export { QueueItem } from './messages';
|
|
10
|
+
export * from './filters';
|
|
11
|
+
export * from './relays';
|
|
12
|
+
export * from './logger';
|
|
13
|
+
export * from './priority';
|
|
14
|
+
export type NostrEvent = MessageNostrEvent;
|
|
15
|
+
/**
|
|
16
|
+
* Extended WebSocket interface with client ID
|
|
17
|
+
*/
|
|
18
|
+
export interface ExtendedWebSocket extends WebSocket {
|
|
19
|
+
clientId?: string;
|
|
20
|
+
isAlive?: boolean;
|
|
21
|
+
subscriptions?: Set<string>;
|
|
22
|
+
lastPing?: number;
|
|
23
|
+
reconnectAttempts?: number;
|
|
24
|
+
messageQueue?: NostrWSMessage[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* WebSocket connection states
|
|
28
|
+
*/
|
|
29
|
+
export declare enum ConnectionState {
|
|
30
|
+
CONNECTING = "CONNECTING",
|
|
31
|
+
CONNECTED = "CONNECTED",
|
|
32
|
+
DISCONNECTED = "DISCONNECTED",
|
|
33
|
+
RECONNECTING = "RECONNECTING",
|
|
34
|
+
FAILED = "FAILED"
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Retry configuration options
|
|
38
|
+
*/
|
|
39
|
+
export interface RetryConfig {
|
|
40
|
+
maxAttempts: number;
|
|
41
|
+
initialDelay: number;
|
|
42
|
+
maxDelay: number;
|
|
43
|
+
backoffFactor: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Queue configuration options
|
|
47
|
+
*/
|
|
48
|
+
export interface QueueConfig {
|
|
49
|
+
maxSize: number;
|
|
50
|
+
maxRetries: number;
|
|
51
|
+
retryDelay: number;
|
|
52
|
+
staleTimeout: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Heartbeat configuration options
|
|
56
|
+
*/
|
|
57
|
+
export interface HeartbeatConfig {
|
|
58
|
+
interval: number;
|
|
59
|
+
timeout: number;
|
|
60
|
+
maxMissed: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* WebSocket client options
|
|
64
|
+
*/
|
|
65
|
+
export interface NostrWSOptions {
|
|
66
|
+
WebSocketImpl?: typeof WebSocket;
|
|
67
|
+
connectionTimeout?: number;
|
|
68
|
+
retryAttempts?: number;
|
|
69
|
+
retryDelay?: number;
|
|
70
|
+
onMessage?: (message: string) => void;
|
|
71
|
+
onError?: (error: Error) => void;
|
|
72
|
+
retry?: Partial<RetryConfig>;
|
|
73
|
+
queue?: Partial<QueueConfig>;
|
|
74
|
+
heartbeat?: Partial<HeartbeatConfig>;
|
|
75
|
+
autoReconnect?: boolean;
|
|
76
|
+
bufferMessages?: boolean;
|
|
77
|
+
cleanStaleMessages?: boolean;
|
|
78
|
+
logger?: Logger;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Represents a subscription to a Nostr relay
|
|
82
|
+
*/
|
|
83
|
+
export interface NostrWSSubscription {
|
|
84
|
+
/**
|
|
85
|
+
* Channel identifier for the subscription
|
|
86
|
+
*/
|
|
87
|
+
channel: string;
|
|
88
|
+
/**
|
|
89
|
+
* Filter criteria for the subscription
|
|
90
|
+
*/
|
|
91
|
+
filter?: Record<string, unknown>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Events emitted by the NostrWSClient
|
|
95
|
+
*/
|
|
96
|
+
export interface NostrWSClientEvents {
|
|
97
|
+
/**
|
|
98
|
+
* Emitted when the client connects to the relay
|
|
99
|
+
*/
|
|
100
|
+
connect: () => void;
|
|
101
|
+
/**
|
|
102
|
+
* Emitted when the client disconnects from the relay
|
|
103
|
+
*/
|
|
104
|
+
disconnect: () => void;
|
|
105
|
+
/**
|
|
106
|
+
* Emitted when the client reconnects to the relay
|
|
107
|
+
*/
|
|
108
|
+
reconnect: () => void;
|
|
109
|
+
/**
|
|
110
|
+
* Emitted when a message is received from the relay
|
|
111
|
+
* @param message - The received message
|
|
112
|
+
*/
|
|
113
|
+
message: (message: NostrWSMessage) => Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Emitted when an error occurs
|
|
116
|
+
* @param error - The error that occurred
|
|
117
|
+
*/
|
|
118
|
+
error: (error: Error) => void;
|
|
119
|
+
close: () => void;
|
|
120
|
+
stateChange?: (state: ConnectionState) => void;
|
|
121
|
+
heartbeat?: () => void;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Events emitted by the NostrWSServer
|
|
125
|
+
*/
|
|
126
|
+
export interface NostrWSServerEvents {
|
|
127
|
+
/**
|
|
128
|
+
* Emitted when a client connects
|
|
129
|
+
* @param client - The connected client
|
|
130
|
+
*/
|
|
131
|
+
connection: (client: ExtendedWebSocket) => void;
|
|
132
|
+
/**
|
|
133
|
+
* Emitted when a message is received from a client
|
|
134
|
+
* @param message - The received message
|
|
135
|
+
* @param client - The client that sent the message
|
|
136
|
+
*/
|
|
137
|
+
message: (message: NostrWSMessage, client: ExtendedWebSocket) => void;
|
|
138
|
+
/**
|
|
139
|
+
* Emitted when an error occurs
|
|
140
|
+
* @param error - The error that occurred
|
|
141
|
+
*/
|
|
142
|
+
error: (error: Error) => void;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Core type definitions
|
|
4
|
+
* @module types
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.ConnectionState = void 0;
|
|
22
|
+
__exportStar(require("./filters"), exports);
|
|
23
|
+
__exportStar(require("./relays"), exports);
|
|
24
|
+
__exportStar(require("./logger"), exports);
|
|
25
|
+
__exportStar(require("./priority"), exports);
|
|
26
|
+
/**
|
|
27
|
+
* WebSocket connection states
|
|
28
|
+
*/
|
|
29
|
+
var ConnectionState;
|
|
30
|
+
(function (ConnectionState) {
|
|
31
|
+
ConnectionState["CONNECTING"] = "CONNECTING";
|
|
32
|
+
ConnectionState["CONNECTED"] = "CONNECTED";
|
|
33
|
+
ConnectionState["DISCONNECTED"] = "DISCONNECTED";
|
|
34
|
+
ConnectionState["RECONNECTING"] = "RECONNECTING";
|
|
35
|
+
ConnectionState["FAILED"] = "FAILED";
|
|
36
|
+
})(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AASH,4CAA0B;AAC1B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAiB3B;;GAEG;AACH,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,gDAA6B,CAAA;IAC7B,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Logger type definitions
|
|
3
|
+
* @module types/logger
|
|
4
|
+
*/
|
|
5
|
+
import type { Logger as PinoLogger } from 'pino';
|
|
6
|
+
export type Logger = PinoLogger;
|
|
7
|
+
/**
|
|
8
|
+
* WebSocket context for logging
|
|
9
|
+
*/
|
|
10
|
+
export interface WebSocketLogContext {
|
|
11
|
+
clientId?: string;
|
|
12
|
+
url?: string;
|
|
13
|
+
messageId?: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extended logger interface with WebSocket-specific methods
|
|
18
|
+
*/
|
|
19
|
+
export interface NostrWSLogger extends Logger {
|
|
20
|
+
/**
|
|
21
|
+
* Log WebSocket connection event
|
|
22
|
+
*/
|
|
23
|
+
wsConnect(context: WebSocketLogContext): void;
|
|
24
|
+
/**
|
|
25
|
+
* Log WebSocket disconnection event
|
|
26
|
+
*/
|
|
27
|
+
wsDisconnect(context: WebSocketLogContext): void;
|
|
28
|
+
/**
|
|
29
|
+
* Log WebSocket message event
|
|
30
|
+
*/
|
|
31
|
+
wsMessage(context: WebSocketLogContext): void;
|
|
32
|
+
/**
|
|
33
|
+
* Log WebSocket error event
|
|
34
|
+
*/
|
|
35
|
+
wsError(error: Error, context: WebSocketLogContext): void;
|
|
36
|
+
/**
|
|
37
|
+
* Log WebSocket metrics
|
|
38
|
+
*/
|
|
39
|
+
wsMetrics(metrics: Record<string, unknown>, context: WebSocketLogContext): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/types/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAEjD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE9C;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE1D;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/types/logger.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|