@takosjp/yurucommu-api 3.4.0 → 3.4.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.
package/dist/index.js CHANGED
@@ -56,26 +56,56 @@ function getYurucommuApiTransport() {
56
56
  // src/lib/api/fetch.ts
57
57
  class ApiError extends Error {
58
58
  status;
59
- constructor(status, message) {
59
+ code;
60
+ retryAfterSeconds;
61
+ constructor(status, message, details = {}) {
60
62
  super(message);
61
63
  this.status = status;
62
64
  this.name = "ApiError";
65
+ this.code = details.code ?? null;
66
+ this.retryAfterSeconds = details.retryAfterSeconds ?? null;
63
67
  }
64
68
  }
65
- async function extractErrorMessage(res, fallback) {
69
+ function parseRetryAfterSeconds(bodyValue, headerValue) {
70
+ const bodySeconds = typeof bodyValue === "number" && Number.isFinite(bodyValue) && bodyValue > 0 ? Math.ceil(bodyValue) : null;
71
+ if (bodySeconds !== null)
72
+ return bodySeconds;
73
+ if (!headerValue)
74
+ return null;
75
+ const numeric = Number(headerValue);
76
+ if (Number.isFinite(numeric) && numeric > 0)
77
+ return Math.ceil(numeric);
78
+ const dateMs = Date.parse(headerValue);
79
+ if (!Number.isFinite(dateMs) || dateMs <= Date.now())
80
+ return null;
81
+ return Math.ceil((dateMs - Date.now()) / 1000);
82
+ }
83
+ async function extractApiErrorDetails(res, fallback) {
66
84
  try {
67
85
  const data = await res.json();
68
86
  const err = data.error;
69
87
  const message = typeof err === "string" ? err : err?.message;
70
- return message || fallback;
88
+ const code = typeof data.code === "string" && data.code.trim().length > 0 ? data.code.trim().slice(0, 100) : null;
89
+ return {
90
+ message: message || fallback,
91
+ code,
92
+ retryAfterSeconds: parseRetryAfterSeconds(data.retry_after, res.headers.get("retry-after"))
93
+ };
71
94
  } catch {
72
- return res.statusText || fallback;
95
+ return {
96
+ message: res.statusText || fallback,
97
+ code: null,
98
+ retryAfterSeconds: parseRetryAfterSeconds(null, res.headers.get("retry-after"))
99
+ };
73
100
  }
74
101
  }
102
+ async function extractErrorMessage(res, fallback) {
103
+ return (await extractApiErrorDetails(res, fallback)).message;
104
+ }
75
105
  async function assertOk(res, fallback) {
76
106
  if (!res.ok) {
77
- const message = await extractErrorMessage(res, fallback);
78
- throw new ApiError(res.status, message);
107
+ const details = await extractApiErrorDetails(res, fallback);
108
+ throw new ApiError(res.status, details.message, details);
79
109
  }
80
110
  }
81
111
  function apiFetch(url, options = {}) {
@@ -215,20 +245,21 @@ function resolveNotificationTarget(notification) {
215
245
  function formatUsernameFromApId(apId, preferred) {
216
246
  try {
217
247
  const url = new URL(apId);
218
- const match = apId.match(/\/(users|groups)\/([^/]+)$/);
219
- if (match)
220
- return `${match[2]}@${url.host}`;
221
248
  if (preferred)
222
249
  return `${preferred}@${url.host}`;
250
+ const match = url.pathname.match(/\/(users|groups)\/([^/]+)\/?$/u);
251
+ if (match)
252
+ return `${match[2]}@${url.host}`;
223
253
  } catch {}
224
254
  return null;
225
255
  }
226
256
  function normalizeActor(actor) {
227
- if (!actor || !actor.ap_id)
228
- return actor;
229
257
  const rawUsername = actor.username?.trim();
230
- const formatted = rawUsername || formatUsernameFromApId(actor.ap_id, actor.preferred_username) || actor.preferred_username || actor.username || actor.ap_id;
231
- const preferred = actor.preferred_username?.trim() || (formatted.includes("@") ? formatted.split("@")[0] : formatted);
258
+ const declaredPreferred = actor.preferred_username?.trim() || null;
259
+ const rawSeparator = rawUsername?.lastIndexOf("@") ?? -1;
260
+ const rebasedRawUsername = declaredPreferred && rawUsername && !rawUsername.includes("://") && rawSeparator > 0 && rawSeparator < rawUsername.length - 1 ? `${declaredPreferred}@${rawUsername.slice(rawSeparator + 1)}` : null;
261
+ const formatted = rebasedRawUsername || (declaredPreferred ? formatUsernameFromApId(actor.ap_id, declaredPreferred) : rawUsername) || formatUsernameFromApId(actor.ap_id) || declaredPreferred || actor.username || actor.ap_id;
262
+ const preferred = declaredPreferred || (formatted.includes("@") ? formatted.split("@")[0] : formatted);
232
263
  return {
233
264
  ...actor,
234
265
  username: formatted,
@@ -460,6 +491,7 @@ async function fetchBookmarks(options) {
460
491
  params.set("before", options.before);
461
492
  const query = params.toString() ? `?${params}` : "";
462
493
  const res = await apiFetch(`/api/bookmarks${query}`);
494
+ await assertOk(res, "Failed to load bookmarks");
463
495
  const data = await res.json();
464
496
  return {
465
497
  posts: (data.posts ?? []).map(normalizePost),
@@ -728,11 +760,12 @@ async function fetchNotifications(options) {
728
760
  }
729
761
  async function fetchUnreadCount() {
730
762
  const res = await apiFetch("/api/notifications/unread/count");
763
+ await assertOk(res, "Failed to load unread notification count");
731
764
  const data = await res.json();
732
765
  return data.count || 0;
733
766
  }
734
767
  async function markNotificationsRead(ids) {
735
- const res = await apiPost("/api/notifications/read", { ids });
768
+ const res = await apiPost("/api/notifications/read", ids === undefined ? { read_all: true } : { ids });
736
769
  await assertOk(res, "Failed to mark as read");
737
770
  }
738
771
  async function archiveNotifications(ids) {
@@ -1357,6 +1390,7 @@ async function reportContent(input) {
1357
1390
  }
1358
1391
  // src/lib/rtc-client.ts
1359
1392
  var CANDIDATE_FLUSH_MS = 200;
1393
+ var MAX_PENDING_SOCKET_FRAMES = 64;
1360
1394
 
1361
1395
  class CallClient {
1362
1396
  options;
@@ -1364,6 +1398,8 @@ class CallClient {
1364
1398
  wantConnected = false;
1365
1399
  backoff = 500;
1366
1400
  reconnectTimer = null;
1401
+ openingSocket = false;
1402
+ pendingFrames = [];
1367
1403
  listeners = new Map;
1368
1404
  call = null;
1369
1405
  localStream = null;
@@ -1394,12 +1430,24 @@ class CallClient {
1394
1430
  getState() {
1395
1431
  return this.state;
1396
1432
  }
1397
- origin() {
1398
- return this.options.origin ?? (typeof location !== "undefined" ? location.origin : "");
1399
- }
1400
- socketUrl() {
1401
- const o = this.origin();
1402
- return `${o.replace(/^http/, "ws")}/api/rtc/socket`;
1433
+ apiUrl(path) {
1434
+ const origin = this.options.origin;
1435
+ return origin ? new URL(path, `${origin}/`).toString() : path;
1436
+ }
1437
+ socketUrl(actorApId, ticket) {
1438
+ const transport = getYurucommuApiTransport();
1439
+ const resolved = transport.resolveUrl(this.apiUrl("/api/rtc/socket"));
1440
+ const base = this.options.origin ?? (typeof location !== "undefined" ? location.origin : "http://localhost");
1441
+ const url = new URL(resolved, base);
1442
+ if (url.protocol === "http:")
1443
+ url.protocol = "ws:";
1444
+ else if (url.protocol === "https:")
1445
+ url.protocol = "wss:";
1446
+ else
1447
+ throw new Error("call socket URL must use HTTP(S)");
1448
+ url.searchParams.set("actor", actorApId);
1449
+ url.searchParams.set("ticket", ticket);
1450
+ return url.toString();
1403
1451
  }
1404
1452
  connect() {
1405
1453
  this.wantConnected = true;
@@ -1412,13 +1460,41 @@ class CallClient {
1412
1460
  this.reconnectTimer = null;
1413
1461
  this.ws?.close();
1414
1462
  this.ws = null;
1463
+ this.pendingFrames.length = 0;
1415
1464
  }
1416
1465
  openSocket() {
1417
1466
  if (this.ws && this.ws.readyState <= WebSocket.OPEN)
1418
1467
  return;
1468
+ if (this.openingSocket)
1469
+ return;
1470
+ this.openingSocket = true;
1471
+ this.openSocketWithTicket().finally(() => {
1472
+ this.openingSocket = false;
1473
+ });
1474
+ }
1475
+ async openSocketWithTicket() {
1476
+ let actorApId;
1477
+ let ticket;
1478
+ try {
1479
+ const response = await apiPost(this.apiUrl("/api/rtc/ticket"));
1480
+ if (!response.ok)
1481
+ throw new Error(`ticket ${response.status}`);
1482
+ const body = await response.json();
1483
+ if (typeof body.actor_ap_id !== "string" || typeof body.ticket !== "string") {
1484
+ throw new Error("bad ticket response");
1485
+ }
1486
+ actorApId = body.actor_ap_id;
1487
+ ticket = body.ticket;
1488
+ } catch (err) {
1489
+ this.emit("error", "socket_ticket_failed", String(err));
1490
+ this.scheduleReconnect();
1491
+ return;
1492
+ }
1493
+ if (!this.wantConnected)
1494
+ return;
1419
1495
  let socket;
1420
1496
  try {
1421
- socket = new WebSocket(this.socketUrl());
1497
+ socket = new WebSocket(this.socketUrl(actorApId, ticket));
1422
1498
  } catch (err) {
1423
1499
  this.emit("error", "socket_open_failed", String(err));
1424
1500
  this.scheduleReconnect();
@@ -1427,9 +1503,17 @@ class CallClient {
1427
1503
  this.ws = socket;
1428
1504
  socket.onopen = () => {
1429
1505
  this.backoff = 500;
1430
- this.send({ t: "hello" });
1431
- if (this.call)
1432
- this.send({ t: "resume", callId: this.call.callId });
1506
+ socket.send(JSON.stringify({ t: "hello" }));
1507
+ const pending = this.pendingFrames.splice(0);
1508
+ const hasInitialInvite = this.call !== null && pending.some((frame) => frame.t === "invite" && frame.callId === this.call?.callId);
1509
+ if (this.call && !hasInitialInvite) {
1510
+ socket.send(JSON.stringify({
1511
+ t: "resume",
1512
+ callId: this.call.callId
1513
+ }));
1514
+ }
1515
+ for (const frame of pending)
1516
+ socket.send(JSON.stringify(frame));
1433
1517
  };
1434
1518
  socket.onmessage = (ev) => {
1435
1519
  this.onFrame(ev.data);
@@ -1458,16 +1542,22 @@ class CallClient {
1458
1542
  send(frame) {
1459
1543
  if (this.ws && this.ws.readyState === WebSocket.OPEN) {
1460
1544
  this.ws.send(JSON.stringify(frame));
1545
+ return;
1461
1546
  }
1547
+ if (!this.wantConnected)
1548
+ return;
1549
+ if (this.pendingFrames.length >= MAX_PENDING_SOCKET_FRAMES) {
1550
+ this.emit("error", "socket_queue_full");
1551
+ return;
1552
+ }
1553
+ this.pendingFrames.push(frame);
1462
1554
  }
1463
1555
  async startCall(peer, media) {
1464
1556
  if (this.call)
1465
1557
  throw new Error("already in a call");
1466
- const res = await fetch(`${this.origin()}/api/rtc/calls`, {
1467
- method: "POST",
1468
- credentials: "include",
1469
- headers: { "Content-Type": "application/json" },
1470
- body: JSON.stringify({ to: peer, media })
1558
+ const res = await apiPost(this.apiUrl("/api/rtc/calls"), {
1559
+ to: peer,
1560
+ media
1471
1561
  });
1472
1562
  if (!res.ok) {
1473
1563
  const code = res.status === 403 ? "blocked" : "start_failed";
@@ -1475,12 +1565,14 @@ class CallClient {
1475
1565
  throw new Error(code);
1476
1566
  }
1477
1567
  const data = await res.json();
1478
- this.call = this.newCall(data.callId, peer, media, "caller", data.iceServers);
1568
+ const call = this.newCall(data.callId, peer, media, "caller", data.iceServers);
1569
+ this.call = call;
1479
1570
  this.setState("calling");
1480
1571
  this.connect();
1481
1572
  this.send({ t: "invite", callId: data.callId, to: peer, media });
1482
- await this.setupMedia(this.call);
1483
- await this.makeOffer(this.call);
1573
+ if (!await this.setupMedia(call))
1574
+ return;
1575
+ await this.makeOffer(call);
1484
1576
  }
1485
1577
  async accept() {
1486
1578
  const call = this.call;
@@ -1488,10 +1580,16 @@ class CallClient {
1488
1580
  return;
1489
1581
  this.setState("connecting");
1490
1582
  this.send({ t: "accept", callId: call.callId });
1491
- await this.setupMedia(call);
1492
- if (call.pc && call.remoteDescriptionSet) {
1493
- const answer = await call.pc.createAnswer();
1494
- await call.pc.setLocalDescription(answer);
1583
+ if (!await this.setupMedia(call))
1584
+ return;
1585
+ const pc = call.pc;
1586
+ if (pc && call.remoteDescriptionSet && this.isActiveCall(call)) {
1587
+ const answer = await pc.createAnswer();
1588
+ if (!this.isActivePeer(call, pc))
1589
+ return;
1590
+ await pc.setLocalDescription(answer);
1591
+ if (!this.isActivePeer(call, pc))
1592
+ return;
1495
1593
  this.send({ t: "answer", callId: call.callId, sdp: answer.sdp ?? "" });
1496
1594
  }
1497
1595
  }
@@ -1637,25 +1735,44 @@ class CallClient {
1637
1735
  } catch {}
1638
1736
  }
1639
1737
  }
1738
+ isActiveCall(call) {
1739
+ return this.call === call;
1740
+ }
1741
+ isActivePeer(call, pc) {
1742
+ return this.isActiveCall(call) && call.pc === pc;
1743
+ }
1640
1744
  async setupMedia(call) {
1745
+ if (!this.isActiveCall(call))
1746
+ return false;
1641
1747
  if (!this.localStream) {
1748
+ let stream;
1642
1749
  try {
1643
- this.localStream = await navigator.mediaDevices.getUserMedia({
1750
+ stream = await navigator.mediaDevices.getUserMedia({
1644
1751
  audio: call.media.audio,
1645
1752
  video: call.media.video
1646
1753
  });
1647
1754
  } catch (err) {
1755
+ if (!this.isActiveCall(call))
1756
+ return false;
1648
1757
  this.emit("error", "media_denied", String(err));
1649
1758
  this.hangup("media_denied");
1650
- return;
1759
+ return false;
1651
1760
  }
1761
+ if (!this.isActiveCall(call)) {
1762
+ stream.getTracks().forEach((track) => track.stop());
1763
+ return false;
1764
+ }
1765
+ this.localStream = stream;
1652
1766
  this.emit("localstream", this.localStream);
1653
1767
  }
1768
+ if (!this.isActiveCall(call))
1769
+ return false;
1654
1770
  if (!call.pc)
1655
1771
  this.buildPeerConnection(call);
1656
1772
  for (const track of this.localStream.getTracks()) {
1657
1773
  call.pc?.addTrack(track, this.localStream);
1658
1774
  }
1775
+ return this.isActiveCall(call);
1659
1776
  }
1660
1777
  buildPeerConnection(call) {
1661
1778
  const pc = new RTCPeerConnection({
@@ -1666,15 +1783,21 @@ class CallClient {
1666
1783
  }))
1667
1784
  });
1668
1785
  pc.onicecandidate = (ev) => {
1786
+ if (!this.isActivePeer(call, pc))
1787
+ return;
1669
1788
  if (ev.candidate)
1670
1789
  this.bufferCandidate(call, ev.candidate.toJSON());
1671
1790
  else
1672
1791
  this.flushCandidates(call);
1673
1792
  };
1674
1793
  pc.ontrack = (ev) => {
1794
+ if (!this.isActivePeer(call, pc))
1795
+ return;
1675
1796
  this.emit("remotestream", ev.streams[0] ?? null);
1676
1797
  };
1677
1798
  pc.onconnectionstatechange = () => {
1799
+ if (!this.isActivePeer(call, pc))
1800
+ return;
1678
1801
  if (pc.connectionState === "connected")
1679
1802
  this.setState("connected");
1680
1803
  else if (pc.connectionState === "failed" || pc.connectionState === "closed") {
@@ -1684,10 +1807,19 @@ class CallClient {
1684
1807
  call.pc = pc;
1685
1808
  }
1686
1809
  async makeOffer(call) {
1810
+ if (!this.isActiveCall(call))
1811
+ return;
1687
1812
  if (!call.pc)
1688
1813
  this.buildPeerConnection(call);
1689
- const offer = await call.pc.createOffer();
1690
- await call.pc.setLocalDescription(offer);
1814
+ const pc = call.pc;
1815
+ if (!pc)
1816
+ return;
1817
+ const offer = await pc.createOffer();
1818
+ if (!this.isActivePeer(call, pc))
1819
+ return;
1820
+ await pc.setLocalDescription(offer);
1821
+ if (!this.isActivePeer(call, pc))
1822
+ return;
1691
1823
  this.send({ t: "offer", callId: call.callId, sdp: offer.sdp ?? "" });
1692
1824
  }
1693
1825
  bufferCandidate(call, cand) {
@@ -25,6 +25,8 @@ export interface CommunityMember {
25
25
  icon_url: string | null;
26
26
  role: "owner" | "moderator" | "member";
27
27
  joined_at: string;
28
+ /** False for Follow-backed federated membership, which has no local role row. */
29
+ can_change_role?: boolean;
28
30
  }
29
31
  export interface CommunityMessage {
30
32
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../../src/lib/api/communities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../../src/lib/api/communities.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,12 @@ import { type FetchWithTimeoutInit } from "../fetch-with-timeout.js";
9
9
  */
10
10
  export declare class ApiError extends Error {
11
11
  readonly status: number;
12
- constructor(status: number, message: string);
12
+ readonly code: string | null;
13
+ readonly retryAfterSeconds: number | null;
14
+ constructor(status: number, message: string, details?: {
15
+ readonly code?: string | null;
16
+ readonly retryAfterSeconds?: number | null;
17
+ });
13
18
  }
14
19
  /**
15
20
  * Read an error message from a failed API response. Attempts to parse JSON
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/api/fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAGlC;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;aAEf,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CASlB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7E;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB;CAAG;AAE/D,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAsBD,eAAO,MAAM,OAAO,QAlBX,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAeyB,CAAC;AAC/C,eAAO,MAAM,MAAM,QAnBV,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAgBuB,CAAC;AAC7C,eAAO,MAAM,QAAQ,QApBZ,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAiB2B,CAAC;AACjD,eAAO,MAAM,SAAS,QArBb,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAkB6B,CAAC"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/lib/api/fetch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAGlC;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;aAKf,MAAM,EAAE,MAAM;IAJhC,SAAgB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAgB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAG/B,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvC;CAWT;AA6DD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7E;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB;CAAG;AAE/D,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAsBD,eAAO,MAAM,OAAO,QAlBX,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAeyB,CAAC;AAC/C,eAAO,MAAM,MAAM,QAnBV,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAgBuB,CAAC;AAC7C,eAAO,MAAM,QAAQ,QApBZ,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAiB2B,CAAC;AACjD,eAAO,MAAM,SAAS,QArBb,MAAM,SACJ,OAAO,YACL,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAkB6B,CAAC"}
@@ -2,9 +2,13 @@ import { ActorStories, ActorNote, Notification, Post, Story } from "../../types/
2
2
  type ActorLike = {
3
3
  ap_id: string;
4
4
  username?: string;
5
- preferred_username?: string;
5
+ preferred_username?: string | null;
6
6
  };
7
- export declare function normalizeActor<T extends ActorLike>(actor: T): T;
7
+ type NormalizedActor<T extends ActorLike> = Omit<T, "username" | "preferred_username"> & {
8
+ username: string;
9
+ preferred_username: string;
10
+ };
11
+ export declare function normalizeActor<T extends ActorLike>(actor: T): NormalizedActor<T>;
8
12
  export declare const normalizePost: (post: Post) => Post;
9
13
  export declare const normalizeStory: (story: Story) => Story;
10
14
  export declare const normalizeActorStories: (stories: ActorStories) => ActorStories;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/lib/api/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,KAAK,EACN,MAAM,sBAAsB,CAAC;AAG9B,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAiBF,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAkB/D;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,IAGzC,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,KAG5C,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,SAAS,YAAY,KAAG,YAI5D,CAAC;AAEH,eAAO,MAAM,kBAAkB,GAAI,MAAM,SAAS,KAAG,SAGnD,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAChC,cAAc,YAAY,KACzB,YAaF,CAAC"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/lib/api/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,KAAK,EACN,MAAM,sBAAsB,CAAC;AAG9B,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CAC9C,CAAC,EACD,UAAU,GAAG,oBAAoB,CAClC,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAiBF,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAChD,KAAK,EAAE,CAAC,GACP,eAAe,CAAC,CAAC,CAAC,CA8BpB;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,IAGzC,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,KAG5C,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,SAAS,YAAY,KAAG,YAI5D,CAAC;AAEH,eAAO,MAAM,kBAAkB,GAAI,MAAM,SAAS,KAAG,SAGnD,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAChC,cAAc,YAAY,KACzB,YAaF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/lib/api/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAI9B,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC;IACV,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAmBD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAIxD;AAED,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK/D;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;CACjC,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAO1C;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE;IACxD,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,oEAAoE;AACpE,wBAAsB,mCAAmC,IAAI,OAAO,CAAC,8BAA8B,CAAC,CAenG"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/lib/api/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAI9B,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC;IACV,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAmBD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAKxD;AAED,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK/D;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;CACjC,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAO1C;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE;IACxD,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,oEAAoE;AACpE,wBAAsB,mCAAmC,IAAI,OAAO,CAAC,8BAA8B,CAAC,CAenG"}
@@ -1 +1 @@
1
- {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../../src/lib/api/posts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAYjD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IAMd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBxB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,WAAW,CAAC,CAiBtB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB;AAKD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAOtD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,aAAa,CAAC,CAezB"}
1
+ {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../../src/lib/api/posts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAYjD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IAMd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBxB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,WAAW,CAAC,CAiBtB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhB;AAKD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAOtD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBzB"}
@@ -29,7 +29,7 @@ export interface CallClientEvents {
29
29
  error: (code: string, message?: string) => void;
30
30
  }
31
31
  export interface CallClientOptions {
32
- /** Origin the app is served from (defaults to the page origin). */
32
+ /** Explicit server-origin override; otherwise the configured API transport owns it. */
33
33
  origin?: string;
34
34
  /** WebSocket reconnect backoff ceiling (ms). */
35
35
  maxBackoffMs?: number;
@@ -40,6 +40,8 @@ export declare class CallClient {
40
40
  private wantConnected;
41
41
  private backoff;
42
42
  private reconnectTimer;
43
+ private openingSocket;
44
+ private readonly pendingFrames;
43
45
  private readonly listeners;
44
46
  private call;
45
47
  private localStream;
@@ -49,11 +51,12 @@ export declare class CallClient {
49
51
  private emit;
50
52
  private setState;
51
53
  getState(): CallUiState;
52
- private origin;
54
+ private apiUrl;
53
55
  private socketUrl;
54
56
  connect(): void;
55
57
  disconnect(): void;
56
58
  private openSocket;
59
+ private openSocketWithTicket;
57
60
  private scheduleReconnect;
58
61
  private send;
59
62
  /** Place an outgoing call. Fetches a callId + ICE, then rings the peer. */
@@ -73,6 +76,8 @@ export declare class CallClient {
73
76
  private onRemoteAnswer;
74
77
  private onRemoteCandidates;
75
78
  private drainRemoteCandidates;
79
+ private isActiveCall;
80
+ private isActivePeer;
76
81
  private setupMedia;
77
82
  private buildPeerConnection;
78
83
  private makeOffer;
@@ -1 +1 @@
1
- {"version":3,"file":"rtc-client.d.ts","sourceRoot":"","sources":["../../src/lib/rtc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,OAAO,CAAC;AAEZ,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAmBD,qBAAa,UAAU;IAUT,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAO;IACtB,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;IAC9E,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,KAAK,CAAuB;gBAEP,OAAO,GAAE,iBAAsB;IAG5D,EAAE,CAAC,CAAC,SAAS,MAAM,gBAAgB,EACjC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,MAAM,IAAI;IAUb,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,QAAQ;IAMhB,QAAQ,IAAI,WAAW;IAKvB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,SAAS;IAKjB,OAAO,IAAI,IAAI;IAKf,UAAU,IAAI,IAAI;IAQlB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,IAAI;IAQZ,2EAA2E;IACrE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BlE,wCAAwC;IAClC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAc7B,yCAAyC;IACzC,MAAM,CAAC,MAAM,SAAa,GAAG,IAAI;IAOjC,wCAAwC;IACxC,MAAM,CAAC,MAAM,SAAW,GAAG,IAAI;IAO/B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAO9B,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAQ1B,OAAO;IAiDrB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,WAAW;YAeL,aAAa;YAsBb,cAAc;YAUd,kBAAkB;YAkBlB,qBAAqB;YAarB,UAAU;IAoBxB,OAAO,CAAC,mBAAmB;YA2Bb,SAAS;IAOvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,QAAQ;CA0BjB"}
1
+ {"version":3,"file":"rtc-client.d.ts","sourceRoot":"","sources":["../../src/lib/rtc-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takosjp/yurucommu-api",
3
- "version": "3.4.0",
3
+ "version": "3.4.4",
4
4
  "description": "Typed client SDK and public API contract for yurucommu-server clients.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",