@dobuki/hello-worker 1.0.2 → 1.0.4

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,33 @@
1
+ export interface IUser<T extends string = string, P = any> {
2
+ userId: string;
3
+ receive(type: T, payload: P): boolean;
4
+ }
5
+ /**
6
+ * enterRoom connects to the signaling room via WebSocket.
7
+ *
8
+ * Usage:
9
+ * const { exitRoom } = enterRoom({
10
+ * room: "test",
11
+ * host: location.host,
12
+ * onOpen: () => { ... },
13
+ * onClose: () => { ... },
14
+ * onError: () => { ... },
15
+ * onPeerJoined: (user) => { ... },
16
+ * onMessage: (type, payload, fromUser) => { ... },
17
+ * });
18
+ */
19
+ export declare function enterRoom<T extends string, P = any>({ userId, room, host, onOpen, onClose, onError, logLine, onPeerJoined, onPeerLeft, onMessage, }: {
20
+ userId: string;
21
+ room: string;
22
+ host: string;
23
+ onOpen?: () => void;
24
+ onClose?: () => void;
25
+ onError?: () => void;
26
+ logLine?: (direction: string, obj?: any) => void;
27
+ onPeerJoined?: (user: IUser) => void;
28
+ onPeerLeft?: (userId: IUser["userId"]) => void;
29
+ onMessage?: (type: T, payload: P, from: IUser) => void;
30
+ }): {
31
+ exitRoom: () => void;
32
+ };
33
+ //# sourceMappingURL=signal-room.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../../src/browser/impl/signal-room.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EACjD,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,GACZ,EAAE;IACC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1D,GAAG;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,CAqE3B"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * enterRoom connects to the signaling room via WebSocket.
3
+ *
4
+ * Usage:
5
+ * const { exitRoom } = enterRoom({
6
+ * room: "test",
7
+ * host: location.host,
8
+ * onOpen: () => { ... },
9
+ * onClose: () => { ... },
10
+ * onError: () => { ... },
11
+ * onPeerJoined: (user) => { ... },
12
+ * onMessage: (type, payload, fromUser) => { ... },
13
+ * });
14
+ */
15
+ export function enterRoom({ userId, room, host, onOpen, onClose, onError, logLine, onPeerJoined, onPeerLeft, onMessage, }) {
16
+ const wsUrl = "wss://" + host + "/room/" + room + "?userId=" + encodeURIComponent(userId);
17
+ const ws = new WebSocket(wsUrl);
18
+ let exited = false;
19
+ function send(type, toPeerId, payload) {
20
+ if (exited)
21
+ return false;
22
+ const obj = { type, to: toPeerId, payload };
23
+ ws.send(JSON.stringify(obj));
24
+ logLine?.("👤 ➡️ 🖥️", obj);
25
+ return true;
26
+ }
27
+ function onmessage(e) {
28
+ let msg;
29
+ try {
30
+ msg = JSON.parse(e.data);
31
+ }
32
+ catch {
33
+ logLine?.("⚠️ ERROR", { error: "invalid-json" });
34
+ return;
35
+ }
36
+ logLine?.("🖥️ ➡️ 👤", msg);
37
+ // Existing client greets newcomers
38
+ if (msg.type === "peer-joined" && msg.peerId && msg.userId) {
39
+ const { userId, peerId } = msg;
40
+ onPeerJoined?.({
41
+ userId,
42
+ receive: (type, payload) => {
43
+ return send(type, peerId, payload);
44
+ },
45
+ });
46
+ return;
47
+ }
48
+ if (msg.type === "peer-left" && msg.peerId && msg.userId) {
49
+ const { userId } = msg;
50
+ onPeerLeft?.(userId);
51
+ return;
52
+ }
53
+ if (msg.peerId && msg.userId) {
54
+ const { userId, peerId } = msg;
55
+ onMessage?.(msg.type, msg.payload, {
56
+ userId,
57
+ receive: (type, payload) => {
58
+ return send(type, peerId, payload);
59
+ },
60
+ });
61
+ }
62
+ }
63
+ ;
64
+ ws.addEventListener("message", onmessage);
65
+ if (onOpen)
66
+ ws.addEventListener("open", onOpen);
67
+ if (onClose)
68
+ ws.addEventListener("close", onClose);
69
+ if (onError)
70
+ ws.addEventListener("error", onError);
71
+ return {
72
+ exitRoom: () => {
73
+ exited = true;
74
+ ws.close();
75
+ ws.removeEventListener("message", onmessage);
76
+ if (onOpen)
77
+ ws.removeEventListener("open", onOpen);
78
+ if (onClose)
79
+ ws.removeEventListener("close", onClose);
80
+ if (onError)
81
+ ws.removeEventListener("error", onError);
82
+ },
83
+ };
84
+ }
85
+ //# sourceMappingURL=signal-room.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../../src/browser/impl/signal-room.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { joinWebRTCRoom } from "./webrtc-room.js";
2
- export { enterRoom } from "./signal-room.js";
2
+ export { enterRoom } from "./impl/signal-room.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="dom" />
2
2
  /// <reference lib="dom.iterable" />
