nostr-websocket-utils 0.3.1 → 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/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 +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 +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 +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 +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,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Main entry point for the nostr-websocket-utils library
|
|
4
|
+
* @module nostr-websocket-utils
|
|
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.getLogger = exports.createServer = exports.NostrServer = exports.NostrWSServer = exports.NostrWSClient = void 0;
|
|
22
|
+
// Core functionality
|
|
23
|
+
var client_js_1 = require("./core/client.js");
|
|
24
|
+
Object.defineProperty(exports, "NostrWSClient", { enumerable: true, get: function () { return client_js_1.NostrWSClient; } });
|
|
25
|
+
var server_js_1 = require("./core/server.js");
|
|
26
|
+
Object.defineProperty(exports, "NostrWSServer", { enumerable: true, get: function () { return server_js_1.NostrWSServer; } });
|
|
27
|
+
var nostr_server_js_1 = require("./core/nostr-server.js");
|
|
28
|
+
Object.defineProperty(exports, "NostrServer", { enumerable: true, get: function () { return nostr_server_js_1.NostrWSServer; } });
|
|
29
|
+
var nostr_server_js_2 = require("./core/nostr-server.js");
|
|
30
|
+
Object.defineProperty(exports, "createServer", { enumerable: true, get: function () { return nostr_server_js_2.createWSServer; } });
|
|
31
|
+
// Utilities
|
|
32
|
+
var logger_js_1 = require("./utils/logger.js");
|
|
33
|
+
Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_js_1.getLogger; } });
|
|
34
|
+
// Crypto operations
|
|
35
|
+
__exportStar(require("./crypto"), exports);
|
|
36
|
+
// NIP implementations
|
|
37
|
+
__exportStar(require("./nips"), exports);
|
|
38
|
+
// Type definitions
|
|
39
|
+
__exportStar(require("./types"), exports);
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,qBAAqB;AACrB,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AACtB,8CAAiD;AAAxC,0GAAA,aAAa,OAAA;AACtB,0DAAsE;AAA7D,8GAAA,aAAa,OAAe;AACrC,0DAAwE;AAA/D,+GAAA,cAAc,OAAgB;AAEvC,YAAY;AACZ,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAElB,oBAAoB;AACpB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AAEvB,mBAAmB;AACnB,0CAAwB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file NIPs implementation index
|
|
3
|
+
* @module nips
|
|
4
|
+
*/
|
|
5
|
+
export * from './nip-01';
|
|
6
|
+
export * from './nip-02';
|
|
7
|
+
export * from './nip-04';
|
|
8
|
+
export * from './nip-05';
|
|
9
|
+
export * from './nip-09';
|
|
10
|
+
export * from './nip-19';
|
|
11
|
+
export * from './nip-26';
|
|
12
|
+
export * from './nip-11';
|
|
13
|
+
export * from './nip-20';
|
|
14
|
+
export * from './nip-13';
|
|
15
|
+
export * from './nip-16';
|
|
16
|
+
export * from './nip-15';
|
|
17
|
+
export * from './nip-22';
|
|
18
|
+
export * from './nip-28';
|
|
19
|
+
export * from './nip-33';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nips/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file NIPs implementation index
|
|
4
|
+
* @module nips
|
|
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
|
+
// Basic protocol flow
|
|
22
|
+
__exportStar(require("./nip-01"), exports);
|
|
23
|
+
// Contact List and Petnames
|
|
24
|
+
__exportStar(require("./nip-02"), exports);
|
|
25
|
+
// Encrypted Direct Messages
|
|
26
|
+
__exportStar(require("./nip-04"), exports);
|
|
27
|
+
// DNS Identity Verification
|
|
28
|
+
__exportStar(require("./nip-05"), exports);
|
|
29
|
+
// Event Deletion
|
|
30
|
+
__exportStar(require("./nip-09"), exports);
|
|
31
|
+
// bech32-encoded entities
|
|
32
|
+
__exportStar(require("./nip-19"), exports);
|
|
33
|
+
// Delegated Event Signing
|
|
34
|
+
__exportStar(require("./nip-26"), exports);
|
|
35
|
+
// Relay Information Document
|
|
36
|
+
__exportStar(require("./nip-11"), exports);
|
|
37
|
+
// Command Results
|
|
38
|
+
__exportStar(require("./nip-20"), exports);
|
|
39
|
+
// Proof of Work
|
|
40
|
+
__exportStar(require("./nip-13"), exports);
|
|
41
|
+
// Event Treatment
|
|
42
|
+
__exportStar(require("./nip-16"), exports);
|
|
43
|
+
// End of Stored Events Notice
|
|
44
|
+
__exportStar(require("./nip-15"), exports);
|
|
45
|
+
// Event Created At Limits
|
|
46
|
+
__exportStar(require("./nip-22"), exports);
|
|
47
|
+
// Public Chat
|
|
48
|
+
__exportStar(require("./nip-28"), exports);
|
|
49
|
+
// Parameterized Replaceable Events
|
|
50
|
+
__exportStar(require("./nip-33"), exports);
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nips/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,sBAAsB;AACtB,2CAAyB;AAEzB,4BAA4B;AAC5B,2CAAyB;AAEzB,4BAA4B;AAC5B,2CAAyB;AAEzB,4BAA4B;AAC5B,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,0BAA0B;AAC1B,2CAAyB;AAEzB,0BAA0B;AAC1B,2CAAyB;AAEzB,6BAA6B;AAC7B,2CAAyB;AAEzB,kBAAkB;AAClB,2CAAyB;AAEzB,gBAAgB;AAChB,2CAAyB;AAEzB,kBAAkB;AAClB,2CAAyB;AAEzB,8BAA8B;AAC9B,2CAAyB;AAEzB,0BAA0B;AAC1B,2CAAyB;AAEzB,cAAc;AACd,2CAAyB;AAEzB,mCAAmC;AACnC,2CAAyB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file NIP-01: Basic protocol flow implementation
|
|
3
|
+
* @module nips/nip-01
|
|
4
|
+
*/
|
|
5
|
+
import type { NostrWSMessage, NostrEvent } from '../types/messages';
|
|
6
|
+
interface NostrEventValidationResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
error?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Validates a message according to NIP-01 specifications
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateMessage(message: NostrWSMessage): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Creates an EVENT message
|
|
16
|
+
*/
|
|
17
|
+
export declare function createEventMessage(event: NostrEvent): NostrWSMessage;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a REQ message
|
|
20
|
+
*/
|
|
21
|
+
export declare function createReqMessage(subscriptionId: string, filters: Array<Record<string, unknown>>): NostrWSMessage;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a CLOSE message
|
|
24
|
+
*/
|
|
25
|
+
export declare function createCloseMessage(subscriptionId: string): NostrWSMessage;
|
|
26
|
+
/**
|
|
27
|
+
* Creates a NOTICE message
|
|
28
|
+
*/
|
|
29
|
+
export declare function createNoticeMessage(message: string): NostrWSMessage;
|
|
30
|
+
/**
|
|
31
|
+
* Validates a Nostr event according to NIP-01
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateEvent(event: NostrEvent): NostrEventValidationResult;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=nip-01.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip-01.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-01.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpE,UAAU,0BAA0B;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAoChE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAKhH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,CAIzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAInE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,0BAA0B,CA+C3E"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file NIP-01: Basic protocol flow implementation
|
|
4
|
+
* @module nips/nip-01
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validateMessage = validateMessage;
|
|
8
|
+
exports.createEventMessage = createEventMessage;
|
|
9
|
+
exports.createReqMessage = createReqMessage;
|
|
10
|
+
exports.createCloseMessage = createCloseMessage;
|
|
11
|
+
exports.createNoticeMessage = createNoticeMessage;
|
|
12
|
+
exports.validateEvent = validateEvent;
|
|
13
|
+
const logger_1 = require("../utils/logger");
|
|
14
|
+
const messages_1 = require("../types/messages");
|
|
15
|
+
const logger = (0, logger_1.getLogger)('NIP-01');
|
|
16
|
+
/**
|
|
17
|
+
* Validates a message according to NIP-01 specifications
|
|
18
|
+
*/
|
|
19
|
+
function validateMessage(message) {
|
|
20
|
+
if (!message || !Array.isArray(message)) {
|
|
21
|
+
logger.debug('Invalid message format');
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
if (!message[0] || !(message[0] in messages_1.MESSAGE_TYPES)) {
|
|
25
|
+
logger.debug(`Invalid message type: ${message[0]}`);
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (!message[1] || typeof message[1] !== 'object') {
|
|
29
|
+
logger.debug('Invalid message data');
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
// Message type specific validation
|
|
33
|
+
if (message[0] === messages_1.MESSAGE_TYPES.EVENT) {
|
|
34
|
+
if (!validateEvent(message[1]).valid) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (message[0] === messages_1.MESSAGE_TYPES.REQ) {
|
|
39
|
+
if (!validateReqMessage(message)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (message[0] === messages_1.MESSAGE_TYPES.CLOSE) {
|
|
44
|
+
if (!validateCloseMessage(message)) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates an EVENT message
|
|
52
|
+
*/
|
|
53
|
+
function createEventMessage(event) {
|
|
54
|
+
return [messages_1.MESSAGE_TYPES.EVENT, event];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a REQ message
|
|
58
|
+
*/
|
|
59
|
+
function createReqMessage(subscriptionId, filters) {
|
|
60
|
+
return [messages_1.MESSAGE_TYPES.REQ, {
|
|
61
|
+
subscription_id: subscriptionId,
|
|
62
|
+
filters
|
|
63
|
+
}];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Creates a CLOSE message
|
|
67
|
+
*/
|
|
68
|
+
function createCloseMessage(subscriptionId) {
|
|
69
|
+
return [messages_1.MESSAGE_TYPES.CLOSE, {
|
|
70
|
+
subscription_id: subscriptionId
|
|
71
|
+
}];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a NOTICE message
|
|
75
|
+
*/
|
|
76
|
+
function createNoticeMessage(message) {
|
|
77
|
+
return [messages_1.MESSAGE_TYPES.NOTICE, {
|
|
78
|
+
message
|
|
79
|
+
}];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Validates a Nostr event according to NIP-01
|
|
83
|
+
*/
|
|
84
|
+
function validateEvent(event) {
|
|
85
|
+
if (typeof event !== 'object' || !event) {
|
|
86
|
+
return { valid: false, error: 'Event must be an object' };
|
|
87
|
+
}
|
|
88
|
+
const typedEvent = event;
|
|
89
|
+
if (!typedEvent.id || typeof typedEvent.id !== 'string') {
|
|
90
|
+
return { valid: false, error: 'Event must have a string id' };
|
|
91
|
+
}
|
|
92
|
+
if (!typedEvent.pubkey || typeof typedEvent.pubkey !== 'string') {
|
|
93
|
+
return { valid: false, error: 'Event must have a string pubkey' };
|
|
94
|
+
}
|
|
95
|
+
if (!typedEvent.created_at || typeof typedEvent.created_at !== 'number') {
|
|
96
|
+
return { valid: false, error: 'Event must have a number created_at' };
|
|
97
|
+
}
|
|
98
|
+
if (!typedEvent.kind || typeof typedEvent.kind !== 'number') {
|
|
99
|
+
return { valid: false, error: 'Event must have a number kind' };
|
|
100
|
+
}
|
|
101
|
+
if (!Array.isArray(typedEvent.tags)) {
|
|
102
|
+
return { valid: false, error: 'Event must have an array of tags' };
|
|
103
|
+
}
|
|
104
|
+
if (!typedEvent.content || typeof typedEvent.content !== 'string') {
|
|
105
|
+
return { valid: false, error: 'Event must have a string content' };
|
|
106
|
+
}
|
|
107
|
+
if (!typedEvent.sig || typeof typedEvent.sig !== 'string') {
|
|
108
|
+
return { valid: false, error: 'Event must have a string sig' };
|
|
109
|
+
}
|
|
110
|
+
// Validate tag structure
|
|
111
|
+
for (const tag of typedEvent.tags) {
|
|
112
|
+
if (!Array.isArray(tag) || tag.length === 0) {
|
|
113
|
+
return { valid: false, error: 'Each tag must be a non-empty array' };
|
|
114
|
+
}
|
|
115
|
+
if (typeof tag[0] !== 'string') {
|
|
116
|
+
return { valid: false, error: 'Tag identifier must be a string' };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return { valid: true };
|
|
120
|
+
}
|
|
121
|
+
// Private helper functions
|
|
122
|
+
function validateReqMessage(message) {
|
|
123
|
+
const { subscription_id, filters } = message[1];
|
|
124
|
+
if (!subscription_id || typeof subscription_id !== 'string') {
|
|
125
|
+
logger.debug('Invalid subscription_id');
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
if (!Array.isArray(filters)) {
|
|
129
|
+
logger.debug('Invalid filters format');
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
function validateCloseMessage(message) {
|
|
135
|
+
const { subscription_id } = message[1];
|
|
136
|
+
if (!subscription_id || typeof subscription_id !== 'string') {
|
|
137
|
+
logger.debug('Invalid subscription_id');
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=nip-01.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip-01.js","sourceRoot":"","sources":["../../../src/nips/nip-01.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file NIP-02: Contact List and Petnames
|
|
3
|
+
* @module nips/nip-02
|
|
4
|
+
* @see https://github.com/nostr-protocol/nips/blob/master/02.md
|
|
5
|
+
*/
|
|
6
|
+
import type { NostrWSMessage } from '../types/messages';
|
|
7
|
+
import type { Logger } from '../types/logger';
|
|
8
|
+
/**
|
|
9
|
+
* Contact list event kind
|
|
10
|
+
*/
|
|
11
|
+
export declare const CONTACT_LIST_KIND = 3;
|
|
12
|
+
/**
|
|
13
|
+
* Contact entry structure
|
|
14
|
+
*/
|
|
15
|
+
export interface Contact {
|
|
16
|
+
pubkey: string;
|
|
17
|
+
relay?: string;
|
|
18
|
+
petname?: string;
|
|
19
|
+
metadata?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a contact list event
|
|
23
|
+
* @param contacts - List of contacts
|
|
24
|
+
* @param metadata - Optional metadata for the contact list
|
|
25
|
+
* @returns {NostrWSMessage} Contact list event
|
|
26
|
+
*/
|
|
27
|
+
export declare function createContactListEvent(contacts: Contact[], metadata?: Record<string, unknown>): NostrWSMessage;
|
|
28
|
+
/**
|
|
29
|
+
* Extracts contacts from a contact list event
|
|
30
|
+
* @param message - Contact list message
|
|
31
|
+
* @returns {Contact[]} Array of contacts
|
|
32
|
+
*/
|
|
33
|
+
export declare function extractContacts(message: NostrWSMessage): Contact[];
|
|
34
|
+
/**
|
|
35
|
+
* Creates a contact list subscription message
|
|
36
|
+
* @param pubkey - Public key to subscribe to
|
|
37
|
+
* @returns {NostrWSMessage} Subscription message
|
|
38
|
+
*/
|
|
39
|
+
export declare function createContactListSubscription(pubkey: string): NostrWSMessage;
|
|
40
|
+
/**
|
|
41
|
+
* Contact list manager interface
|
|
42
|
+
*/
|
|
43
|
+
export interface ContactListManager {
|
|
44
|
+
/**
|
|
45
|
+
* Adds or updates a contact
|
|
46
|
+
* @param contact - Contact to add/update
|
|
47
|
+
*/
|
|
48
|
+
addContact(contact: Contact): void;
|
|
49
|
+
/**
|
|
50
|
+
* Removes a contact
|
|
51
|
+
* @param pubkey - Public key of contact to remove
|
|
52
|
+
*/
|
|
53
|
+
removeContact(pubkey: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Gets a contact by public key
|
|
56
|
+
* @param pubkey - Public key to look up
|
|
57
|
+
* @returns {Contact | undefined} Contact if found
|
|
58
|
+
*/
|
|
59
|
+
getContact(pubkey: string): Contact | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Gets all contacts
|
|
62
|
+
* @returns {Contact[]} Array of all contacts
|
|
63
|
+
*/
|
|
64
|
+
getAllContacts(): Contact[];
|
|
65
|
+
/**
|
|
66
|
+
* Updates contact metadata
|
|
67
|
+
* @param pubkey - Public key of contact
|
|
68
|
+
* @param metadata - New metadata
|
|
69
|
+
*/
|
|
70
|
+
updateContactMetadata(pubkey: string, metadata: Record<string, unknown>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a contact list event
|
|
73
|
+
* @returns {NostrWSMessage} Contact list event
|
|
74
|
+
*/
|
|
75
|
+
createEvent(): NostrWSMessage;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Creates a contact list manager
|
|
79
|
+
* @param _logger - Logger instance
|
|
80
|
+
* @returns {ContactListManager} Contact list manager
|
|
81
|
+
*/
|
|
82
|
+
export declare function createContactListManager(_logger: Logger): ContactListManager;
|
|
83
|
+
//# sourceMappingURL=nip-02.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip-02.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-02.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,cAAc,CAahB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,EAAE,CA4BX;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAO5E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnC;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAEhD;;;OAGG;IACH,cAAc,IAAI,OAAO,EAAE,CAAC;IAE5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/E;;;OAGG;IACH,WAAW,IAAI,cAAc,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAqC5E"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file NIP-02: Contact List and Petnames
|
|
4
|
+
* @module nips/nip-02
|
|
5
|
+
* @see https://github.com/nostr-protocol/nips/blob/master/02.md
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.CONTACT_LIST_KIND = void 0;
|
|
9
|
+
exports.createContactListEvent = createContactListEvent;
|
|
10
|
+
exports.extractContacts = extractContacts;
|
|
11
|
+
exports.createContactListSubscription = createContactListSubscription;
|
|
12
|
+
exports.createContactListManager = createContactListManager;
|
|
13
|
+
/**
|
|
14
|
+
* Contact list event kind
|
|
15
|
+
*/
|
|
16
|
+
exports.CONTACT_LIST_KIND = 3;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a contact list event
|
|
19
|
+
* @param contacts - List of contacts
|
|
20
|
+
* @param metadata - Optional metadata for the contact list
|
|
21
|
+
* @returns {NostrWSMessage} Contact list event
|
|
22
|
+
*/
|
|
23
|
+
function createContactListEvent(contacts, metadata = {}) {
|
|
24
|
+
const tags = contacts.map(contact => {
|
|
25
|
+
const tag = ['p', contact.pubkey];
|
|
26
|
+
if (contact.relay)
|
|
27
|
+
tag.push(contact.relay);
|
|
28
|
+
if (contact.petname)
|
|
29
|
+
tag.push(contact.petname);
|
|
30
|
+
return tag;
|
|
31
|
+
});
|
|
32
|
+
return ['EVENT', {
|
|
33
|
+
kind: exports.CONTACT_LIST_KIND,
|
|
34
|
+
tags,
|
|
35
|
+
content: JSON.stringify(metadata)
|
|
36
|
+
}];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Extracts contacts from a contact list event
|
|
40
|
+
* @param message - Contact list message
|
|
41
|
+
* @returns {Contact[]} Array of contacts
|
|
42
|
+
*/
|
|
43
|
+
function extractContacts(message) {
|
|
44
|
+
try {
|
|
45
|
+
if (!Array.isArray(message) || message[0] !== 'EVENT') {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const event = message[1];
|
|
49
|
+
if (event.kind !== exports.CONTACT_LIST_KIND) {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
if (!Array.isArray(event.tags)) {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
const metadata = event.content ? JSON.parse(event.content) : {};
|
|
56
|
+
return event.tags
|
|
57
|
+
.filter(tag => Array.isArray(tag) && tag[0] === 'p')
|
|
58
|
+
.map(tag => ({
|
|
59
|
+
pubkey: tag[1],
|
|
60
|
+
relay: tag[2],
|
|
61
|
+
petname: tag[3],
|
|
62
|
+
metadata
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Creates a contact list subscription message
|
|
71
|
+
* @param pubkey - Public key to subscribe to
|
|
72
|
+
* @returns {NostrWSMessage} Subscription message
|
|
73
|
+
*/
|
|
74
|
+
function createContactListSubscription(pubkey) {
|
|
75
|
+
return ['REQ', {
|
|
76
|
+
filter: {
|
|
77
|
+
authors: [pubkey],
|
|
78
|
+
kinds: [exports.CONTACT_LIST_KIND]
|
|
79
|
+
}
|
|
80
|
+
}];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Creates a contact list manager
|
|
84
|
+
* @param _logger - Logger instance
|
|
85
|
+
* @returns {ContactListManager} Contact list manager
|
|
86
|
+
*/
|
|
87
|
+
function createContactListManager(_logger) {
|
|
88
|
+
const contacts = new Map();
|
|
89
|
+
return {
|
|
90
|
+
addContact(contact) {
|
|
91
|
+
contacts.set(contact.pubkey, contact);
|
|
92
|
+
},
|
|
93
|
+
removeContact(pubkey) {
|
|
94
|
+
contacts.delete(pubkey);
|
|
95
|
+
},
|
|
96
|
+
getContact(pubkey) {
|
|
97
|
+
return contacts.get(pubkey);
|
|
98
|
+
},
|
|
99
|
+
getAllContacts() {
|
|
100
|
+
return Array.from(contacts.values());
|
|
101
|
+
},
|
|
102
|
+
updateContactMetadata(pubkey, metadata) {
|
|
103
|
+
const contact = contacts.get(pubkey);
|
|
104
|
+
if (contact) {
|
|
105
|
+
contacts.set(pubkey, {
|
|
106
|
+
...contact,
|
|
107
|
+
metadata: {
|
|
108
|
+
...contact.metadata,
|
|
109
|
+
...metadata
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
createEvent() {
|
|
115
|
+
return createContactListEvent(Array.from(contacts.values()));
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=nip-02.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip-02.js","sourceRoot":"","sources":["../../../src/nips/nip-02.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA0BH,wDAgBC;AAOD,0CA8BC;AAOD,sEAOC;AAkDD,4DAqCC;AA/KD;;GAEG;AACU,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAYnC;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,QAAmB,EACnB,WAAoC,EAAE;IAEtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAClC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,OAAO,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,OAAO;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,yBAAiB;YACvB,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,OAAuB;IAEvB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAA4B,CAAC;QACpD,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAiB,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1E,OAAO,KAAK,CAAC,IAAI;aACd,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;aACnD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACX,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACd,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACb,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACf,QAAQ;SACT,CAAC,CAAC,CAAC;IACR,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,6BAA6B,CAAC,MAAc;IAC1D,OAAO,CAAC,KAAK,EAAE;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,MAAM,CAAC;gBACjB,KAAK,EAAE,CAAC,yBAAiB,CAAC;aAC3B;SACF,CAAC,CAAC;AACL,CAAC;AA6CD;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,OAAe;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE5C,OAAO;QACL,UAAU,CAAC,OAAgB;YACzB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,aAAa,CAAC,MAAc;YAC1B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,UAAU,CAAC,MAAc;YACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,cAAc;YACZ,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,qBAAqB,CAAC,MAAc,EAAE,QAAiC;YACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;oBACnB,GAAG,OAAO;oBACV,QAAQ,EAAE;wBACR,GAAG,OAAO,CAAC,QAAQ;wBACnB,GAAG,QAAQ;qBACZ;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,WAAW;YACT,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file NIP-04: Encrypted Direct Message Support
|
|
3
|
+
* @module nips/nip-04
|
|
4
|
+
* @see https://github.com/nostr-protocol/nips/blob/master/04.md
|
|
5
|
+
*/
|
|
6
|
+
import type { NostrWSMessage } from '../types/messages';
|
|
7
|
+
import type { Logger } from '../types/logger';
|
|
8
|
+
/**
|
|
9
|
+
* Kind value for encrypted direct messages
|
|
10
|
+
*/
|
|
11
|
+
export declare const ENCRYPTED_DM_KIND = 4;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an encrypted direct message event
|
|
14
|
+
* @param content - Message content to encrypt
|
|
15
|
+
* @param recipientPubkey - Recipient's public key
|
|
16
|
+
* @param senderPrivkey - Sender's private key
|
|
17
|
+
* @param tags - Additional tags for the event
|
|
18
|
+
* @returns {Promise<NostrWSMessage>} Encrypted message event
|
|
19
|
+
*/
|
|
20
|
+
export declare function createEncryptedDM(content: string, recipientPubkey: string, senderPrivkey: string, tags?: string[][]): Promise<NostrWSMessage>;
|
|
21
|
+
/**
|
|
22
|
+
* Decrypts a received direct message event
|
|
23
|
+
* @param message - Received message
|
|
24
|
+
* @param recipientPrivkey - Recipient's private key
|
|
25
|
+
* @param senderPubkey - Sender's public key
|
|
26
|
+
* @param logger - Logger instance
|
|
27
|
+
* @returns {Promise<string>} Decrypted message content
|
|
28
|
+
*/
|
|
29
|
+
export declare function decryptDM(message: NostrWSMessage, recipientPrivkey: string, senderPubkey: string, logger: Logger): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Validates an encrypted DM event format
|
|
32
|
+
* @param message - Message to validate
|
|
33
|
+
* @param logger - Logger instance
|
|
34
|
+
* @returns {boolean} True if message follows NIP-04 format
|
|
35
|
+
*/
|
|
36
|
+
export declare function validateEncryptedDM(message: NostrWSMessage, logger: Logger): boolean;
|
|
37
|
+
//# sourceMappingURL=nip-04.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nip-04.d.ts","sourceRoot":"","sources":["../../../src/nips/nip-04.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,MAAM,EAAE,EAAO,GACpB,OAAO,CAAC,cAAc,CAAC,CAezB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAqCT"}
|