nostr-websocket-utils 0.3.1 → 0.3.3
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/dist/__mocks__/extendedWsMock.d.ts +6 -8
- package/dist/__mocks__/extendedWsMock.d.ts.map +1 -0
- package/dist/__mocks__/extendedWsMock.js +1 -0
- 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 +7 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +23 -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 +1 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +1 -0
- 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 +1 -0
- package/dist/core/queue.d.ts.map +1 -0
- package/dist/core/queue.js +1 -0
- package/dist/core/queue.js.map +1 -0
- package/dist/core/server.d.ts +1 -0
- package/dist/core/server.d.ts.map +1 -0
- package/dist/core/server.js +1 -0
- 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 +1 -0
- package/dist/crypto/handlers.d.ts.map +1 -0
- package/dist/crypto/handlers.js +1 -0
- package/dist/crypto/handlers.js.map +1 -0
- package/dist/crypto/index.d.ts +3 -1
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +3 -1
- 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 +1 -0
- package/dist/nips/nip-01.d.ts.map +1 -0
- package/dist/nips/nip-01.js +1 -0
- package/dist/nips/nip-01.js.map +1 -0
- package/dist/nips/nip-02.d.ts +1 -0
- package/dist/nips/nip-02.d.ts.map +1 -0
- package/dist/nips/nip-02.js +1 -0
- 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 +1 -0
- package/dist/nips/nip-04.js.map +1 -0
- package/dist/nips/nip-05.d.ts +1 -0
- 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 +1 -0
- package/dist/nips/nip-09.d.ts.map +1 -0
- package/dist/nips/nip-09.js +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- package/dist/nips/nip-20.d.ts.map +1 -0
- package/dist/nips/nip-20.js +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- package/dist/nips/nip-33.js.map +1 -0
- package/dist/transport/base.d.ts +1 -1
- 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 +1 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/transport/websocket.js +1 -0
- package/dist/transport/websocket.js.map +1 -0
- package/dist/types/events.d.ts +1 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +1 -0
- 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 +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- 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 +1 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +1 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/nostr.d.ts +1 -0
- 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 +1 -0
- package/dist/types/priority.d.ts.map +1 -0
- package/dist/types/priority.js +1 -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 +1 -2
- package/dist/types/scoring.d.ts.map +1 -0
- package/dist/types/scoring.js +1 -0
- 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 +1 -0
- package/dist/types/websocket.d.ts.map +1 -0
- package/dist/types/websocket.js +1 -0
- 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 +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +1 -0
- 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 +1 -0
- 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,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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Scoring and metrics type definitions
|
|
4
|
+
* @module types/scoring
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DefaultScoringStrategy = exports.DEFAULT_WEIGHTS = void 0;
|
|
8
|
+
// Default scoring weights
|
|
9
|
+
exports.DEFAULT_WEIGHTS = {
|
|
10
|
+
latency: 0.2,
|
|
11
|
+
reliability: 0.3,
|
|
12
|
+
uptime: 0.2,
|
|
13
|
+
errors: 0.2,
|
|
14
|
+
activity: 0.1,
|
|
15
|
+
};
|
|
16
|
+
// Default scoring strategy
|
|
17
|
+
class DefaultScoringStrategy {
|
|
18
|
+
constructor(weights = exports.DEFAULT_WEIGHTS) {
|
|
19
|
+
this.weights = weights;
|
|
20
|
+
}
|
|
21
|
+
calculateScore(metrics) {
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
// Basic scoring components that would work for any transport
|
|
24
|
+
const latencyScore = Math.max(0, 100 - (metrics.averageLatency / 10));
|
|
25
|
+
const activityScore = metrics.lastSeen ?
|
|
26
|
+
Math.max(0, 100 - ((now - metrics.lastSeen) / (60 * 1000))) : 0;
|
|
27
|
+
const errorScore = Math.max(0, 100 - (metrics.connectionErrors * 5));
|
|
28
|
+
return Math.round((latencyScore * this.weights.latency) +
|
|
29
|
+
(errorScore * this.weights.errors) +
|
|
30
|
+
(activityScore * this.weights.activity));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.DefaultScoringStrategy = DefaultScoringStrategy;
|
|
34
|
+
//# sourceMappingURL=scoring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../../src/types/scoring.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA6CH,0BAA0B;AACb,QAAA,eAAe,GAAG;IAC7B,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;CACL,CAAC;AAEX,2BAA2B;AAC3B,MAAa,sBAAsB;IACjC,YAAoB,UAAU,uBAAe;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEjD,cAAc,CAAC,OAAoB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,6DAA6D;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,KAAK,CACf,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACxC,CAAC;IACJ,CAAC;CACF;AAlBD,wDAkBC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Socket type definitions
|
|
3
|
+
* @module types/socket
|
|
4
|
+
*/
|
|
5
|
+
import type { WebSocket } from 'ws';
|
|
6
|
+
import type { NostrWSMessage } from './messages';
|
|
7
|
+
/**
|
|
8
|
+
* Extended WebSocket interface with Nostr-specific properties
|
|
9
|
+
*/
|
|
10
|
+
export interface NostrWSSocket extends WebSocket {
|
|
11
|
+
/**
|
|
12
|
+
* Unique client ID
|
|
13
|
+
*/
|
|
14
|
+
clientId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Set of subscribed channels
|
|
17
|
+
*/
|
|
18
|
+
subscriptions?: Set<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the socket is alive (for heartbeat)
|
|
21
|
+
*/
|
|
22
|
+
isAlive?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Send a message through the WebSocket
|
|
25
|
+
*/
|
|
26
|
+
send(message: string | Buffer): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* WebSocket client options
|
|
30
|
+
*/
|
|
31
|
+
export interface NostrWSClientOptions {
|
|
32
|
+
/**
|
|
33
|
+
* WebSocket implementation to use
|
|
34
|
+
*/
|
|
35
|
+
WebSocketImpl?: typeof WebSocket;
|
|
36
|
+
/**
|
|
37
|
+
* Heartbeat interval in milliseconds
|
|
38
|
+
*/
|
|
39
|
+
heartbeatInterval?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Reconnect interval in milliseconds
|
|
42
|
+
*/
|
|
43
|
+
reconnectInterval?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Maximum number of reconnect attempts
|
|
46
|
+
*/
|
|
47
|
+
maxReconnectAttempts?: number;
|
|
48
|
+
/**
|
|
49
|
+
* Message handlers
|
|
50
|
+
*/
|
|
51
|
+
handlers?: {
|
|
52
|
+
message?: (message: NostrWSMessage) => Promise<void>;
|
|
53
|
+
connect?: () => Promise<void>;
|
|
54
|
+
disconnect?: () => Promise<void>;
|
|
55
|
+
error?: (error: Error) => Promise<void>;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* WebSocket server options
|
|
60
|
+
*/
|
|
61
|
+
export interface NostrWSServerOptions {
|
|
62
|
+
/**
|
|
63
|
+
* WebSocket server implementation to use
|
|
64
|
+
*/
|
|
65
|
+
WebSocketImpl?: typeof WebSocket;
|
|
66
|
+
/**
|
|
67
|
+
* Heartbeat interval in milliseconds
|
|
68
|
+
*/
|
|
69
|
+
heartbeatInterval?: number;
|
|
70
|
+
/**
|
|
71
|
+
* Message handlers
|
|
72
|
+
*/
|
|
73
|
+
handlers?: {
|
|
74
|
+
message?: (ws: NostrWSSocket, message: NostrWSMessage) => Promise<void>;
|
|
75
|
+
connect?: (ws: NostrWSSocket) => Promise<void>;
|
|
76
|
+
disconnect?: (ws: NostrWSSocket) => Promise<void>;
|
|
77
|
+
error?: (ws: NostrWSSocket, error: Error) => Promise<void>;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Client event types
|
|
82
|
+
*/
|
|
83
|
+
export type NostrWSClientEvents = {
|
|
84
|
+
message: (message: NostrWSMessage) => void;
|
|
85
|
+
connect: () => void;
|
|
86
|
+
disconnect: () => void;
|
|
87
|
+
error: (error: Error) => void;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Server event types
|
|
91
|
+
*/
|
|
92
|
+
export type NostrWSServerEvents = {
|
|
93
|
+
message: (ws: NostrWSSocket, message: NostrWSMessage) => void;
|
|
94
|
+
connect: (ws: NostrWSSocket) => void;
|
|
95
|
+
disconnect: (ws: NostrWSSocket) => void;
|
|
96
|
+
error: (ws: NostrWSSocket, error: Error) => void;
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../src/types/socket.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;IACrC,UAAU,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/types/socket.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|