@curless/hotel-storefront 0.53.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/about.d.ts +24 -0
- package/dist/about.d.ts.map +1 -0
- package/dist/about.js +28 -0
- package/dist/about.js.map +1 -0
- package/dist/aggregate/make.js +2 -2
- package/dist/aggregate/make.js.map +1 -1
- package/dist/backend.d.ts +15 -0
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js.map +1 -1
- package/dist/card.generated.d.ts +1 -1
- package/dist/card.generated.js +2 -2
- package/dist/card.generated.js.map +1 -1
- package/dist/config.d.ts +33 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/coupon-words.d.ts +12 -0
- package/dist/coupon-words.d.ts.map +1 -0
- package/dist/coupon-words.js +19 -0
- package/dist/coupon-words.js.map +1 -0
- package/dist/dates.js +1 -1
- package/dist/dates.js.map +1 -1
- package/dist/demo-hotels.d.ts +6 -0
- package/dist/demo-hotels.d.ts.map +1 -1
- package/dist/demo-hotels.js +57 -17
- package/dist/demo-hotels.js.map +1 -1
- package/dist/fence.d.ts.map +1 -1
- package/dist/fence.js +4 -3
- package/dist/fence.js.map +1 -1
- package/dist/huazhu/backend.d.ts +6 -0
- package/dist/huazhu/backend.d.ts.map +1 -1
- package/dist/huazhu/backend.js +25 -22
- package/dist/huazhu/backend.js.map +1 -1
- package/dist/huazhu/catalog.d.ts +6 -6
- package/dist/huazhu/catalog.d.ts.map +1 -1
- package/dist/huazhu/catalog.js +33 -15
- package/dist/huazhu/catalog.js.map +1 -1
- package/dist/huazhu/client.js +1 -1
- package/dist/huazhu/client.js.map +1 -1
- package/dist/huazhu/make.d.ts.map +1 -1
- package/dist/huazhu/make.js +1 -0
- package/dist/huazhu/make.js.map +1 -1
- package/dist/huazhu/sandbox.d.ts.map +1 -1
- package/dist/huazhu/sandbox.js +5 -3
- package/dist/huazhu/sandbox.js.map +1 -1
- package/dist/legal.d.ts.map +1 -1
- package/dist/legal.js +104 -80
- package/dist/legal.js.map +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +1 -1
- package/dist/lib.js.map +1 -1
- package/dist/otaless/backend.d.ts +31 -0
- package/dist/otaless/backend.d.ts.map +1 -0
- package/dist/otaless/backend.js +502 -0
- package/dist/otaless/backend.js.map +1 -0
- package/dist/otaless/client.d.ts +103 -0
- package/dist/otaless/client.d.ts.map +1 -0
- package/dist/otaless/client.js +110 -0
- package/dist/otaless/client.js.map +1 -0
- package/dist/otaless/fake.d.ts +27 -0
- package/dist/otaless/fake.d.ts.map +1 -0
- package/dist/otaless/fake.js +239 -0
- package/dist/otaless/fake.js.map +1 -0
- package/dist/otaless/make.d.ts +4 -0
- package/dist/otaless/make.d.ts.map +1 -0
- package/dist/otaless/make.js +71 -0
- package/dist/otaless/make.js.map +1 -0
- package/dist/paid.d.ts.map +1 -1
- package/dist/paid.js +9 -9
- package/dist/paid.js.map +1 -1
- package/dist/present.d.ts +6 -1
- package/dist/present.d.ts.map +1 -1
- package/dist/present.js +20 -5
- package/dist/present.js.map +1 -1
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +10 -3
- package/dist/reference.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -6
- package/dist/server.js.map +1 -1
- package/dist/supplier.d.ts +6 -0
- package/dist/supplier.d.ts.map +1 -1
- package/dist/supplier.js +4 -0
- package/dist/supplier.js.map +1 -1
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +100 -71
- package/dist/surface.js.map +1 -1
- package/dist/tools.d.ts +19 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +204 -102
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +58 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vocab.d.ts +0 -14
- package/dist/vocab.d.ts.map +1 -1
- package/dist/vocab.js +19 -22
- package/dist/vocab.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// The Otaless hotel backend ("酒旅统一中台聚合 API", `/api/v1/ota/*`, the
|
|
2
|
+
// document of 2026-11-02 - kept on robin's machine, not in git): what it says
|
|
3
|
+
// on the wire, and how one request is made.
|
|
4
|
+
//
|
|
5
|
+
// ⚠️ READ-ONLY. Only search, rooms and quote are called. Every endpoint there
|
|
6
|
+
// is anonymous - an order id is enough to cancel anyone's booking (docs/
|
|
7
|
+
// otaless-hotels.md §8.0) - so nothing that books, cancels, signs in or lists
|
|
8
|
+
// orders is called from here until the backend says who is asking.
|
|
9
|
+
/** The backend refused, in its own code and words - or did not answer. */
|
|
10
|
+
export class OtalessError extends Error {
|
|
11
|
+
status;
|
|
12
|
+
backendCode;
|
|
13
|
+
constructor(message, status, backendCode) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.status = status;
|
|
16
|
+
this.backendCode = backendCode;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The backend's `@RepeatSubmit`: the same request again within its window is
|
|
21
|
+
* refused with this code - reads too (总线程, 2026-11-03). Every read is kept
|
|
22
|
+
* for `CACHE_MS`, so a card redrawing or a model asking twice is answered from
|
|
23
|
+
* here and never sends the same request twice in a row.
|
|
24
|
+
*/
|
|
25
|
+
export const REPEAT_SUBMIT = 10014;
|
|
26
|
+
const CACHE_MS = 60_000;
|
|
27
|
+
const CACHE_MAX = 300;
|
|
28
|
+
/** …and refused anyway (another process asked the same): once more, after a pause. */
|
|
29
|
+
const REPEAT_PAUSE_MS = 2_000;
|
|
30
|
+
export const createOtalessClient = (opts) => {
|
|
31
|
+
const base = opts.baseUrl.replace(/\/+$/, '');
|
|
32
|
+
const doFetch = opts.fetch ?? fetch;
|
|
33
|
+
const now = opts.now ?? Date.now;
|
|
34
|
+
const timeoutMs = opts.timeoutMs ?? 10_000;
|
|
35
|
+
const pause = opts.repeatPauseMs ?? REPEAT_PAUSE_MS;
|
|
36
|
+
const cache = new Map();
|
|
37
|
+
const once = async (method, path, body) => {
|
|
38
|
+
let res;
|
|
39
|
+
try {
|
|
40
|
+
res = await doFetch(`${base}${path}`, {
|
|
41
|
+
method,
|
|
42
|
+
headers: {
|
|
43
|
+
accept: 'application/json',
|
|
44
|
+
...(body === undefined ? {} : { 'content-type': 'application/json' }),
|
|
45
|
+
'X-Tenant-Id': opts.tenant,
|
|
46
|
+
},
|
|
47
|
+
...(body === undefined ? {} : { body: JSON.stringify(body) }),
|
|
48
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
throw new OtalessError(`the Otaless hotel backend did not answer: ${err.message}`);
|
|
53
|
+
}
|
|
54
|
+
const text = await res.text();
|
|
55
|
+
let json;
|
|
56
|
+
try {
|
|
57
|
+
json = JSON.parse(text);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
json = undefined;
|
|
61
|
+
}
|
|
62
|
+
if (!res.ok || !json || typeof json !== 'object') {
|
|
63
|
+
throw new OtalessError(`the Otaless hotel backend answered HTTP ${res.status}${json?.msg ? `: ${json.msg}` : ''}`, res.status, json?.code);
|
|
64
|
+
}
|
|
65
|
+
return json;
|
|
66
|
+
};
|
|
67
|
+
const call = async (method, path, body) => {
|
|
68
|
+
let r = await once(method, path, body);
|
|
69
|
+
if (r.code === REPEAT_SUBMIT) {
|
|
70
|
+
await new Promise((ok) => setTimeout(ok, pause));
|
|
71
|
+
r = await once(method, path, body);
|
|
72
|
+
}
|
|
73
|
+
if (r.code !== 200) {
|
|
74
|
+
throw new OtalessError(`the Otaless hotel backend refused: ${r.code ?? '?'} ${r.msg ?? ''}`.trim(), 200, r.code);
|
|
75
|
+
}
|
|
76
|
+
return r.data;
|
|
77
|
+
};
|
|
78
|
+
/** One read, kept for a minute - a failure is not kept. */
|
|
79
|
+
const read = (key, make) => {
|
|
80
|
+
const t = now();
|
|
81
|
+
const hit = cache.get(key);
|
|
82
|
+
if (hit && t - hit.at < CACHE_MS)
|
|
83
|
+
return hit.value;
|
|
84
|
+
const value = make();
|
|
85
|
+
cache.set(key, { at: t, value });
|
|
86
|
+
value.catch(() => {
|
|
87
|
+
if (cache.get(key)?.value === value)
|
|
88
|
+
cache.delete(key);
|
|
89
|
+
});
|
|
90
|
+
while (cache.size > CACHE_MAX) {
|
|
91
|
+
const first = cache.keys().next().value;
|
|
92
|
+
if (first === undefined)
|
|
93
|
+
break;
|
|
94
|
+
cache.delete(first);
|
|
95
|
+
}
|
|
96
|
+
return value;
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
search: (body) => read(`search ${JSON.stringify(body)}`, () => call('POST', '/api/v1/ota/search', body)),
|
|
100
|
+
rooms: (q) => {
|
|
101
|
+
const qs = new URLSearchParams(Object.entries(q).filter((e) => typeof e[1] === 'string'));
|
|
102
|
+
return read(`rooms ${qs}`, async () => {
|
|
103
|
+
const data = await call('GET', `/api/v1/ota/rooms?${qs}`);
|
|
104
|
+
return Array.isArray(data) ? data : [];
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
quote: (body) => read(`quote ${JSON.stringify(body)}`, () => call('POST', '/api/v1/ota/rooms/quote', body)),
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/otaless/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { R, WireHotel, WireRoom, WireSearch } from './client.js';
|
|
2
|
+
export type OtalessScene = 'data' | 'empty' | 'degraded';
|
|
3
|
+
/** The dev backend's search answer, 2026-11-03 (总线程 and 酒店对接 both read it). */
|
|
4
|
+
export declare const RECORDED_DEGRADED: R<WireSearch>;
|
|
5
|
+
export declare const FAKE_HOTELS: WireHotel[];
|
|
6
|
+
export declare const FAKE_ROOMS: Record<string, WireRoom[]>;
|
|
7
|
+
export type FakeCall = {
|
|
8
|
+
method: string;
|
|
9
|
+
path: string;
|
|
10
|
+
body?: unknown;
|
|
11
|
+
};
|
|
12
|
+
export type OtalessFake = {
|
|
13
|
+
fetch: typeof fetch;
|
|
14
|
+
/** Every request it was sent, in order. */
|
|
15
|
+
calls: FakeCall[];
|
|
16
|
+
/** Which answer a search gets from now on. */
|
|
17
|
+
scene: (s: OtalessScene) => void;
|
|
18
|
+
/** These groups are degraded in the `data` scene too - their hotels left out. */
|
|
19
|
+
degrade: (codes: string[]) => void;
|
|
20
|
+
/** The next request is refused as a repeat (`@RepeatSubmit`, code 10014). */
|
|
21
|
+
refuseNextAsRepeat: () => void;
|
|
22
|
+
};
|
|
23
|
+
export declare const createOtalessFake: (opts?: {
|
|
24
|
+
scene?: OtalessScene;
|
|
25
|
+
tenant?: string;
|
|
26
|
+
}) => OtalessFake;
|
|
27
|
+
//# sourceMappingURL=fake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake.d.ts","sourceRoot":"","sources":["../../src/otaless/fake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,SAAS,EAAa,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUjF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;AAIzD,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,UAAU,CAW3C,CAAC;AAUF,eAAO,MAAM,WAAW,EAAE,SAAS,EA2DlC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CA4EjD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,2CAA2C;IAC3C,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8CAA8C;IAC9C,KAAK,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACjC,iFAAiF;IACjF,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,6EAA6E;IAC7E,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAWF,eAAO,MAAM,iBAAiB,GAC5B,OAAM;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,KACnD,WAgFF,CAAC"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
const ALL = ['clubmed', 'atour', 'ji', 'ascott', 'shangrila', 'curlessatour'];
|
|
2
|
+
/** The dev backend's search answer, 2026-11-03 (总线程 and 酒店对接 both read it). */
|
|
3
|
+
export const RECORDED_DEGRADED = {
|
|
4
|
+
code: 200,
|
|
5
|
+
data: {
|
|
6
|
+
totalCount: 0,
|
|
7
|
+
queriedProviders: ALL,
|
|
8
|
+
successProviders: [],
|
|
9
|
+
degradedProviders: ALL,
|
|
10
|
+
hotels: [],
|
|
11
|
+
executionTimes: { atour: 6, clubmed: 7, ascott: 6, curlessatour: 5, shangrila: 6, ji: 7 },
|
|
12
|
+
},
|
|
13
|
+
msg: 'Operation successful',
|
|
14
|
+
};
|
|
15
|
+
const price = (amount, currency = 'CNY', feeNotice) => ({
|
|
16
|
+
originalCurrency: currency,
|
|
17
|
+
originalAmount: amount,
|
|
18
|
+
settlementCurrency: 'USD',
|
|
19
|
+
settlementAmount: Math.round(amount * 0.14 * 100) / 100,
|
|
20
|
+
...(feeNotice ? { feeNotice } : {}),
|
|
21
|
+
});
|
|
22
|
+
export const FAKE_HOTELS = [
|
|
23
|
+
// The document's own example, as it gives it.
|
|
24
|
+
{
|
|
25
|
+
unifiedId: 'ascott:orchard_sh',
|
|
26
|
+
providerCode: 'ascott',
|
|
27
|
+
brand: 'Ascott The Residence',
|
|
28
|
+
originalId: 'orchard_sh',
|
|
29
|
+
name: '上海雅诗阁淮海路服务公寓',
|
|
30
|
+
city: '上海',
|
|
31
|
+
country: 'CN',
|
|
32
|
+
address: '淮海中路282号香港广场',
|
|
33
|
+
latitude: 31.2231,
|
|
34
|
+
longitude: 121.4789,
|
|
35
|
+
distanceKm: 0.5,
|
|
36
|
+
score: 4.8,
|
|
37
|
+
minPrice: price(1280, 'CNY', '包含10%服务费与6%增值税'),
|
|
38
|
+
amenities: ['全套厨房', '室内恒温泳池', '洗衣干衣机', '高速WiFi'],
|
|
39
|
+
extensions: { residence_type: 'serviced_apartment', has_balcony: true },
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
unifiedId: 'atour:sh-xintiandi',
|
|
43
|
+
providerCode: 'atour',
|
|
44
|
+
brand: '亚朵酒店',
|
|
45
|
+
originalId: 'sh-xintiandi',
|
|
46
|
+
name: '上海新天地亚朵酒店',
|
|
47
|
+
city: '上海',
|
|
48
|
+
country: 'CN',
|
|
49
|
+
address: '黄浦区马当路388号',
|
|
50
|
+
latitude: 31.2152,
|
|
51
|
+
longitude: 121.4751,
|
|
52
|
+
score: 4.7,
|
|
53
|
+
minPrice: price(689),
|
|
54
|
+
amenities: ['健身房', '洗衣房', '高速WiFi'],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
unifiedId: 'shangrila:pudong',
|
|
58
|
+
providerCode: 'shangrila',
|
|
59
|
+
brand: 'Shangri-La',
|
|
60
|
+
originalId: 'pudong',
|
|
61
|
+
// A name as long as a real one gets, for the card's wrapping.
|
|
62
|
+
name: '上海浦东香格里拉大酒店(陆家嘴滨江大道国际金融中心店)',
|
|
63
|
+
city: '上海',
|
|
64
|
+
country: 'CN',
|
|
65
|
+
address: '浦东富城路33号',
|
|
66
|
+
score: 4.9,
|
|
67
|
+
minPrice: price(1650),
|
|
68
|
+
amenities: ['室内泳池', '水疗中心', '健身中心'],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
unifiedId: 'shangrila:penang-rasa',
|
|
72
|
+
providerCode: 'shangrila',
|
|
73
|
+
brand: 'Shangri-La',
|
|
74
|
+
originalId: 'penang-rasa',
|
|
75
|
+
name: 'Shangri-La Rasa Sayang, Penang',
|
|
76
|
+
city: 'Penang',
|
|
77
|
+
country: 'MY',
|
|
78
|
+
minPrice: price(980, 'MYR'),
|
|
79
|
+
amenities: ['Beachfront', 'Spa', 'Pool'],
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
export const FAKE_ROOMS = {
|
|
83
|
+
'ascott:orchard_sh': [
|
|
84
|
+
{
|
|
85
|
+
unifiedRoomId: 'ascott:room_1br_exec',
|
|
86
|
+
originalRoomId: '1br_exec',
|
|
87
|
+
providerCode: 'ascott',
|
|
88
|
+
name: '豪华一居室行政套房',
|
|
89
|
+
bedType: '特大双人床',
|
|
90
|
+
maxOccupancy: 2,
|
|
91
|
+
price: price(1380, 'CNY', '含税费及服务费'),
|
|
92
|
+
breakfastIncluded: true,
|
|
93
|
+
cancellationPolicy: '入住日前24小时内不可免费取消',
|
|
94
|
+
amenities: ['独立客厅', '高层景观', 'Nespresso咖啡机', '浴缸'],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
unifiedRoomId: 'ascott:room_studio',
|
|
98
|
+
originalRoomId: 'studio',
|
|
99
|
+
providerCode: 'ascott',
|
|
100
|
+
name: '开间公寓',
|
|
101
|
+
bedType: '大床',
|
|
102
|
+
maxOccupancy: 2,
|
|
103
|
+
price: price(1280, 'CNY', '含税费及服务费'),
|
|
104
|
+
breakfastIncluded: false,
|
|
105
|
+
cancellationPolicy: '入住前1天18:00前可免费取消',
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
'atour:sh-xintiandi': [
|
|
109
|
+
{
|
|
110
|
+
unifiedRoomId: 'atour:room_king',
|
|
111
|
+
originalRoomId: 'king',
|
|
112
|
+
providerCode: 'atour',
|
|
113
|
+
name: '高级大床房',
|
|
114
|
+
bedType: '1.8米大床',
|
|
115
|
+
maxOccupancy: 2,
|
|
116
|
+
price: price(689),
|
|
117
|
+
breakfastIncluded: false,
|
|
118
|
+
cancellationPolicy: '入住前1天18:00前可免费取消',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
unifiedRoomId: 'atour:room_twin',
|
|
122
|
+
originalRoomId: 'twin',
|
|
123
|
+
providerCode: 'atour',
|
|
124
|
+
name: '高级双床房',
|
|
125
|
+
bedType: '1.2米双床',
|
|
126
|
+
maxOccupancy: 2,
|
|
127
|
+
price: price(729),
|
|
128
|
+
breakfastIncluded: true,
|
|
129
|
+
// No terms sent: none are said.
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
'shangrila:pudong': [
|
|
133
|
+
{
|
|
134
|
+
unifiedRoomId: 'shangrila:deluxe_river',
|
|
135
|
+
originalRoomId: 'deluxe_river',
|
|
136
|
+
providerCode: 'shangrila',
|
|
137
|
+
name: '豪华江景房(含双人自助早餐及行政酒廊礼遇,可延迟退房至下午两点)',
|
|
138
|
+
bedType: '特大床',
|
|
139
|
+
maxOccupancy: 3,
|
|
140
|
+
price: price(1650),
|
|
141
|
+
breakfastIncluded: true,
|
|
142
|
+
cancellationPolicy: '2026-11-14 18:00 前免费取消',
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
'shangrila:penang-rasa': [
|
|
146
|
+
{
|
|
147
|
+
unifiedRoomId: 'shangrila:garden',
|
|
148
|
+
originalRoomId: 'garden',
|
|
149
|
+
providerCode: 'shangrila',
|
|
150
|
+
name: 'Garden Wing Deluxe',
|
|
151
|
+
bedType: 'King',
|
|
152
|
+
maxOccupancy: 2,
|
|
153
|
+
price: price(980, 'MYR'),
|
|
154
|
+
breakfastIncluded: false,
|
|
155
|
+
cancellationPolicy: 'Free cancellation until 3 days before arrival',
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
const json = (body, status = 200) => new Response(JSON.stringify(body), { status, headers: { 'content-type': 'application/json' } });
|
|
160
|
+
const nightsBetween = (a, b) => Math.max(1, Math.round((Date.parse(`${b}T00:00:00Z`) - Date.parse(`${a}T00:00:00Z`)) / 86_400_000));
|
|
161
|
+
export const createOtalessFake = (opts = {}) => {
|
|
162
|
+
let scene = opts.scene ?? 'data';
|
|
163
|
+
let down = [];
|
|
164
|
+
let repeat = false;
|
|
165
|
+
const calls = [];
|
|
166
|
+
const fetchFake = (async (input, init) => {
|
|
167
|
+
const url = new URL(String(input instanceof Request ? input.url : input));
|
|
168
|
+
const method = init?.method ?? 'GET';
|
|
169
|
+
const body = typeof init?.body === 'string' ? JSON.parse(init.body) : undefined;
|
|
170
|
+
calls.push({ method, path: `${url.pathname}${url.search}`, ...(body ? { body } : {}) });
|
|
171
|
+
const tenant = new Headers(init?.headers).get('X-Tenant-Id');
|
|
172
|
+
if (opts.tenant && tenant !== opts.tenant)
|
|
173
|
+
return json({ code: 401, msg: '租户不存在' });
|
|
174
|
+
if (repeat) {
|
|
175
|
+
repeat = false;
|
|
176
|
+
return json({ code: 10014, msg: 'Repeat submit is not allowed' });
|
|
177
|
+
}
|
|
178
|
+
if (url.pathname === '/api/v1/ota/search' && method === 'POST') {
|
|
179
|
+
if (scene === 'degraded')
|
|
180
|
+
return json(RECORDED_DEGRADED);
|
|
181
|
+
const asked = body?.channelCodes?.length
|
|
182
|
+
? body.channelCodes
|
|
183
|
+
: ALL;
|
|
184
|
+
const failing = scene === 'empty' ? [] : asked.filter((c) => down.includes(c));
|
|
185
|
+
const where = String(body?.destination ?? '').toLowerCase();
|
|
186
|
+
const hotels = scene === 'empty'
|
|
187
|
+
? []
|
|
188
|
+
: FAKE_HOTELS.filter((h) => asked.includes(h.providerCode ?? '') &&
|
|
189
|
+
!failing.includes(h.providerCode ?? '') &&
|
|
190
|
+
(!where ||
|
|
191
|
+
String(h.city).toLowerCase().includes(where) ||
|
|
192
|
+
(where === 'shanghai' && h.city === '上海') ||
|
|
193
|
+
String(h.name).toLowerCase().includes(where)));
|
|
194
|
+
return json({
|
|
195
|
+
code: 200,
|
|
196
|
+
msg: '操作成功',
|
|
197
|
+
data: {
|
|
198
|
+
totalCount: hotels.length,
|
|
199
|
+
queriedProviders: asked,
|
|
200
|
+
successProviders: asked.filter((c) => !failing.includes(c)),
|
|
201
|
+
degradedProviders: failing,
|
|
202
|
+
executionTimes: Object.fromEntries(asked.map((c) => [c, 200])),
|
|
203
|
+
hotels,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
if (url.pathname === '/api/v1/ota/rooms' && method === 'GET') {
|
|
208
|
+
const id = url.searchParams.get('unifiedHotelId') ?? '';
|
|
209
|
+
return json({ code: 200, msg: '操作成功', data: FAKE_ROOMS[id] ?? [] });
|
|
210
|
+
}
|
|
211
|
+
if (url.pathname === '/api/v1/ota/rooms/quote' && method === 'POST') {
|
|
212
|
+
const room = (FAKE_ROOMS[String(body?.unifiedHotelId)] ?? []).find((r) => r.unifiedRoomId === `${String(body?.unifiedHotelId).split(':')[0]}:${body?.roomId}`);
|
|
213
|
+
if (!room?.price)
|
|
214
|
+
return json({ code: 500, msg: '房型不存在' });
|
|
215
|
+
const n = nightsBetween(String(body?.checkIn), String(body?.checkOut));
|
|
216
|
+
const total = Number(room.price.originalAmount) * n * Number(body?.roomCount ?? 1);
|
|
217
|
+
return json({
|
|
218
|
+
code: 200,
|
|
219
|
+
msg: '操作成功',
|
|
220
|
+
data: price(total, room.price.originalCurrency, `共${n}晚总价,已含税费及服务费`),
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
return json({ code: 404, msg: 'Not Found' }, 404);
|
|
224
|
+
});
|
|
225
|
+
return {
|
|
226
|
+
fetch: fetchFake,
|
|
227
|
+
calls,
|
|
228
|
+
scene: (s) => {
|
|
229
|
+
scene = s;
|
|
230
|
+
},
|
|
231
|
+
degrade: (codes) => {
|
|
232
|
+
down = codes;
|
|
233
|
+
},
|
|
234
|
+
refuseNextAsRepeat: () => {
|
|
235
|
+
repeat = true;
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
//# sourceMappingURL=fake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake.js","sourceRoot":"","sources":["../../src/otaless/fake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../src/otaless/make.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAkB5D,eAAO,MAAM,WAAW,GAAI,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,KAAG,IA4D7E,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { logoUrlOf } from '../aggregate/make.js';
|
|
2
|
+
import { createOtalessHotels } from './backend.js';
|
|
3
|
+
import { createOtalessClient } from './client.js';
|
|
4
|
+
// The Otaless hotel market as a config's `data` section (robin, 2026-11-03):
|
|
5
|
+
//
|
|
6
|
+
// "data": {
|
|
7
|
+
// "source": "otaless",
|
|
8
|
+
// "otaless": {
|
|
9
|
+
// "baseUrl": "https://apidev.curless.ai", "tenant": "207650",
|
|
10
|
+
// "groups": [{ "code": "atour", "name": "Atour", "names": { "zh": "亚朵" } }]
|
|
11
|
+
// }
|
|
12
|
+
// }
|
|
13
|
+
//
|
|
14
|
+
// `OTALESS_API_URL` and `OTALESS_TENANT_ID` in the environment win over both.
|
|
15
|
+
const CODE = /^[a-z0-9][a-z0-9-]{0,39}$/;
|
|
16
|
+
export const makeOtaless = (data, ctx) => {
|
|
17
|
+
const o = data.otaless ?? {};
|
|
18
|
+
const prefix = o.envPrefix ?? 'OTALESS';
|
|
19
|
+
const baseUrl = ctx.env[`${prefix}_API_URL`]?.trim() || o.baseUrl?.trim();
|
|
20
|
+
const tenant = ctx.env[`${prefix}_TENANT_ID`]?.trim() || o.tenant?.trim();
|
|
21
|
+
if (!baseUrl || !/^https?:\/\//.test(baseUrl)) {
|
|
22
|
+
throw new Error(`${ctx.brand}: data.source "otaless" needs the backend's address - ${prefix}_API_URL, or data.otaless.baseUrl`);
|
|
23
|
+
}
|
|
24
|
+
if (!tenant) {
|
|
25
|
+
throw new Error(`${ctx.brand}: data.source "otaless" needs the tenant id - ${prefix}_TENANT_ID, or data.otaless.tenant`);
|
|
26
|
+
}
|
|
27
|
+
const groups = (o.groups ?? []).map((g) => {
|
|
28
|
+
// ⚠️ THE CODE IS AN ADDRESS TOO: a group's logo is /suppliers/<code>/logo.png.
|
|
29
|
+
if (!CODE.test(g.code ?? '')) {
|
|
30
|
+
throw new Error(`${ctx.brand}: data.otaless.groups code "${String(g.code)}" must be the backend's providerCode: lower-case letters, digits and -`);
|
|
31
|
+
}
|
|
32
|
+
if (!g.name?.trim())
|
|
33
|
+
throw new Error(`${ctx.brand}: data.otaless.groups "${g.code}" needs a name`);
|
|
34
|
+
const logoUrl = ctx.publicUrl
|
|
35
|
+
? logoUrlOf(ctx.publicUrl, g.code, g.logoFile, ctx.configPath)
|
|
36
|
+
: undefined;
|
|
37
|
+
return {
|
|
38
|
+
code: g.code,
|
|
39
|
+
name: g.name.trim(),
|
|
40
|
+
...(g.names ? { names: g.names } : {}),
|
|
41
|
+
...(logoUrl ? { logoUrl } : {}),
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
if (new Set(groups.map((g) => g.code)).size !== groups.length) {
|
|
45
|
+
throw new Error(`${ctx.brand}: data.otaless.groups names one code twice`);
|
|
46
|
+
}
|
|
47
|
+
const client = createOtalessClient({
|
|
48
|
+
baseUrl,
|
|
49
|
+
tenant,
|
|
50
|
+
...(ctx.fetch ? { fetch: ctx.fetch } : {}),
|
|
51
|
+
now: ctx.now,
|
|
52
|
+
...(data.timeoutMs ? { timeoutMs: data.timeoutMs } : {}),
|
|
53
|
+
});
|
|
54
|
+
const state = ctx.state.file('otaless-hotels.json');
|
|
55
|
+
const backend = createOtalessHotels({
|
|
56
|
+
brand: ctx.brand,
|
|
57
|
+
client,
|
|
58
|
+
groups,
|
|
59
|
+
...(state ? { state } : {}),
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
backend: data.reference ? { ...backend, reference: data.reference } : backend,
|
|
63
|
+
// The backend sends no picture (§8.2), so the card loads none.
|
|
64
|
+
imageDomains: () => [],
|
|
65
|
+
// Not known until a search: the home is never "the deployment's few hotels".
|
|
66
|
+
hotelCount: () => 0,
|
|
67
|
+
health: () => ({ backend: new URL(baseUrl).host, tenant }),
|
|
68
|
+
ready: () => Promise.resolve(),
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=make.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make.js","sourceRoot":"","sources":["../../src/otaless/make.ts"],"names":[],"mappings":"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"}
|
package/dist/paid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paid.d.ts","sourceRoot":"","sources":["../src/paid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmBlD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAE/C,oHAAoH;AACpH,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,QAqBjD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU,QAAwC,CAAC;AAEhE,2GAA2G;AAC3G,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,MAAM,KAAK,CAAC;AAQzB,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yGAAyG;IACzG,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,UAAU,GAAU,GAAG,OAAO,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAuBxF,CAAC;AAEF,iHAAiH;AACjH,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,GAAG;IAClF,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"paid.d.ts","sourceRoot":"","sources":["../src/paid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmBlD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAE/C,oHAAoH;AACpH,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,QAqBjD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU,QAAwC,CAAC;AAEhE,2GAA2G;AAC3G,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,MAAM,KAAK,CAAC;AAQzB,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yGAAyG;IACzG,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,UAAU,GAAU,GAAG,OAAO,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAuBxF,CAAC;AAEF,iHAAiH;AACjH,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,GAAG;IAClF,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAQF,eAAO,MAAM,QAAQ,GAAI,GAAG,KAAK,KAAG,MAmRnC,CAAC"}
|
package/dist/paid.js
CHANGED
|
@@ -63,8 +63,6 @@ export const paidAnswer = async (a) => {
|
|
|
63
63
|
const hant = Converter({ from: 'cn', to: 'twp' });
|
|
64
64
|
/** A name keeps its own words - characters only (see names.ts). */
|
|
65
65
|
const hantName = Converter({ from: 'cn', to: 'tw' });
|
|
66
|
-
/** A hotel's mark of being simulated or a test - said once, by the page, not inside its name. */
|
|
67
|
-
const MARKED = /^\s*[【[]\s*(模拟|simulated|测试|test)\s*[】\]]\s*/i;
|
|
68
66
|
const hasCJK = (t) => /[㐀-鿿]/.test(t);
|
|
69
67
|
export const paidPage = (d) => {
|
|
70
68
|
const zh = d.lang !== 'en';
|
|
@@ -189,12 +187,15 @@ export const paidPage = (d) => {
|
|
|
189
187
|
],
|
|
190
188
|
]
|
|
191
189
|
: [];
|
|
190
|
+
// ⚠️ NO BADGE, ONLY WHAT HAPPENED (robin, 2026-11-03: 「不用特意写不是真的」): the
|
|
191
|
+
// page said 「模拟」 / 「测试环境」 in its corner; now it says the booking's fact -
|
|
192
|
+
// not sent to the group, or in its own system holding no room - and that no real
|
|
193
|
+
// money moved.
|
|
192
194
|
const env = d.env
|
|
193
195
|
? {
|
|
194
|
-
badge: d.env === 'test' ? say('Test system', '测试环境') : say('Simulated', '模拟'),
|
|
195
196
|
note: d.env === 'test'
|
|
196
|
-
? say(
|
|
197
|
-
: say(`
|
|
197
|
+
? say('This booking holds no room for anyone, and no real money moved.', '这笔预订不会为任何人保留房间,也没有真实扣款。')
|
|
198
|
+
: say(`This booking was not sent to ${d.brand}, and no real money moved.`, `这笔预订没有发到${group},也没有真实扣款。`),
|
|
198
199
|
}
|
|
199
200
|
: undefined;
|
|
200
201
|
const refresh = waiting && d.session
|
|
@@ -244,8 +245,6 @@ ${refresh}<title>${esc(words.title)} · ${esc(d.brand)}</title>
|
|
|
244
245
|
.top { display: flex; align-items: center; gap: 10px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
|
|
245
246
|
.logo { height: 28px; width: auto; display: block; }
|
|
246
247
|
.brand { font-weight: 760; letter-spacing: -0.01em; color: var(--brand); }
|
|
247
|
-
.env { margin-left: auto; font-size: 11.5px; font-weight: 650; padding: 3px 9px; border-radius: 999px;
|
|
248
|
-
background: var(--wait-bg); color: var(--wait); white-space: nowrap; }
|
|
249
248
|
.mark { width: 46px; height: 46px; margin: 22px 0 14px; border-radius: 999px; display: grid; place-items: center; }
|
|
250
249
|
.mark svg { width: 24px; height: 24px; }
|
|
251
250
|
.mark.ok { background: var(--ok-bg); color: var(--ok); }
|
|
@@ -265,7 +264,7 @@ ${refresh}<title>${esc(words.title)} · ${esc(d.brand)}</title>
|
|
|
265
264
|
</style>
|
|
266
265
|
</head><body>
|
|
267
266
|
<main class="card">
|
|
268
|
-
<div class="top">${logo}
|
|
267
|
+
<div class="top">${logo}</div>
|
|
269
268
|
<div class="mark ${words.mark}">${MARKS[words.mark]}</div>
|
|
270
269
|
<h1>${esc(words.title)}</h1>
|
|
271
270
|
<p class="lead">${esc(words.lead)}</p>
|
|
@@ -306,7 +305,8 @@ const hotelSaid = (f, lang) => {
|
|
|
306
305
|
: lang === 'zh-Hant'
|
|
307
306
|
? (n?.['zh-Hant'] ?? hantName(n?.zh ?? f.hotelName))
|
|
308
307
|
: (n?.en ?? f.hotelName);
|
|
309
|
-
|
|
308
|
+
// As the group gives it, its own mark and all (robin, 2026-11-03).
|
|
309
|
+
return name;
|
|
310
310
|
};
|
|
311
311
|
/** "Sun 25 Oct → Tue 27 Oct · 2 nights" / "10月25日周日 至 10月27日周二 · 2 晚" - the hotel's own dates, never moved by a clock. */
|
|
312
312
|
const staySaid = (s, lang) => {
|
package/dist/paid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paid.js","sourceRoot":"","sources":["../src/paid.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paid.js","sourceRoot":"","sources":["../src/paid.ts"],"names":[],"mappings":"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"}
|