Initial commit with Advoware proxy

This commit is contained in:
root
2025-10-19 14:57:07 +00:00
commit 273aa8b549
45771 changed files with 5534555 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
export { Stream } from './src/stream';
export { StreamItemSubscription, StreamGroupSubscription, StreamSubscription } from '@motiadev/stream-client';

View File

@@ -0,0 +1,2 @@
export { Stream } from './src/stream';
export { StreamItemSubscription, StreamGroupSubscription, StreamSubscription } from '@motiadev/stream-client';

View File

@@ -0,0 +1,16 @@
import type { SocketAdapter } from '@motiadev/stream-client';
export declare class StreamSocketAdapter implements SocketAdapter {
private address;
private ws;
private onMessageListeners;
private onOpenListeners;
private onCloseListeners;
constructor(address: string);
connect(): void;
send(message: string): void;
onMessage(callback: (message: string) => void): void;
onOpen(callback: () => void): void;
onClose(callback: () => void): void;
close(): void;
isOpen(): boolean;
}

View File

@@ -0,0 +1,35 @@
export class StreamSocketAdapter {
constructor(address) {
this.address = address;
this.onMessageListeners = [];
this.onOpenListeners = [];
this.onCloseListeners = [];
this.ws = new WebSocket(this.address);
}
connect() { }
send(message) {
this.ws.send(message);
}
onMessage(callback) {
const listener = (message) => callback(message.data);
this.ws.addEventListener('message', listener);
this.onMessageListeners.push(listener);
}
onOpen(callback) {
this.ws.addEventListener('open', callback);
this.onOpenListeners.push(callback);
}
onClose(callback) {
this.ws.addEventListener('close', callback);
this.onCloseListeners.push(callback);
}
close() {
this.ws.close();
this.onMessageListeners.forEach((listener) => this.ws.removeEventListener('message', listener));
this.onOpenListeners.forEach((listener) => this.ws.removeEventListener('open', listener));
this.onCloseListeners.forEach((listener) => this.ws.removeEventListener('close', listener));
}
isOpen() {
return this.ws.readyState === WebSocket.OPEN;
}
}

View File

@@ -0,0 +1,4 @@
import { Stream as StreamClient } from '@motiadev/stream-client';
export declare class Stream extends StreamClient {
constructor(address: string);
}

View File

@@ -0,0 +1,7 @@
import { Stream as StreamClient } from '@motiadev/stream-client';
import { StreamSocketAdapter } from './stream-adapter';
export class Stream extends StreamClient {
constructor(address) {
super(() => new StreamSocketAdapter(address));
}
}