@curless/hotel-storefront 0.34.0 → 0.35.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.
Files changed (55) hide show
  1. package/dist/aggregate/make.d.ts.map +1 -1
  2. package/dist/aggregate/make.js +7 -1
  3. package/dist/aggregate/make.js.map +1 -1
  4. package/dist/backend.d.ts +2 -2
  5. package/dist/backend.d.ts.map +1 -1
  6. package/dist/card.generated.d.ts +1 -1
  7. package/dist/card.generated.js +2 -2
  8. package/dist/card.generated.js.map +1 -1
  9. package/dist/config.d.ts +24 -4
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/huazhu/backend.d.ts +2 -2
  13. package/dist/huazhu/backend.d.ts.map +1 -1
  14. package/dist/huazhu/backend.js +119 -10
  15. package/dist/huazhu/backend.js.map +1 -1
  16. package/dist/huazhu/bookings.d.ts +2 -0
  17. package/dist/huazhu/bookings.d.ts.map +1 -1
  18. package/dist/huazhu/bookings.js.map +1 -1
  19. package/dist/huazhu/catalog.d.ts +7 -1
  20. package/dist/huazhu/catalog.d.ts.map +1 -1
  21. package/dist/huazhu/catalog.js +8 -4
  22. package/dist/huazhu/catalog.js.map +1 -1
  23. package/dist/huazhu/make.d.ts.map +1 -1
  24. package/dist/huazhu/make.js +44 -13
  25. package/dist/huazhu/make.js.map +1 -1
  26. package/dist/legal.d.ts.map +1 -1
  27. package/dist/legal.js +131 -83
  28. package/dist/legal.js.map +1 -1
  29. package/dist/payments/checkout.d.ts +49 -1
  30. package/dist/payments/checkout.d.ts.map +1 -1
  31. package/dist/payments/checkout.js +9 -0
  32. package/dist/payments/checkout.js.map +1 -1
  33. package/dist/payments/fake-stripe.d.ts +37 -0
  34. package/dist/payments/fake-stripe.d.ts.map +1 -0
  35. package/dist/payments/fake-stripe.js +123 -0
  36. package/dist/payments/fake-stripe.js.map +1 -0
  37. package/dist/payments/stripe-checkout.d.ts +44 -0
  38. package/dist/payments/stripe-checkout.d.ts.map +1 -0
  39. package/dist/payments/stripe-checkout.js +166 -0
  40. package/dist/payments/stripe-checkout.js.map +1 -0
  41. package/dist/server.d.ts +2 -2
  42. package/dist/server.js +2 -2
  43. package/dist/surface.d.ts.map +1 -1
  44. package/dist/surface.js +34 -20
  45. package/dist/surface.js.map +1 -1
  46. package/dist/tools.d.ts.map +1 -1
  47. package/dist/tools.js +45 -23
  48. package/dist/tools.js.map +1 -1
  49. package/dist/types.d.ts +17 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/vocab.d.ts +20 -0
  52. package/dist/vocab.d.ts.map +1 -1
  53. package/dist/vocab.js +25 -2
  54. package/dist/vocab.js.map +1 -1
  55. package/package.json +1 -1
