@curless/hotel-storefront 0.52.1 → 0.53.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.
@@ -1 +1 @@
1
- {"version":3,"file":"hotels.d.ts","sourceRoot":"","sources":["../../src/aggregate/hotels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAGxB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA6B7C,+FAA+F;AAC/F,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,iFAAiF;IACjF,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kJAAkJ;IAClJ,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAqEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,mBAAmB,EAAE,KAAG,mBAW9D,CAAC;AAoCH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAG,IAW/D,CAAC;AAkCF,eAAO,MAAM,qBAAqB,GAChC,MAAM,gBAAgB,KACrB,YAAY,GAAG;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,IAAI,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAwqBjD,CAAC"}
1
+ {"version":3,"file":"hotels.d.ts","sourceRoot":"","sources":["../../src/aggregate/hotels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAIxB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,YAAY,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8B7C,+FAA+F;AAC/F,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,iFAAiF;IACjF,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kJAAkJ;IAClJ,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAqEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,mBAAmB,EAAE,KAAG,mBAW9D,CAAC;AAoCH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAG,IAW/D,CAAC;AA+CF,eAAO,MAAM,qBAAqB,GAChC,MAAM,gBAAgB,KACrB,YAAY,GAAG;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,IAAI,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAyyBjD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_PAGE, FULL_CAPABILITIES, MAX_PAGE, } from '../backend.js';
1
+ import { DEFAULT_PAGE, FULL_CAPABILITIES, MAX_PAGE, notPricedForNoAnswer, unansweredBy, } from '../backend.js';
2
2
  import { NAMESPACE, shownFor, unwrap, wrap } from './ids.js';
3
3
  import { mergeKnown, pagePlan } from './paging.js';
4
4
  import { inEnglish, isDistrict, queryInEnglish } from './places.js';
@@ -136,15 +136,28 @@ export const checkSupplierIds = (brand, ids) => {
136
136
  if (dup)
137
137
  throw new Error(`${brand}: two suppliers are called "${dup}"`);
138
138
  };
139
+ /** A group as an answer names one that did not answer - see `Unanswered`. */
140
+ const unansweredOf = (s) => ({
141
+ supplier: s.id,
142
+ name: s.name,
143
+ ...(s.names ? { names: s.names } : {}),
144
+ });
145
+ /**
146
+ * The refusal for groups that did not answer in time: its `unanswered` says
147
+ * which, ALL of them (2026-11-03 review, C8) - the tools write "no group
148
+ * answered this time" from it rather than from the first group's message.
149
+ */
150
+ const timedOut = (groups, message) => Object.assign(new Error(message), {
151
+ code: 'supplier-timeout',
152
+ unanswered: groups.map(unansweredOf),
153
+ });
139
154
  /**
140
155
  * `work` for one supplier, given up on after `ms` - as a rejection, like any
141
156
  * other way a supplier's search fails. The work itself is not stopped (a
142
157
  * promise cannot be); its late answer is simply not read.
143
158
  */
144
159
  const within = (s, ms, work) => new Promise((resolve, reject) => {
145
- const timer = setTimeout(() => reject(Object.assign(new Error(`${s.name} did not answer within ${ms} ms`), {
146
- code: 'supplier-timeout',
147
- })), ms);
160
+ const timer = setTimeout(() => reject(timedOut([s], `${s.name} did not answer within ${ms} ms`)), ms);
148
161
  work().then((v) => {
149
162
  clearTimeout(timer);
150
163
  resolve(v);
@@ -204,6 +217,12 @@ export const createAggregateHotels = (opts) => {
204
217
  * across groups, "Shanghai" can be two hotels in two groups, and picking
205
218
  * either is booking the guest somewhere they did not choose. Exactly one, or
206
219
  * an exact name, or nothing.
220
+ *
221
+ * ⚠️ A GROUP THAT DID NOT ANSWER CANNOT BE RULED OUT (2026-11-03 review, C5).
222
+ * Each group is asked within the time limit; one that timed out may be the
223
+ * one that has the hotel, or a second one that makes the name ambiguous. So
224
+ * unless an exact name settles it, the refusal names the groups that did not
225
+ * answer - never "no such hotel", never a pick among the rest.
207
226
  */
208
227
  const hotelRef = async (ref) => {
209
228
  const own = unwrap(ref, known);
@@ -213,16 +232,20 @@ export const createAggregateHotels = (opts) => {
213
232
  }
214
233
  const found = await Promise.all(suppliers.map(async (s) => {
215
234
  try {
216
- const d = await s.backend.getHotel(ref);
235
+ const d = await within(s, timeoutMs, () => s.backend.getHotel(ref));
217
236
  return d ? { s, hotel: d.hotel } : undefined;
218
237
  }
219
- catch {
220
- return undefined;
238
+ catch (err) {
239
+ return unansweredBy(err) ? { s, down: true } : undefined;
221
240
  }
222
241
  }));
223
- const hits = found.filter((x) => !!x);
242
+ const hits = found.flatMap((x) => (x?.hotel ? [{ s: x.s, hotel: x.hotel }] : []));
243
+ const down = found.flatMap((x) => (x?.down ? [x.s] : []));
224
244
  const exact = hits.filter((x) => x.hotel.name.toLowerCase() === ref.trim().toLowerCase());
225
- const one = hits.length === 1 ? hits[0] : exact.length === 1 ? exact[0] : undefined;
245
+ const one = exact.length === 1 ? exact[0] : hits.length === 1 && down.length === 0 ? hits[0] : undefined;
246
+ if (!one && down.length) {
247
+ throw timedOut(down, `${listWords(down.map((x) => x.name))} did not answer within ${timeoutMs} ms`);
248
+ }
226
249
  return one ? { s: one.s, id: one.hotel.id } : undefined;
227
250
  };
228
251
  /**
@@ -250,6 +273,14 @@ export const createAggregateHotels = (opts) => {
250
273
  const order = first.length ? first : suppliers;
251
274
  return [...new Set(order)].map((s) => ({ s, ref }));
252
275
  };
276
+ /**
277
+ * A READ of one supplier, given up on after the time limit (2026-11-03
278
+ * review, C5): the hotel page, the dates, the add-ons, the policies, a
279
+ * price, a booking looked up. ⚠️ NEVER A WRITE: a booking or a cancellation
280
+ * given up on may still go through on the group's side, and "did not
281
+ * answer" about one would be a lie in one of two ways.
282
+ */
283
+ const read = (s, work) => within(s, timeoutMs, work);
253
284
  /** The first supplier, most likely first, that answers for this booking reference. */
254
285
  const firstAnswer = async (ref, ask) => {
255
286
  for (const c of bookingCandidates(ref)) {
@@ -319,13 +350,24 @@ export const createAggregateHotels = (opts) => {
319
350
  * unnarrowed search's facets at most every ten minutes.
320
351
  */
321
352
  const PLACES_TTL_MS = 10 * 60_000;
353
+ /**
354
+ * How long a supplier whose city list could not be had is left alone, in
355
+ * milliseconds (2026-11-03 review, C4): each search waited for it again, and a
356
+ * group that hangs once hangs for the next search too. A guest's next ask
357
+ * within this goes on without its list - it is then asked as typed, like a
358
+ * place no group knows.
359
+ */
360
+ const PLACES_RETRY_MS = 30_000;
322
361
  const placeCache = new Map();
323
- const placesOf = async (s) => {
362
+ const placesDown = new Map();
363
+ const placesOf = async (s, ms) => {
324
364
  const kept = placeCache.get(s.id);
325
365
  if (kept && Date.now() - kept.at < PLACES_TTL_MS)
326
366
  return kept.names;
367
+ if ((placesDown.get(s.id) ?? 0) > Date.now())
368
+ return kept?.names;
327
369
  try {
328
- const r = await within(s, timeoutMs, () => s.backend.searchHotels({ limit: 1 }));
370
+ const r = await within(s, ms, () => s.backend.searchHotels({ limit: 1 }));
329
371
  // A city's names in every language too (robin, 2026-10-15): a guest
330
372
  // who read "Shanghai" on Huazhu's card asks for Shanghai.
331
373
  const names = new Set([
@@ -333,9 +375,11 @@ export const createAggregateHotels = (opts) => {
333
375
  ...(r.facets?.cities ?? []).flatMap((x) => [x.name, ...Object.values(x.names ?? {})]),
334
376
  ].map((x) => x.toLowerCase()));
335
377
  placeCache.set(s.id, { at: Date.now(), names });
378
+ placesDown.delete(s.id);
336
379
  return names;
337
380
  }
338
381
  catch {
382
+ placesDown.set(s.id, Date.now() + PLACES_RETRY_MS);
339
383
  return kept?.names;
340
384
  }
341
385
  };
@@ -350,15 +394,33 @@ export const createAggregateHotels = (opts) => {
350
394
  * simply has none there. A place no group knows is asked of everyone, as
351
395
  * typed - it may be a spelling one of them understands.
352
396
  */
353
- const lacking = async (list, place) => {
354
- const sets = await Promise.all(list.map(placesOf));
397
+ const lacking = async (list, place, ms) => {
398
+ const sets = await Promise.all(list.map((s) => placesOf(s, ms)));
355
399
  const wanted = place.toLowerCase();
356
400
  if (!sets.some((x) => x?.has(wanted)))
357
401
  return new Set();
358
402
  return new Set(list.filter((_, i) => sets[i] && !sets[i]?.has(wanted)).map((x) => x.id));
359
403
  };
360
404
  const NONE = { hotels: [], total: 0, currencies: [] };
405
+ /**
406
+ * A page of hotels asked for a group that already answered gets at least this
407
+ * long even when the search's deadline has passed, in milliseconds: it is
408
+ * the same group, which just answered, and a slow neighbour must not leave
409
+ * its page short.
410
+ */
411
+ const FOLLOW_UP_FLOOR_MS = Math.min(timeoutMs, 2000);
412
+ /** The share of the deadline the cities each group has may take (`placesOf`). */
413
+ const PLACES_SHARE = 4;
361
414
  const searchHotels = async (q, who) => {
415
+ // ⚠️ ONE DEADLINE FOR THE WHOLE SEARCH (2026-11-03 review, C4). The time
416
+ // limit was per call, and a search made several in turn - the cities each
417
+ // group has, the search itself, the same again without a price ceiling, a
418
+ // wider search after an empty one - so one group that hung cost two to four
419
+ // limits (16-32 seconds at the default) and the host's own tool time limit
420
+ // came first: the guest saw "no answer" instead of the groups that had
421
+ // one. Now every call below waits for what is left of this one deadline.
422
+ const deadline = Date.now() + timeoutMs;
423
+ const left = () => Math.max(1, deadline - Date.now());
362
424
  const asked = q.filters;
363
425
  const { supplier: wantedName, ...rest } = asked ?? {};
364
426
  const wanted = wantedName ? supplierNamed(wantedName) : undefined;
@@ -401,13 +463,21 @@ export const createAggregateHotels = (opts) => {
401
463
  const firstWindow = ordered
402
464
  ? { offset: 0, limit: Math.min(from + page, MAX_PAGE) }
403
465
  : { offset: Math.floor(from / n), limit: Math.min(MAX_PAGE, Math.ceil(page / n) + 1) };
404
- const skip = place && !district ? await lacking(suppliers, place) : new Set();
405
- const ask = async (s, window) => skip.has(s.id)
466
+ // The cities each group has take a share of the deadline, not all of it: a
467
+ // group that hangs there is left to the search itself, which has the rest.
468
+ const skip = place && !district
469
+ ? await lacking(suppliers, place, Math.min(left(), Math.ceil(timeoutMs / PLACES_SHARE)))
470
+ : new Set();
471
+ const ask = async (s, window, ms = left()) => skip.has(s.id)
406
472
  ? NONE
407
- : within(s, timeoutMs, () => s.backend.searchHotels({ ...base, ...window }, caller));
473
+ : within(s, ms, () => s.backend.searchHotels({ ...base, ...window }, caller));
408
474
  const round = async (list, window) => Promise.allSettled(list.map((s) => ask(s, window)));
409
- let first = await round(active, firstWindow);
410
- let counts = await round(others, { offset: 0, limit: 1 });
475
+ // Together: the groups left out of `filters.supplier` are only counted, and
476
+ // are not to wait their turn behind the ones that are searched.
477
+ let [first, counts] = await Promise.all([
478
+ round(active, firstWindow),
479
+ round(others, { offset: 0, limit: 1 }),
480
+ ]);
411
481
  const okOf = (settled, list) => settled.flatMap((r, i) => {
412
482
  const s = list[i];
413
483
  return r.status === 'fulfilled' && s ? [{ s, k: i, result: r.value }] : [];
@@ -421,13 +491,23 @@ export const createAggregateHotels = (opts) => {
421
491
  if (Number(q.maxNightly) > 0 && union(answers).length > 1) {
422
492
  const { maxNightly: _dropped, ...without } = base;
423
493
  base = without;
424
- first = await round(active, firstWindow);
425
- counts = await round(others, { offset: 0, limit: 1 });
494
+ [first, counts] = await Promise.all([
495
+ round(active, firstWindow),
496
+ round(others, { offset: 0, limit: 1 }),
497
+ ]);
426
498
  answers = okOf(first, active);
427
499
  }
428
500
  const down = first.flatMap((r, i) => (r.status === 'rejected' && active[i] ? [active[i]] : []));
429
501
  if (active.length > 0 && answers.length === 0) {
430
- throw first.find((r) => r.status === 'rejected').reason;
502
+ // ⚠️ ALL OF THEM, NOT THE FIRST (2026-11-03 review, C8): three groups
503
+ // that did not answer were reported as the first one alone. Where any
504
+ // timed out, the refusal names every group that is down; a refusal of
505
+ // the groups' own keeps its words.
506
+ const rejected = first.flatMap((r) => (r.status === 'rejected' ? [r.reason] : []));
507
+ if (rejected.some((reason) => unansweredBy(reason))) {
508
+ throw timedOut(down, `No hotel group answered this time: ${listWords(down.map((x) => x.name))} did not answer within ${timeoutMs} ms`);
509
+ }
510
+ throw rejected[0];
431
511
  }
432
512
  // ⚠️ SAID BY `degraded`, ONCE: the tools write the sentence from it and the
433
513
  // card draws its own line - an `unapplied` sentence besides was said twice.
@@ -472,7 +552,7 @@ export const createAggregateHotels = (opts) => {
472
552
  for (let lo = Math.min(...need), hi = Math.max(...need); lo <= hi; lo += MAX_PAGE) {
473
553
  const limit = Math.min(MAX_PAGE, hi - lo + 1);
474
554
  try {
475
- const more = await ask(s, { offset: lo, limit });
555
+ const more = await ask(s, { offset: lo, limit }, Math.max(left(), FOLLOW_UP_FLOOR_MS));
476
556
  more.hotels.forEach((h, j) => got[k]?.set(lo + j, h));
477
557
  }
478
558
  catch (err) {
@@ -559,12 +639,12 @@ export const createAggregateHotels = (opts) => {
559
639
  const at = await hotelRef(id);
560
640
  if (!at)
561
641
  return null;
562
- const d = await at.s.backend.getHotel(at.id, stay, plain(who));
642
+ const d = await read(at.s, () => at.s.backend.getHotel(at.id, stay, plain(who)));
563
643
  return d ? { ...d, hotel: hotelOut(at.s.id, d.hotel) } : null;
564
644
  },
565
645
  async datesAround(id, stay, o, who) {
566
646
  const at = await hotelRef(id);
567
- return at ? at.s.backend.datesAround(at.id, stay, o, plain(who)) : [];
647
+ return at ? read(at.s, () => at.s.backend.datesAround(at.id, stay, o, plain(who))) : [];
568
648
  },
569
649
  // ⚠️ NO MEMBERS IN THE MARKET (v1) - `capabilities.members` is false, so
570
650
  // the tools never list a sign-in. Answered anyway, as nobody.
@@ -579,7 +659,7 @@ export const createAggregateHotels = (opts) => {
579
659
  const at = await hotelRef(hotelId);
580
660
  if (!at || !capsOf(at.s).extras)
581
661
  return [];
582
- const extras = await at.s.backend.extrasFor(at.id, stay);
662
+ const extras = await read(at.s, () => at.s.backend.extrasFor(at.id, stay));
583
663
  return extras.map((x) => ({ ...x, hotelId: wrap(at.s.id, x.hotelId) }));
584
664
  },
585
665
  /**
@@ -603,9 +683,32 @@ export const createAggregateHotels = (opts) => {
603
683
  }
604
684
  : q;
605
685
  }
606
- const quotes = await Promise.all([...parts.entries()].map(async ([ns, lines]) => quoteOut(ns, await byId.get(ns).backend.quote(draftFor(ns, lines, trip), caller))));
686
+ // ⚠️ A GROUP THAT DOES NOT ANSWER IS SAID, NOT WAITED FOR (2026-11-03
687
+ // review, C5): each group prices its own lines within the time limit; the
688
+ // ones that did are the quote, and a group that did not is a line in
689
+ // `dropped` - "did not answer in time", not "cannot be had". With no
690
+ // group answering there is no quote to give, and the refusal names them.
691
+ const settled = await Promise.all([...parts.entries()].map(async ([ns, lines]) => {
692
+ const s = byId.get(ns);
693
+ try {
694
+ return {
695
+ q: quoteOut(ns, await read(s, () => s.backend.quote(draftFor(ns, lines, trip), caller))),
696
+ };
697
+ }
698
+ catch (err) {
699
+ if (!unansweredBy(err))
700
+ throw err;
701
+ return { down: s };
702
+ }
703
+ }));
704
+ const quotes = settled.flatMap((x) => (x.q ? [x.q] : []));
705
+ const unanswered = settled.flatMap((x) => (x.down ? [x.down] : []));
706
+ if (quotes.length === 0) {
707
+ throw timedOut(unanswered, `${listWords(unanswered.map((x) => x.name))} did not answer within ${timeoutMs} ms`);
708
+ }
607
709
  const dropped = [
608
710
  ...quotes.flatMap((q) => q.dropped ?? []),
711
+ ...unanswered.map(notPricedForNoAnswer),
609
712
  ...strays.map((l) => ({
610
713
  title: l.hotelId,
611
714
  why: 'That hotel is not in this market any more.',
@@ -676,23 +779,37 @@ export const createAggregateHotels = (opts) => {
676
779
  async listBookings(who, limit = 10) {
677
780
  const most = Math.max(1, Math.min(MAX_PAGE, Math.floor(Number(limit) > 0 ? limit : 10)));
678
781
  const caller = plain(who);
679
- const settled = await Promise.allSettled(suppliers.map((s) => s.backend.listBookings(caller, most)));
680
- const failed = settled.filter((r) => r.status === 'rejected');
681
- if (failed.length === settled.length)
682
- throw failed[0].reason;
782
+ const settled = await Promise.allSettled(suppliers.map((s) => read(s, () => s.backend.listBookings(caller, most))));
783
+ const failed = settled.flatMap((r, i) => r.status === 'rejected' && suppliers[i] ? [i] : []);
784
+ if (failed.length === settled.length) {
785
+ // ⚠️ ALL OF THEM, NOT THE FIRST (C8), where they only did not answer.
786
+ const reasons = settled.flatMap((r) => (r.status === 'rejected' ? [r.reason] : []));
787
+ if (reasons.some((reason) => unansweredBy(reason))) {
788
+ throw timedOut(suppliers, `No hotel group answered this time: ${listWords(suppliers.map((x) => x.name))} did not answer within ${timeoutMs} ms`);
789
+ }
790
+ throw reasons[0];
791
+ }
683
792
  if (failed.length)
684
793
  console.error('[market] listing bookings failed for', failed.length, 'supplier(s)');
685
- return settled
794
+ const list = settled
686
795
  .flatMap((r, i) => {
687
796
  const s = suppliers[i];
688
797
  return r.status === 'fulfilled' && s ? r.value.map((b) => bookingOut(s.id, b)) : [];
689
798
  })
690
799
  .sort((a, b) => b.createdAt.localeCompare(a.createdAt))
691
800
  .slice(0, most);
801
+ // ⚠️ THE GROUPS WHOSE BOOKINGS ARE NOT IN THE LIST (2026-11-03 review,
802
+ // C5): a list without Atour's bookings, from an Atour that did not answer,
803
+ // reads as a guest with none there. Named, so the tools say "did not
804
+ // answer", never "has none".
805
+ const degraded = failed.flatMap((i) => (suppliers[i] ? [unansweredOf(suppliers[i])] : []));
806
+ if (degraded.length)
807
+ list.degraded = degraded;
808
+ return list;
692
809
  },
693
810
  async findBooking(ref, who) {
694
811
  const caller = plain(who);
695
- const hit = await firstAnswer(ref, (s, r) => s.backend.findBooking(r, caller));
812
+ const hit = await firstAnswer(ref, (s, r) => read(s, () => s.backend.findBooking(r, caller)));
696
813
  return hit ? bookingOut(hit.s.id, hit.value) : null;
697
814
  },
698
815
  /**
@@ -703,19 +820,19 @@ export const createAggregateHotels = (opts) => {
703
820
  */
704
821
  async previewChange(ref, change, who) {
705
822
  const caller = plain(who);
706
- const found = await firstAnswer(ref, (s, r) => s.backend.findBooking(r, caller));
823
+ const found = await firstAnswer(ref, (s, r) => read(s, () => s.backend.findBooking(r, caller)));
707
824
  if (!found)
708
825
  return null;
709
826
  const { s } = found;
710
827
  const refused = unchangeable(s, found.value, change);
711
828
  if (refused)
712
829
  return refused;
713
- const p = await s.backend.previewChange(found.value.id, change, caller);
830
+ const p = await read(s, () => s.backend.previewChange(found.value.id, change, caller));
714
831
  return p ? { ...p, bookingId: wrap(s.id, p.bookingId), supplier: s.id } : null;
715
832
  },
716
833
  async changeBooking(ref, change, who) {
717
834
  const caller = plain(who);
718
- const found = await firstAnswer(ref, (s, r) => s.backend.findBooking(r, caller));
835
+ const found = await firstAnswer(ref, (s, r) => read(s, () => s.backend.findBooking(r, caller)));
719
836
  if (!found || unchangeable(found.s, found.value, change))
720
837
  return null;
721
838
  const b = await found.s.backend.changeBooking(found.value.id, change, caller);
@@ -723,7 +840,7 @@ export const createAggregateHotels = (opts) => {
723
840
  },
724
841
  async previewCancellation(ref, who) {
725
842
  const caller = plain(who);
726
- const hit = await firstAnswer(ref, (s, r) => s.backend.previewCancellation(r, caller));
843
+ const hit = await firstAnswer(ref, (s, r) => read(s, () => s.backend.previewCancellation(r, caller)));
727
844
  return hit
728
845
  ? { ...hit.value, bookingId: wrap(hit.s.id, hit.value.bookingId), supplier: hit.s.id }
729
846
  : null;
@@ -736,7 +853,9 @@ export const createAggregateHotels = (opts) => {
736
853
  // A group that publishes no policy text is not asked for it.
737
854
  async policies(hotelId) {
738
855
  const at = await hotelRef(hotelId);
739
- return at && capsOf(at.s).policies !== false ? at.s.backend.policies(at.id) : [];
856
+ return at && capsOf(at.s).policies !== false
857
+ ? read(at.s, () => at.s.backend.policies(at.id))
858
+ : [];
740
859
  },
741
860
  };
742
861
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hotels.js","sourceRoot":"","sources":["../../src/aggregate/hotels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hotels.js","sourceRoot":"","sources":["../../src/aggregate/hotels.ts"],"names":[],"mappings":"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"}
package/dist/backend.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Booking, BookingChange, BookingResult, CancellationPreview, ChangePreview, DateOption, Extra, Guest, HotelDetail, HotelPolicy, HotelSearch, HotelSearchResult, Identity, Member, Money, Names, NoRoomsArgs, NoRoomsCode, Quote, RoomRequestKind, RoomRequests, Stay, TripDraft } from './types.js';
1
+ import type { Booking, BookingChange, BookingResult, CancellationPreview, ChangePreview, DateOption, Extra, Guest, HotelDetail, HotelPolicy, HotelSearch, HotelSearchResult, Identity, Member, Money, Names, NoRoomsArgs, NoRoomsCode, Quote, RoomRequestKind, RoomRequests, Stay, TripDraft, Unanswered } from './types.js';
2
2
  /**
3
3
  * Where the rooms come from.
4
4
  *
@@ -217,6 +217,22 @@ export type Candidate = {
217
217
  city?: string;
218
218
  names?: Names;
219
219
  };
220
+ /**
221
+ * The bookings listed, newest first - and, in a market, the groups that did not
222
+ * answer in time: none of their bookings is in the list (2026-11-03 review, C5).
223
+ * ⚠️ A PROPERTY ON THE ARRAY, so a backend that returns a plain `Booking[]` is
224
+ * still one; it is read right where the list is returned, before any
225
+ * `map` or `slice` drops it.
226
+ */
227
+ export type BookingList = Booking[] & {
228
+ degraded?: Unanswered[];
229
+ };
230
+ /**
231
+ * The groups a market's refusal says did not answer in time - or undefined for
232
+ * any other failure. The market throws one (`code: 'supplier-timeout'`) when a
233
+ * read it needs cannot be had, naming every group it was waiting for.
234
+ */
235
+ export declare const unansweredBy: (err: unknown) => Unanswered[] | undefined;
220
236
  export type HotelBackend = {
221
237
  /** Who the data belongs to, for the card's header and the legal pages. */
222
238
  readonly brand: string;
@@ -354,7 +370,7 @@ export type HotelBackend = {
354
370
  * audit). A booking made elsewhere is `findBooking`'s: its code and the email
355
371
  * together, as a front desk - or the group's own site - asks for them.
356
372
  */
357
- listBookings(who: Identity, limit?: number): Promise<Booking[]>;
373
+ listBookings(who: Identity, limit?: number): Promise<BookingList>;
358
374
  /**
359
375
  * One booking by its code (or id), when it is this conversation's - or by its
360
376
  * CODE, with the email it was made with. Found that way it is this
@@ -492,4 +508,14 @@ export declare const partyNeedsOf: (guests: number, largest: number) => {
492
508
  };
493
509
  /** An add-on's unit, in words: "per person per night", never "per person-night". */
494
510
  export declare const unitWords: (per: string) => string;
511
+ /**
512
+ * A group's part of a trip, left out of a price because it did not answer - the
513
+ * `Quote.dropped` entry, the same wherever it is made (2026-11-03 review, C5).
514
+ * ⚠️ "DID NOT ANSWER" IS NOT "CANNOT BE HAD": the line stays in the trip.
515
+ */
516
+ export declare const notPricedForNoAnswer: (g: Pick<Unanswered, "name">) => {
517
+ title: string;
518
+ why: string;
519
+ code: "unreachable";
520
+ };
495
521
  //# sourceMappingURL=backend.d.ts.map