Skip to content

Commit c2573a8

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/fast-uri-3.1.2
2 parents d2ed758 + c87dd03 commit c2573a8

30 files changed

Lines changed: 1031 additions & 256 deletions

.changeset/funky-coins-know.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": minor
3+
---
4+
5+
feat: NIP-42 AUTH handler and WebSocket session wiring

.changeset/lemon-views-know.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": minor
3+
---
4+
5+
new user-facing config field

.changeset/quick-cats-agree.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": patch
3+
---
4+
5+
Refactor EventRepository query construction to reduce method complexity.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": minor
3+
---
4+
5+
refactor(http): remove deprecated network.remote_ip_header fallback and rely on network.remoteIpHeader
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": patch
3+
---
4+
5+
test(integration): verify response content-type across core HTTP paths

.changeset/vast-friends-march.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"nostream": minor
3+
---
4+
5+
feat: add NIP-42 types, schemas and constants

.changeset/vast-signs-melt.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

resources/default-settings.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,17 @@ nip05:
6262
domainBlacklist: []
6363
nip45:
6464
enabled: true
65+
wot:
66+
# Web of Trust filtering. When enabled, only events from pubkeys within
67+
# the relay owner's 2-hop follow graph are accepted.
68+
enabled: false
69+
# The relay owner's pubkey in hex. This is the root of the trust graph.
70+
# Required when enabled is true.
71+
seedPubkey: ""
72+
# A pubkey must be followed by at least this many 1-hop accounts to be trusted.
73+
minimumFollowers: 1
74+
# Hours between full trust graph rebuilds.
75+
refreshIntervalHours: 24
6576
network:
6677
maxPayloadSize: 524288
6778
# Uncomment only when using a trusted reverse proxy and configuring trustedProxies.

src/@types/adapters.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ export type IWebSocketAdapter = EventEmitter & {
1515
getClientId(): string
1616
getClientAddress(): string
1717
getSubscriptions(): Map<string, SubscriptionFilter[]>
18+
getChallenge(): string
19+
getAuthenticatedPubkeys(): ReadonlySet<string>
20+
addAuthenticatedPubkey(pubkey: string): void
1821
}
1922

2023
export interface ICacheAdapter {

src/@types/messages.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ export enum MessageType {
1212
OK = 'OK',
1313
COUNT = 'COUNT',
1414
CLOSED = 'CLOSED',
15+
AUTH = 'AUTH',
1516
}
1617

17-
export type IncomingMessage = (SubscribeMessage | IncomingEventMessage | UnsubscribeMessage | CountMessage) & {
18+
export type IncomingMessage = (SubscribeMessage | IncomingEventMessage | UnsubscribeMessage | CountMessage | AuthMessage) & {
1819
[ContextMetadataKey]?: ContextMetadata
1920
}
2021

21-
export type OutgoingMessage = OutgoingEventMessage | EndOfStoredEventsNotice | NoticeMessage | CommandResult | CountResultMessage | ClosedMessage
22+
export type OutgoingMessage = OutgoingEventMessage | EndOfStoredEventsNotice | NoticeMessage | CommandResult | CountResultMessage | ClosedMessage | AuthChallengeMessage
2223

2324
export type SubscribeMessage = {
2425
[index in Range<2, 100>]: SubscriptionFilter
@@ -89,3 +90,14 @@ export interface ClosedMessage {
8990
1: SubscriptionId
9091
2: string
9192
}
93+
94+
// NIP-42
95+
export interface AuthMessage {
96+
0: MessageType.AUTH
97+
1: Event
98+
}
99+
100+
export interface AuthChallengeMessage {
101+
0: MessageType.AUTH
102+
1: string
103+
}

0 commit comments

Comments
 (0)