package/dist/legal.js CHANGED
@@ -35,18 +35,12 @@ const footer = (config) => {
35
35
  <br><a href="./docs">What this does</a> · <a href="./privacy">Privacy</a> · <a href="./terms">Terms</a>
36
36
  </div>`;
37
37
  };
38
- /**
39
- * Where the rooms come from: a demonstration file, a simulated copy of the
40
- * group's system (a test deployment), or the group's own system. Every page
41
- * that says who holds a booking asks this, never `data.source` alone - an api
42
- * source can be the simulation.
43
- */
44
38
  const sourceOf = (c) => c.data.source === 'aggregate'
45
39
  ? groupsOf(c).every((g) => g.source !== 'live')
46
40
  ? 'demo'
47
41
  : 'live'
48
42
  : dataSource(c.data);
49
- const dataSource = (d) => d.source !== 'api' ? 'demo' : d.api?.sandbox ? 'sandbox' : 'live';
43
+ const dataSource = (d) => d.source !== 'api' ? 'demo' : d.api?.sandbox ? 'sandbox' : d.api?.test ? 'test' : 'live';
50
44
  /**
51
45
  * A market's groups, and where each one's rooms come from - or none, on a
52
46
  * group's own connector.
@@ -59,6 +53,19 @@ const dataSource = (d) => d.source !== 'api' ? 'demo' : d.api?.sandbox ? 'sandbo
59
53
  const groupsOf = (c) => c.data.source === 'aggregate'
60
54
  ? (c.data.suppliers ?? []).map((x) => ({ name: x.name, source: dataSource(x.data) }))
61
55
  : [];
56
+ /**
57
+ * Who takes a rate paid in advance: Stripe's own checkout page, directly (华住,
58
+ * robin 2026-10-15: until Curless takes the money), or the operator's payment
59
+ * gateway, which runs on Stripe.
60
+ */
61
+ const viaStripe = (c) => c.data.source === 'api' && c.data.api?.prepaid?.provider === 'stripe';
62
+ const payPage = (c) => viaStripe(c)
63
+ ? "Stripe's own checkout page"
64
+ : `the card page of ${esc(c.legal.operator ?? 'Curless')}'s payment gateway, run by Stripe`;
65
+ /** The same page, after "on": the short form a sentence in the terms uses. */
66
+ const payPageShort = (c) => viaStripe(c) ? "Stripe's own checkout page" : "the payment gateway's card page";
67
+ /** A test deployment - a simulated copy of the group's system or its own test system: nothing is paid. */
68
+ const testing = (c) => sourceOf(c) === 'sandbox' || sourceOf(c) === 'test';
62
69
  const andOf = (xs) => xs.length < 2 ? (xs[0] ?? '') : `${xs.slice(0, -1).join(', ')} and ${xs[xs.length - 1]}`;
63
70
  /** One line per group, saying what `say` says about it. */
64
71
  const perGroup = (c, say) => `<ul>${groupsOf(c)
@@ -68,18 +75,28 @@ const perGroup = (c, say) => `<ul>${groupsOf(c)
68
75
  const demoBanner = (config) => config.data.source === 'aggregate'
69
76
  ? sourceOf(config) === 'live'
70
77
  ? ''
71
- : `<p><strong>This is a demonstration.</strong> Every hotel group here is a demonstration or a
78
+ : groupsOf(config).some((g) => g.source === 'test')
79
+ ? `<p><strong>This is a demonstration.</strong> Every hotel group here is a demonstration, a
80
+ simulated copy of its booking system or the group's own test system: none of the rates is one
81
+ anyone can book. Nothing booked through it reserves a real room, and no money changes hands.</p>`
82
+ : `<p><strong>This is a demonstration.</strong> Every hotel group here is a demonstration or a
72
83
  simulated copy of its booking system: the properties may be real, but every rate, room count,
73
84
  add-on price and cancellation fee was made up. Nothing booked through it reserves a real room,
74
85
  and no money changes hands.</p>`
75
86
  : sourceOf(config) === 'live'
76
87
  ? ''
77
- : sourceOf(config) === 'sandbox'
78
- ? `<p><strong>This is a test environment.</strong> It answers from a simulated copy of
88
+ : sourceOf(config) === 'test'
89
+ ? `<p><strong>This is a test environment.</strong> It answers from ${esc(config.brand)}'s own test
90
+ system, not its live one: the hotels, rates and rooms are ${esc(config.brand)}'s test data, and a
91
+ booking made through it is a test booking in that system. It holds no room for anyone, ${config.data.source === 'api' && config.data.api?.prepaid
92
+ ? 'a rate paid in advance is paid with a test card in test mode - no real money moves -'
93
+ : 'nothing is paid,'} and nobody needs to go to the hotel.</p>`
94
+ : sourceOf(config) === 'sandbox'
95
+ ? `<p><strong>This is a test environment.</strong> It answers from a simulated copy of
79
96
  ${esc(config.brand)}'s booking system, not from ${esc(config.brand)}: the hotels, rates, rooms and fees
80
97
  were invented for testing, and nothing booked through it is a ${esc(config.brand)} reservation.
81
98
  No room is held and no money changes hands.</p>`
82
- : `<p><strong>This is a demonstration.</strong> The ${esc(config.brand)} properties named here are real, but
99
+ : `<p><strong>This is a demonstration.</strong> The ${esc(config.brand)} properties named here are real, but
83
100
  every rate, room count, add-on price and cancellation fee it answers with was made up for the demo.
84
101
  Nothing booked through it reserves a real room, and no money changes hands.</p>`;
85
102
  /**
@@ -139,20 +156,27 @@ const marksNotice = (config) => config.data.source === 'aggregate'
139
156
  ? `<h2>Names and pictures</h2>
140
157
  <p>${marketMarks(config)} ${esc(config.brand)} shows their ${esc(config.naming?.nounPlural ?? 'hotels')} side by side; it is operated by ${esc(config.legal.operator ?? 'Curless')}, is none of them, and
141
158
  does not speak for any of them.</p>`
142
- : sourceOf(config) === 'sandbox'
143
- ? `<h2>Names</h2>
159
+ : sourceOf(config) === 'test'
160
+ ? `<h2>Names and pictures</h2>
161
+ <p>${esc(config.brand)}, the names of its brands and properties and the photographs shown on the card
162
+ belong to ${esc(config.brand)}, and come from its own test system. They are used here to test a
163
+ booking connector for ${esc(config.brand)} against that test system, before it is connected to the
164
+ live one. This connector is operated by ${esc(config.legal.operator ?? 'Curless')}; it is not
165
+ ${esc(config.brand)} and does not speak for it.</p>`
166
+ : sourceOf(config) === 'sandbox'
167
+ ? `<h2>Names</h2>
144
168
  <p>${esc(config.brand)} and the names of its brands belong to ${esc(config.brand)}. They are used here to
145
169
  test a booking connector for ${esc(config.brand)} against a simulated copy of its distribution system,
146
170
  before it is connected to the real one; the hotels shown are invented. This connector is operated by
147
171
  ${esc(config.legal.operator ?? 'Curless')}; it is not ${esc(config.brand)} and does not speak for it.</p>
148
172
  <p>${stockPhotos(config.brand)}</p>`
149
- : sourceOf(config) === 'live'
150
- ? `<h2>Names and pictures</h2>
173
+ : sourceOf(config) === 'live'
174
+ ? `<h2>Names and pictures</h2>
151
175
  <p>${esc(config.brand)}, the names of its properties and the photographs shown on the card belong to
152
176
  ${esc(config.brand)}, and come from its own distribution system. This connector is operated by
153
177
  ${esc(config.legal.operator ?? 'Curless')}, which sells ${esc(config.brand)}'s rooms as a distributor;
154
178
  it is not ${esc(config.brand)}.</p>`
155
- : `<h2>Names and pictures</h2>
179
+ : `<h2>Names and pictures</h2>
156
180
  <p>${esc(config.brand)}, the names of its properties and the photographs shown on the card belong to
157
181
  ${esc(config.brand)}. They are used here to demonstrate a booking connector against the group's real
158
182
  property list. This connector is operated by ${esc(config.legal.operator ?? 'Curless')} and is not
@@ -164,11 +188,13 @@ export const docsPage = (config, caps = FULL_CAPABILITIES) => shell('What this c
164
188
  ${esc(config.brand)} holds no booking itself.</p>
165
189
  ${demoBanner(config)}
166
190
  <h2>Who a booking is with</h2>
167
- ${perGroup(config, (g) => g.source === 'sandbox'
168
- ? `a booking in a simulated copy of ${esc(g.name)}'s booking system, for testing: a confirmation code there, no room, nothing paid. Its ${esc(config.naming?.nounPlural ?? 'hotels')} are invented. ${stockPhotos(g.name)}`
169
- : g.source === 'demo'
170
- ? `a demonstration booking request: a confirmation code is issued, but ${esc(g.name)} does not receive it and no room is held.`
171
- : `${esc(g.name)}'s own booking, made in its system under its terms; this connector takes no payment.`)}
191
+ ${perGroup(config, (g) => g.source === 'test'
192
+ ? `a test booking in ${esc(g.name)}'s own test system, for testing: a confirmation code there, no room held for anyone, nothing paid.`
193
+ : g.source === 'sandbox'
194
+ ? `a booking in a simulated copy of ${esc(g.name)}'s booking system, for testing: a confirmation code there, no room, nothing paid. Its ${esc(config.naming?.nounPlural ?? 'hotels')} are invented. ${stockPhotos(g.name)}`
195
+ : g.source === 'demo'
196
+ ? `a demonstration booking request: a confirmation code is issued, but ${esc(g.name)} does not receive it and no room is held.`
197
+ : `${esc(g.name)}'s own booking, made in its system under its terms; this connector takes no payment.`)}
172
198
  <h2>What it will not do</h2>
