@absolutejs/sync 1.9.0 → 1.9.1

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
@@ -437,9 +437,6 @@ var syncSocket = ({
437
437
  }
438
438
  });
439
439
  };
440
- // src/engine/cdc.ts
441
- import { Elysia as Elysia3 } from "elysia";
442
-
443
440
  // src/engine/equiJoin.ts
444
441
  var shallowEqual = (a, b) => {
445
442
  if (a === b) {
@@ -2343,6 +2340,14 @@ var createSyncEngine = (options = {}) => {
2343
2340
  };
2344
2341
 
2345
2342
  // src/engine/cdc.ts
2343
+ var cachedElysia;
2344
+ var loadElysia = () => {
2345
+ if (cachedElysia !== undefined)
2346
+ return cachedElysia;
2347
+ const mod = __require("elysia");
2348
+ cachedElysia = mod.Elysia;
2349
+ return cachedElysia;
2350
+ };
2346
2351
  var parseSince = (query, lastEventId) => {
2347
2352
  const raw = query.since ?? lastEventId ?? "0";
2348
2353
  const parsed = Number(raw);
@@ -2364,70 +2369,73 @@ var syncCdc = ({
2364
2369
  path = "/sync/cdc",
2365
2370
  heartbeatMs = 25000,
2366
2371
  maxBuffer = 1e4
2367
- }) => new Elysia3({ name: "@absolutejs/sync/cdc" }).get(path, (context) => {
2368
- const lastEventId = context.request.headers.get("last-event-id");
2369
- const since = parseSince(context.query, lastEventId);
2370
- const encoder = new TextEncoder;
2371
- const stream = new ReadableStream({
2372
- async start(controller) {
2373
- const write = (chunk) => {
2374
- try {
2375
- controller.enqueue(encoder.encode(chunk));
2376
- } catch {}
2377
- };
2378
- write(encodeEvent("open", null, {
2379
- since,
2380
- at: Date.now()
2381
- }));
2382
- const heartbeat = setInterval(() => write(`: ping
2372
+ }) => {
2373
+ const Elysia3 = loadElysia();
2374
+ return new Elysia3({ name: "@absolutejs/sync/cdc" }).get(path, (context) => {
2375
+ const lastEventId = context.request.headers.get("last-event-id");
2376
+ const since = parseSince(context.query, lastEventId);
2377
+ const encoder = new TextEncoder;
2378
+ const stream = new ReadableStream({
2379
+ async start(controller) {
2380
+ const write = (chunk) => {
2381
+ try {
2382
+ controller.enqueue(encoder.encode(chunk));
2383
+ } catch {}
2384
+ };
2385
+ write(encodeEvent("open", null, {
2386
+ since,
2387
+ at: Date.now()
2388
+ }));
2389
+ const heartbeat = setInterval(() => write(`: ping
2383
2390
 
2384
2391
  `), heartbeatMs);
2385
- try {
2386
- for await (const entry of engine.streamChanges({
2387
- since,
2388
- signal: context.request.signal,
2389
- maxBuffer
2390
- })) {
2391
- write(encodeEvent("change", entry.version, entry));
2392
- }
2393
- } catch (error) {
2394
- if (error instanceof MissedChangesError) {
2395
- write(encodeEvent("error", null, {
2396
- name: "MissedChangesError",
2397
- message: error.message,
2398
- requestedSince: error.requestedSince,
2399
- availableSince: error.availableSince
2400
- }));
2401
- } else if (error instanceof CdcConsumerSlowError) {
2402
- write(encodeEvent("error", null, {
2403
- name: "CdcConsumerSlowError",
2404
- message: error.message,
2405
- lastDeliveredVersion: error.lastDeliveredVersion
2406
- }));
2407
- } else {
2408
- write(encodeEvent("error", null, {
2409
- name: error instanceof Error ? error.name : "Error",
2410
- message: error instanceof Error ? error.message : String(error)
2411
- }));
2412
- }
2413
- } finally {
2414
- clearInterval(heartbeat);
2415
2392
  try {
2416
- controller.close();
2417
- } catch {}
2393
+ for await (const entry of engine.streamChanges({
2394
+ since,
2395
+ signal: context.request.signal,
2396
+ maxBuffer
2397
+ })) {
2398
+ write(encodeEvent("change", entry.version, entry));
2399
+ }
2400
+ } catch (error) {
2401
+ if (error instanceof MissedChangesError) {
2402
+ write(encodeEvent("error", null, {
2403
+ name: "MissedChangesError",
2404
+ message: error.message,
2405
+ requestedSince: error.requestedSince,
2406
+ availableSince: error.availableSince
2407
+ }));
2408
+ } else if (error instanceof CdcConsumerSlowError) {
2409
+ write(encodeEvent("error", null, {
2410
+ name: "CdcConsumerSlowError",
2411
+ message: error.message,
2412
+ lastDeliveredVersion: error.lastDeliveredVersion
2413
+ }));
2414
+ } else {
2415
+ write(encodeEvent("error", null, {
2416
+ name: error instanceof Error ? error.name : "Error",
2417
+ message: error instanceof Error ? error.message : String(error)
2418
+ }));
2419
+ }
2420
+ } finally {
2421
+ clearInterval(heartbeat);
2422
+ try {
2423
+ controller.close();
2424
+ } catch {}
2425
+ }
2418
2426
  }
2419
- }
2420
- });
2421
- return new Response(stream, {
2422
- headers: {
2423
- "cache-control": "no-cache, no-transform",
2424
- connection: "keep-alive",
2425
- "content-type": "text/event-stream"
2426
- }
2427
+ });
2428
+ return new Response(stream, {
2429
+ headers: {
2430
+ "cache-control": "no-cache, no-transform",
2431
+ connection: "keep-alive",
2432
+ "content-type": "text/event-stream"
2433
+ }
2434
+ });
2427
2435
  });
2428
- });
2436
+ };
2429
2437
  // src/devtools.ts
2430
- import { Elysia as Elysia4 } from "elysia";
2438
+ import { Elysia as Elysia3 } from "elysia";
2431
2439
  var dashboardHtml = (streamPath) => `<!doctype html>
2432
2440
  <html lang="en"><head><meta charset="utf-8" />
2433
2441
  <meta name="viewport" content="width=device-width, initial-scale=1" />
@@ -2497,7 +2505,7 @@ var syncDevtools = ({
2497
2505
  snapshotMs = 2000
2498
2506
  }) => {
2499
2507
  const streamPath = `${path}/stream`;
2500
- return new Elysia4({ name: "@absolutejs/sync/devtools" }).get(path, () => new Response(dashboardHtml(streamPath), {
2508
+ return new Elysia3({ name: "@absolutejs/sync/devtools" }).get(path, () => new Response(dashboardHtml(streamPath), {
2501
2509
  headers: { "content-type": "text/html; charset=utf-8" }
2502
2510
  })).get(streamPath, (context) => {
2503
2511
  const encoder = new TextEncoder;
@@ -2618,5 +2626,5 @@ export {
2618
2626
  createPresenceHub
2619
2627
  };
2620
2628
 
2621
- //# debugId=483AEB81CDF95A5764756E2164756E21
2629
+ //# debugId=2C8AB0508E99C22364756E2164756E21
2622
2630
  //# sourceMappingURL=index.js.map