@flitt/api 1.2.0 → 1.3.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,335 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlittEventStream = void 0;
4
+ exports.eventsUrl = eventsUrl;
5
+ exports.resolveWebSocket = resolveWebSocket;
6
+ const errors_js_1 = require("./errors.js");
7
+ const PATH = "/v1/public-api/events";
8
+ const PING_EVERY_MS = 30_000;
9
+ const IDLE_TIMEOUT_MS = 75_000;
10
+ const OPEN_TIMEOUT_MS = 20_000;
11
+ const FATAL = {
12
+ 4001: { status: 401, code: "UNAUTHORIZED", message: "Invalid, revoked or expired credentials" },
13
+ 4002: { status: 400, code: "BAD_REQUEST", message: "Invalid subscription (servers, events or resume)" },
14
+ 4003: { status: 403, code: "FORBIDDEN", message: "Your plan or your account does not allow real-time events" },
15
+ 4004: { status: 404, code: "NOT_FOUND", message: "No accessible server or event for this subscription" },
16
+ };
17
+ const STREAM_ID = /^\d{1,15}-\d{1,10}$/;
18
+ function compareIds(a, b) {
19
+ const [am, as] = a.split("-");
20
+ const [bm, bs] = b.split("-");
21
+ const dm = Number(am) - Number(bm);
22
+ return dm !== 0 ? dm : Number(as) - Number(bs);
23
+ }
24
+ function safeClose(ws, code, reason) {
25
+ try {
26
+ ws.close(code, reason);
27
+ }
28
+ catch {
29
+ return;
30
+ }
31
+ }
32
+ function eventsUrl(baseUrl) {
33
+ return baseUrl.replace(/^http/, "ws") + PATH;
34
+ }
35
+ function resolveWebSocket(custom) {
36
+ if (custom)
37
+ return custom;
38
+ const ws = globalThis.WebSocket;
39
+ if (typeof ws !== "function") {
40
+ throw new errors_js_1.FlittConfigError("No global WebSocket in this runtime: use Node.js 22+, or pass { WebSocket } from the \"ws\" package (npm i ws).");
41
+ }
42
+ return ws;
43
+ }
44
+ class FlittEventStream {
45
+ #token;
46
+ #url;
47
+ #WebSocket;
48
+ #servers;
49
+ #events;
50
+ #resume;
51
+ #maxDelay;
52
+ #bufferSize;
53
+ #lastIds = new Map();
54
+ #listeners = new Map();
55
+ #iterators = new Set();
56
+ #ws = null;
57
+ #ready = false;
58
+ #closed = false;
59
+ #fatal = null;
60
+ #attempt = 0;
61
+ #lastRx = 0;
62
+ #openedAt = 0;
63
+ #retry = null;
64
+ #timer = null;
65
+ #onAbort = null;
66
+ #signal;
67
+ constructor(token, baseUrl, options = {}) {
68
+ this.#token = token;
69
+ this.#url = eventsUrl(baseUrl);
70
+ this.#WebSocket = resolveWebSocket(options.WebSocket);
71
+ this.#servers = options.servers?.length ? [...new Set(options.servers.map((s) => String(s).trim().toLowerCase()))] : undefined;
72
+ this.#events = options.events?.length ? [...new Set(options.events)] : undefined;
73
+ this.#resume = options.resume !== false;
74
+ this.#maxDelay = Math.max(1000, Math.min(300_000, options.maxReconnectDelayMs ?? 30_000));
75
+ this.#bufferSize = Math.max(1, Math.min(100_000, options.bufferSize ?? 1000));
76
+ for (const [serverId, id] of Object.entries(options.lastEventIds ?? {})) {
77
+ if (STREAM_ID.test(id))
78
+ this.#lastIds.set(serverId, id);
79
+ }
80
+ if (this.#servers && this.#servers.length > 200)
81
+ throw new errors_js_1.FlittConfigError("servers: 200 at most per stream.");
82
+ this.#signal = options.signal;
83
+ if (this.#signal?.aborted) {
84
+ this.#closed = true;
85
+ return;
86
+ }
87
+ if (this.#signal) {
88
+ this.#onAbort = () => this.close();
89
+ this.#signal.addEventListener("abort", this.#onAbort, { once: true });
90
+ }
91
+ this.#timer = setInterval(() => this.#watchdog(), 5_000);
92
+ this.#connect();
93
+ }
94
+ get connected() {
95
+ return this.#ready;
96
+ }
97
+ get closed() {
98
+ return this.#closed;
99
+ }
100
+ get lastEventIds() {
101
+ return Object.fromEntries(this.#lastIds);
102
+ }
103
+ on(type, listener) {
104
+ let set = this.#listeners.get(type);
105
+ if (!set) {
106
+ set = new Set();
107
+ this.#listeners.set(type, set);
108
+ }
109
+ set.add(listener);
110
+ return this;
111
+ }
112
+ off(type, listener) {
113
+ this.#listeners.get(type)?.delete(listener);
114
+ return this;
115
+ }
116
+ once(type, listener) {
117
+ const wrapped = (payload) => {
118
+ this.off(type, wrapped);
119
+ listener(payload);
120
+ };
121
+ return this.on(type, wrapped);
122
+ }
123
+ close() {
124
+ if (this.#closed)
125
+ return;
126
+ this.#closed = true;
127
+ this.#shutdown(1000, "closed by client");
128
+ }
129
+ async *[Symbol.asyncIterator]() {
130
+ const it = { queue: [], wake: null };
131
+ this.#iterators.add(it);
132
+ try {
133
+ while (true) {
134
+ if (it.queue.length > 0) {
135
+ yield it.queue.shift();
136
+ continue;
137
+ }
138
+ if (this.#fatal)
139
+ throw this.#fatal;
140
+ if (this.#closed)
141
+ return;
142
+ await new Promise((resolve) => (it.wake = resolve));
143
+ it.wake = null;
144
+ }
145
+ }
146
+ finally {
147
+ this.#iterators.delete(it);
148
+ }
149
+ }
150
+ toJSON() {
151
+ return { stream: "FlittEventStream", connected: this.#ready, credentials: "[redacted]" };
152
+ }
153
+ #emit(type, payload) {
154
+ const set = this.#listeners.get(type);
155
+ if (!set)
156
+ return;
157
+ for (const fn of [...set]) {
158
+ try {
159
+ fn(payload);
160
+ }
161
+ catch {
162
+ continue;
163
+ }
164
+ }
165
+ }
166
+ #wakeIterators() {
167
+ for (const it of this.#iterators)
168
+ it.wake?.();
169
+ }
170
+ #connect() {
171
+ if (this.#closed)
172
+ return;
173
+ this.#retry = null;
174
+ this.#ready = false;
175
+ this.#openedAt = Date.now();
176
+ let ws;
177
+ try {
178
+ ws = new this.#WebSocket(this.#url);
179
+ }
180
+ catch (err) {
181
+ this.#scheduleReconnect(1006, err);
182
+ return;
183
+ }
184
+ this.#ws = ws;
185
+ ws.addEventListener("open", () => {
186
+ if (this.#ws !== ws)
187
+ return;
188
+ this.#lastRx = Date.now();
189
+ const hello = { op: "hello", token: this.#token };
190
+ if (this.#servers)
191
+ hello.servers = this.#servers;
192
+ if (this.#events)
193
+ hello.events = this.#events;
194
+ if (this.#resume && this.#lastIds.size > 0)
195
+ hello.resume = Object.fromEntries(this.#lastIds);
196
+ try {
197
+ ws.send(JSON.stringify(hello));
198
+ }
199
+ catch {
200
+ return;
201
+ }
202
+ });
203
+ ws.addEventListener("message", (ev) => {
204
+ if (this.#ws !== ws)
205
+ return;
206
+ this.#lastRx = Date.now();
207
+ if (typeof ev.data === "string")
208
+ this.#onFrame(ev.data);
209
+ });
210
+ ws.addEventListener("close", (ev) => {
211
+ if (this.#ws !== ws)
212
+ return;
213
+ this.#onClose(Number(ev?.code ?? 1006), String(ev?.reason ?? ""));
214
+ });
215
+ ws.addEventListener("error", () => undefined);
216
+ }
217
+ #onFrame(text) {
218
+ let msg;
219
+ try {
220
+ msg = JSON.parse(text);
221
+ }
222
+ catch {
223
+ return;
224
+ }
225
+ if (!msg || typeof msg !== "object")
226
+ return;
227
+ if (msg.op === "event") {
228
+ const serverId = String(msg.server?.id ?? "");
229
+ const id = String(msg.id ?? "");
230
+ if (!serverId || !STREAM_ID.test(id))
231
+ return;
232
+ const last = this.#lastIds.get(serverId);
233
+ if (last && compareIds(id, last) <= 0)
234
+ return;
235
+ this.#lastIds.set(serverId, id);
236
+ const event = {
237
+ id,
238
+ replay: msg.replay === true,
239
+ event: msg.event,
240
+ timestamp: msg.timestamp,
241
+ server: { id: serverId, name: msg.server?.name ?? null },
242
+ data: msg.data ?? null,
243
+ };
244
+ for (const it of this.#iterators) {
245
+ it.queue.push(event);
246
+ if (it.queue.length > this.#bufferSize)
247
+ it.queue.shift();
248
+ }
249
+ this.#wakeIterators();
250
+ this.#emit("event", event);
251
+ this.#emit(event.event, event);
252
+ }
253
+ else if (msg.op === "ready") {
254
+ this.#ready = true;
255
+ this.#attempt = 0;
256
+ this.#emit("ready", { servers: Array.isArray(msg.servers) ? msg.servers : [], events: Array.isArray(msg.events) ? msg.events : [] });
257
+ }
258
+ else if (msg.op === "gap" && typeof msg.serverId === "string") {
259
+ this.#emit("gap", { serverId: msg.serverId });
260
+ }
261
+ }
262
+ #onClose(code, reason) {
263
+ this.#ws = null;
264
+ this.#ready = false;
265
+ if (this.#closed)
266
+ return;
267
+ const fatal = FATAL[code];
268
+ if (fatal) {
269
+ this.#fatal = (0, errors_js_1.apiErrorFor)({ ...fatal, method: "GET", path: PATH });
270
+ this.#emit("error", this.#fatal);
271
+ this.#closed = true;
272
+ this.#shutdown(code, reason || fatal.message);
273
+ return;
274
+ }
275
+ this.#scheduleReconnect(code);
276
+ }
277
+ #scheduleReconnect(code, cause) {
278
+ if (this.#closed || this.#retry)
279
+ return;
280
+ this.#attempt += 1;
281
+ const base = code === 1012 || code === 1001 ? 500 : code === 4029 ? 30_000 : Math.min(this.#maxDelay, 1000 * 2 ** Math.min(this.#attempt - 1, 8));
282
+ const delayMs = Math.min(this.#maxDelay, Math.round(base * (1 + Math.random() * 0.3)));
283
+ if (cause !== undefined)
284
+ this.#emit("error", new errors_js_1.FlittConnectionError("Event stream connection failed", { cause }));
285
+ this.#emit("reconnecting", { attempt: this.#attempt, delayMs, code });
286
+ this.#retry = setTimeout(() => this.#connect(), delayMs);
287
+ }
288
+ #watchdog() {
289
+ const ws = this.#ws;
290
+ if (!ws || this.#closed)
291
+ return;
292
+ const now = Date.now();
293
+ if (!this.#ready) {
294
+ if (now - this.#openedAt > OPEN_TIMEOUT_MS)
295
+ this.#drop(ws);
296
+ return;
297
+ }
298
+ if (now - this.#lastRx > IDLE_TIMEOUT_MS)
299
+ return this.#drop(ws);
300
+ if (now - this.#lastRx > PING_EVERY_MS) {
301
+ try {
302
+ ws.send('{"op":"ping"}');
303
+ }
304
+ catch {
305
+ this.#drop(ws);
306
+ }
307
+ }
308
+ }
309
+ #drop(ws) {
310
+ this.#ws = null;
311
+ safeClose(ws, 4000, "timeout");
312
+ this.#ready = false;
313
+ this.#scheduleReconnect(1006);
314
+ }
315
+ #shutdown(code, reason) {
316
+ if (this.#retry)
317
+ clearTimeout(this.#retry);
318
+ this.#retry = null;
319
+ if (this.#timer)
320
+ clearInterval(this.#timer);
321
+ this.#timer = null;
322
+ if (this.#onAbort)
323
+ this.#signal?.removeEventListener("abort", this.#onAbort);
324
+ this.#onAbort = null;
325
+ const ws = this.#ws;
326
+ this.#ws = null;
327
+ this.#ready = false;
328
+ if (ws)
329
+ safeClose(ws, 1000, "closed by client");
330
+ this.#wakeIterators();
331
+ this.#emit("close", { code, reason });
332
+ }
333
+ }
334
+ exports.FlittEventStream = FlittEventStream;
335
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@
5
5
  export { Flitt, FlittVotes, DEFAULT_BASE_URL } from "./client.js";
6
6
  export type { ClientOptions, FlittOptions, FlittVotesOptions } from "./client.js";
7
7
  export type { FetchLike, RequestOptions } from "./http.js";
8
+ export { FlittEventStream } from "./events.js";
9
+ export type { FlittEvent, EventStreamOptions, EventStreamReady, EventStreamReconnect, EventStreamGap, EventStreamClose, WebSocketConstructor, WebSocketLike, } from "./events.js";
8
10
  export { verifyWebhook, FlittWebhookError } from "./webhooks.js";
9
11
  export type { VerifyWebhookOptions, HeaderSource } from "./webhooks.js";
10
12
  export { FlittError, FlittConfigError, FlittConnectionError, FlittTimeoutError, FlittAbortError, FlittAPIError, FlittValidationError, FlittAuthenticationError, FlittPermissionError, FlittNotFoundError, FlittConflictError, FlittRateLimitError, FlittServerError, } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,mBAAmB,YAAY,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VERSION = exports.FlittServerError = exports.FlittRateLimitError = exports.FlittConflictError = exports.FlittNotFoundError = exports.FlittPermissionError = exports.FlittAuthenticationError = exports.FlittValidationError = exports.FlittAPIError = exports.FlittAbortError = exports.FlittTimeoutError = exports.FlittConnectionError = exports.FlittConfigError = exports.FlittError = exports.FlittWebhookError = exports.verifyWebhook = exports.DEFAULT_BASE_URL = exports.FlittVotes = exports.Flitt = void 0;
3
+ exports.VERSION = exports.FlittServerError = exports.FlittRateLimitError = exports.FlittConflictError = exports.FlittNotFoundError = exports.FlittPermissionError = exports.FlittAuthenticationError = exports.FlittValidationError = exports.FlittAPIError = exports.FlittAbortError = exports.FlittTimeoutError = exports.FlittConnectionError = exports.FlittConfigError = exports.FlittError = exports.FlittWebhookError = exports.verifyWebhook = exports.FlittEventStream = exports.DEFAULT_BASE_URL = exports.FlittVotes = exports.Flitt = void 0;
4
4
  /**
5
5
  * @flitt/api — official client of the Flitt Public API (votes included).
6
6
  * https://flitt.me/docs/public-api
@@ -9,6 +9,8 @@ var client_js_1 = require("./client.js");
9
9
  Object.defineProperty(exports, "Flitt", { enumerable: true, get: function () { return client_js_1.Flitt; } });
10
10
  Object.defineProperty(exports, "FlittVotes", { enumerable: true, get: function () { return client_js_1.FlittVotes; } });
11
11
  Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return client_js_1.DEFAULT_BASE_URL; } });
12
+ var events_js_1 = require("./events.js");
13
+ Object.defineProperty(exports, "FlittEventStream", { enumerable: true, get: function () { return events_js_1.FlittEventStream; } });
12
14
  var webhooks_js_1 = require("./webhooks.js");
13
15
  Object.defineProperty(exports, "verifyWebhook", { enumerable: true, get: function () { return webhooks_js_1.verifyWebhook; } });
14
16
  Object.defineProperty(exports, "FlittWebhookError", { enumerable: true, get: function () { return webhooks_js_1.FlittWebhookError; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,yCAAkE;AAAzD,kGAAA,KAAK,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAG5C,6CAAiE;AAAxD,4GAAA,aAAa,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEzC,yCAcqB;AAbnB,uGAAA,UAAU,OAAA;AACV,6GAAA,gBAAgB,OAAA;AAChB,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AACjB,4GAAA,eAAe,OAAA;AACf,0GAAA,aAAa,OAAA;AACb,iHAAA,oBAAoB,OAAA;AACpB,qHAAA,wBAAwB,OAAA;AACxB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAClB,gHAAA,mBAAmB,OAAA;AACnB,6GAAA,gBAAgB,OAAA;AAElB,2CAAuC;AAA9B,qGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,yCAAkE;AAAzD,kGAAA,KAAK,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAG5C,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAWzB,6CAAiE;AAAxD,4GAAA,aAAa,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAEzC,yCAcqB;AAbnB,uGAAA,UAAU,OAAA;AACV,6GAAA,gBAAgB,OAAA;AAChB,iHAAA,oBAAoB,OAAA;AACpB,8GAAA,iBAAiB,OAAA;AACjB,4GAAA,eAAe,OAAA;AACf,0GAAA,aAAa,OAAA;AACb,iHAAA,oBAAoB,OAAA;AACpB,qHAAA,wBAAwB,OAAA;AACxB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAClB,gHAAA,mBAAmB,OAAA;AACnB,6GAAA,gBAAgB,OAAA;AAElB,2CAAuC;AAA9B,qGAAA,OAAO,OAAA"}
@@ -1,3 +1,3 @@
1
1
  /** Package version, kept in sync with package.json by scripts/sync-version.mjs. */
2
- export declare const VERSION = "1.2.0";
2
+ export declare const VERSION = "1.3.0";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  /** Package version, kept in sync with package.json by scripts/sync-version.mjs. */
5
- exports.VERSION = "1.2.0";
5
+ exports.VERSION = "1.3.0";
6
6
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,5 @@
1
1
  import { Transport, type FetchLike, type RequestOptions } from "./http.js";
2
+ import { FlittEventStream, type EventStreamOptions } from "./events.js";
2
3
  import type { AccountLink, CommandInput, CommandResult, DiscordModule, FirewallBlock, FirewallRuleBulkDelete, FirewallRuleCreateResult, FirewallRuleInput, FirewallRuleList, FirewallRuleQuery, FirewallSettings, FirewallSettingsUpdate, GroupList, LinkCode, PageParams, Player, PlayerList, PlayerStatusFilter, RateLimit, Review, ReviewList, ReviewListParams, Server, ServerList, ServerSummary, TopVoters, TopVotersPeriod, Usage, VoteCheck, VoteClaim, VoteIdentity, VoteList, VoteListItem, VoteListParams, VoteServer, VoteStats, VoteSummary } from "./types.js";
3
4
  export declare const DEFAULT_BASE_URL = "https://api.flitt.me";
4
5
  export type ClientOptions = {
@@ -66,6 +67,7 @@ export declare class Flitt {
66
67
  readonly votes: VotesResource;
67
68
  /** Published reviews. Account key or server token. */
68
69
  readonly reviews: ReviewsResource;
70
+ readonly events: EventsResource;
69
71
  constructor(options?: FlittOptions);
70
72
  /** Quota state from the last response (`null` before the first request). */
71
73
  get rateLimit(): RateLimit | null;
@@ -76,6 +78,16 @@ export declare class Flitt {
76
78
  };
77
79
  [INSPECT](): string;
78
80
  }
81
+ declare class EventsResource {
82
+ #private;
83
+ constructor(token: string, baseUrl: string, allowBrowser: boolean);
84
+ connect(options?: EventStreamOptions): FlittEventStream;
85
+ toJSON(): {
86
+ resource: string;
87
+ credentials: string;
88
+ };
89
+ [INSPECT](): string;
90
+ }
79
91
  declare class ServersResource {
80
92
  private readonly http;
81
93
  private readonly base;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { FlittConfigError, FlittValidationError } from "./errors.js";
2
2
  import { isBrowserLike, normalizeBaseUrl, randomKey, resolveFetch, segment, Transport, } from "./http.js";
3
+ import { FlittEventStream } from "./events.js";
3
4
  export const DEFAULT_BASE_URL = "https://api.flitt.me";
4
5
  const API_KEY_FORMAT = /^flt_[A-Za-z0-9_-]{30,120}$/;
5
6
  const VOTE_TOKEN_FORMAT = /^flv_[A-Za-z0-9_-]{40,60}$/;
@@ -64,6 +65,7 @@ export class Flitt {
64
65
  votes;
65
66
  /** Published reviews. Account key or server token. */
66
67
  reviews;
68
+ events;
67
69
  constructor(options = {}) {
68
70
  const apiKey = (options.apiKey ?? envVar("FLITT_API_KEY") ?? "").trim();
69
71
  const serverToken = (options.serverToken ?? envVar("FLITT_SERVER_TOKEN") ?? envVar("FLITT_VOTE_TOKEN") ?? "").trim();
@@ -101,6 +103,7 @@ export class Flitt {
101
103
  this.commands = new CommandsResource(http, base);
102
104
  this.votes = new VotesResource(votesHttp, base);
103
105
  this.reviews = new ReviewsResource(votesHttp, base);
106
+ this.events = new EventsResource(apiKey || serverToken, normalizeBaseUrl(options.baseUrl ?? DEFAULT_BASE_URL), options.dangerouslyAllowBrowser === true);
104
107
  }
105
108
  /** Quota state from the last response (`null` before the first request). */
106
109
  get rateLimit() {
@@ -114,6 +117,29 @@ export class Flitt {
114
117
  return "Flitt { credentials: [redacted] }";
115
118
  }
116
119
  }
120
+ class EventsResource {
121
+ #token;
122
+ #baseUrl;
123
+ #allowBrowser;
124
+ constructor(token, baseUrl, allowBrowser) {
125
+ this.#token = token;
126
+ this.#baseUrl = baseUrl;
127
+ this.#allowBrowser = allowBrowser;
128
+ }
129
+ connect(options = {}) {
130
+ if (isBrowserLike() && !this.#allowBrowser) {
131
+ throw new FlittConfigError("The Flitt client is running in a browser: your secret key would be exposed to every visitor. " +
132
+ "Call Flitt from your server (Node.js, Deno, Bun, a Worker…) or set dangerouslyAllowBrowser: true if you understand the risk.");
133
+ }
134
+ return new FlittEventStream(this.#token, this.#baseUrl, options);
135
+ }
136
+ toJSON() {
137
+ return { resource: "events", credentials: "[redacted]" };
138
+ }
139
+ [INSPECT]() {
140
+ return "EventsResource { credentials: [redacted] }";
141
+ }
142
+ }
117
143
  class ServersResource {
118
144
  http;
119
145
  base;