@curless/hotel-storefront 0.35.0 → 0.35.2

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 (44) hide show
  1. package/dist/card.generated.d.ts +1 -1
  2. package/dist/card.generated.js +2 -2
  3. package/dist/card.generated.js.map +1 -1
  4. package/dist/config.d.ts +11 -4
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/huazhu/backend.d.ts.map +1 -1
  8. package/dist/huazhu/backend.js +90 -11
  9. package/dist/huazhu/backend.js.map +1 -1
  10. package/dist/huazhu/bookings.d.ts +2 -0
  11. package/dist/huazhu/bookings.d.ts.map +1 -1
  12. package/dist/huazhu/bookings.js.map +1 -1
  13. package/dist/huazhu/catalog.d.ts +7 -1
  14. package/dist/huazhu/catalog.d.ts.map +1 -1
  15. package/dist/huazhu/catalog.js +8 -4
  16. package/dist/huazhu/catalog.js.map +1 -1
  17. package/dist/huazhu/make.d.ts.map +1 -1
  18. package/dist/huazhu/make.js +44 -13
  19. package/dist/huazhu/make.js.map +1 -1
  20. package/dist/legal.d.ts.map +1 -1
  21. package/dist/legal.js +18 -6
  22. package/dist/legal.js.map +1 -1
  23. package/dist/payments/checkout.d.ts +27 -2
  24. package/dist/payments/checkout.d.ts.map +1 -1
  25. package/dist/payments/checkout.js +9 -0
  26. package/dist/payments/checkout.js.map +1 -1
  27. package/dist/payments/fake-stripe.d.ts +6 -3
  28. package/dist/payments/fake-stripe.d.ts.map +1 -1
  29. package/dist/payments/fake-stripe.js +35 -5
  30. package/dist/payments/fake-stripe.js.map +1 -1
  31. package/dist/payments/stripe-checkout.d.ts +9 -1
  32. package/dist/payments/stripe-checkout.d.ts.map +1 -1
  33. package/dist/payments/stripe-checkout.js +45 -5
  34. package/dist/payments/stripe-checkout.js.map +1 -1
  35. package/dist/server.d.ts +2 -2
  36. package/dist/server.js +2 -2
  37. package/dist/tools.d.ts.map +1 -1
  38. package/dist/tools.js +4 -1
  39. package/dist/tools.js.map +1 -1
  40. package/dist/vocab.d.ts +8 -1
  41. package/dist/vocab.d.ts.map +1 -1
  42. package/dist/vocab.js +5 -2
  43. package/dist/vocab.js.map +1 -1
  44. package/package.json +1 -1