173
199
  <ul>
174
200
  <li><strong>Take payment.</strong> This connector collects no card details and charges nothing.</li>
@@ -178,14 +204,16 @@ export const docsPage = (config, caps = FULL_CAPABILITIES) => shell('What this c
178
204
  ${footer(config)}`
179
205
  : `<h1>${esc(config.brand)} ${esc(config.naming?.nounPlural ?? 'hotels')}</h1>
180
206
  <p>An MCP connector that lets an AI assistant look up ${esc(config.brand)} properties, price a stay on
181
- given nights, put ${caps.extras ? 'rooms and add-ons' : 'rooms'} into a trip, and ${sourceOf(config) === 'sandbox'
182
- ? 'book those rooms in a simulated copy of its system, for testing'
183
- : caps.booking === 'pay-at-hotel'
184
- ? 'book those rooms, to be paid at the hotel'
185
- : sourceOf(config) === 'demo'
186
- ? // The list below says nothing is held - this line said "held" (2026-10-05 audit, P3).
187
- 'make a demonstration booking request for them - nothing is held and nothing is paid'
188
- : 'ask for those rooms to be held'}.</p>
207
+ given nights, put ${caps.extras ? 'rooms and add-ons' : 'rooms'} into a trip, and ${sourceOf(config) === 'test'
208
+ ? 'book those rooms in its own test system, for testing - a test booking holds no room for anyone'
209
+ : sourceOf(config) === 'sandbox'
210
+ ? 'book those rooms in a simulated copy of its system, for testing'
211
+ : caps.booking === 'pay-at-hotel'
212
+ ? 'book those rooms, to be paid at the hotel'
213
+ : sourceOf(config) === 'demo'
214
+ ? // The list below says nothing is held - this line said "held" (2026-10-05 audit, P3).
215
+ 'make a demonstration booking request for them - nothing is held and nothing is paid'
216
+ : 'ask for those rooms to be held'}.</p>
189
217
  ${demoBanner(config)}${sourceOf(config) === 'sandbox' ? `\n <p>${stockPhotos(config.brand)}</p>` : ''}
190
218
  <h2>What it can do</h2>
191
219
  <ul>
@@ -193,13 +221,15 @@ export const docsPage = (config, caps = FULL_CAPABILITIES) => shell('What this c
193
221
  <li>Show one property's rooms for specific nights, with the stay total including taxes and fees,
194
222
  the cancellation terms, and how many rooms are left.</li>
195
223
  <li>Build a trip of room nights${caps.extras ? ' and add-ons' : ''}, and price it.</li>
196
- <li>${sourceOf(config) === 'sandbox'
197
- ? 'Book: each stay becomes a reservation in the simulated system, with its own confirmation code.'
198
- : caps.booking === 'pay-at-hotel'
199
- ? `Book: each stay becomes ${esc(config.brand)}'s own reservation, with its own confirmation code, paid at the hotel.`
200
- : sourceOf(config) === 'demo'
201
- ? `Request a demonstration booking: a confirmation code is issued, but ${esc(config.brand)} does not receive it and no room is held.`
202
- : 'Request a booking: the rooms are held and a confirmation code is issued.'}</li>
224
+ <li>${sourceOf(config) === 'test'
225
+ ? `Book: each stay becomes a test booking in ${esc(config.brand)}'s test system, with its own confirmation code - it holds no room for anyone.`
226
+ : sourceOf(config) === 'sandbox'
227
+ ? 'Book: each stay becomes a reservation in the simulated system, with its own confirmation code.'
228
+ : caps.booking === 'pay-at-hotel'
229
+ ? `Book: each stay becomes ${esc(config.brand)}'s own reservation, with its own confirmation code, paid at the hotel.`
230
+ : sourceOf(config) === 'demo'
231
+ ? `Request a demonstration booking: a confirmation code is issued, but ${esc(config.brand)} does not receive it and no room is held.`
232
+ : 'Request a booking: the rooms are held and a confirmation code is issued.'}</li>
203
233
  <li>Show what cancelling would cost before anything is cancelled, then cancel.</li>
204
234
  ${caps.policies === false ? '' : "<li>Answer from the property's own published policies.</li>"}
205
235
  </ul>
@@ -212,8 +242,8 @@ export const docsPage = (config, caps = FULL_CAPABILITIES) => shell('What this c
212
242
  : 'Take payment'}.</strong> ${config.payment?.mode === 'wallet'
213
243
  ? 'A charge follows the guest pressing pay, never an assistant deciding to.'
214
244
  : caps.prepaid
215
- ? `A rate marked paid in advance is paid by the guest on the card page of ${esc(config.legal.operator ?? 'Curless')}'s payment gateway, run by Stripe${sourceOf(config) === 'sandbox' ? ' - here in test mode: test cards only, and no real money moves' : ''}. Card details go to Stripe; this connector never sees them, and charges nothing itself. Every other rate is paid at the hotel${sourceOf(config) === 'sandbox' ? ', and in this test environment nothing is paid anywhere' : ''}.`
216
- : sourceOf(config) === 'sandbox'
245
+ ? `A rate marked paid in advance is paid by the guest on ${payPage(config)}${testing(config) ? ' - here in test mode: test cards only, and no real money moves' : ''}. Card details go to Stripe; this connector never sees them, and charges nothing itself. Every other rate is paid at the hotel${testing(config) ? ', and in this test environment nothing is paid anywhere' : ''}.`
246
+ : testing(config)
217
247
  ? 'This connector collects no card details and charges nothing, and in this test environment nothing is paid anywhere.'
218
248
  : sourceOf(config) === 'demo'
219
249
  ? 'This connector collects no card details and charges nothing, and a demonstration booking is never paid anywhere.'
@@ -241,26 +271,30 @@ persisted = false) => shell('Privacy', config.brand, `<h1>Privacy</h1>
241
271
  ? "It is kept on this connector's server for those hours, so that a restart does not lose it, and then deleted."
242
272
  : 'It is not written to disk and does not survive a restart.'}</li>
243
273
  ${caps.prepaid
244
- ? `<li><strong>A stay paid in advance</strong> — the gateway's references for the payment and, when money goes back, for the refund, kept with the booking so the money can be traced and returned in full; never card details. The payment itself is handled by ${esc(config.legal.operator ?? 'Curless')}'s payment gateway and Stripe.</li>
274
+ ? `<li><strong>A stay paid in advance</strong> — ${viaStripe(config) ? "Stripe's" : "the gateway's"} references for the payment and, when money goes back, for the refund, kept with the booking so the money can be traced and returned in full; never card details. The payment itself is handled by ${viaStripe(config) ? 'Stripe' : `${esc(config.legal.operator ?? 'Curless')}'s payment gateway and Stripe`}.</li>
245
275
  `
246
276
  : ''}<li><strong>A booking you request</strong> — the name and email you gave, ${caps.requiresPhone ? 'your phone number' : 'a phone number if you\n gave one'}, the room requests (a bed type, a floor, a quiet, connecting or accessible room, an
247
277
  early check-in or a late arrival), your arrival time and any note, the dates, rooms and price${sourceOf(config) === 'demo'
248
278
  ? ',\n and the reason if you give one for cancelling'
249
279
  : ''}. ${config.data.source === 'aggregate'
250
- ? `Where it goes is the group's whose ${esc(config.naming?.noun ?? 'hotel')} it is:${perGroup(config, (g) => g.source === 'sandbox'
251
- ? `sent to a simulated copy of ${esc(g.name)}'s system that ${esc(config.legal.operator ?? 'Curless')} runs on the same server - never to ${esc(g.name)} - and both keep it until 90 days after the check-out date.`
252
- : g.source === 'live'
253
- ? `sent to ${esc(g.name)}, who make and keep the reservation; this connector also keeps a copy on its own server until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation.`
254
- : persisted
255
- ? `a demonstration: ${esc(g.name)} never receives it. It is kept on this connector's server until 90 days after the check-out date, and then deleted.`
256
- : `a demonstration: ${esc(g.name)} never receives it. It is kept in memory for as long as this process runs, and nothing is written to disk.`)}`
257
- : sourceOf(config) === 'sandbox'
258
- ? `In this test environment it is sent to a simulated copy of ${esc(config.brand)}'s system that ${esc(config.legal.operator ?? 'Curless')} runs on the same server - never to ${esc(config.brand)} - and both keep it until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation.`
259
- : sourceOf(config) === 'live'
260
- ? `It is sent to ${esc(config.brand)}, who make and keep the reservation - the name, the email, the phone number, the dates, the rooms and the requests, which reach the hotel's desk. This connector also keeps a copy on its own server, until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation: ${esc(config.brand)}'s system does not give back the email a booking was made with. A booking a person here has to confirm or cancel with ${esc(config.brand)} by hand is kept until 90 days after that is done, if that is later.`
261
- : persisted
262
- ? "In this demonstration it is kept on this connector's server until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation, and then deleted."
263
- : 'In this demonstration it is kept in memory for as long as this process runs, and nothing is written to disk; once there are many, bookings that are over are forgotten first.'}</li>
280
+ ? `Where it goes is the group's whose ${esc(config.naming?.noun ?? 'hotel')} it is:${perGroup(config, (g) => g.source === 'test'
281
+ ? `sent to ${esc(g.name)}'s own test system - not its live one - which keeps it as a test booking; this connector also keeps a copy on its own server until 90 days after the check-out date.`
282
+ : g.source === 'sandbox'
283
+ ? `sent to a simulated copy of ${esc(g.name)}'s system that ${esc(config.legal.operator ?? 'Curless')} runs on the same server - never to ${esc(g.name)} - and both keep it until 90 days after the check-out date.`
284
+ : g.source === 'live'
285
+ ? `sent to ${esc(g.name)}, who make and keep the reservation; this connector also keeps a copy on its own server until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation.`
286
+ : persisted
287
+ ? `a demonstration: ${esc(g.name)} never receives it. It is kept on this connector's server until 90 days after the check-out date, and then deleted.`
288
+ : `a demonstration: ${esc(g.name)} never receives it. It is kept in memory for as long as this process runs, and nothing is written to disk.`)}`
289
+ : sourceOf(config) === 'test'
290
+ ? `In this test environment it is sent to ${esc(config.brand)}'s own test system - not its live one - which keeps it as a test booking; this connector also keeps a copy on its own server until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation.`
291
+ : sourceOf(config) === 'sandbox'
292
+ ? `In this test environment it is sent to a simulated copy of ${esc(config.brand)}'s system that ${esc(config.legal.operator ?? 'Curless')} runs on the same server - never to ${esc(config.brand)} - and both keep it until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation.`
293
+ : sourceOf(config) === 'live'
294
+ ? `It is sent to ${esc(config.brand)}, who make and keep the reservation - the name, the email, the phone number, the dates, the rooms and the requests, which reach the hotel's desk. This connector also keeps a copy on its own server, until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation: ${esc(config.brand)}'s system does not give back the email a booking was made with. A booking a person here has to confirm or cancel with ${esc(config.brand)} by hand is kept until 90 days after that is done, if that is later.`
295
+ : persisted
296
+ ? "In this demonstration it is kept on this connector's server until 90 days after the check-out date, so that the booking can be found and cancelled from the conversation, and then deleted."
297
+ : 'In this demonstration it is kept in memory for as long as this process runs, and nothing is written to disk; once there are many, bookings that are over are forgotten first.'}</li>
264
298
  <li><strong>Who can open a booking.</strong> The conversation it was made in — and anyone who
