add more client message types
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import {on, sleep} from "@welshman/lib"
|
||||
import type {SignedEvent, StampedEvent} from "@welshman/util"
|
||||
import {makeEvent, CLIENT_AUTH} from "@welshman/util"
|
||||
import {isRelayAuthMessage, isRelayOkMessage, RelayMessage} from "./message.js"
|
||||
import {isRelayAuth, isRelayOk, RelayMessage} from "./message.js"
|
||||
import {Socket, SocketStatus, SocketEventType, SocketUnsubscriber} from "./socket.js"
|
||||
|
||||
export const makeAuthEvent = (url: string, challenge: string) =>
|
||||
@@ -45,7 +45,7 @@ export class AuthManager {
|
||||
) {
|
||||
this._unsubscribers.push(
|
||||
on(socket, SocketEventType.Receive, (message: RelayMessage) => {
|
||||
if (isRelayOkMessage(message)) {
|
||||
if (isRelayOk(message)) {
|
||||
const [_, id, ok, details] = message
|
||||
|
||||
if (id === this.request) {
|
||||
@@ -59,7 +59,7 @@ export class AuthManager {
|
||||
}
|
||||
}
|
||||
|
||||
if (isRelayAuthMessage(message)) {
|
||||
if (isRelayAuth(message)) {
|
||||
const [_, challenge] = message
|
||||
|
||||
this.challenge = challenge
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {EventEmitter} from "events"
|
||||
import {on, randomId} from "@welshman/lib"
|
||||
import {SignedEvent, Filter} from "@welshman/util"
|
||||
import {RelayMessage, isRelayNegErrMessage, isRelayNegMsgMessage} from "./message.js"
|
||||
import {RelayMessage, isRelayNegErr, isRelayNegMsg} from "./message.js"
|
||||
import {AbstractAdapter, AdapterEventType} from "./adapter.js"
|
||||
import {Negentropy, NegentropyStorageVector} from "./negentropy.js"
|
||||
import {TypedEmitter} from "./util.js"
|
||||
@@ -43,7 +43,7 @@ export class Diff extends (EventEmitter as new () => TypedEmitter<DiffEvents>) {
|
||||
adapter,
|
||||
AdapterEventType.Receive,
|
||||
async (message: RelayMessage, url: string) => {
|
||||
if (isRelayNegMsgMessage(message)) {
|
||||
if (isRelayNegMsg(message)) {
|
||||
const [_, negid, msg] = message
|
||||
|
||||
if (negid === this._id) {
|
||||
@@ -59,7 +59,7 @@ export class Diff extends (EventEmitter as new () => TypedEmitter<DiffEvents>) {
|
||||
}
|
||||
}
|
||||
|
||||
if (isRelayNegErrMessage(message)) {
|
||||
if (isRelayNegErr(message)) {
|
||||
const [_, negid, msg] = message
|
||||
|
||||
if (negid === this._id) {
|
||||
|
||||
@@ -11,6 +11,8 @@ export enum RelayMessageType {
|
||||
Ok = "OK",
|
||||
}
|
||||
|
||||
export type RelayMessage = any[]
|
||||
|
||||
export type RelayAuthPayload = [string]
|
||||
|
||||
export type RelayEosePayload = [string, SignedEvent]
|
||||
@@ -23,45 +25,63 @@ export type RelayNegMsgPayload = [string, string]
|
||||
|
||||
export type RelayOkPayload = [string, boolean, string]
|
||||
|
||||
export type RelayAuthMessage = [RelayMessageType.Auth, ...RelayAuthPayload]
|
||||
export type RelayAuth = [RelayMessageType.Auth, ...RelayAuthPayload]
|
||||
|
||||
export type RelayEoseMessage = [RelayMessageType.Eose, ...RelayEosePayload]
|
||||
export type RelayEose = [RelayMessageType.Eose, ...RelayEosePayload]
|
||||
|
||||
export type RelayEventMessage = [RelayMessageType.Event, ...RelayEventPayload]
|
||||
export type RelayEvent = [RelayMessageType.Event, ...RelayEventPayload]
|
||||
|
||||
export type RelayNegErrMessage = [RelayMessageType.NegErr, ...RelayNegErrPayload]
|
||||
export type RelayNegErr = [RelayMessageType.NegErr, ...RelayNegErrPayload]
|
||||
|
||||
export type RelayNegMsgMessage = [RelayMessageType.NegMsg, ...RelayNegMsgPayload]
|
||||
export type RelayNegMsg = [RelayMessageType.NegMsg, ...RelayNegMsgPayload]
|
||||
|
||||
export type RelayOkMessage = [RelayMessageType.Ok, ...RelayOkPayload]
|
||||
export type RelayOk = [RelayMessageType.Ok, ...RelayOkPayload]
|
||||
|
||||
export type RelayMessage = any[]
|
||||
export const isRelayAuth = (m: RelayMessage): m is RelayAuth => m[0] === RelayMessageType.Auth
|
||||
|
||||
export const isRelayAuthMessage = (m: RelayMessage): m is RelayAuthMessage =>
|
||||
m[0] === RelayMessageType.Auth
|
||||
export const isRelayEose = (m: RelayMessage): m is RelayEose => m[0] === RelayMessageType.Eose
|
||||
|
||||
export const isRelayEoseMessage = (m: RelayMessage): m is RelayEoseMessage =>
|
||||
m[0] === RelayMessageType.Eose
|
||||
export const isRelayEvent = (m: RelayMessage): m is RelayEvent => m[0] === RelayMessageType.Event
|
||||
|
||||
export const isRelayEventMessage = (m: RelayMessage): m is RelayEventMessage =>
|
||||
m[0] === RelayMessageType.Event
|
||||
export const isRelayNegErr = (m: RelayMessage): m is RelayNegErr => m[0] === RelayMessageType.NegErr
|
||||
|
||||
export const isRelayNegErrMessage = (m: RelayMessage): m is RelayNegErrMessage =>
|
||||
m[0] === RelayMessageType.NegErr
|
||||
export const isRelayNegMsg = (m: RelayMessage): m is RelayNegMsg => m[0] === RelayMessageType.NegMsg
|
||||
|
||||
export const isRelayNegMsgMessage = (m: RelayMessage): m is RelayNegMsgMessage =>
|
||||
m[0] === RelayMessageType.NegMsg
|
||||
|
||||
export const isRelayOkMessage = (m: RelayMessage): m is RelayOkMessage =>
|
||||
m[0] === RelayMessageType.Ok
|
||||
export const isRelayOk = (m: RelayMessage): m is RelayOk => m[0] === RelayMessageType.Ok
|
||||
|
||||
// client -> relay
|
||||
|
||||
export type ClientMessage = any[]
|
||||
|
||||
export enum ClientMessageType {
|
||||
Auth = "AUTH",
|
||||
Event = "EVENT",
|
||||
NegClose = "NEG-CLOSE",
|
||||
Req = "REQ",
|
||||
}
|
||||
|
||||
export type ClientMessage = any[]
|
||||
|
||||
export type ClientAuthPayload = []
|
||||
|
||||
export type ClientEventPayload = []
|
||||
|
||||
export type ClientNegClosePayload = []
|
||||
|
||||
export type ClientReqPayload = []
|
||||
|
||||
export type ClientAuth = [ClientMessageType.Req, ...ClientAuthPayload]
|
||||
|
||||
export type ClientEvent = [ClientMessageType.Req, ...ClientEventPayload]
|
||||
|
||||
export type ClientNegClose = [ClientMessageType.Req, ...ClientNegClosePayload]
|
||||
|
||||
export type ClientReq = [ClientMessageType.Req, ...ClientReqPayload]
|
||||
|
||||
export const isClientAuth = (m: ClientMessage): m is ClientAuth => m[0] === ClientMessageType.Auth
|
||||
|
||||
export const isClientEvent = (m: ClientMessage): m is ClientEvent =>
|
||||
m[0] === ClientMessageType.Event
|
||||
|
||||
export const isClientNegClose = (m: ClientMessage): m is ClientNegClose =>
|
||||
m[0] === ClientMessageType.NegClose
|
||||
|
||||
export const isClientReq = (m: ClientMessage): m is ClientReq => m[0] === ClientMessageType.Req
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {EventEmitter} from "events"
|
||||
import {on} from "@welshman/lib"
|
||||
import {SignedEvent} from "@welshman/util"
|
||||
import {RelayMessage, isRelayOkMessage} from "./message.js"
|
||||
import {RelayMessage, isRelayOk} from "./message.js"
|
||||
import {AbstractAdapter, AdapterEventType} from "./adapter.js"
|
||||
import {TypedEmitter} from "./util.js"
|
||||
|
||||
@@ -27,7 +27,7 @@ export class Publish extends (EventEmitter as new () => TypedEmitter<PublishEven
|
||||
adapter,
|
||||
AdapterEventType.Receive,
|
||||
(message: RelayMessage, url: string) => {
|
||||
if (isRelayOkMessage(message)) {
|
||||
if (isRelayOk(message)) {
|
||||
const [_, id, ok, detail] = message
|
||||
|
||||
if (id === event.id) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {EventEmitter} from "events"
|
||||
import {on, randomId} from "@welshman/lib"
|
||||
import {Filter, SignedEvent} from "@welshman/util"
|
||||
import {RelayMessage, isRelayEventMessage, isRelayEoseMessage} from "./message.js"
|
||||
import {RelayMessage, isRelayEvent, isRelayEose} from "./message.js"
|
||||
import {AbstractAdapter, AdapterEventType} from "./adapter.js"
|
||||
import {TypedEmitter} from "./util.js"
|
||||
|
||||
@@ -30,7 +30,7 @@ export class Subscribe extends (EventEmitter as new () => TypedEmitter<Subscribe
|
||||
adapter,
|
||||
AdapterEventType.Receive,
|
||||
(message: RelayMessage, url: string) => {
|
||||
if (isRelayEventMessage(message)) {
|
||||
if (isRelayEvent(message)) {
|
||||
const [_, id, event] = message
|
||||
|
||||
if (id === this._id) {
|
||||
@@ -38,7 +38,7 @@ export class Subscribe extends (EventEmitter as new () => TypedEmitter<Subscribe
|
||||
}
|
||||
}
|
||||
|
||||
if (isRelayEoseMessage(message)) {
|
||||
if (isRelayEose(message)) {
|
||||
const [_, id] = message
|
||||
|
||||
if (id === this._id) {
|
||||
|
||||
Reference in New Issue
Block a user