@nolag/signal 0.1.0

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.
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @nolag/signal — Public types
3
+ */
4
+ export interface NoLagSignalOptions {
5
+ /** Custom metadata attached to peer presence */
6
+ metadata?: Record<string, unknown>;
7
+ /** NoLag app name (default: 'signal') */
8
+ appName?: string;
9
+ /** WebSocket URL override */
10
+ url?: string;
11
+ /** Enable debug logging (default: false) */
12
+ debug?: boolean;
13
+ /** Auto-reconnect on disconnect (default: true) */
14
+ reconnect?: boolean;
15
+ }
16
+ /** Resolved options with defaults applied */
17
+ export interface ResolvedSignalOptions {
18
+ metadata?: Record<string, unknown>;
19
+ appName: string;
20
+ url?: string;
21
+ debug: boolean;
22
+ reconnect: boolean;
23
+ }
24
+ export type SignalType = 'offer' | 'answer' | 'ice-candidate' | 'renegotiate' | 'bye';
25
+ export interface SignalMessage {
26
+ /** Client-generated unique ID */
27
+ id: string;
28
+ /** Signal type */
29
+ type: SignalType;
30
+ /** Sender's peerId */
31
+ fromPeerId: string;
32
+ /** Recipient's peerId (targeted delivery) */
33
+ toPeerId: string;
34
+ /** Signal payload */
35
+ payload: RTCSessionDescriptionInit | RTCIceCandidateInit | Record<string, unknown>;
36
+ /** Timestamp (ms since epoch) */
37
+ timestamp: number;
38
+ }
39
+ export interface Peer {
40
+ /** Stable client-generated peer ID */
41
+ peerId: string;
42
+ /** NoLag internal actor token ID */
43
+ actorTokenId: string;
44
+ /** WebRTC connection state */
45
+ connectionState: 'new' | 'connecting' | 'connected' | 'disconnected';
46
+ /** Custom metadata */
47
+ metadata?: Record<string, unknown>;
48
+ /** Timestamp when the peer joined */
49
+ joinedAt: number;
50
+ /** Whether this is the local peer */
51
+ isLocal: boolean;
52
+ }
53
+ export interface SignalClientEvents {
54
+ connected: [];
55
+ disconnected: [reason: string];
56
+ reconnected: [];
57
+ error: [error: Error];
58
+ peerOnline: [peer: Peer];
59
+ peerOffline: [peer: Peer];
60
+ }
61
+ export interface SignalRoomEvents {
62
+ signal: [message: SignalMessage];
63
+ peerJoined: [peer: Peer];
64
+ peerLeft: [peer: Peer];
65
+ }
66
+ /** Shape of data stored in NoLag presence for signal peers */
67
+ export interface SignalPresenceData {
68
+ [key: string]: unknown;
69
+ peerId: string;
70
+ metadata?: Record<string, unknown>;
71
+ }
@@ -0,0 +1,2 @@
1
+ export declare function generateId(): string;
2
+ export declare function createLogger(prefix: string, enabled: boolean): (..._args: unknown[]) => void;
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@nolag/signal",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "engines": {
6
+ "node": ">=18.0.0"
7
+ },
8
+ "description": "WebRTC signaling SDK for NoLag — peer discovery, offer/answer/ICE exchange",
9
+ "main": "./dist/index.cjs",
10
+ "module": "./dist/index.mjs",
11
+ "browser": "./dist/browser.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "browser": {
16
+ "types": "./dist/browser.d.ts",
17
+ "default": "./dist/browser.js"
18
+ },
19
+ "import": {
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.mjs"
22
+ },
23
+ "require": {
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.cjs"
26
+ },
27
+ "default": "./dist/index.mjs"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist"
32
+ ],
33
+ "scripts": {
34
+ "build": "rollup -c",
35
+ "dev": "rollup -c -w",
36
+ "test": "vitest run",
37
+ "test:watch": "vitest",
38
+ "typecheck": "tsc --noEmit"
39
+ },
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "git+https://github.com/NoLagApp/blueprints.git",
43
+ "directory": "js/signal"
44
+ },
45
+ "author": "NoLag",
46
+ "license": "MIT",
47
+ "homepage": "https://nolag.app",
48
+ "devDependencies": {
49
+ "@nolag/js-sdk": "^1.2.0"
50
+ },
51
+ "peerDependencies": {
52
+ "@nolag/js-sdk": "^1.2.0"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public"
56
+ }
57
+ }