265
299
  gives its confirmation code together with the email it was made with, as a front desk would
266
300
  ask. That pair lets the booking be ${caps.changes ? 'read, changed or cancelled' : 'read or cancelled'}, from another conversation too,
@@ -320,7 +354,9 @@ sourceOf(config) !== 'demo' || groupsOf(config).some((g) => g.source !== 'demo')
320
354
  ? marketPictures(config)
321
355
  : sourceOf(config) === 'sandbox'
322
356
  ? 'stock photographs - not pictures of these hotels, which are invented -'
323
- : "the hotels' own photographs,"} loaded straight from ${imageHosts
357
+ : sourceOf(config) === 'test'
358
+ ? `the photographs ${esc(config.brand)}'s test system has for its test hotels,`
359
+ : "the hotels' own photographs,"} loaded straight from ${imageHosts
324
360
  .map((h) => `<code>${esc(h.replace(/^https?:\/\//, ''))}</code>`)
325
361
  .join(', ')}. As with any picture on the web, that host sees the address of the device the card
326
362
  is open on when it loads one. Nothing else is sent to it.</p>`
@@ -342,39 +378,51 @@ export const termsPage = (config, caps = FULL_CAPABILITIES) => shell('Terms', co
342
378
  your behalf. ${config.data.source === 'aggregate'
343
379
  ? `It shows the ${esc(config.naming?.nounPlural ?? 'hotels')} of several groups side by side; ${esc(config.brand)} is not a hotel and holds no booking. ${sourceOf(config) === 'live'
344
380
  ? "Each group's rooms, rates and policies come from that group, and a booking is between you and it."
345
- : 'The rates, availability, fees, descriptions and policies it shows come from demonstration files and simulated booking systems, and do not reserve anything.'}`
346
- : sourceOf(config) === 'sandbox'
347
- ? 'The hotels, rates and availability it shows come from a simulated booking system, for testing, and do not reserve anything.'
348
- : sourceOf(config) === 'live'
349
- ? `The rooms, rates and policies come from ${esc(config.brand)}; the booking is between you and them.`
350
- : // Said as the fence around a policy says it - written for the demo,
351
- // not the hotel's own words (2026-10-05 audit, P3).
352
- 'The rates, availability, fees, descriptions and policies it shows were written for this demonstration and do not reserve anything.'}</p>
381
+ : groupsOf(config).some((g) => g.source === 'test')
382
+ ? "The rates, availability, fees, descriptions and policies it shows come from demonstration files, simulated booking systems and the groups' own test systems, and do not reserve anything."
383
+ : 'The rates, availability, fees, descriptions and policies it shows come from demonstration files and simulated booking systems, and do not reserve anything.'}`
384
+ : sourceOf(config) === 'test'
385
+ ? `The hotels, rates and availability it shows come from ${esc(config.brand)}'s own test system, for testing, and do not reserve anything.`
386
+ : sourceOf(config) === 'sandbox'
387
+ ? 'The hotels, rates and availability it shows come from a simulated booking system, for testing, and do not reserve anything.'
388
+ : sourceOf(config) === 'live'
389
+ ? `The rooms, rates and policies come from ${esc(config.brand)}; the booking is between you and them.`
390
+ : // Said as the fence around a policy says it - written for the demo,
391
+ // not the hotel's own words (2026-10-05 audit, P3).
392
+ 'The rates, availability, fees, descriptions and policies it shows were written for this demonstration and do not reserve anything.'}</p>
353
393
  <h2>Bookings</h2>
