@crvouga/mockingbird-service-formbricks 1.0.2 → 1.1.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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changelog — @crvouga/mockingbird-service-formbricks
2
2
 
3
- ## 1.0.2 (2026-09-26)
3
+ ## 1.1.0 (2026-09-29)
4
+
5
+ ### Features
6
+
7
+ - let a scalar naming a later branch's enum value pick that branch ([30ade3a](https://github.com/crvouga/mockingbird/commit/30ade3a28a5b6b273ffbf261216b821acac8e961))
8
+
9
+ ### Fixes and improvements
10
+
11
+ - stop cleared webhook deliveries from rescheduling forever ([424b78f](https://github.com/crvouga/mockingbird/commit/424b78f29317b162e3bf7d0049cc19be5b977026))
12
+ - serialize immediate webhook attempts to fix reorder flake ([625c82b](https://github.com/crvouga/mockingbird/commit/625c82b5a8a7992c1cf93e9df68e77af08b353e3))
13
+ - flush drains webhook retries scheduled while it runs ([c58cede](https://github.com/crvouga/mockingbird/commit/c58cede1b6ba7ae5ed3f8721ad9b7cd7bc0b1ca7))
14
+
15
+ ## 1.0.2 (2026-09-25)
4
16
 
5
17
  ### Fixes and improvements
6
18
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_SETTINGS,
3
3
  createRuntime
4
- } from "./chunk-R2IPDPFY.js";
4
+ } from "./chunk-TGTL2AOA.js";
5
5
 
6
6
  // ../../adapters/node/dist/cli.js
7
7
  import { readFile } from "node:fs/promises";
@@ -366,4 +366,4 @@ export {
366
366
  createServer2 as createServer,
367
367
  serveTarget
368
368
  };
369
- //# sourceMappingURL=chunk-KO4C5CAN.js.map
369
+ //# sourceMappingURL=chunk-RROX5BDV.js.map
@@ -1300,7 +1300,7 @@ var restoreNamespace = (sqlite, namespace, snapshot) => {
1300
1300
  };
1301
1301
 
1302
1302
  // ../core/dist/version.js
1303
- var PACKAGE_VERSION = true ? "1.0.2" : UNRELEASED_VERSION;
1303
+ var PACKAGE_VERSION = true ? "1.1.0" : UNRELEASED_VERSION;
1304
1304
 
1305
1305
  // ../core/dist/signing.js
1306
1306
  var encoder = new TextEncoder();
@@ -1393,6 +1393,7 @@ var createWebhookHub = (options) => {
1393
1393
  const faults = /* @__PURE__ */ new Map();
1394
1394
  const held = /* @__PURE__ */ new Map();
1395
1395
  const inFlight = /* @__PURE__ */ new Set();
1396
+ let immediate = Promise.resolve();
1396
1397
  const track = (work) => {
1397
1398
  inFlight.add(work);
1398
1399
  void work.finally(() => inFlight.delete(work));
@@ -1455,22 +1456,28 @@ var createWebhookHub = (options) => {
1455
1456
  pending.delete(delivery.id);
1456
1457
  return;
1457
1458
  }
1458
- const run = () => {
1459
- pending.delete(delivery.id);
1460
- track(attempt(delivery).then((ok) => {
1459
+ const settle = async () => {
1460
+ if (!payloads.has(delivery.id))
1461
+ return;
1462
+ await attempt(delivery).then((ok) => {
1461
1463
  if (ok)
1462
1464
  delivery.state = "delivered";
1463
1465
  else
1464
1466
  schedule(delivery);
1465
- }));
1467
+ });
1466
1468
  };
1467
1469
  const delay = delays[index] ?? 0;
1468
1470
  if (delay <= 0) {
1469
- pending.set(delivery.id, void 0);
1470
- run();
1471
+ const task = immediate.then(settle);
1472
+ immediate = task.catch(() => {
1473
+ });
1474
+ track(task);
1471
1475
  return;
1472
1476
  }
1473
- const timer = scheduleTimer(run, delay);
1477
+ const timer = scheduleTimer(() => {
1478
+ pending.delete(delivery.id);
1479
+ track(settle());
1480
+ }, delay);
1474
1481
  unref(timer);
1475
1482
  pending.set(delivery.id, timer);
1476
1483
  };
@@ -1566,25 +1573,30 @@ var createWebhookHub = (options) => {
1566
1573
  return delivery;
1567
1574
  },
1568
1575
  async flush() {
1569
- for (const namespace of [...held.keys()])
1570
- releaseHeld(namespace);
1571
- const waiting = [...pending.entries()];
1572
- for (const [id2, timer] of waiting) {
1573
- if (timer === void 0)
1574
- continue;
1575
- cancel(timer);
1576
- pending.delete(id2);
1577
- const delivery = deliveries.get(id2);
1578
- if (!delivery)
1579
- continue;
1580
- track(attempt(delivery).then((ok) => {
1581
- if (ok)
1582
- delivery.state = "delivered";
1583
- else
1584
- schedule(delivery);
1585
- }));
1576
+ for (; ; ) {
1577
+ for (const namespace of [...held.keys()])
1578
+ releaseHeld(namespace);
1579
+ const waiting = [...pending.entries()];
1580
+ for (const [id2, timer] of waiting) {
1581
+ if (timer === void 0)
1582
+ continue;
1583
+ cancel(timer);
1584
+ pending.delete(id2);
1585
+ const delivery = deliveries.get(id2);
1586
+ if (!delivery)
1587
+ continue;
1588
+ track(attempt(delivery).then((ok) => {
1589
+ if (ok)
1590
+ delivery.state = "delivered";
1591
+ else
1592
+ schedule(delivery);
1593
+ }));
1594
+ }
1595
+ await hub.idle();
1596
+ const scheduled = [...pending.values()].some((timer) => timer !== void 0);
1597
+ if (held.size === 0 && !scheduled)
1598
+ return;
1586
1599
  }
1587
- await hub.idle();
1588
1600
  },
1589
1601
  async idle() {
1590
1602
  while (inFlight.size > 0)
@@ -3994,4 +4006,4 @@ export {
3994
4006
  formbricksError,
3995
4007
  FormbricksAPI
3996
4008
  };
3997
- //# sourceMappingURL=chunk-R2IPDPFY.js.map
4009
+ //# sourceMappingURL=chunk-TGTL2AOA.js.map