3
3
  export { joinWebRTCRoom } from "./webrtc-room.js";
4
- export { enterRoom } from "./signal-room.js";
4
+ export { enterRoom } from "./impl/signal-room.js";
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../src/browser/sample.ts"],"names":[],"mappings":"AAyBA,wBAAgB,QAAQ,SAEvB;AAED,wBAAgB,WAAW,eAkC1B;AAED,wBAAgB,UAAU,eAkGzB"}
1
+ {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../src/browser/sample.ts"],"names":[],"mappings":"AAuBA,wBAAgB,QAAQ,SAEvB;AAED,wBAAgB,WAAW,eAmC1B;AAED,wBAAgB,UAAU,eAkGzB"}
package/dist/sample.js CHANGED
@@ -5,7 +5,6 @@ import { joinWebRTCRoom } from "./webrtc-room.js";
5
5
  const statusEl = document.getElementById("status");
6
6
  const logEl = document.getElementById("log");
7
7
  const welcomeEl = document.getElementById("welcome");
8
- const userId = crypto.randomUUID();
9
8
  function ts() {
10
9
  // HH:MM:SS.mmm (local time)
11
10
  const d = new Date();
@@ -22,7 +21,7 @@ export function clearLog() {
22
21
  }
23
22
  export function testWelcome() {
24
23
  const { exitRoom } = enterRoom({
25
- userId,
24
+ userId: crypto.randomUUID(),
26
25
  room: "test",
27
26
  host: location.host,
28
27
  onOpen: () => {
@@ -50,6 +49,7 @@ export function testWelcome() {
50
49
  }
51
50
  },
52
51
  logLine,
52
+ workerUrl: new URL("./signal-room.worker.js", import.meta.url),
53
53
  });
54
54
  return () => {
55
55
  exitRoom();
@@ -96,10 +96,9 @@ export function testWebRTC() {
96
96
  statusEl.textContent = "connecting";
97
97
  logLine("💬", { event: "start-webrtc-test" });
98
98
  const session = joinWebRTCRoom({
99
- userId,
100
99
  logLine,
101
100
  enterRoom,
102
- onMessage: (data, from) => {
101
+ onMessage: (data) => {
103
102
  try {
104
103
  const { x, y } = JSON.parse(String(data));
105
104
  if (typeof x === "number" && typeof y === "number") {
@@ -109,7 +108,8 @@ export function testWebRTC() {
109
108
  catch {
110
109
  // ignore non-json
111
110
  }
112
- }
111
+ },
112
+ // workerUrl: new URL("./signal-room.worker.js", import.meta.url),
113
113
  });
114
114
  session.enter({
115
115
  room: "test",
@@ -1 +1 @@
1
- {"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/browser/sample.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/browser/sample.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,19 @@
1
- export interface IUser<T extends string = string, P = any> {
2
- info: {
3
- peerId: string;
4
- userId: string;
5
- };
6
- receive(type: T, payload: P): boolean;
7
- }
8
- export type EnterRoom<T extends string = string, P = any> = (options: {
1
+ import type { IUser } from "./impl/signal-room.js";
2
+ export declare function enterRoom<T extends string, P = any>({ userId, room, host, onOpen, onClose, onError, onPeerJoined, onPeerLeft, onMessage, logLine, workerUrl, }: {
9
3
  userId: string;
10
4
  room: string;
11
5
  host: string;
12
6
  onOpen?: () => void;
13
7
  onClose?: () => void;
14
8
  onError?: () => void;
15
- logLine?: (direction: string, obj?: any) => void;
16
9
  onPeerJoined?: (user: IUser<T, P>) => void;
17
- onPeerLeft?: (info: IUser["info"]) => void;
10
+ onPeerLeft?: (userId: string) => void;
18
11
  onMessage?: (type: T, payload: P, from: IUser<T, P>) => void;
19
- }) => {
20
- exitRoom: () => void;
21
- };
22
- /**
23
- * enterRoom connects to the signaling room via WebSocket.
24
- *
25
- * Usage:
26
- * const { exitRoom } = enterRoom({
27
- * room: "test",
28
- * host: location.host,
29
- * onOpen: () => { ... },
30
- * onClose: () => { ... },
31
- * onError: () => { ... },
32
- * onPeerJoined: (user) => { ... },
33
- * onMessage: (type, payload, fromUser) => { ... },
34
- * });
35
- */
36
- export declare function enterRoom<T extends string, P = any>({ userId, room, host, onOpen, onClose, onError, logLine, onPeerJoined, onPeerLeft, onMessage, }: {
37
- userId: string;
38
- room: string;
39
- host: string;
40
- onOpen?: () => void;
41
- onClose?: () => void;
42
- onError?: () => void;
43
12
  logLine?: (direction: string, obj?: any) => void;
44
- onPeerJoined?: (user: IUser) => void;
45
- onPeerLeft?: (info: IUser["info"]) => void;
46
- onMessage?: (type: T, payload: P, from: IUser) => void;
13
+ workerUrl?: URL;
47
14
  }): {
48
15
  exitRoom: () => void;
49
16
  };
17
+ export type EnterRoom<T extends string, P> = typeof enterRoom<T, P>;
18
+ export type { IUser };
50
19
  //# sourceMappingURL=signal-room.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG;IACrD,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;CAChE,KAAK;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EACjD,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,GACZ,EAAE;IACC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1D;;EAqEA"}
1
+ {"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAanD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EACnD,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB,GAAG;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,CAqD3B;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpE,YAAY,EAAE,KAAK,EAAE,CAAC"}
@@ -1,84 +1,55 @@
1
- /**
2
- * enterRoom connects to the signaling room via WebSocket.
3
- *
4
- * Usage:
5
- * const { exitRoom } = enterRoom({
6
- * room: "test",
7
- * host: location.host,
8
- * onOpen: () => { ... },
9
- * onClose: () => { ... },
10
- * onError: () => { ... },
11
- * onPeerJoined: (user) => { ... },
12
- * onMessage: (type, payload, fromUser) => { ... },
13
- * });
14
- */
15
- export function enterRoom({ userId, room, host, onOpen, onClose, onError, logLine, onPeerJoined, onPeerLeft, onMessage, }) {
16
- const wsUrl = "wss://" + host + "/room/" + room + "?userId=" + encodeURIComponent(userId);
17
- const ws = new WebSocket(wsUrl);
18
- let exited = false;
19
- function send(type, toPeerId, payload) {
20
- if (exited)
21
- return false;
22
- const obj = { type, to: toPeerId, payload };
23
- ws.send(JSON.stringify(obj));
24
- logLine?.("👤 ➡️ 🖥️", obj);
25
- return true;
1
+ import { enterRoom as baseEnterRoom } from "./impl/signal-room.js";
2
+ export function enterRoom({ userId, room, host, onOpen, onClose, onError, onPeerJoined, onPeerLeft, onMessage, logLine, workerUrl, }) {
3
+ if (!workerUrl) {
4
+ const CDN_WORKER_URL = `https://cdn.jsdelivr.net/npm/@dobuki/hello-worker@${__VERSION__}/dist/signal-room.worker.js`;
5
+ console.warn("Warning: enterRoom called without workerUrl; this may cause issues in some environments. You should pass workerUrl explicitly. Use:", CDN_WORKER_URL);
6
+ return baseEnterRoom({
7
+ userId,
8
+ room,
9
+ host,
10
+ onOpen,
11
+ onClose,
12
+ onError,
13
+ onPeerJoined,
14
+ onPeerLeft,
15
+ onMessage,
16
+ });
26
17
  }
27
- function onmessage(e) {
28
- let msg;
29
- try {
30
- msg = JSON.parse(e.data);
31
- }
32
- catch {
33
- logLine?.("⚠️ ERROR", { error: "invalid-json" });
34
- return;
35
- }
36
- logLine?.("🖥️ ➡️ 👤", msg);
37
- // Existing client greets newcomers
38
- if (msg.type === "peer-joined" && msg.peerId && msg.userId) {
39
- const { userId, peerId } = msg;
40
- onPeerJoined?.({
41
- info: { peerId, userId },
42
- receive: (type, payload) => {
43
- return send(type, peerId, payload);
44
- },
45
- });
46
- return;
47
- }
48
- if (msg.type === "peer-left" && msg.peerId && msg.userId) {
49
- const { userId, peerId } = msg;
50
- onPeerLeft?.({ peerId, userId });
51
- return;
52
- }
53
- if (msg.peerId && msg.userId) {
54
- const { userId, peerId } = msg;
55
- onMessage?.(msg.type, msg.payload, {
56
- info: { peerId, userId },
57
- receive: (type, payload) => {
58
- return send(type, peerId, payload);
59
- },
60
- });
61
- }
18
+ const worker = new Worker(workerUrl, { type: "module" });
19
+ function makeUser(userId) {
20
+ return {
21
+ userId,
22
+ receive: (type, payload) => {
23
+ worker.postMessage({ cmd: "send", toUserId: userId, type, payload });
24
+ return true;
25
+ },
26
+ };
62
27
  }
63
- ;
64
- ws.addEventListener("message", onmessage);
65
- if (onOpen)
66
- ws.addEventListener("open", onOpen);
67
- if (onClose)
68
- ws.addEventListener("close", onClose);
69
- if (onError)
70
- ws.addEventListener("error", onError);
28
+ const onWorkerMessage = (e) => {
29
+ const ev = e.data;
30
+ if (ev.kind === "open")
31
+ onOpen?.();
32
+ else if (ev.kind === "close")
33
+ onClose?.();
34
+ else if (ev.kind === "error")
35
+ onError?.();
36
+ else if (ev.kind === "peer-joined")
37
+ onPeerJoined?.(makeUser(ev.userId));
38
+ else if (ev.kind === "peer-left")
39
+ onPeerLeft?.(ev.userId);
40
+ else if (ev.kind === "message")
41
+ onMessage?.(ev.type, ev.payload, makeUser(ev.fromUserId));
42
+ else if (ev.kind === "log")
43
+ logLine?.(ev.direction, ev.obj);
44
+ };
45
+ worker.addEventListener("message", onWorkerMessage);
46
+ worker.postMessage({ cmd: "enter", userId, room, host });
47
+ window._worker = worker; // for debugging
71
48
  return {
72
49
  exitRoom: () => {
73
- exited = true;
74
- ws.close();
75
- ws.removeEventListener("message", onmessage);
76
- if (onOpen)
77
- ws.removeEventListener("open", onOpen);
78
- if (onClose)
79
- ws.removeEventListener("close", onClose);
80
- if (onError)
81
- ws.removeEventListener("error", onError);
50
+ worker.postMessage({ cmd: "exit" });
51
+ worker.removeEventListener("message", onWorkerMessage);
52
+ worker.terminate();
82
53
  },
83
54
  };
84
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAYnE,MAAM,UAAU,SAAS,CAA4B,EACnD,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,SAAS,GAeV;IACG,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,cAAc,GAAG,qDAAqD,WAAW,6BAA6B,CAAC;QAErH,OAAO,CAAC,IAAI,CAAC,qIAAqI,EAAE,cAAc,CAAC,CAAC;QACpK,OAAO,aAAa,CAAO;YACvB,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,OAAO;YACP,OAAO;YACP,YAAY;YACZ,UAAU;YACV,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEzD,SAAS,QAAQ,CAAC,MAAc;QAC9B,OAAO;YACL,MAAM;YACN,OAAO,EAAE,CAAC,IAAO,EAAE,OAAU,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrE,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,CAAsC,EAAE,EAAE;QACjE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAElB,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,EAAE,EAAE,CAAC;aAC9B,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,EAAE,CAAC;aACrC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,EAAE,CAAC;aACrC,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa;YAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;aACnE,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW;YAAE,UAAU,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;aACrD,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;aACrF,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEpD,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAc,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,gBAAgB;IAElD,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signal-room.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-room.worker.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ /// <reference lib="webworker" />
2
+ import { enterRoom } from "./impl/signal-room.js";
3
+ let exitRoom = null;
4
+ // Map from userId -> a function to send to that peer (comes from IUser.receive)
5
+ const peerSend = new Map();
6
+ function emit(ev) {
7
+ self.postMessage(ev);
8
+ }
9
+ self.addEventListener("message", (e) => {
10
+ const msg = e.data;
11
+ console.debug("[signal-room.worker] received command", msg);
12
+ if (msg.cmd === "enter") {
13
+ // If re-entering, clean up first
14
+ exitRoom?.();
15
+ exitRoom = null;
16
+ peerSend.clear();
17
+ const result = enterRoom({
18
+ userId: msg.userId,
19
+ room: msg.room,
20
+ host: msg.host,
21
+ onOpen: () => emit({ kind: "open" }),
22
+ onClose: () => emit({ kind: "close" }),
23
+ onError: () => emit({ kind: "error" }),
24
+ logLine: (direction, obj) => {
25
+ console.debug(`[signal-room.worker] ${direction}`, obj);
26
+ emit({ kind: "log", direction, obj });
27
+ },
28
+ onPeerJoined: (user) => {
29
+ // Save the ability to send to this peer
30
+ peerSend.set(user.userId, (type, payload) => user.receive(type, payload));
31
+ emit({ kind: "peer-joined", userId: user.userId });
32
+ },
33
+ onPeerLeft: (userId) => {
34
+ peerSend.delete(userId);
35
+ emit({ kind: "peer-left", userId });
36
+ },
37
+ onMessage: (type, payload, from) => {
38
+ // We can also learn peerSend via onMessage in case join events vary
39
+ peerSend.set(from.userId, (t, p) => from.receive(t, p));
40
+ emit({ kind: "message", type, payload, fromUserId: from.userId });
41
+ },
42
+ });
43
+ exitRoom = result.exitRoom;
44
+ return;
45
+ }
46
+ if (msg.cmd === "send") {
47
+ const sendFn = peerSend.get(msg.toUserId);
48
+ if (sendFn)
49
+ sendFn(msg.type, msg.payload);
50
+ return;
51
+ }
52
+ if (msg.cmd === "exit") {
53
+ exitRoom?.();
54
+ exitRoom = null;
55
+ peerSend.clear();
56
+ return;
57
+ }
58
+ });
59
+ //# sourceMappingURL=signal-room.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-room.worker.js","sourceRoot":"","sources":["../src/browser/signal-room.worker.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  import { EnterRoom } from "./signal-room";
2
2
  type SigType = "offer" | "answer" | "ice";
3
3
  type SigPayload = RTCSessionDescriptionInit | RTCIceCandidateInit;
4
- export declare function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }: {
5
- userId: string;
6
- onMessage?: (data: any, from: {
7
- userId: string;
8
- peerId: string;
9
- }) => void;
10
- logLine: (direction: string, obj?: any) => void;
11
- enterRoom: EnterRoom<SigType, SigPayload>;
4
+ export declare function joinWebRTCRoom({ onMessage, logLine, enterRoom, workerUrl, }: {
5
+ onMessage?: (data: any, from: string) => void;
6
+ logLine?: (direction: string, obj?: any) => void;
7
+ enterRoom?: EnterRoom<SigType, SigPayload>;
8
+ workerUrl?: URL;
12
9
  }): {
10
+ userId: `${string}-${string}-${string}-${string}-${string}`;
13
11
  sendToUser: (userId: string, data: string) => void;
14
12
  sendToAll: (data: string) => void;
15
13
  end: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"webrtc-room.d.ts","sourceRoot":"","sources":["../src/browser/webrtc-room.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,eAAe,CAAC;AAEjD,KAAK,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAC1C,KAAK,UAAU,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AAelE,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;CAC3C;yBAqL6B,MAAM,QAAQ,MAAM;sBAMvB,MAAM;;4BAxGA;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;2BAyFhC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;EAsC9D"}
1
+ {"version":3,"file":"webrtc-room.d.ts","sourceRoot":"","sources":["../src/browser/webrtc-room.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAC;AAE5D,KAAK,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAC1C,KAAK,UAAU,GAAG,yBAAyB,GAAG,mBAAmB,CAAC;AAiBlE,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,OAAuB,EACvB,SAA8B,EAC9B,SAAS,GACV,EAAE;IACD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;;yBAsL6B,MAAM,QAAQ,MAAM;sBAMvB,MAAM;;4BAxGA;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;2BAyFhC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;KAAE;EAuC9D"}
@@ -1,4 +1,7 @@
1
- export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
1
+ import { enterRoom } from "./signal-room";
2
+ const DEFAULT_ENTER_ROOM = enterRoom;
3
+ export function joinWebRTCRoom({ onMessage, logLine = console.debug, enterRoom = DEFAULT_ENTER_ROOM, workerUrl, }) {
4
+ const userId = crypto.randomUUID();
2
5
  const rtcConfig = {
3
6
  iceServers: [{ urls: "stun:stun.l.google.com:19302" }],
4
7
  };
@@ -9,7 +12,7 @@ export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
9
12
  return;
10
13
  dc.onopen = () => logLine("💬", { event: "dc-open", userId: state.userId });
11
14
  dc.onmessage = (e) => {
12
- onMessage?.(e.data, { userId: state.userId, peerId: state.userId });
15
+ onMessage?.(e.data, state.userId);
13
16
  logLine("💬", { event: "dc-message", userId: state.userId, data: e.data });
14
17
  };
15
18
  dc.onclose = () => logLine("💬", { event: "dc-close", userId: state.userId });
@@ -30,16 +33,16 @@ export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
30
33
  }
31
34
  }
32
35
  function getPeer(user) {
33
- let state = peers.get(user.info.userId);
36
+ let state = peers.get(user.userId);
34
37
  if (!state) {
35
38
  const newState = {
36
- userId: user.info.userId,
39
+ userId: user.userId,
37
40
  pc: new RTCPeerConnection(rtcConfig),
38
41
  pendingRemoteIce: [],
39
42
  users: new Set([user]),
40
43
  dataChannel: null,
41
44
  };
42
- peers.set(user.info.userId, newState);
45
+ peers.set(user.userId, newState);
43
46
  // Send local ICE candidates to this peer
44
47
  newState.pc.onicecandidate = (ev) => {
45
48
  if (!ev.candidate)
@@ -89,6 +92,7 @@ export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
89
92
  room,
90
93
  host,
91
94
  logLine,
95
+ workerUrl,
92
96
  // Existing peers initiate to the newcomer (Option 1)
93
97
  onPeerJoined: async (user) => {
94
98
  const state = getPeer(user);
@@ -103,17 +107,16 @@ export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
103
107
  await pc.setLocalDescription(offer);
104
108
  user.receive("offer", pc.localDescription);
105
109
  },
106
- onPeerLeft: (info) => {
107
- const state = peers.get(info.userId);
110
+ onPeerLeft: (userId) => {
111
+ const state = peers.get(userId);
108
112
  if (!state)
109
113
  return;
110
114
  for (const user of state.users) {
111
- if (user.info.userId === info.userId) {
115
+ if (user.userId === userId) {
112
116
  state.users.delete(user);
113
117
  break;
114
118
  }
115
119
  }
116
- logLine("👤 LEFT", info);
117
120
  if (state.users.size === 0) {
118
121
  try {
119
122
  state.dataChannel?.close();
@@ -123,7 +126,7 @@ export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
123
126
  state.pc.close();
124
127
  }
125
128
  catch { }
126
- leaveUser(info.userId);
129
+ leaveUser(userId);
127
130
  }
128
131
  },
129
132
  onMessage: async (type, payload, from) => {
@@ -187,6 +190,7 @@ export function joinWebRTCRoom({ userId, onMessage, logLine, enterRoom, }) {
187
190
  }
188
191
  }
189
192
  return {
193
+ userId,
190
194
  sendToUser,
191
195
  sendToAll,
192
196
  end: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"webrtc-room.js","sourceRoot":"","sources":["../src/browser/webrtc-room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webrtc-room.js","sourceRoot":"","sources":["../src/browser/webrtc-room.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dobuki/hello-worker",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -16,8 +16,9 @@
16
16
  "scripts": {
17
17
  "dev": "wrangler dev src/index.ts --config wrangler.dev.toml",
18
18
  "deploy": "wrangler deploy",
19
- "build": "bun i && bun build src/browser/*.ts --target browser --outdir public --minify --sourcemap && tsc -p tsconfig.json",
20
- "prepublishOnly": "npm run build"
19
+ "build": "bun i && bun build src/browser/sample.ts src/browser/signal-room.worker.ts --target browser --outdir public --minify --sourcemap --format esm --define __VERSION__:'\"'$npm_package_version'\"' && tsc -p tsconfig.json",
20
+ "prepublishOnly": "npm run build",
21
+ "npm-patch": "npm version patch && npm publish"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@cloudflare/workers-types": "latest",