354
394
  ${config.data.source === 'aggregate'
355
395
  ? `<p>A booking is made with the group the ${esc(config.naming?.noun ?? 'hotel')} belongs to, one group at a time, under that group's terms; this connector takes no payment.</p>
356
- ${perGroup(config, (g) => g.source === 'sandbox'
357
- ? `made in a simulated copy of ${esc(g.name)}'s system: it reserves no room, and nothing is paid. Its cancellation terms are the simulated rate's.`
358
- : g.source === 'demo'
359
- ? `a demonstration, not a confirmed reservation: ${esc(g.name)} does not receive it, no real room is held, and nothing is paid. Its demonstration hold lapses at the time stated on the confirmation, and its cancellation terms were written for this demonstration.`
360
- : `${esc(g.name)}'s own booking, under its terms. Its cancellation terms are the property's own.`)}
396
+ ${perGroup(config, (g) => g.source === 'test'
397
+ ? `a test booking in ${esc(g.name)}'s own test system: it holds no room for anyone, and nothing is paid. Its cancellation terms are the test rate's.`
398
+ : g.source === 'sandbox'
399
+ ? `made in a simulated copy of ${esc(g.name)}'s system: it reserves no room, and nothing is paid. Its cancellation terms are the simulated rate's.`
400
+ : g.source === 'demo'
401
+ ? `a demonstration, not a confirmed reservation: ${esc(g.name)} does not receive it, no real room is held, and nothing is paid. Its demonstration hold lapses at the time stated on the confirmation, and its cancellation terms were written for this demonstration.`
402
+ : `${esc(g.name)}'s own booking, under its terms. Its cancellation terms are the property's own.`)}
361
403
  <p>Cancellation terms are shown in full before anything is cancelled.</p>`
362
- : `<p>${sourceOf(config) === 'sandbox'
363
- ? `In this test environment a booking is made in a simulated copy of ${esc(config.brand)}'s system: it reserves no room${caps.prepaid
364
- ? ". A rate marked paid in advance is paid first, on the payment gateway's card page in test mode, and booked once it is paid; if the simulated system does not take it, or it is cancelled in its free period, all of it goes back. Nothing else is paid."
365
- : ', and nothing is paid.'}`
366
- : config.payment?.mode === 'wallet'
367
- ? 'A booking is confirmed once payment completes. Until then the rooms are held only.'
368
- : caps.booking === 'pay-at-hotel'
369
- ? `A booking is ${esc(config.brand)}'s own reservation, made in your name and paid at the hotel under its terms; this connector takes no payment. A booking whose confirmation has not come back from ${esc(config.brand)} is said to be waiting until it has.`
370
- : sourceOf(config) === 'demo'
371
- ? `A booking request here is a demonstration and is not a confirmed reservation: ${esc(config.brand)} does not receive it, no real room is held, and nothing is paid. Its demonstration hold lapses at the time stated on the confirmation.`
372
- : 'A booking request holds rooms; it takes no payment and is not a confirmed reservation. The hold lapses at the time stated on the confirmation.'} ${sourceOf(config) === 'sandbox'
373
- ? 'Cancellation terms are the simulated rate’s, and are'
374
- : sourceOf(config) === 'demo'
375
- ? // Written for the demo like everything else here - not the property's (2026-10-05 audit, P3).
376
- 'Cancellation terms were written for this demonstration, and are'
377
- : "Cancellation terms are the property's own, and are"} shown in full before anything is cancelled.</p>`}
404
+ : `<p>${sourceOf(config) === 'test'
405
+ ? `In this test environment a booking is a test booking in ${esc(config.brand)}'s own test system: it holds no room for anyone${caps.prepaid
406
+ ? `. A rate marked paid in advance is paid first, on ${payPageShort(config)} in test mode with a test card - no real money moves - and booked once it is paid; if the test system does not take it, or it is cancelled in its free period, all of it goes back. Nothing else is paid.`
407
+ : ', nothing is paid, and nobody needs to go to the hotel.'}`
408
+ : sourceOf(config) === 'sandbox'
409
+ ? `In this test environment a booking is made in a simulated copy of ${esc(config.brand)}'s system: it reserves no room${caps.prepaid
410
+ ? `. A rate marked paid in advance is paid first, on ${payPageShort(config)} in test mode, and booked once it is paid; if the simulated system does not take it, or it is cancelled in its free period, all of it goes back. Nothing else is paid.`
411
+ : ', and nothing is paid.'}`
412
+ : config.payment?.mode === 'wallet'
413
+ ? 'A booking is confirmed once payment completes. Until then the rooms are held only.'
414
+ : caps.booking === 'pay-at-hotel'
415
+ ? `A booking is ${esc(config.brand)}'s own reservation, made in your name and paid at the hotel under its terms; this connector takes no payment. A booking whose confirmation has not come back from ${esc(config.brand)} is said to be waiting until it has.`
416
+ : sourceOf(config) === 'demo'
417
+ ? `A booking request here is a demonstration and is not a confirmed reservation: ${esc(config.brand)} does not receive it, no real room is held, and nothing is paid. Its demonstration hold lapses at the time stated on the confirmation.`
418
+ : 'A booking request holds rooms; it takes no payment and is not a confirmed reservation. The hold lapses at the time stated on the confirmation.'} ${sourceOf(config) === 'test'
419
+ ? 'Cancellation terms are the test rate’s, and are'
420
+ : sourceOf(config) === 'sandbox'
421
+ ? 'Cancellation terms are the simulated rate’s, and are'
422
+ : sourceOf(config) === 'demo'
423
+ ? // Written for the demo like everything else here - not the property's (2026-10-05 audit, P3).
424
+ 'Cancellation terms were written for this demonstration, and are'
425
+ : "Cancellation terms are the property's own, and are"} shown in full before anything is cancelled.</p>`}
378
426
  <h2>No warranty</h2>
379
427
  <p>This connector is provided as is. ${sourceOf(config) === 'live'
380
428
  ? 'Rates and availability can change between a quote and a booking.'
package/dist/legal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"legal.js","sourceRoot":"","sources":["../src/legal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"legal.js","sourceRoot":"","sources":["../src/legal.ts"],"names":[],"mappings":"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"}
@@ -23,12 +23,55 @@ export type CheckoutOptions = {
23
23
  fetch?: typeof fetch;
24
24
  timeoutMs?: number;
25
25
  };
26
+ /**
27
+ * What the booking path takes a guest's money through - the agentbank
28
+ * gateway (`GatewayCheckout`) or, while the gateway cannot take it, Stripe
29
+ * directly in test mode (`StripeCheckout`, 2026-10-15). It does not know which.
30
+ */
31
+ export type Checkout = {
32
+ readonly method: PaymentMethod;
33
+ /**
34
+ * A page for one stay, at the total the guest was shown. `ref` is the
35
+ * booking's distributorResId, `code` its confirmation code - both written on
36
+ * the payment, so it is found from either side.
37
+ */
38
+ open(o: {
39
+ ref: string;
40
+ code?: string;
41
+ title: string;
42
+ amountMinor: number;
43
+ currency: string;
44
+ }): Promise<OpenedCheckout>;
45
+ state(sessionId: string): Promise<CheckoutState>;
46
+ /**
47
+ * What a paid page took, to be held to the quote before anything is booked
48
+ * (总线程, 2026-10-15). Undefined when it is not paid.
49
+ */
50
+ paidAmount(sessionId: string): Promise<{
51
+ amountMinor: number;
52
+ currency: string;
53
+ } | undefined>;
54
+ close(sessionId: string): Promise<CheckoutState>;
55
+ /** `key` names this refund among any others of the payment - see `StripeCheckout.refund`. */
56
+ refund(sessionId: string, reason: string, key?: string): Promise<{
57
+ requestId: string;
58
+ status: string;
59
+ }>;
60
+ /** requested, approved (on its way), refunded, failed or rejected. */
61
+ refundState(requestId: string): Promise<string>;
62
+ /**
63
+ * Writes more onto the payment once it is known - Huazhu's own order
64
+ * number, after the booking (总线程, 2026-10-15). Where a way of paying has
65
+ * nowhere to write it, it has no such call.
66
+ */
67
+ annotate?(sessionId: string, notes: Record<string, string>): Promise<void>;
68
+ };
26
69
  /** The gateway refused, or could not be reached - with what it said. */
27
70
  export declare class CheckoutError extends Error {
28
71
  readonly status?: number | undefined;
29
72
  constructor(message: string, status?: number | undefined);
30
73
  }
31
- export declare class GatewayCheckout {
74
+ export declare class GatewayCheckout implements Checkout {
32
75
  private readonly opts;
33
76
  private readonly fetch;
34
77
  readonly method: PaymentMethod;
@@ -42,12 +85,17 @@ export declare class GatewayCheckout {
42
85
  open(o: {
43
86
  /** Ours, and the line's id at the gateway: the booking's `distributorResId`. */
44
87
  ref: string;
88
+ code?: string;
45
89
  title: string;
46
90
  amountMinor: number;
47
91
  currency: string;
48
92
  }): Promise<OpenedCheckout>;
49
93
  /** Whether it has been paid, is still open, or is closed without payment. */
50
94
  state(sessionId: string): Promise<CheckoutState>;
95
+ paidAmount(sessionId: string): Promise<{
96
+ amountMinor: number;
97
+ currency: string;
98
+ } | undefined>;
51
99
  /**
52
100
  * Closes an unpaid checkout and its card page - so a page left past its
53
101
  * deadline cannot be paid (总线程, 2026-10-12). Answers what it is now: a
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/payments/checkout.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG;IAC3B,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wEAAwE;AACxE,qBAAa,aAAc,SAAQ,KAAK;IAGpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBADxB,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA;CAK3B;AAQD,qBAAa,eAAe;IAId,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEF,IAAI,EAAE,eAAe;YASpC,IAAI;IA6BlB,OAAO,CAAC,OAAO,CACkF;IAEjG;;;OAGG;IACG,IAAI,CAAC,CAAC,EAAE;QACZ,gFAAgF;QAChF,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB3B,6EAA6E;IACvE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD;;;;;OAKG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAetD;;;;;OAKG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB/F,mGAAmG;IAC7F,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOtD"}
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/payments/checkout.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,15 @@ export class GatewayCheckout {
92
92
  const s = await this.call('GET', this.session(sessionId));
93
93
  return STATE[String(s?.status)] ?? 'open';
94
94
  }
95
+ async paidAmount(sessionId) {
96
+ const s = await this.call('GET', this.session(sessionId));
97
+ if (STATE[String(s?.status)] !== 'paid')
98
+ return undefined;
99
+ const total = s.totals?.find((t) => t.type === 'total')?.amount;
100
+ return typeof total === 'number' && s.currency
101
+ ? { amountMinor: total, currency: s.currency.toUpperCase() }
102
+ : undefined;
103
+ }
95
104
  /**
96
105
  * Closes an unpaid checkout and its card page - so a page left past its
97
106
  * deadline cannot be paid (总线程, 2026-10-12). Answers what it is now: a
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/payments/checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/payments/checkout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ type Session = {
2
+ id: string;
3
+ url: string;
4
+ status: 'open' | 'complete' | 'expired';
5
+ payment_status: 'paid' | 'unpaid';
6
+ amount_total: number;
7
+ currency: string;
8
+ ref?: string;
9
+ expiresAt: number;
10
+ payment_intent: string | null;
11
+ };
12
+ type Refund = {
13
+ id: string;
14
+ payment_intent: string;
15
+ status: 'pending' | 'succeeded' | 'failed';
16
+ };
17
+ export declare const createFakeStripe: (opts: {
18
+ apiKey: string;
19
+ }) => {
20
+ sessions: Map<string, Session>;
21
+ refunds: Map<string, Refund>;
22
+ calls: {
23
+ method: string;
24
+ path: string;
25
+ form: Record<string, string>;
26
+ key?: string;
27
+ }[];
28
+ /** Make writing onto a payment fail - Stripe having a bad moment. */
29
+ failNotes: boolean;
30
+ fetch: typeof fetch;
31
+ /** The guest pays on the page - `amount` to make it take other than it asked (a fault). */
32
+ pay(id: string, amount?: number): void;
33
+ /** The money arrives back on the card. */
34
+ settleRefunds(): void;
35
+ };
36
+ export {};
37
+ //# sourceMappingURL=fake-stripe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake-stripe.d.ts","sourceRoot":"","sources":["../../src/payments/fake-stripe.ts"],"names":[],"mappings":"AAMA,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;CAAE,CAAC;AAEjG,eAAO,MAAM,gBAAgB,GAAI,MAAM;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;;;gBAIhC,MAAM;cAAQ,MAAM;cAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAAQ,MAAM;;IAwFrF,qEAAqE;eAIpD,OAAO;WAOhB,OAAO,KAAK;IACpB,2FAA2F;YACnF,MAAM,WAAW,MAAM;IAQ/B,0CAA0C;;CAK7C,CAAC"}