@crvouga/mockingbird-service-intercom 3.10.3 → 3.10.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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog — @crvouga/mockingbird-service-intercom
2
2
 
3
+ ## 3.10.5 (2026-11-02)
4
+
5
+ ### Fixes and improvements
6
+
7
+ - stop walkSchema recursing forever on a self-referential $ref ([69464a9](https://github.com/crvouga/mockingbird/commit/69464a9d9e7f468c5e1095125108d4d3d5515431))
8
+ - densify sparse bracket arrays by their written indices ([84a28cb](https://github.com/crvouga/mockingbird/commit/84a28cb182e3d7df91102897f0fc11fca714ba5f))
9
+
10
+ ## 3.10.4 (2026-11-02)
11
+
12
+ ### Fixes and improvements
13
+
14
+ - do not save idempotent results for requests that fail validation ([f2161aa](https://github.com/crvouga/mockingbird/commit/f2161aadeae30bcc586e26131da12a7030bdeb11))
15
+
3
16
  ## 3.10.3 (2026-11-02)
4
17
 
5
18
  ### Fixes and improvements
@@ -473,6 +473,7 @@ var parsePath = (rawKey) => {
473
473
  return path;
474
474
  };
475
475
  var isIndex = (segment) => /^(0|[1-9][0-9]*)$/.test(segment);
476
+ var MAX_ARRAY_INDEX = 4294967294;
476
477
  var put = (target, key, value) => {
477
478
  if (key === "__proto__") {
478
479
  Object.defineProperty(target, key, {
@@ -535,8 +536,17 @@ var decodeFormPairs = (pairs) => {
535
536
  var densify = (value) => {
536
537
  if (typeof value === "string")
537
538
  return value;
538
- if (Array.isArray(value))
539
- return value.filter((item) => item !== void 0).map(densify);
539
+ if (Array.isArray(value)) {
540
+ const dense = [];
541
+ for (const key of Object.keys(value)) {
542
+ if (!isIndex(key) || Number(key) > MAX_ARRAY_INDEX)
543
+ continue;
544
+ const item = value[Number(key)];
545
+ if (item !== void 0)
546
+ dense.push(densify(item));
547
+ }
548
+ return dense;
549
+ }
540
550
  const out = {};
541
551
  for (const [key, item] of Object.entries(value))
542
552
  put(out, key, densify(item));
@@ -3323,7 +3333,8 @@ var IdempotencyStore = class {
3323
3333
  /**
3324
3334
  * Run `handler` once per `key`. `fingerprint` identifies the request's parameters (e.g.
3325
3335
  * the method, path and canonical body). Only `replayable` responses are stored (default:
3326
- * every status below 500, as Stripe does), so a transient failure can be retried.
3336
+ * every status below 500), so a transient failure can be retried. `replayable` also sees the
3337
+ * response, for vendors that decide from more than the status.
3327
3338
  */
3328
3339
  async run(key, fingerprint, errors, handler, replayable = (status) => status < 500) {
3329
3340
  const slot = `${this.namespace}\0${key}`;
@@ -3345,7 +3356,7 @@ var IdempotencyStore = class {
3345
3356
  }));
3346
3357
  try {
3347
3358
  const response = await handler();
3348
- if (!replayable(response.status))
3359
+ if (!replayable(response.status, response))
3349
3360
  return response;
3350
3361
  const body = await response.clone().text();
3351
3362
  this.responses.insert(key, {
@@ -4145,7 +4156,7 @@ var stateAdminRoutes = (routes) => {
4145
4156
  };
4146
4157
 
4147
4158
  // ../core/dist/version.js
4148
- var PACKAGE_VERSION = true ? "3.10.3" : UNRELEASED_VERSION;
4159
+ var PACKAGE_VERSION = true ? "3.10.5" : UNRELEASED_VERSION;
4149
4160
 
4150
4161
  // ../core/dist/signing.js
4151
4162
  var encoder = new TextEncoder();
@@ -7265,4 +7276,4 @@ export {
7265
7276
  IntercomError,
7266
7277
  IntercomAPI
7267
7278
  };
7268
- //# sourceMappingURL=chunk-MKKGU7UB.js.map
7279
+ //# sourceMappingURL=chunk-L4TBFJ4W.js.map