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,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Message type definitions
|
|
3
|
+
* @module types/messages
|
|
4
|
+
*/
|
|
5
|
+
import { MessagePriority } from './priority';
|
|
6
|
+
/**
|
|
7
|
+
* Message types that can be sent through the WebSocket connection
|
|
8
|
+
* Following NIP-01 and other NIPs message types
|
|
9
|
+
*/
|
|
10
|
+
export declare const MESSAGE_TYPES: {
|
|
11
|
+
readonly EVENT: "EVENT";
|
|
12
|
+
readonly REQ: "REQ";
|
|
13
|
+
readonly CLOSE: "CLOSE";
|
|
14
|
+
readonly NOTICE: "NOTICE";
|
|
15
|
+
readonly EOSE: "EOSE";
|
|
16
|
+
readonly OK: "OK";
|
|
17
|
+
readonly AUTH: "AUTH";
|
|
18
|
+
readonly COUNT: "COUNT";
|
|
19
|
+
readonly PING: "PING";
|
|
20
|
+
readonly PONG: "PONG";
|
|
21
|
+
readonly ERROR: "error";
|
|
22
|
+
};
|
|
23
|
+
export type MessageType = keyof typeof MESSAGE_TYPES;
|
|
24
|
+
/**
|
|
25
|
+
* Base Nostr WebSocket message interface
|
|
26
|
+
*/
|
|
27
|
+
export interface NostrWSMessageBase {
|
|
28
|
+
type: MessageType;
|
|
29
|
+
data?: unknown;
|
|
30
|
+
priority?: MessagePriority;
|
|
31
|
+
queuedAt?: number;
|
|
32
|
+
retryCount?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Nostr WebSocket message type
|
|
36
|
+
* Array format: [<message_type>, ...data]
|
|
37
|
+
*/
|
|
38
|
+
export type NostrWSMessage = [MessageType, ...unknown[]];
|
|
39
|
+
/**
|
|
40
|
+
* Queue item interface for message queue
|
|
41
|
+
*/
|
|
42
|
+
export interface QueueItem extends NostrWSMessageBase {
|
|
43
|
+
priority: MessagePriority;
|
|
44
|
+
queuedAt: number;
|
|
45
|
+
retryCount: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Nostr event message
|
|
49
|
+
*/
|
|
50
|
+
export interface NostrEvent {
|
|
51
|
+
id: string;
|
|
52
|
+
kind: number;
|
|
53
|
+
content: string;
|
|
54
|
+
tags: string[][];
|
|
55
|
+
created_at?: number;
|
|
56
|
+
pubkey?: string;
|
|
57
|
+
sig?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Server-side Nostr WebSocket message
|
|
61
|
+
* Extends the base NostrWSMessage tuple type with additional server-specific metadata
|
|
62
|
+
*/
|
|
63
|
+
export type NostrWSServerMessage = NostrWSMessage & {
|
|
64
|
+
clientId?: string;
|
|
65
|
+
timestamp?: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Helper function to create server messages
|
|
69
|
+
*/
|
|
70
|
+
export declare function createServerMessage(type: MessageType, data: unknown[], clientId?: string): NostrWSServerMessage;
|
|
71
|
+
/**
|
|
72
|
+
* Structure of a Nostr WebSocket filter
|
|
73
|
+
*/
|
|
74
|
+
export interface NostrWSFilter {
|
|
75
|
+
/** Array of event IDs */
|
|
76
|
+
ids?: string[];
|
|
77
|
+
/** Array of pubkeys */
|
|
78
|
+
authors?: string[];
|
|
79
|
+
/** Array of event kinds */
|
|
80
|
+
kinds?: number[];
|
|
81
|
+
/** Event tags */
|
|
82
|
+
tags?: Record<string, string[]>;
|
|
83
|
+
/** Unix timestamp range */
|
|
84
|
+
since?: number;
|
|
85
|
+
until?: number;
|
|
86
|
+
/** Maximum number of events to return */
|
|
87
|
+
limit?: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Represents a subscription to a Nostr relay
|
|
91
|
+
*/
|
|
92
|
+
export interface NostrWSSubscription {
|
|
93
|
+
/**
|
|
94
|
+
* Unique identifier for the subscription
|
|
95
|
+
*/
|
|
96
|
+
subscription_id: string;
|
|
97
|
+
/**
|
|
98
|
+
* Filters for the subscription
|
|
99
|
+
*/
|
|
100
|
+
filters: Array<Record<string, unknown>>;
|
|
101
|
+
/**
|
|
102
|
+
* Active state of the subscription
|
|
103
|
+
*/
|
|
104
|
+
active?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Timestamp when the subscription was created
|
|
107
|
+
*/
|
|
108
|
+
createdAt?: number;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Result of validating a NostrWSMessage
|
|
112
|
+
*/
|
|
113
|
+
export interface NostrWSValidationResult {
|
|
114
|
+
/**
|
|
115
|
+
* Whether the message is valid
|
|
116
|
+
*/
|
|
117
|
+
isValid: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Error message if validation failed
|
|
120
|
+
*/
|
|
121
|
+
error?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Connection states for WebSocket client
|
|
125
|
+
*/
|
|
126
|
+
export declare enum ConnectionState {
|
|
127
|
+
CONNECTING = "CONNECTING",
|
|
128
|
+
CONNECTED = "CONNECTED",
|
|
129
|
+
DISCONNECTED = "DISCONNECTED",
|
|
130
|
+
RECONNECTING = "RECONNECTING",
|
|
131
|
+
FAILED = "FAILED"
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,kBAAkB;IACnD,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAK/G;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAExC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,MAAM,WAAW;CAClB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Message type definitions
|
|
4
|
+
* @module types/messages
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ConnectionState = exports.MESSAGE_TYPES = void 0;
|
|
8
|
+
exports.createServerMessage = createServerMessage;
|
|
9
|
+
/**
|
|
10
|
+
* Message types that can be sent through the WebSocket connection
|
|
11
|
+
* Following NIP-01 and other NIPs message types
|
|
12
|
+
*/
|
|
13
|
+
exports.MESSAGE_TYPES = {
|
|
14
|
+
EVENT: 'EVENT', // NIP-01: Basic protocol flow events
|
|
15
|
+
REQ: 'REQ', // NIP-01: Request events
|
|
16
|
+
CLOSE: 'CLOSE', // NIP-01: Close subscription
|
|
17
|
+
NOTICE: 'NOTICE', // NIP-01: Human-readable messages
|
|
18
|
+
EOSE: 'EOSE', // NIP-15: End of stored events notice
|
|
19
|
+
OK: 'OK', // NIP-20: Command result
|
|
20
|
+
AUTH: 'AUTH', // NIP-42: Authentication
|
|
21
|
+
COUNT: 'COUNT', // NIP-45: Event counts
|
|
22
|
+
PING: 'PING', // Internal heartbeat ping
|
|
23
|
+
PONG: 'PONG', // Internal heartbeat pong
|
|
24
|
+
ERROR: 'error' // Internal error type (lowercase to differentiate)
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Helper function to create server messages
|
|
28
|
+
*/
|
|
29
|
+
function createServerMessage(type, data, clientId) {
|
|
30
|
+
const message = [type, ...data];
|
|
31
|
+
message.clientId = clientId;
|
|
32
|
+
message.timestamp = Date.now();
|
|
33
|
+
return message;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Connection states for WebSocket client
|
|
37
|
+
*/
|
|
38
|
+
var ConnectionState;
|
|
39
|
+
(function (ConnectionState) {
|
|
40
|
+
ConnectionState["CONNECTING"] = "CONNECTING";
|
|
41
|
+
ConnectionState["CONNECTED"] = "CONNECTED";
|
|
42
|
+
ConnectionState["DISCONNECTED"] = "DISCONNECTED";
|
|
43
|
+
ConnectionState["RECONNECTING"] = "RECONNECTING";
|
|
44
|
+
ConnectionState["FAILED"] = "FAILED";
|
|
45
|
+
})(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
|
|
46
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA2EH,kDAKC;AA5ED;;;GAGG;AACU,QAAA,aAAa,GAAG;IAC3B,KAAK,EAAE,OAAO,EAAK,qCAAqC;IACxD,GAAG,EAAE,KAAK,EAAQ,yBAAyB;IAC3C,KAAK,EAAE,OAAO,EAAI,6BAA6B;IAC/C,MAAM,EAAE,QAAQ,EAAE,kCAAkC;IACpD,IAAI,EAAE,MAAM,EAAM,sCAAsC;IACxD,EAAE,EAAE,IAAI,EAAU,yBAAyB;IAC3C,IAAI,EAAE,MAAM,EAAM,yBAAyB;IAC3C,KAAK,EAAE,OAAO,EAAI,uBAAuB;IACzC,IAAI,EAAE,MAAM,EAAM,0BAA0B;IAC5C,IAAI,EAAE,MAAM,EAAM,0BAA0B;IAC5C,KAAK,EAAE,OAAO,CAAI,mDAAmD;CAC7D,CAAC;AAoDX;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAiB,EAAE,IAAe,EAAE,QAAiB;IACvF,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAyB,CAAC;IACxD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC;AA6DD;;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,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Nostr protocol type definitions
|
|
3
|
+
* @module types/nostr
|
|
4
|
+
*/
|
|
5
|
+
import type { WebSocket as WSClient } from 'ws';
|
|
6
|
+
import { Logger } from './logger';
|
|
7
|
+
import type { NostrWSMessage } from './messages';
|
|
8
|
+
import type { NostrEvent } from './events';
|
|
9
|
+
/**
|
|
10
|
+
* Signed Nostr event with id and signature
|
|
11
|
+
*/
|
|
12
|
+
export interface SignedNostrEvent extends NostrEvent {
|
|
13
|
+
/**
|
|
14
|
+
* Event ID (32-bytes lowercase hex of the serialized event data)
|
|
15
|
+
*/
|
|
16
|
+
id: string;
|
|
17
|
+
/**
|
|
18
|
+
* Signature of the event ID (64-bytes hex of the schnorr signature)
|
|
19
|
+
*/
|
|
20
|
+
sig: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Extended WebSocket interface for Nostr
|
|
24
|
+
*/
|
|
25
|
+
export interface NostrWSSocket extends WSClient {
|
|
26
|
+
/**
|
|
27
|
+
* Whether the socket is alive (for ping/pong)
|
|
28
|
+
*/
|
|
29
|
+
isAlive?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Set of active subscription IDs
|
|
32
|
+
*/
|
|
33
|
+
subscriptions?: Set<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Unique client identifier
|
|
36
|
+
*/
|
|
37
|
+
clientId?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Server configuration options
|
|
41
|
+
*/
|
|
42
|
+
export interface NostrWSServerOptions {
|
|
43
|
+
/**
|
|
44
|
+
* Port to listen on
|
|
45
|
+
*/
|
|
46
|
+
port: number;
|
|
47
|
+
/**
|
|
48
|
+
* Host to bind to
|
|
49
|
+
*/
|
|
50
|
+
host?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Path for the WebSocket endpoint
|
|
53
|
+
*/
|
|
54
|
+
path?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum payload size in bytes
|
|
57
|
+
*/
|
|
58
|
+
maxPayload?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Ping interval in milliseconds
|
|
61
|
+
*/
|
|
62
|
+
pingInterval?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Client timeout in milliseconds
|
|
65
|
+
*/
|
|
66
|
+
clientTimeout?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Heartbeat interval in milliseconds
|
|
69
|
+
*/
|
|
70
|
+
heartbeatInterval?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Handlers for various events
|
|
73
|
+
*/
|
|
74
|
+
handlers?: {
|
|
75
|
+
message?: (socket: NostrWSSocket, message: NostrWSServerMessage) => Promise<void>;
|
|
76
|
+
error?: (socket: NostrWSSocket, error: Error) => void;
|
|
77
|
+
close?: (socket: NostrWSSocket) => void;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Callback for when a new connection is established
|
|
81
|
+
*/
|
|
82
|
+
onConnection?: (socket: NostrWSSocket) => void;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Server message structure
|
|
86
|
+
*/
|
|
87
|
+
export interface NostrWSServerMessage {
|
|
88
|
+
/**
|
|
89
|
+
* Message type
|
|
90
|
+
*/
|
|
91
|
+
type: string;
|
|
92
|
+
/**
|
|
93
|
+
* Message data
|
|
94
|
+
*/
|
|
95
|
+
data?: unknown;
|
|
96
|
+
/**
|
|
97
|
+
* Error message if applicable
|
|
98
|
+
*/
|
|
99
|
+
error?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Extended WebSocket interface for Nostr server
|
|
103
|
+
*/
|
|
104
|
+
export interface NostrWSServerSocket extends WSClient {
|
|
105
|
+
clientId: string;
|
|
106
|
+
subscriptions: Set<string>;
|
|
107
|
+
lastPing?: number;
|
|
108
|
+
isAlive: boolean;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Nostr WebSocket server options
|
|
112
|
+
*/
|
|
113
|
+
export interface NostrWSServerServerOptions {
|
|
114
|
+
port: number;
|
|
115
|
+
host?: string;
|
|
116
|
+
path?: string;
|
|
117
|
+
logger: Logger;
|
|
118
|
+
maxClients?: number;
|
|
119
|
+
pingInterval?: number;
|
|
120
|
+
pingTimeout?: number;
|
|
121
|
+
handlers?: {
|
|
122
|
+
message?: (message: NostrWSServerMessage, ws: NostrWSServerSocket) => Promise<void>;
|
|
123
|
+
error?: (error: Error, ws: NostrWSServerSocket) => void;
|
|
124
|
+
close?: (ws: NostrWSServerSocket) => void;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Nostr WebSocket server message
|
|
129
|
+
*/
|
|
130
|
+
export type NostrWSServerServerMessage = NostrWSMessage & {
|
|
131
|
+
clientId?: string;
|
|
132
|
+
timestamp?: number;
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=nostr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nostr.d.ts","sourceRoot":"","sources":["../../../src/types/nostr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nostr.js","sourceRoot":"","sources":["../../../src/types/nostr.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file WebSocket client configuration options
|
|
3
|
+
* @module types/options
|
|
4
|
+
*/
|
|
5
|
+
import WebSocket from 'ws';
|
|
6
|
+
import { NostrWSMessage } from './messages';
|
|
7
|
+
/**
|
|
8
|
+
* Handler functions for WebSocket events
|
|
9
|
+
*/
|
|
10
|
+
export interface NostrWSHandlers {
|
|
11
|
+
/**
|
|
12
|
+
* Handler for incoming messages
|
|
13
|
+
*/
|
|
14
|
+
message: (message: NostrWSMessage) => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Handler for WebSocket errors
|
|
17
|
+
*/
|
|
18
|
+
error: (error: Error) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Handler for connection close events
|
|
21
|
+
*/
|
|
22
|
+
close: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Handler for connection state changes
|
|
25
|
+
*/
|
|
26
|
+
stateChange?: (state: string) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Handler for heartbeat events
|
|
29
|
+
*/
|
|
30
|
+
heartbeat?: () => void;
|
|
31
|
+
/**
|
|
32
|
+
* Handler for connection events
|
|
33
|
+
*/
|
|
34
|
+
connect?: () => void;
|
|
35
|
+
/**
|
|
36
|
+
* Handler for disconnection events
|
|
37
|
+
*/
|
|
38
|
+
disconnect?: () => void;
|
|
39
|
+
/**
|
|
40
|
+
* Handler for reconnection events
|
|
41
|
+
*/
|
|
42
|
+
reconnect?: () => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Connection retry configuration
|
|
46
|
+
*/
|
|
47
|
+
export interface RetryConfig {
|
|
48
|
+
/**
|
|
49
|
+
* Maximum number of retry attempts
|
|
50
|
+
* @default 10
|
|
51
|
+
*/
|
|
52
|
+
maxAttempts: number;
|
|
53
|
+
/**
|
|
54
|
+
* Initial delay between retries in milliseconds
|
|
55
|
+
* @default 1000
|
|
56
|
+
*/
|
|
57
|
+
initialDelay: number;
|
|
58
|
+
/**
|
|
59
|
+
* Maximum delay between retries in milliseconds
|
|
60
|
+
* @default 30000
|
|
61
|
+
*/
|
|
62
|
+
maxDelay: number;
|
|
63
|
+
/**
|
|
64
|
+
* Factor to multiply delay by after each attempt
|
|
65
|
+
* @default 1.5
|
|
66
|
+
*/
|
|
67
|
+
backoffFactor: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Queue configuration
|
|
71
|
+
*/
|
|
72
|
+
export interface QueueConfig {
|
|
73
|
+
/**
|
|
74
|
+
* Maximum size of the message queue
|
|
75
|
+
* @default 1000
|
|
76
|
+
*/
|
|
77
|
+
maxSize: number;
|
|
78
|
+
/**
|
|
79
|
+
* Maximum number of retry attempts per message
|
|
80
|
+
* @default 3
|
|
81
|
+
*/
|
|
82
|
+
maxRetries: number;
|
|
83
|
+
/**
|
|
84
|
+
* Base delay between retries in milliseconds
|
|
85
|
+
* @default 1000
|
|
86
|
+
*/
|
|
87
|
+
retryDelay: number;
|
|
88
|
+
/**
|
|
89
|
+
* Time in milliseconds after which messages are considered stale
|
|
90
|
+
* @default 300000 (5 minutes)
|
|
91
|
+
*/
|
|
92
|
+
staleTimeout: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Heartbeat configuration
|
|
96
|
+
*/
|
|
97
|
+
export interface HeartbeatConfig {
|
|
98
|
+
/**
|
|
99
|
+
* Interval between heartbeat pings in milliseconds
|
|
100
|
+
* @default 30000
|
|
101
|
+
*/
|
|
102
|
+
interval: number;
|
|
103
|
+
/**
|
|
104
|
+
* Timeout for heartbeat response in milliseconds
|
|
105
|
+
* @default 5000
|
|
106
|
+
*/
|
|
107
|
+
timeout: number;
|
|
108
|
+
/**
|
|
109
|
+
* Maximum missed heartbeats before connection is considered dead
|
|
110
|
+
* @default 3
|
|
111
|
+
*/
|
|
112
|
+
maxMissed: number;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* WebSocket client configuration options
|
|
116
|
+
*/
|
|
117
|
+
export interface NostrWSOptions {
|
|
118
|
+
/**
|
|
119
|
+
* WebSocket implementation to use
|
|
120
|
+
* @default ws
|
|
121
|
+
*/
|
|
122
|
+
WebSocketImpl: typeof WebSocket;
|
|
123
|
+
/**
|
|
124
|
+
* Event handlers
|
|
125
|
+
*/
|
|
126
|
+
handlers: NostrWSHandlers;
|
|
127
|
+
/**
|
|
128
|
+
* Retry configuration
|
|
129
|
+
*/
|
|
130
|
+
retry?: Partial<RetryConfig>;
|
|
131
|
+
/**
|
|
132
|
+
* Queue configuration
|
|
133
|
+
*/
|
|
134
|
+
queue?: Partial<QueueConfig>;
|
|
135
|
+
/**
|
|
136
|
+
* Heartbeat configuration
|
|
137
|
+
*/
|
|
138
|
+
heartbeat?: Partial<HeartbeatConfig>;
|
|
139
|
+
/**
|
|
140
|
+
* Whether to automatically reconnect on disconnection
|
|
141
|
+
* @default true
|
|
142
|
+
*/
|
|
143
|
+
autoReconnect?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Whether to buffer messages when disconnected
|
|
146
|
+
* @default true
|
|
147
|
+
*/
|
|
148
|
+
bufferMessages?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Whether to automatically remove stale messages from the queue
|
|
151
|
+
* @default true
|
|
152
|
+
*/
|
|
153
|
+
cleanStaleMessages?: boolean;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/types/options.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;OAEG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,EAAE,OAAO,SAAS,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAErC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/types/options.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Message priority definitions
|
|
3
|
+
* @module types/priority
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Message priority levels for queue management
|
|
7
|
+
*/
|
|
8
|
+
export declare enum MessagePriority {
|
|
9
|
+
HIGH = "HIGH",
|
|
10
|
+
NORMAL = "NORMAL",
|
|
11
|
+
LOW = "LOW"
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=priority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/types/priority.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Message priority definitions
|
|
4
|
+
* @module types/priority
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.MessagePriority = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Message priority levels for queue management
|
|
10
|
+
*/
|
|
11
|
+
var MessagePriority;
|
|
12
|
+
(function (MessagePriority) {
|
|
13
|
+
MessagePriority["HIGH"] = "HIGH";
|
|
14
|
+
MessagePriority["NORMAL"] = "NORMAL";
|
|
15
|
+
MessagePriority["LOW"] = "LOW";
|
|
16
|
+
})(MessagePriority || (exports.MessagePriority = MessagePriority = {}));
|
|
17
|
+
//# sourceMappingURL=priority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../src/types/priority.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;GAEG;AACH,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,8BAAW,CAAA;AACb,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Relay type definitions
|
|
3
|
+
* @module types/relays
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Relay information interface
|
|
7
|
+
*/
|
|
8
|
+
export interface NostrRelayInfo {
|
|
9
|
+
name?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
pubkey?: string;
|
|
12
|
+
contact?: string;
|
|
13
|
+
supported_nips?: number[];
|
|
14
|
+
software?: string;
|
|
15
|
+
version?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Relay metadata interface
|
|
19
|
+
*/
|
|
20
|
+
export interface NostrRelayMetadata extends NostrRelayInfo {
|
|
21
|
+
url: string;
|
|
22
|
+
status: 'connected' | 'disconnected' | 'error';
|
|
23
|
+
error?: string;
|
|
24
|
+
lastConnected?: number;
|
|
25
|
+
lastDisconnected?: number;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=relays.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relays.d.ts","sourceRoot":"","sources":["../../../src/types/relays.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relays.js","sourceRoot":"","sources":["../../../src/types/relays.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Scoring and metrics type definitions
|
|
3
|
+
* @module types/scoring
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Metric value types
|
|
7
|
+
*/
|
|
8
|
+
export type MetricValue = number | string | boolean | Date;
|
|
9
|
+
/**
|
|
10
|
+
* Transport data types
|
|
11
|
+
*/
|
|
12
|
+
export type TransportData = string | Buffer | ArrayBuffer | SharedArrayBuffer;
|
|
13
|
+
/**
|
|
14
|
+
* Metrics update event
|
|
15
|
+
*/
|
|
16
|
+
export interface MetricUpdateEvent {
|
|
17
|
+
endpoint: string;
|
|
18
|
+
metricType: string;
|
|
19
|
+
value: MetricValue;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
}
|
|
22
|
+
export interface BaseMetrics {
|
|
23
|
+
totalConnections: number;
|
|
24
|
+
activeConnections: number;
|
|
25
|
+
connectionErrors: number;
|
|
26
|
+
messagesReceived: number;
|
|
27
|
+
messagesSent: number;
|
|
28
|
+
bytesReceived: number;
|
|
29
|
+
bytesSent: number;
|
|
30
|
+
averageLatency: number;
|
|
31
|
+
lastSeen: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ScoringStrategy {
|
|
34
|
+
calculateScore(metrics: BaseMetrics): number;
|
|
35
|
+
}
|
|
36
|
+
export interface MetricsProvider<T extends BaseMetrics = BaseMetrics> {
|
|
37
|
+
getMetrics(endpoint: string): T;
|
|
38
|
+
getAllMetrics(): Map<string, T>;
|
|
39
|
+
trackMetric(endpoint: string, metricType: string, value: any): void;
|
|
40
|
+
}
|
|
41
|
+
export declare const DEFAULT_WEIGHTS: {
|
|
42
|
+
readonly latency: 0.2;
|
|
43
|
+
readonly reliability: 0.3;
|
|
44
|
+
readonly uptime: 0.2;
|
|
45
|
+
readonly errors: 0.2;
|
|
46
|
+
readonly activity: 0.1;
|
|
47
|
+
};
|
|
48
|
+
export declare class DefaultScoringStrategy implements ScoringStrategy {
|
|
49
|
+
private weights;
|
|
50
|
+
constructor(weights?: {
|
|
51
|
+
readonly latency: 0.2;
|
|
52
|
+
readonly reliability: 0.3;
|
|
53
|
+
readonly uptime: 0.2;
|
|
54
|
+
readonly errors: 0.2;
|
|
55
|
+
readonly activity: 0.1;
|
|
56
|
+
});
|
|
57
|
+
calculateScore(metrics: BaseMetrics): number;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=scoring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../../src/types/scoring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAE1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW;IAClE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;IAChC,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACrE;AAGD,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAGX,qBAAa,sBAAuB,YAAW,eAAe;IAChD,OAAO,CAAC,OAAO;gBAAP,OAAO;;;;;;KAAkB;IAE7C,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CAe7C"}
|