@takosjp/yurucommu-api 3.4.3 → 3.4.5
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 +170 -40
- package/dist/lib/api/communities.d.ts +2 -0
- package/dist/lib/api/communities.d.ts.map +1 -1
- package/dist/lib/api/fetch.d.ts +6 -1
- package/dist/lib/api/fetch.d.ts.map +1 -1
- package/dist/lib/api/normalize.d.ts +6 -2
- package/dist/lib/api/normalize.d.ts.map +1 -1
- package/dist/lib/api/notifications.d.ts.map +1 -1
- package/dist/lib/rtc-client.d.ts +7 -2
- package/dist/lib/rtc-client.d.ts.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
231
|
-
const
|
|
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,
|
|
@@ -734,7 +765,7 @@ async function fetchUnreadCount() {
|
|
|
734
765
|
return data.count || 0;
|
|
735
766
|
}
|
|
736
767
|
async function markNotificationsRead(ids) {
|
|
737
|
-
const res = await apiPost("/api/notifications/read", { ids });
|
|
768
|
+
const res = await apiPost("/api/notifications/read", ids === undefined ? { read_all: true } : { ids });
|
|
738
769
|
await assertOk(res, "Failed to mark as read");
|
|
739
770
|
}
|
|
740
771
|
async function archiveNotifications(ids) {
|
|
@@ -1359,6 +1390,7 @@ async function reportContent(input) {
|
|
|
1359
1390
|
}
|
|
1360
1391
|
// src/lib/rtc-client.ts
|
|
1361
1392
|
var CANDIDATE_FLUSH_MS = 200;
|
|
1393
|
+
var MAX_PENDING_SOCKET_FRAMES = 64;
|
|
1362
1394
|
|
|
1363
1395
|
class CallClient {
|
|
1364
1396
|
options;
|
|
@@ -1366,6 +1398,8 @@ class CallClient {
|
|
|
1366
1398
|
wantConnected = false;
|
|
1367
1399
|
backoff = 500;
|
|
1368
1400
|
reconnectTimer = null;
|
|
1401
|
+
openingSocket = false;
|
|
1402
|
+
pendingFrames = [];
|
|
1369
1403
|
listeners = new Map;
|
|
1370
1404
|
call = null;
|
|
1371
1405
|
localStream = null;
|
|
@@ -1396,12 +1430,24 @@ class CallClient {
|
|
|
1396
1430
|
getState() {
|
|
1397
1431
|
return this.state;
|
|
1398
1432
|
}
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
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();
|
|
1405
1451
|
}
|
|
1406
1452
|
connect() {
|
|
1407
1453
|
this.wantConnected = true;
|
|
@@ -1414,13 +1460,41 @@ class CallClient {
|
|
|
1414
1460
|
this.reconnectTimer = null;
|
|
1415
1461
|
this.ws?.close();
|
|
1416
1462
|
this.ws = null;
|
|
1463
|
+
this.pendingFrames.length = 0;
|
|
1417
1464
|
}
|
|
1418
1465
|
openSocket() {
|
|
1419
1466
|
if (this.ws && this.ws.readyState <= WebSocket.OPEN)
|
|
1420
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;
|
|
1421
1495
|
let socket;
|
|
1422
1496
|
try {
|
|
1423
|
-
socket = new WebSocket(this.socketUrl());
|
|
1497
|
+
socket = new WebSocket(this.socketUrl(actorApId, ticket));
|
|
1424
1498
|
} catch (err) {
|
|
1425
1499
|
this.emit("error", "socket_open_failed", String(err));
|
|
1426
1500
|
this.scheduleReconnect();
|
|
@@ -1429,9 +1503,17 @@ class CallClient {
|
|
|
1429
1503
|
this.ws = socket;
|
|
1430
1504
|
socket.onopen = () => {
|
|
1431
1505
|
this.backoff = 500;
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
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));
|
|
1435
1517
|
};
|
|
1436
1518
|
socket.onmessage = (ev) => {
|
|
1437
1519
|
this.onFrame(ev.data);
|
|
@@ -1460,16 +1542,22 @@ class CallClient {
|
|
|
1460
1542
|
send(frame) {
|
|
1461
1543
|
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
|
1462
1544
|
this.ws.send(JSON.stringify(frame));
|
|
1545
|
+
return;
|
|
1463
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);
|
|
1464
1554
|
}
|
|
1465
1555
|
async startCall(peer, media) {
|
|
1466
1556
|
if (this.call)
|
|
1467
1557
|
throw new Error("already in a call");
|
|
1468
|
-
const res = await
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
headers: { "Content-Type": "application/json" },
|
|
1472
|
-
body: JSON.stringify({ to: peer, media })
|
|
1558
|
+
const res = await apiPost(this.apiUrl("/api/rtc/calls"), {
|
|
1559
|
+
to: peer,
|
|
1560
|
+
media
|
|
1473
1561
|
});
|
|
1474
1562
|
if (!res.ok) {
|
|
1475
1563
|
const code = res.status === 403 ? "blocked" : "start_failed";
|
|
@@ -1477,12 +1565,14 @@ class CallClient {
|
|
|
1477
1565
|
throw new Error(code);
|
|
1478
1566
|
}
|
|
1479
1567
|
const data = await res.json();
|
|
1480
|
-
|
|
1568
|
+
const call = this.newCall(data.callId, peer, media, "caller", data.iceServers);
|
|
1569
|
+
this.call = call;
|
|
1481
1570
|
this.setState("calling");
|
|
1482
1571
|
this.connect();
|
|
1483
1572
|
this.send({ t: "invite", callId: data.callId, to: peer, media });
|
|
1484
|
-
await this.setupMedia(
|
|
1485
|
-
|
|
1573
|
+
if (!await this.setupMedia(call))
|
|
1574
|
+
return;
|
|
1575
|
+
await this.makeOffer(call);
|
|
1486
1576
|
}
|
|
1487
1577
|
async accept() {
|
|
1488
1578
|
const call = this.call;
|
|
@@ -1490,10 +1580,16 @@ class CallClient {
|
|
|
1490
1580
|
return;
|
|
1491
1581
|
this.setState("connecting");
|
|
1492
1582
|
this.send({ t: "accept", callId: call.callId });
|
|
1493
|
-
await this.setupMedia(call)
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
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;
|
|
1497
1593
|
this.send({ t: "answer", callId: call.callId, sdp: answer.sdp ?? "" });
|
|
1498
1594
|
}
|
|
1499
1595
|
}
|
|
@@ -1639,25 +1735,44 @@ class CallClient {
|
|
|
1639
1735
|
} catch {}
|
|
1640
1736
|
}
|
|
1641
1737
|
}
|
|
1738
|
+
isActiveCall(call) {
|
|
1739
|
+
return this.call === call;
|
|
1740
|
+
}
|
|
1741
|
+
isActivePeer(call, pc) {
|
|
1742
|
+
return this.isActiveCall(call) && call.pc === pc;
|
|
1743
|
+
}
|
|
1642
1744
|
async setupMedia(call) {
|
|
1745
|
+
if (!this.isActiveCall(call))
|
|
1746
|
+
return false;
|
|
1643
1747
|
if (!this.localStream) {
|
|
1748
|
+
let stream;
|
|
1644
1749
|
try {
|
|
1645
|
-
|
|
1750
|
+
stream = await navigator.mediaDevices.getUserMedia({
|
|
1646
1751
|
audio: call.media.audio,
|
|
1647
1752
|
video: call.media.video
|
|
1648
1753
|
});
|
|
1649
1754
|
} catch (err) {
|
|
1755
|
+
if (!this.isActiveCall(call))
|
|
1756
|
+
return false;
|
|
1650
1757
|
this.emit("error", "media_denied", String(err));
|
|
1651
1758
|
this.hangup("media_denied");
|
|
1652
|
-
return;
|
|
1759
|
+
return false;
|
|
1653
1760
|
}
|
|
1761
|
+
if (!this.isActiveCall(call)) {
|
|
1762
|
+
stream.getTracks().forEach((track) => track.stop());
|
|
1763
|
+
return false;
|
|
1764
|
+
}
|
|
1765
|
+
this.localStream = stream;
|
|
1654
1766
|
this.emit("localstream", this.localStream);
|
|
1655
1767
|
}
|
|
1768
|
+
if (!this.isActiveCall(call))
|
|
1769
|
+
return false;
|
|
1656
1770
|
if (!call.pc)
|
|
1657
1771
|
this.buildPeerConnection(call);
|
|
1658
1772
|
for (const track of this.localStream.getTracks()) {
|
|
1659
1773
|
call.pc?.addTrack(track, this.localStream);
|
|
1660
1774
|
}
|
|
1775
|
+
return this.isActiveCall(call);
|
|
1661
1776
|
}
|
|
1662
1777
|
buildPeerConnection(call) {
|
|
1663
1778
|
const pc = new RTCPeerConnection({
|
|
@@ -1668,15 +1783,21 @@ class CallClient {
|
|
|
1668
1783
|
}))
|
|
1669
1784
|
});
|
|
1670
1785
|
pc.onicecandidate = (ev) => {
|
|
1786
|
+
if (!this.isActivePeer(call, pc))
|
|
1787
|
+
return;
|
|
1671
1788
|
if (ev.candidate)
|
|
1672
1789
|
this.bufferCandidate(call, ev.candidate.toJSON());
|
|
1673
1790
|
else
|
|
1674
1791
|
this.flushCandidates(call);
|
|
1675
1792
|
};
|
|
1676
1793
|
pc.ontrack = (ev) => {
|
|
1794
|
+
if (!this.isActivePeer(call, pc))
|
|
1795
|
+
return;
|
|
1677
1796
|
this.emit("remotestream", ev.streams[0] ?? null);
|
|
1678
1797
|
};
|
|
1679
1798
|
pc.onconnectionstatechange = () => {
|
|
1799
|
+
if (!this.isActivePeer(call, pc))
|
|
1800
|
+
return;
|
|
1680
1801
|
if (pc.connectionState === "connected")
|
|
1681
1802
|
this.setState("connected");
|
|
1682
1803
|
else if (pc.connectionState === "failed" || pc.connectionState === "closed") {
|
|
@@ -1686,10 +1807,19 @@ class CallClient {
|
|
|
1686
1807
|
call.pc = pc;
|
|
1687
1808
|
}
|
|
1688
1809
|
async makeOffer(call) {
|
|
1810
|
+
if (!this.isActiveCall(call))
|
|
1811
|
+
return;
|
|
1689
1812
|
if (!call.pc)
|
|
1690
1813
|
this.buildPeerConnection(call);
|
|
1691
|
-
const
|
|
1692
|
-
|
|
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;
|
|
1693
1823
|
this.send({ t: "offer", callId: call.callId, sdp: offer.sdp ?? "" });
|
|
1694
1824
|
}
|
|
1695
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":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAW5D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5C,WAAW,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../../src/lib/api/communities.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api/fetch.d.ts
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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,CAKxD;AAED,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
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"}
|
package/dist/lib/rtc-client.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export interface CallClientEvents {
|
|
|
29
29
|
error: (code: string, message?: string) => void;
|
|
30
30
|
}
|
|
31
31
|
export interface CallClientOptions {
|
|
32
|
-
/**
|
|
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
|
|
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;
|
|
1
|
+
{"version":3,"file":"rtc-client.d.ts","sourceRoot":"","sources":["../../src/lib/rtc-client.ts"],"names":[],"mappings":"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"}
|