@@ -30,21 +30,41 @@ export type CheckoutOptions = {
30
30
  */
31
31
  export type Checkout = {
32
32
  readonly method: PaymentMethod;
33
- /** A page for one stay, at the total the guest was shown. `ref` is the booking's distributorResId. */
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
+ */
34
38
  open(o: {
35
39
  ref: string;
40
+ code?: string;
36
41
  title: string;
37
42
  amountMinor: number;
38
43
  currency: string;
39
44
  }): Promise<OpenedCheckout>;
40
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>;
41
54
  close(sessionId: string): Promise<CheckoutState>;
42
- refund(sessionId: string, reason: string): Promise<{
55
+ /** `key` names this refund among any others of the payment - see `StripeCheckout.refund`. */
56
+ refund(sessionId: string, reason: string, key?: string): Promise<{
43
57
  requestId: string;
44
58
  status: string;
45
59
  }>;
46
60
  /** requested, approved (on its way), refunded, failed or rejected. */
47
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>;
48
68
  };
49
69
  /** The gateway refused, or could not be reached - with what it said. */
50
70
  export declare class CheckoutError extends Error {
@@ -65,12 +85,17 @@ export declare class GatewayCheckout implements Checkout {
65
85
  open(o: {
66
86
  /** Ours, and the line's id at the gateway: the booking's `distributorResId`. */
67
87
  ref: string;
88
+ code?: string;
68
89
  title: string;
69
90
  amountMinor: number;
70
91
  currency: string;
71
92
  }): Promise<OpenedCheckout>;
72
93
  /** Whether it has been paid, is still open, or is closed without payment. */
73
94
  state(sessionId: string): Promise<CheckoutState>;
95
+ paidAmount(sessionId: string): Promise<{
96
+ amountMinor: number;
97
+ currency: string;
98
+ } | undefined>;
74
99
  /**
75
100
  * Closes an unpaid checkout and its card page - so a page left past its
76
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":"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"}
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;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAC9F,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,6FAA6F;IAC7F,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,sEAAsE;IACtE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E,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,eAAgB,YAAW,QAAQ;IAIlC,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,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,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;IAKhD,UAAU,CACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAajE;;;;;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"}
@@ -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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"}
@@ -3,7 +3,7 @@ type Session = {
3
3
  url: string;
4
4
  status: 'open' | 'complete' | 'expired';
5
5
  payment_status: 'paid' | 'unpaid';
6
- amount: number;
6
+ amount_total: number;
7
7
  currency: string;
8
8
  ref?: string;
9
9
  expiresAt: number;
@@ -23,10 +23,13 @@ export declare const createFakeStripe: (opts: {
23
23
  method: string;
24
24
  path: string;
25
25
  form: Record<string, string>;
26
+ key?: string;
26
27
  }[];
28
+ /** Make writing onto a payment fail - Stripe having a bad moment. */
29
+ failNotes: boolean;
27
30
  fetch: typeof fetch;
28
- /** The guest pays on the page. */
29
- pay(id: string): void;
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;
30
33
  /** The money arrives back on the card. */
31
34
  settleRefunds(): void;
32
35
  };
@@ -1 +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,MAAM,EAAE,MAAM,CAAC;IACf,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;;;;gBAGhC,MAAM;cAAQ,MAAM;cAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;WAsE/D,OAAO,KAAK;IACpB,kCAAkC;YAC1B,MAAM;IAOd,0CAA0C;;CAK7C,CAAC"}
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"}
@@ -5,18 +5,32 @@
5
5
  // payment that was made.
6
6
  export const createFakeStripe = (opts) => {
7
7
  const sessions = new Map();
8
+ const state = { failNotes: false };
8
9
  const refunds = new Map();
9
10
  const calls = [];
10
11
  let seq = 0;
11
12
  const json = (status, body) => new Response(JSON.stringify(body), { status, headers: { 'content-type': 'application/json' } });
12
13
  const err = (status, message) => json(status, { error: { message } });
14
+ const answered = new Map();
13
15
  const handle = async (url, init) => {
14
16
  const method = (init.method ?? 'GET').toUpperCase();
15
17
  const path = url.pathname;
16
18
  const form = Object.fromEntries(new URLSearchParams(String(init.body ?? '')));
17
- calls.push({ method, path, form });
18
- if (new Headers(init.headers).get('authorization') !== `Bearer ${opts.apiKey}`)
19
+ const headers = new Headers(init.headers);
20
+ const key = headers.get('idempotency-key') ?? undefined;
21
+ calls.push({ method, path, form, ...(key ? { key } : {}) });
22
+ if (headers.get('authorization') !== `Bearer ${opts.apiKey}`)
19
23
  return err(401, 'Invalid API Key provided');
24
+ // Stripe's own rule: a repeat of a key gets the first answer, nothing new.
25
+ const seen = key ? answered.get(key) : undefined;
26
+ if (seen)
27
+ return new Response(seen.body, { status: seen.status });
28
+ const res = await route(method, path, form);
29
+ if (key && method === 'POST')
30
+ answered.set(key, { status: res.status, body: await res.clone().text() });
31
+ return res;
32
+ };
33
+ const route = async (method, path, form) => {
20
34
  if (method === 'POST' && path === '/v1/checkout/sessions') {
21
35
  const amount = Number(form['line_items[0][price_data][unit_amount]']);
22
36
  if (!(amount > 0))
@@ -27,7 +41,7 @@ export const createFakeStripe = (opts) => {
27
41
  url: `https://checkout.stripe.com/c/pay/${id}`,
28
42
  status: 'open',
29
43
  payment_status: 'unpaid',
30
- amount,
44
+ amount_total: amount,
31
45
  currency: String(form['line_items[0][price_data][currency]']),
32
46
  ...(form['metadata[ref]'] ? { ref: form['metadata[ref]'] } : {}),
33
47
  expiresAt: Number(form.expires_at),
@@ -61,6 +75,13 @@ export const createFakeStripe = (opts) => {
61
75
  refunds.set(id, r);
62
76
  return json(200, r);
63
77
  }
78
+ const intentPath = /^\/v1\/payment_intents\/([^/]+)$/.exec(path);
79
+ if (method === 'POST' && intentPath) {
80
+ if (state.failNotes)
81
+ return err(500, 'An unknown error occurred');
82
+ const paid = [...sessions.values()].find((x) => x.payment_intent === intentPath[1]);
83
+ return paid ? json(200, { id: intentPath[1] }) : err(404, 'No such payment_intent');
84
+ }
64
85
  const refundPath = /^\/v1\/refunds\/([^/]+)$/.exec(path);
65
86
  if (method === 'GET' && refundPath) {
66
87
  const r = refunds.get(decodeURIComponent(refundPath[1] ?? ''));
@@ -72,14 +93,23 @@ export const createFakeStripe = (opts) => {
72
93
  sessions,
73
94
  refunds,
74
95
  calls,
96
+ /** Make writing onto a payment fail - Stripe having a bad moment. */
97
+ get failNotes() {
98
+ return state.failNotes;
99
+ },
100
+ set failNotes(v) {
101
+ state.failNotes = v;
102
+ },
75
103
  fetch: (async (input, init) => handle(new URL(String(input instanceof Request ? input.url : input)), init ?? {})),
76
- /** The guest pays on the page. */
77
- pay(id) {
104
+ /** The guest pays on the page - `amount` to make it take other than it asked (a fault). */
105
+ pay(id, amount) {
78
106
  const s = sessions.get(id);
79
107
  if (!s || s.status !== 'open')
80
108
  throw new Error(`cannot pay ${id}`);
81
109
  s.status = 'complete';
82
110
  s.payment_status = 'paid';
111
+ if (amount !== undefined)
112
+ s.amount_total = amount;
83
113
  s.payment_intent = `pi_test_${++seq}`;
84
114
  },
85
115
  /** The money arrives back on the card. */
@@ -1 +1 @@
1
- {"version":3,"file":"fake-stripe.js","sourceRoot":"","sources":["../../src/payments/fake-stripe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-stripe.js","sourceRoot":"","sources":["../../src/payments/fake-stripe.ts"],"names":[],"mappings":"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"}
@@ -19,18 +19,26 @@ export declare class StripeCheckout implements Checkout {
19
19
  /** A Checkout page for one stay, at the total the guest was shown. */
20
20
  open(o: {
21
21
  ref: string;
22
+ code?: string;
22
23
  title: string;
23
24
  amountMinor: number;
24
25
  currency: string;
25
26
  }): Promise<OpenedCheckout>;
26
27
  state(sessionId: string): Promise<CheckoutState>;
28
+ /** Only a page Stripe calls paid - `payment_status: paid`, not `complete` alone. */
29
+ paidAmount(sessionId: string): Promise<{
30
+ amountMinor: number;
31
+ currency: string;
32
+ } | undefined>;
27
33
  /** Expires an unpaid page; one paid in the last second answers `paid`, and that money is the caller's. */
28
34
  close(sessionId: string): Promise<CheckoutState>;
29
35
  /** All of it back - a refund of the payment the page took. */
30
- refund(sessionId: string, reason: string): Promise<{
36
+ refund(sessionId: string, reason: string, key?: string): Promise<{
31
37
  requestId: string;
32
38
  status: string;
33
39
  }>;
40
+ /** Onto the PaymentIntent the page made - where the dashboard shows it beside the money. */
41
+ annotate(sessionId: string, notes: Record<string, string>): Promise<void>;
34
42
  refundState(requestId: string): Promise<string>;
35
43
  }
36
44
  //# sourceMappingURL=stripe-checkout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-checkout.d.ts","sourceRoot":"","sources":["../../src/payments/stripe-checkout.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5F,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AA6BF,qBAAa,cAAe,YAAW,QAAQ;IAKjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAED,IAAI,EAAE,qBAAqB;YAS1C,IAAI;IA2BlB,sEAAsE;IAChE,IAAI,CAAC,CAAC,EAAE;QACZ,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;IAqBrB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAMtD,0GAA0G;IACpG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBtD,8DAA8D;IACxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBzF,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOtD"}
1
+ {"version":3,"file":"stripe-checkout.d.ts","sourceRoot":"","sources":["../../src/payments/stripe-checkout.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5F,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AA6BF,qBAAa,cAAe,YAAW,QAAQ;IAKjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAED,IAAI,EAAE,qBAAqB;YAW1C,IAAI;IAkClB,sEAAsE;IAChE,IAAI,CAAC,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,cAAc,CAAC;IAwCrB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAMtD,oFAAoF;IAC9E,UAAU,CACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAUjE,0GAA0G;IACpG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgBtD,8DAA8D;IACxD,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAyBjD,4FAA4F;IACtF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAczE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOtD"}
@@ -33,12 +33,16 @@ export class StripeCheckout {
33
33
  base;
34
34
  constructor(opts) {
35
35
  this.opts = opts;
36
+ // The test account's own key, shared with the gateway (robin, 2026-10-15:
37
+ // everything here is a test) - in test mode only.
36
38
  if (!/^sk_test_/.test(opts.apiKey))
37
39
  throw new CheckoutError('paying on Stripe directly takes a test-mode key only (sk_test_…) - no real card is charged here');
38
40
  this.fetch = opts.fetch ?? globalThis.fetch;
39
41
  this.base = (opts.apiBase ?? 'https://api.stripe.com').replace(/\/$/, '');
40
42
  }
41
- async call(method, path, form) {
43
+ async call(method, path, form,
44
+ /** Stripe answers a repeat of this key with the first answer - never a second page or refund. */
45
+ idempotencyKey) {
42
46
  let res;
43
47
  try {
44
48
  res = await this.fetch(`${this.base}${path}`, {
@@ -46,6 +50,7 @@ export class StripeCheckout {
46
50
  headers: {
47
51
  authorization: `Bearer ${this.opts.apiKey}`,
48
52
  ...(form ? { 'content-type': 'application/x-www-form-urlencoded' } : {}),
53
+ ...(idempotencyKey ? { 'idempotency-key': idempotencyKey } : {}),
49
54
  },
50
55
  ...(form ? { body: new URLSearchParams(form).toString() } : {}),
51
56
  signal: AbortSignal.timeout(this.opts.timeoutMs ?? 15_000),
@@ -69,6 +74,19 @@ export class StripeCheckout {
69
74
  /** A Checkout page for one stay, at the total the guest was shown. */
70
75
  async open(o) {
71
76
  const back = this.opts.returnUrl;
77
+ // The booking it pays for - our code and Huazhu's distributorResId, its own
78
+ // key for the order - on the page and on the payment, so Stripe's
79
+ // dashboard and Huazhu's order are matched at a glance (总线程, 2026-10-15).
80
+ const ids = {
81
+ // One Stripe account for the gateway and this connector: which it was.
82
+ 'metadata[source]': 'huazhu-mcp',
83
+ 'payment_intent_data[metadata][source]': 'huazhu-mcp',
84
+ 'metadata[distributor_res_id]': o.ref,
85
+ 'payment_intent_data[metadata][distributor_res_id]': o.ref,
86
+ ...(o.code
87
+ ? { 'metadata[booking]': o.code, 'payment_intent_data[metadata][booking]': o.code }
88
+ : {}),
89
+ };
72
90
  const s = await this.call('POST', '/v1/checkout/sessions', {
73
91
  mode: 'payment',
74
92
  'payment_method_types[0]': 'card',
@@ -76,14 +94,16 @@ export class StripeCheckout {
76
94
  'line_items[0][price_data][currency]': o.currency.toLowerCase(),
77
95
  'line_items[0][price_data][unit_amount]': String(o.amountMinor),
78
96
  'line_items[0][price_data][product_data][name]': o.title.slice(0, 200),
79
- // The booking it pays for: the distributorResId, found again on both sides.
80
97
  client_reference_id: o.ref,
81
98
  'metadata[ref]': o.ref,
82
99
  'payment_intent_data[metadata][ref]': o.ref,
100
+ ...ids,
83
101
  success_url: `${back}${back.includes('?') ? '&' : '?'}paid=1`,
84
102
  cancel_url: back,
85
103
  expires_at: String(Math.floor(Date.now() / 1000) + PAGE_LIFE_S),
86
- });
104
+ },
105
+ // One page a booking, however often it is asked for.
106
+ `hz-open-${o.ref}`);
87
107
  if (!s?.id || !s.url)
88
108
  throw new CheckoutError('Stripe opened no Checkout page');
89
109
  return { sessionId: s.id, url: s.url };
@@ -91,6 +111,13 @@ export class StripeCheckout {
91
111
  async state(sessionId) {
92
112
  return stateOf(await this.call('GET', `/v1/checkout/sessions/${encodeURIComponent(sessionId)}`));
93
113
  }
114
+ /** Only a page Stripe calls paid - `payment_status: paid`, not `complete` alone. */
115
+ async paidAmount(sessionId) {
116
+ const s = await this.call('GET', `/v1/checkout/sessions/${encodeURIComponent(sessionId)}`);
117
+ if (stateOf(s) !== 'paid' || typeof s.amount_total !== 'number' || !s.currency)
118
+ return undefined;
119
+ return { amountMinor: s.amount_total, currency: s.currency.toUpperCase() };
120
+ }
94
121
  /** Expires an unpaid page; one paid in the last second answers `paid`, and that money is the caller's. */
95
122
  async close(sessionId) {
96
123
  try {
@@ -104,7 +131,7 @@ export class StripeCheckout {
104
131
  }
105
132
  }
106
133
  /** All of it back - a refund of the payment the page took. */
107
- async refund(sessionId, reason) {
134
+ async refund(sessionId, reason, key) {
108
135
  const s = await this.call('GET', `/v1/checkout/sessions/${encodeURIComponent(sessionId)}`);
109
136
  const intent = typeof s.payment_intent === 'string' ? s.payment_intent : s.payment_intent?.id;
110
137
  if (!intent)
@@ -113,11 +140,24 @@ export class StripeCheckout {
113
140
  payment_intent: intent,
114
141
  reason: 'requested_by_customer',
115
142
  'metadata[why]': reason.slice(0, 450),
116
- });
143
+ },
144
+ // One refund for each time the money is given back, however often that
145
+ // is asked for: keyed by the refund itself, not the payment alone - a
146
+ // second refund of the same payment (a fee kept, two parts) is not
147
+ // the first one again (总线程, 2026-10-15).
148
+ `hz-refund-${intent}-${key ?? 'full'}`);
117
149
  if (!r?.id)
118
150
  throw new CheckoutError('Stripe opened no refund');
119
151
  return { requestId: r.id, status: REFUND[String(r.status)] ?? 'approved' };
120
152
  }
153
+ /** Onto the PaymentIntent the page made - where the dashboard shows it beside the money. */
154
+ async annotate(sessionId, notes) {
155
+ const s = await this.call('GET', `/v1/checkout/sessions/${encodeURIComponent(sessionId)}`);
156
+ const intent = typeof s.payment_intent === 'string' ? s.payment_intent : s.payment_intent?.id;
157
+ if (!intent)
158
+ throw new CheckoutError('that Checkout page has no payment to write on');
159
+ await this.call('POST', `/v1/payment_intents/${encodeURIComponent(intent)}`, Object.fromEntries(Object.entries(notes).map(([k, v]) => [`metadata[${k}]`, v])));
160
+ }
121
161
  async refundState(requestId) {
122
162
  const r = await this.call('GET', `/v1/refunds/${encodeURIComponent(requestId)}`);
123
163
  return REFUND[String(r.status)] ?? 'approved';
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-checkout.js","sourceRoot":"","sources":["../../src/payments/stripe-checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe-checkout.js","sourceRoot":"","sources":["../../src/payments/stripe-checkout.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -28,7 +28,7 @@ export declare const INITIALIZE_PER_MINUTE = 300;
28
28
  * number. Found by reading the boot banner of a container that had just been
29
29
  * deployed (2026-09-22): seventeen tools listed, and "0.7.0" above them.
30
30
  */
31
- export declare const VERSION = "0.35.0";
31
+ export declare const VERSION = "0.35.2";
32
32
  /**
33
33
  * The card's resource URI.
34
34
  *
@@ -37,7 +37,7 @@ export declare const VERSION = "0.35.0";
37
37
  * connector went storefront-v35 → v40 in a single day of UI work for exactly
38
38
  * this reason.
39
39
  */
40
- export declare const CARD_URI = "ui://curless/hotel/booking-v70.html";
40
+ export declare const CARD_URI = "ui://curless/hotel/booking-v71.html";
41
41
  /**
42
42
  * The URI one deployment names its card by: `CARD_URI` with a short hash of
43
43
  * everything a host caches under it - the card itself, and the hosts it may
package/dist/server.js CHANGED
@@ -46,7 +46,7 @@ export const INITIALIZE_PER_MINUTE = 300;
46
46
  * number. Found by reading the boot banner of a container that had just been
47
47
  * deployed (2026-09-22): seventeen tools listed, and "0.7.0" above them.
48
48
  */
49
- export const VERSION = '0.35.0';
49
+ export const VERSION = '0.35.2';
50
50
  /**
51
51
  * The card's resource URI.
52
52
  *
@@ -55,7 +55,7 @@ export const VERSION = '0.35.0';
55
55
  * connector went storefront-v35 → v40 in a single day of UI work for exactly
56
56
  * this reason.
57
57
  */
58
- export const CARD_URI = 'ui://curless/hotel/booking-v70.html';
58
+ export const CARD_URI = 'ui://curless/hotel/booking-v71.html';
59
59
  /** The card as it ships, hashed once - what a host caches under the URI. */
60
60
  const CARD_HTML_SHA = createHash('sha256').update(HOTEL_CARD_HTML).digest('hex');
61
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -1423,8 +1423,11 @@ const common = (deps, key) => {
1423
1423
  // In a market each group says whether it needs a phone (`market.suppliers`).
1424
1424
  ...(caps.requiresPhone && !deps.backend.suppliers ? { phoneRequired: true } : {}),
1425
1425
  ...(deps.vocab.sandbox ? { sandbox: true } : {}),
1426
- // The group's own test system: the card says "test", never "simulated".
1426
+ // The group's own test system: the card says "test", never "simulated" -
1427
+ // and where it sells rates paid in advance, that those are paid with a
1428
+ // test card, never that "nothing is paid" (华住, 2026-10-15).
1427
1429
  ...(deps.vocab.test ? { test: true } : {}),
1430
+ ...(deps.vocab.test && caps.prepaid ? { testPays: true } : {}),
1428
1431
  ...(caps.programme ? { programme: caps.programme } : {}),
1429
1432
  ...(caps.codePrefix ? { codePrefix: caps.codePrefix } : {}),
1430
1433
  // Sells rooms by the hour: the card draws its Overnight / By the hour