@curless/hotel-storefront 0.23.1 → 0.24.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/README.md +28 -11
- package/dist/__tests__/__fixtures__/huazhu-fake.d.ts +54 -0
- package/dist/__tests__/__fixtures__/huazhu-fake.d.ts.map +1 -0
- package/dist/__tests__/__fixtures__/huazhu-fake.js +340 -0
- package/dist/__tests__/__fixtures__/huazhu-fake.js.map +1 -0
- package/dist/__tests__/huazhu-backend.test.d.ts +2 -0
- package/dist/__tests__/huazhu-backend.test.d.ts.map +1 -0
- package/dist/__tests__/huazhu-backend.test.js +434 -0
- package/dist/__tests__/huazhu-backend.test.js.map +1 -0
- package/dist/__tests__/huazhu-cancel-policy.test.d.ts +2 -0
- package/dist/__tests__/huazhu-cancel-policy.test.d.ts.map +1 -0
- package/dist/__tests__/huazhu-cancel-policy.test.js +82 -0
- package/dist/__tests__/huazhu-cancel-policy.test.js.map +1 -0
- package/dist/__tests__/huazhu-sellable.test.d.ts +2 -0
- package/dist/__tests__/huazhu-sellable.test.d.ts.map +1 -0
- package/dist/__tests__/huazhu-sellable.test.js +192 -0
- package/dist/__tests__/huazhu-sellable.test.js.map +1 -0
- package/dist/__tests__/server.test.js +129 -4
- package/dist/__tests__/server.test.js.map +1 -1
- package/dist/__tests__/tool-descriptions.test.js +57 -4
- package/dist/__tests__/tool-descriptions.test.js.map +1 -1
- package/dist/__tests__/tools.test.js +2 -0
- package/dist/__tests__/tools.test.js.map +1 -1
- package/dist/backend.d.ts +27 -0
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +7 -0
- 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 +52 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/facilities.d.ts.map +1 -1
- package/dist/facilities.js +7 -5
- package/dist/facilities.js.map +1 -1
- package/dist/huazhu/backend.d.ts +40 -0
- package/dist/huazhu/backend.d.ts.map +1 -0
- package/dist/huazhu/backend.js +1318 -0
- package/dist/huazhu/backend.js.map +1 -0
- package/dist/huazhu/bookings.d.ts +81 -0
- package/dist/huazhu/bookings.d.ts.map +1 -0
- package/dist/huazhu/bookings.js +189 -0
- package/dist/huazhu/bookings.js.map +1 -0
- package/dist/huazhu/cancel-policy.d.ts +69 -0
- package/dist/huazhu/cancel-policy.d.ts.map +1 -0
- package/dist/huazhu/cancel-policy.js +201 -0
- package/dist/huazhu/cancel-policy.js.map +1 -0
- package/dist/huazhu/catalog.d.ts +75 -0
- package/dist/huazhu/catalog.d.ts.map +1 -0
- package/dist/huazhu/catalog.js +251 -0
- package/dist/huazhu/catalog.js.map +1 -0
- package/dist/huazhu/check.d.ts +5 -0
- package/dist/huazhu/check.d.ts.map +1 -0
- package/dist/huazhu/check.js +170 -0
- package/dist/huazhu/check.js.map +1 -0
- package/dist/huazhu/client.d.ts +100 -0
- package/dist/huazhu/client.d.ts.map +1 -0
- package/dist/huazhu/client.js +232 -0
- package/dist/huazhu/client.js.map +1 -0
- package/dist/huazhu/sellable.d.ts +81 -0
- package/dist/huazhu/sellable.d.ts.map +1 -0
- package/dist/huazhu/sellable.js +219 -0
- package/dist/huazhu/sellable.js.map +1 -0
- package/dist/huazhu/wire.d.ts +389 -0
- package/dist/huazhu/wire.d.ts.map +1 -0
- package/dist/huazhu/wire.js +72 -0
- package/dist/huazhu/wire.js.map +1 -0
- package/dist/index.js +18 -4
- package/dist/index.js.map +1 -1
- package/dist/legal.d.ts +4 -3
- package/dist/legal.d.ts.map +1 -1
- package/dist/legal.js +33 -18
- package/dist/legal.js.map +1 -1
- package/dist/lib.d.ts +8 -3
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +8 -1
- package/dist/lib.js.map +1 -1
- package/dist/server.d.ts +20 -8
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +132 -28
- package/dist/server.js.map +1 -1
- package/dist/surface.d.ts +2 -1
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +37 -10
- package/dist/surface.js.map +1 -1
- package/dist/tools.d.ts +33 -20
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +130 -11
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +21 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { addDays, eachNight, nights } from '../dates.js';
|
|
2
|
+
import { GATED_TAGS, MEAL_PLANS, PAYMENT_FOR_GUARANTEE, } from './wire.js';
|
|
3
|
+
/** Offered to nobody here: hour rooms, and rates the contract shows to some guests only. */
|
|
4
|
+
export const offeredAtAll = (p, allowTags) => p.checkinType === 'DAY' && !(p.tags ?? []).some((t) => GATED_TAGS.has(t) && !allowTags.has(t));
|
|
5
|
+
/** "Not published" is read as not published: the example's 999 is nobody's room. */
|
|
6
|
+
const published = (n) => typeof n === 'number' && n > 0 && n < 99 ? n : undefined;
|
|
7
|
+
/** The price entry for this many adults - the smallest one that covers them. */
|
|
8
|
+
export const rateFor = (rates, adults) => [...rates]
|
|
9
|
+
.filter((r) => Number(r.maxAdultCount) >= adults)
|
|
10
|
+
.sort((a, b) => a.maxAdultCount - b.maxAdultCount)[0];
|
|
11
|
+
/** The most people one room of this product sleeps, from everything Huazhu says about it. */
|
|
12
|
+
export const sleepsOf = (p, offer, rt) => {
|
|
13
|
+
const said = [
|
|
14
|
+
published(p.occupancy?.maxOccupancy),
|
|
15
|
+
published(p.occupancy?.maxAdult),
|
|
16
|
+
published(rt?.maxOccupancy),
|
|
17
|
+
published(rt?.maxAdult),
|
|
18
|
+
].filter((n) => n !== undefined);
|
|
19
|
+
if (said.length)
|
|
20
|
+
return Math.min(...said);
|
|
21
|
+
const priced = (offer?.rates ?? []).map((r) => Number(r.maxAdultCount)).filter((n) => n > 0);
|
|
22
|
+
return priced.length ? Math.max(...priced) : 2;
|
|
23
|
+
};
|
|
24
|
+
const within = (clock, from, to) => {
|
|
25
|
+
const pad = (t) => (t.length === 4 ? `0${t}` : t);
|
|
26
|
+
return (!from || clock >= pad(from)) && (!to || clock <= pad(to));
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* "预订窗口 … 非此时间范围内不展示该报价": outside its booking window a rate is
|
|
30
|
+
* not shown at all. A night-snack rate sells from 20:00; at 14:00 it does not
|
|
31
|
+
* exist.
|
|
32
|
+
*/
|
|
33
|
+
export const bookableNow = (w, checkIn, clock) => {
|
|
34
|
+
if (!w)
|
|
35
|
+
return true;
|
|
36
|
+
const override = (w.override ?? []).find((o) => (!o.startDate || checkIn >= o.startDate) && (!o.endDate || checkIn <= o.endDate));
|
|
37
|
+
const rule = override ?? w;
|
|
38
|
+
if (rule.startDate && checkIn < rule.startDate)
|
|
39
|
+
return false;
|
|
40
|
+
if (rule.endDate && checkIn > rule.endDate)
|
|
41
|
+
return false;
|
|
42
|
+
if ((rule.excludedDate ?? []).includes(checkIn))
|
|
43
|
+
return false;
|
|
44
|
+
return within(clock, rule.eachDayStartTime, rule.eachDayEndTime);
|
|
45
|
+
};
|
|
46
|
+
const num = (v) => typeof v === 'number' && Number.isFinite(v) ? v : undefined;
|
|
47
|
+
/** For the upper limits: null, or zero as the example writes "no limit", is no limit. */
|
|
48
|
+
const cap = (v) => {
|
|
49
|
+
const n = num(v);
|
|
50
|
+
return n !== undefined && n > 0 ? n : undefined;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* One rate, one stay: sellable with its figures, or the reason it is not.
|
|
54
|
+
*
|
|
55
|
+
* `window` must cover every night AND the departure date - "close to
|
|
56
|
+
* departure" is a restriction on the day the guest leaves.
|
|
57
|
+
*/
|
|
58
|
+
export const sell = (product, w, roomType, c) => {
|
|
59
|
+
const { offer } = w;
|
|
60
|
+
const n = nights(c.checkIn, c.checkOut);
|
|
61
|
+
const at = (day) => nights(w.start, day);
|
|
62
|
+
const first = at(c.checkIn);
|
|
63
|
+
const leave = at(c.checkOut);
|
|
64
|
+
const r = offer.restriction;
|
|
65
|
+
const nightsIdx = eachNight(c.checkIn, c.checkOut).map(at);
|
|
66
|
+
const sleeps = sleepsOf(product, offer, roomType);
|
|
67
|
+
const rate = rateFor(offer.rates ?? [], c.adults);
|
|
68
|
+
if (c.adults > sleeps || !rate) {
|
|
69
|
+
return { ok: false, kind: 'party', why: `sleeps ${sleeps}` };
|
|
70
|
+
}
|
|
71
|
+
if (nightsIdx.some((i) => r.close?.[i] === true)) {
|
|
72
|
+
return { ok: false, kind: 'closed', why: 'not sold on one of those nights' };
|
|
73
|
+
}
|
|
74
|
+
if (r.cta?.[first] === true) {
|
|
75
|
+
return { ok: false, kind: 'stay-rule', why: `no arrivals on ${c.checkIn}` };
|
|
76
|
+
}
|
|
77
|
+
if (r.ctd?.[leave] === true) {
|
|
78
|
+
return { ok: false, kind: 'stay-rule', why: `no departures on ${c.checkOut}` };
|
|
79
|
+
}
|
|
80
|
+
const minArr = num(r.minStayArrival?.[first]);
|
|
81
|
+
if (minArr !== undefined && n < minArr) {
|
|
82
|
+
return {
|
|
83
|
+
ok: false,
|
|
84
|
+
kind: 'stay-rule',
|
|
85
|
+
why: `arriving ${c.checkIn} needs at least ${minArr} nights`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const maxArr = cap(r.maxStayArrival?.[first]);
|
|
89
|
+
if (maxArr !== undefined && n > maxArr) {
|
|
90
|
+
return {
|
|
91
|
+
ok: false,
|
|
92
|
+
kind: 'stay-rule',
|
|
93
|
+
why: `arriving ${c.checkIn} allows at most ${maxArr} nights`,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
for (const i of nightsIdx) {
|
|
97
|
+
const min = num(r.minStayThrough?.[i]);
|
|
98
|
+
if (min !== undefined && n < min) {
|
|
99
|
+
return {
|
|
100
|
+
ok: false,
|
|
101
|
+
kind: 'stay-rule',
|
|
102
|
+
why: `a stay over ${addDays(w.start, i)} needs at least ${min} nights`,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const max = cap(r.maxStayThrough?.[i]);
|
|
106
|
+
if (max !== undefined && n > max) {
|
|
107
|
+
return {
|
|
108
|
+
ok: false,
|
|
109
|
+
kind: 'stay-rule',
|
|
110
|
+
why: `a stay over ${addDays(w.start, i)} allows at most ${max} nights`,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const ahead = nights(c.today, c.checkIn);
|
|
115
|
+
const minAdv = num(r.minAdvanceDay?.[first]);
|
|
116
|
+
if (minAdv !== undefined && ahead < minAdv) {
|
|
117
|
+
return { ok: false, kind: 'stay-rule', why: `must be booked at least ${minAdv} days ahead` };
|
|
118
|
+
}
|
|
119
|
+
const maxAdv = cap(r.maxAdvanceDay?.[first]);
|
|
120
|
+
if (maxAdv !== undefined && ahead > maxAdv) {
|
|
121
|
+
return { ok: false, kind: 'stay-rule', why: `can be booked at most ${maxAdv} days ahead` };
|
|
122
|
+
}
|
|
123
|
+
// Full-pattern length of stay: one character per length, the last meaning
|
|
124
|
+
// "this many or more" - "1110111" refuses exactly four nights.
|
|
125
|
+
const fplos = r.fplos?.[first];
|
|
126
|
+
if (fplos) {
|
|
127
|
+
const ch = fplos[Math.min(n, fplos.length) - 1];
|
|
128
|
+
if (ch !== '1') {
|
|
129
|
+
return {
|
|
130
|
+
ok: false,
|
|
131
|
+
kind: 'stay-rule',
|
|
132
|
+
why: `${n} night${n === 1 ? '' : 's'} is not a length this rate sells from ${c.checkIn}`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const after = nightsIdx.map((i) => num(rate.amountAfterTax?.[i]));
|
|
137
|
+
if (after.some((x) => x === undefined || x <= 0)) {
|
|
138
|
+
return { ok: false, kind: 'no-price', why: 'no price for one of those nights' };
|
|
139
|
+
}
|
|
140
|
+
const beforeRaw = nightsIdx.map((i) => num(rate.amountBeforeTax?.[i]));
|
|
141
|
+
const before = beforeRaw.every((x) => x !== undefined && x > 0)
|
|
142
|
+
? beforeRaw
|
|
143
|
+
: undefined;
|
|
144
|
+
const rackRaw = nightsIdx.map((i) => num(rate.rackRate?.[i]));
|
|
145
|
+
const rack = rackRaw.every((x) => x !== undefined && x > 0) ? rackRaw : undefined;
|
|
146
|
+
const left = nightsIdx.map((i) => num(w.inventory?.[i]) ?? 0);
|
|
147
|
+
const roomsLeft = Math.max(0, Math.min(...left));
|
|
148
|
+
const maxRooms = product.promotion ? 3 : 10;
|
|
149
|
+
if (c.rooms > maxRooms) {
|
|
150
|
+
return {
|
|
151
|
+
ok: false,
|
|
152
|
+
kind: 'too-many-rooms',
|
|
153
|
+
why: `this rate books at most ${maxRooms} rooms at a time`,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (roomsLeft < c.rooms) {
|
|
157
|
+
return {
|
|
158
|
+
ok: false,
|
|
159
|
+
kind: 'sold-out',
|
|
160
|
+
why: roomsLeft === 0 ? 'none left' : `only ${roomsLeft} left`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// ⚠️ THE ARRIVAL DATE'S TERMS ARE THE BOOKING'S: "按照预订入住日规则为准进行下单".
|
|
164
|
+
const guaranteeCode = offer.guaranteePolicies?.[first]?.code ?? '';
|
|
165
|
+
const cancelCode = offer.cancelPolicies?.[first]?.code ?? '';
|
|
166
|
+
if (!(PAYMENT_FOR_GUARANTEE[guaranteeCode] ?? []).includes(c.paymentType)) {
|
|
167
|
+
return {
|
|
168
|
+
ok: false,
|
|
169
|
+
kind: 'prepaid',
|
|
170
|
+
why: guaranteeCode === 'PN'
|
|
171
|
+
? 'this rate is paid in advance'
|
|
172
|
+
: `this rate is not sold as ${c.paymentType === 'NGPL' ? 'pay at the hotel' : c.paymentType}`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
const mealCount = num(offer.mealPlanCounts?.[first]) ?? 0;
|
|
176
|
+
const meal = offer.mealPlanType !== 'RO' && mealCount > 0 ? MEAL_PLANS[offer.mealPlanType] : undefined;
|
|
177
|
+
return {
|
|
178
|
+
ok: true,
|
|
179
|
+
product,
|
|
180
|
+
currency: offer.currencyCode || 'CNY',
|
|
181
|
+
after: after,
|
|
182
|
+
...(before ? { before } : {}),
|
|
183
|
+
...(rack ? { rack } : {}),
|
|
184
|
+
guaranteeCode,
|
|
185
|
+
cancelCode,
|
|
186
|
+
...(meal ? { meal } : {}),
|
|
187
|
+
mealCount: meal ? mealCount : 0,
|
|
188
|
+
roomsLeft,
|
|
189
|
+
maxRooms,
|
|
190
|
+
sleeps,
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Cut a span of dates into the pieces the ARI endpoints accept: at most thirty
|
|
195
|
+
* dates each, both ends included ("endDate-startDate=29").
|
|
196
|
+
*/
|
|
197
|
+
export const ariRanges = (start, end) => {
|
|
198
|
+
const out = [];
|
|
199
|
+
for (let s = start; s <= end; s = addDays(s, 30)) {
|
|
200
|
+
const e = addDays(s, 29);
|
|
201
|
+
out.push({ start: s, end: e < end ? e : end });
|
|
202
|
+
}
|
|
203
|
+
return out;
|
|
204
|
+
};
|
|
205
|
+
/** The hotel's time of day, HH:MM. */
|
|
206
|
+
export const clockAt = (now, tz) => {
|
|
207
|
+
try {
|
|
208
|
+
return new Intl.DateTimeFormat('en-GB', {
|
|
209
|
+
timeZone: tz,
|
|
210
|
+
hour: '2-digit',
|
|
211
|
+
minute: '2-digit',
|
|
212
|
+
hourCycle: 'h23',
|
|
213
|
+
}).format(now);
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
return new Date(now).toISOString().slice(11, 16);
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
//# sourceMappingURL=sellable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sellable.js","sourceRoot":"","sources":["../../src/huazhu/sellable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
/** Every answer: `code` 1000 is success, anything else is a refusal with a reason. */
|
|
2
|
+
export type Envelope<T> = {
|
|
3
|
+
code: number;
|
|
4
|
+
content?: T;
|
|
5
|
+
message?: string;
|
|
6
|
+
/** "错误信息描述,日常排障使用" - the detail a refusal carries. */
|
|
7
|
+
responseDes?: string;
|
|
8
|
+
echoToken?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const SUCCESS = 1000;
|
|
11
|
+
/**
|
|
12
|
+
* `yyyy-MM-dd` in the tables; the hotel-detail example sends
|
|
13
|
+
* `openingDate: 1356883200000`. Both are read.
|
|
14
|
+
*/
|
|
15
|
+
export type HuazhuDate = string | number;
|
|
16
|
+
export type HotelListItem = {
|
|
17
|
+
hotelId: string;
|
|
18
|
+
hotelName: string;
|
|
19
|
+
};
|
|
20
|
+
export type BedType = {
|
|
21
|
+
bedTypeCode: string;
|
|
22
|
+
bedSpecNo: string;
|
|
23
|
+
bedTypeName?: string;
|
|
24
|
+
bedSpec?: string;
|
|
25
|
+
};
|
|
26
|
+
export type HotelRoomType = {
|
|
27
|
+
roomTypeCode: string;
|
|
28
|
+
roomTypeName: string;
|
|
29
|
+
roomNum?: number;
|
|
30
|
+
summary?: string;
|
|
31
|
+
/** Square metres. The field is named `hotelArea` in the documentation. */
|
|
32
|
+
hotelArea?: number;
|
|
33
|
+
floorPlace?: string;
|
|
34
|
+
bedWidth?: string;
|
|
35
|
+
isADSL?: string;
|
|
36
|
+
isADSLWifi?: string;
|
|
37
|
+
/** 1 有窗 · 2 部分有窗 · 3 无窗 · 4 内景 */
|
|
38
|
+
isHasWindow?: string;
|
|
39
|
+
isCanAddBed?: string;
|
|
40
|
+
hasSmokeFree?: string;
|
|
41
|
+
/** The example sends 999 - read as "not published", never as 999 people. */
|
|
42
|
+
maxOccupancy?: number;
|
|
43
|
+
maxAdult?: number;
|
|
44
|
+
maxChild?: number;
|
|
45
|
+
/** 1 启用 · 0 禁用 */
|
|
46
|
+
status?: number;
|
|
47
|
+
bedTypeList?: BedType[];
|
|
48
|
+
};
|
|
49
|
+
export type HotelService = {
|
|
50
|
+
childClassName?: string;
|
|
51
|
+
/** A `typeMappingCode` from the dictionary: 71 健身房, 72 SPA, 73 游泳池 … */
|
|
52
|
+
childClassCode?: number;
|
|
53
|
+
childClassNameDesc?: string;
|
|
54
|
+
};
|
|
55
|
+
export type HotelPhoto = {
|
|
56
|
+
fileName?: string;
|
|
57
|
+
fileTitle?: string;
|
|
58
|
+
fileFormat?: string;
|
|
59
|
+
/** '1' 综合设施 … 'ImagePhoto' 外观 · 'RoomType' 房型 (then `typeMappingCode` is the room type code) */
|
|
60
|
+
typeCode?: string;
|
|
61
|
+
typeMappingCode?: string;
|
|
62
|
+
descript?: string;
|
|
63
|
+
/** Smaller is earlier. */
|
|
64
|
+
sortId?: number;
|
|
65
|
+
fileUrl?: string;
|
|
66
|
+
/** 1 启用 · 0 禁用 */
|
|
67
|
+
status?: number;
|
|
68
|
+
};
|
|
69
|
+
export type HotelTraffic = {
|
|
70
|
+
destinationType?: string;
|
|
71
|
+
destinationTypeName?: string;
|
|
72
|
+
destinationName?: string;
|
|
73
|
+
destinationDistance?: string;
|
|
74
|
+
trafficTips?: string;
|
|
75
|
+
};
|
|
76
|
+
/** POST /hotel */
|
|
77
|
+
export type HotelStatic = {
|
|
78
|
+
hotelId: string;
|
|
79
|
+
hotelName: string;
|
|
80
|
+
hotelNameEn?: string;
|
|
81
|
+
brandCode?: number;
|
|
82
|
+
brandName?: string;
|
|
83
|
+
provinceNo?: string;
|
|
84
|
+
provinceName?: string;
|
|
85
|
+
cityNo?: string;
|
|
86
|
+
cityName?: string;
|
|
87
|
+
countyNo?: string;
|
|
88
|
+
countyName?: string;
|
|
89
|
+
hotelAddress?: string;
|
|
90
|
+
hotelAddressEn?: string;
|
|
91
|
+
hotelAddressTip?: string;
|
|
92
|
+
telephone?: string;
|
|
93
|
+
phoneCode?: string;
|
|
94
|
+
roomNum?: number;
|
|
95
|
+
hotelWordIntroduce?: string;
|
|
96
|
+
longitude?: string;
|
|
97
|
+
latitude?: string;
|
|
98
|
+
openingDate?: HuazhuDate;
|
|
99
|
+
overhaulTime?: HuazhuDate;
|
|
100
|
+
email?: string;
|
|
101
|
+
/** false 国内酒店 · true 国际酒店 */
|
|
102
|
+
international?: boolean;
|
|
103
|
+
/** ISO-4217. Absent on the domestic example's siblings - CNY then. */
|
|
104
|
+
tradeCurrency?: string;
|
|
105
|
+
hotelRoomTypeList?: HotelRoomType[];
|
|
106
|
+
hotelServiceList?: HotelService[];
|
|
107
|
+
hotelPhotoList?: HotelPhoto[];
|
|
108
|
+
hotelTrafficList?: HotelTraffic[];
|
|
109
|
+
};
|
|
110
|
+
export type CheckinType = 'DAY' | 'HOUR';
|
|
111
|
+
export type StayWindow = {
|
|
112
|
+
startDate?: string;
|
|
113
|
+
endDate?: string;
|
|
114
|
+
excludedDate?: string[];
|
|
115
|
+
/** Seven characters from SUNDAY, '1' on. Empty means every day. */
|
|
116
|
+
weekControl?: string;
|
|
117
|
+
eachDayCheckinStartTime?: string;
|
|
118
|
+
eachDayCheckinEndTime?: string;
|
|
119
|
+
eachDayCheckoutEndTime?: string;
|
|
120
|
+
override?: StayWindow[];
|
|
121
|
+
};
|
|
122
|
+
export type BookWindow = {
|
|
123
|
+
/** The first ARRIVAL date this rate may be booked for. */
|
|
124
|
+
startDate?: string;
|
|
125
|
+
endDate?: string;
|
|
126
|
+
excludedDate?: string[];
|
|
127
|
+
/** The time of day it may be BOOKED at - a night-snack rate opens at 20:00. */
|
|
128
|
+
eachDayStartTime?: string;
|
|
129
|
+
eachDayEndTime?: string;
|
|
130
|
+
override?: BookWindow[];
|
|
131
|
+
};
|
|
132
|
+
/** One sellable thing: a room type under one rate code. */
|
|
133
|
+
export type Product = {
|
|
134
|
+
roomTypeCode: string;
|
|
135
|
+
roomTypeName: string;
|
|
136
|
+
rateCode: string;
|
|
137
|
+
rateCodeName?: string;
|
|
138
|
+
checkinType: CheckinType;
|
|
139
|
+
/** Promotions book at most 3 rooms, list rates at most 10. */
|
|
140
|
+
promotion: boolean;
|
|
141
|
+
promotionCode?: string;
|
|
142
|
+
stayWindow?: StayWindow;
|
|
143
|
+
bookWindow?: BookWindow;
|
|
144
|
+
hourage?: number;
|
|
145
|
+
/** See `GATED_TAGS`: some rates may only be shown to some guests, by contract. */
|
|
146
|
+
tags?: string[];
|
|
147
|
+
occupancy?: {
|
|
148
|
+
maxAdult?: number;
|
|
149
|
+
maxChild?: number;
|
|
150
|
+
maxOccupancy: number;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
/** POST /ari/products */
|
|
154
|
+
export type ProductsContent = {
|
|
155
|
+
hotelId: string;
|
|
156
|
+
products?: Product[];
|
|
157
|
+
/** How far ahead ARI can be asked for. 90 in the example. */
|
|
158
|
+
sellDays: number;
|
|
159
|
+
};
|
|
160
|
+
export type RateInfo = {
|
|
161
|
+
rackRate?: number[];
|
|
162
|
+
amountBeforeTax?: number[];
|
|
163
|
+
amountAfterTax: number[];
|
|
164
|
+
/**
|
|
165
|
+
* The price for up to this many adults. "仅返回maxAdultCount为3,则1 2人价与3相同" -
|
|
166
|
+
* one entry of 3 prices one, two and three adults alike.
|
|
167
|
+
*/
|
|
168
|
+
maxAdultCount: number;
|
|
169
|
+
maxChildCount?: number;
|
|
170
|
+
childAges?: number[];
|
|
171
|
+
};
|
|
172
|
+
/** Every list is one element per DATE of the asked range. `null` in a list means "no limit". */
|
|
173
|
+
export type Restriction = {
|
|
174
|
+
close: (boolean | null)[];
|
|
175
|
+
minStayArrival: (number | null)[];
|
|
176
|
+
maxStayArrival: (number | null)[];
|
|
177
|
+
minStayThrough: (number | null)[];
|
|
178
|
+
maxStayThrough: (number | null)[];
|
|
179
|
+
minAdvanceDay: (number | null)[];
|
|
180
|
+
maxAdvanceDay: (number | null)[];
|
|
181
|
+
cta: (boolean | null)[];
|
|
182
|
+
ctd: (boolean | null)[];
|
|
183
|
+
fplos: (string | null)[];
|
|
184
|
+
};
|
|
185
|
+
export type DailyOffer = {
|
|
186
|
+
roomTypeCode: string;
|
|
187
|
+
rateCode: string;
|
|
188
|
+
currencyCode: string;
|
|
189
|
+
rates: RateInfo[];
|
|
190
|
+
/** BB BF HB FB AI RO */
|
|
191
|
+
mealPlanType: string;
|
|
192
|
+
/** Per date: how many of that meal. */
|
|
193
|
+
mealPlanCounts: (number | null)[];
|
|
194
|
+
restriction: Restriction;
|
|
195
|
+
/** Per date. The ARRIVAL date's is the one a booking is made under. */
|
|
196
|
+
guaranteePolicies: {
|
|
197
|
+
code: string;
|
|
198
|
+
}[];
|
|
199
|
+
/** Per date. The ARRIVAL date's is the one a booking is made under. */
|
|
200
|
+
cancelPolicies: {
|
|
201
|
+
code: string;
|
|
202
|
+
}[];
|
|
203
|
+
};
|
|
204
|
+
/** POST /ari/daily/offers - at most 30 dates a call, both ends included. */
|
|
205
|
+
export type OffersContent = {
|
|
206
|
+
hotelId: string;
|
|
207
|
+
startDate: string;
|
|
208
|
+
endDate: string;
|
|
209
|
+
dailyOffers: DailyOffer[];
|
|
210
|
+
};
|
|
211
|
+
/** POST /ari/daily/inventory - at most 30 dates a call, both ends included. */
|
|
212
|
+
export type InventoryContent = {
|
|
213
|
+
hotelId: string;
|
|
214
|
+
startDate: string;
|
|
215
|
+
endDate: string;
|
|
216
|
+
dailyInventories: {
|
|
217
|
+
roomTypeCode: string;
|
|
218
|
+
rateCode: string;
|
|
219
|
+
inventories: (number | null)[];
|
|
220
|
+
}[];
|
|
221
|
+
};
|
|
222
|
+
export type ProductCandidate = {
|
|
223
|
+
roomTypeCode: string;
|
|
224
|
+
rateCode: string;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* How the stay is settled - chosen by the distributor, and allowed only where
|
|
228
|
+
* the arrival date's guarantee code allows it (`PAYMENT_FOR_GUARANTEE`).
|
|
229
|
+
*
|
|
230
|
+
* NGPL 无担保到店付 - nobody guarantees it; the guest pays at the hotel
|
|
231
|
+
* OGPL 中介担保到店付 - WE guarantee it; the guest pays at the hotel
|
|
232
|
+
* OPN 中介预付 - we pay Huazhu; the guest paid us
|
|
233
|
+
* CCPL/CCPN - a credit card number goes on the reservation
|
|
234
|
+
* CPN 信用住预付
|
|
235
|
+
*/
|
|
236
|
+
export type PaymentType = 'NGPL' | 'OGPL' | 'OPN' | 'CCPL' | 'CCPN' | 'CPN';
|
|
237
|
+
/** The rate's guarantee code → the payment types it accepts (the dictionary's own table). */
|
|
238
|
+
export declare const PAYMENT_FOR_GUARANTEE: Record<string, PaymentType[]>;
|
|
239
|
+
export type ContactPerson = {
|
|
240
|
+
firstName?: string;
|
|
241
|
+
/** Required, 16 characters. "姓、名无区分时,可把姓名传至此字段". */
|
|
242
|
+
lastName: string;
|
|
243
|
+
/** 32 characters at most. */
|
|
244
|
+
email?: string;
|
|
245
|
+
phone?: string;
|
|
246
|
+
countryAccessCode?: string;
|
|
247
|
+
roomIndex?: string;
|
|
248
|
+
};
|
|
249
|
+
export type ReservationLine = {
|
|
250
|
+
roomTypeCode: string;
|
|
251
|
+
rateCode: string;
|
|
252
|
+
checkin: string;
|
|
253
|
+
checkout: string;
|
|
254
|
+
rackRate?: number[];
|
|
255
|
+
amountBeforeTax?: number[];
|
|
256
|
+
/** One per night, check-out excluded. */
|
|
257
|
+
amountAfterTax: number[];
|
|
258
|
+
currencyCode: string;
|
|
259
|
+
roomCount: number;
|
|
260
|
+
/** Per room. */
|
|
261
|
+
adultCount: number;
|
|
262
|
+
childCount?: number;
|
|
263
|
+
childAges?: number[];
|
|
264
|
+
};
|
|
265
|
+
/** POST /reservation/prebook */
|
|
266
|
+
export type PrebookRequest = {
|
|
267
|
+
hotelId: string;
|
|
268
|
+
checkinType: CheckinType;
|
|
269
|
+
/** "暂只支持单酒店,单产品的预订,集合只需传1个" */
|
|
270
|
+
reservations: [ReservationLine];
|
|
271
|
+
paymentType: PaymentType;
|
|
272
|
+
};
|
|
273
|
+
export type ReservationAri = {
|
|
274
|
+
checkin: string;
|
|
275
|
+
checkout: string;
|
|
276
|
+
roomTypeCode: string;
|
|
277
|
+
rateCode: string;
|
|
278
|
+
currencyCode: string;
|
|
279
|
+
mealPlanType: string;
|
|
280
|
+
mealPlanCounts: (number | null)[];
|
|
281
|
+
inventories: (number | null)[];
|
|
282
|
+
rates: RateInfo[];
|
|
283
|
+
restriction: Restriction;
|
|
284
|
+
guaranteePolicies: {
|
|
285
|
+
code: string;
|
|
286
|
+
}[];
|
|
287
|
+
cancelPolicies: {
|
|
288
|
+
code: string;
|
|
289
|
+
}[];
|
|
290
|
+
};
|
|
291
|
+
export type PrebookContent = {
|
|
292
|
+
hotelId: string;
|
|
293
|
+
/** Only on success. Passed to /reservation/book with the same request, the price is not checked again. */
|
|
294
|
+
preBookToken?: string;
|
|
295
|
+
/** On success AND on a refusal - a refusal carries the price and rooms as they are now. */
|
|
296
|
+
reservationsAri?: ReservationAri[];
|
|
297
|
+
};
|
|
298
|
+
/** POST /reservation/book */
|
|
299
|
+
export type BookRequest = {
|
|
300
|
+
hotelId: string;
|
|
301
|
+
checkinType: CheckinType;
|
|
302
|
+
contactPerson: ContactPerson;
|
|
303
|
+
reservations: [
|
|
304
|
+
ReservationLine & {
|
|
305
|
+
guaranteePolicyCode: string;
|
|
306
|
+
/** HH:mm, default 12:00. */
|
|
307
|
+
estimatedArrivalTime?: string;
|
|
308
|
+
resGuest?: ContactPerson[];
|
|
309
|
+
}
|
|
310
|
+
];
|
|
311
|
+
/**
|
|
312
|
+
* OURS, and permanently idempotent: distributorId + distributorResId is one
|
|
313
|
+
* booking forever. A retry with the same id cannot make a second one - which
|
|
314
|
+
* is what makes a retry after a network error safe at all.
|
|
315
|
+
*/
|
|
316
|
+
distributorResId: string;
|
|
317
|
+
paymentType: PaymentType;
|
|
318
|
+
/** 512 characters; neither `|` nor `'`. */
|
|
319
|
+
guestComment?: string;
|
|
320
|
+
hotelComment?: string;
|
|
321
|
+
memberId?: string;
|
|
322
|
+
preBookToken?: string;
|
|
323
|
+
};
|
|
324
|
+
export type BookContent = {
|
|
325
|
+
resId: string;
|
|
326
|
+
resCode?: string;
|
|
327
|
+
};
|
|
328
|
+
/** HOTEL_FAILED is only ever seen from the consistency query. */
|
|
329
|
+
export type OrderStatus = 'HOTEL_RESERVATION' | 'HOTEL_CANCEL' | 'HOTEL_ROOM_CHECK_IN' | 'HOTEL_COMPLETE' | 'HOTEL_NO_SHOW' | 'HOTEL_ROOM_CHECK_OUT' | 'HOTEL_FAILED';
|
|
330
|
+
/** POST /reservation/detail */
|
|
331
|
+
export type ReservationDetail = {
|
|
332
|
+
hotelId: string;
|
|
333
|
+
checkInType?: CheckinType;
|
|
334
|
+
reservations: (ReservationLine & {
|
|
335
|
+
guaranteePolicyCode: string;
|
|
336
|
+
cancelPolicyCode: string;
|
|
337
|
+
estimatedArrivalTime?: string;
|
|
338
|
+
})[];
|
|
339
|
+
distributorResId: string;
|
|
340
|
+
paymentType: PaymentType;
|
|
341
|
+
guestComment?: string;
|
|
342
|
+
resId: string;
|
|
343
|
+
resCode?: string;
|
|
344
|
+
bookingTime: number;
|
|
345
|
+
status: OrderStatus;
|
|
346
|
+
};
|
|
347
|
+
/** POST /reservation/cancel */
|
|
348
|
+
export type CancelContent = {
|
|
349
|
+
penaltyAmount?: number;
|
|
350
|
+
penaltyCurrencyCode?: string;
|
|
351
|
+
};
|
|
352
|
+
/** POST /reservation/consistency/query - only after a network error on /reservation/book. */
|
|
353
|
+
export type ConsistencyContent = {
|
|
354
|
+
resId: string;
|
|
355
|
+
status: OrderStatus;
|
|
356
|
+
};
|
|
357
|
+
/** The global codes, any endpoint. */
|
|
358
|
+
export declare const CODES: {
|
|
359
|
+
readonly systemError: 2001;
|
|
360
|
+
readonly invalidToken: 2002;
|
|
361
|
+
readonly invalidDistributor: 2003;
|
|
362
|
+
readonly requiredField: 2004;
|
|
363
|
+
readonly invalidField: 2005;
|
|
364
|
+
readonly fieldFormat: 2006;
|
|
365
|
+
readonly hotelNotCooperating: 2007;
|
|
366
|
+
readonly invalidProduct: 2008;
|
|
367
|
+
readonly rateLimited: 2009;
|
|
368
|
+
};
|
|
369
|
+
/** "请求次数超过每日限制" - /hotels and /hotel. The catalog stops and resumes tomorrow. */
|
|
370
|
+
export declare const DAILY_LIMIT: Set<number>;
|
|
371
|
+
/** Nothing matched - an empty answer, not a failure. */
|
|
372
|
+
export declare const NO_MATCH: Set<number>;
|
|
373
|
+
/** "Hotel is closed" / "Invalid hotel Id" - the hotel is not sellable, from any endpoint. */
|
|
374
|
+
export declare const HOTEL_GONE: Set<number>;
|
|
375
|
+
/**
|
|
376
|
+
* Codes after which /reservation/book is retried with the SAME
|
|
377
|
+
* distributorResId - the documentation's own list ("下单失败,重试建议的异常码").
|
|
378
|
+
*/
|
|
379
|
+
export declare const BOOK_RETRYABLE: Set<2001 | 2002>;
|
|
380
|
+
/**
|
|
381
|
+
* Rate tags that decide WHO may see a rate. "相关使用逻辑务必遵守商务约定,未遵守导致的
|
|
382
|
+
* 损失需承担相应责任" - a rate for students, first-time guests or coupon holders
|
|
383
|
+
* shown to anyone is a loss the contract puts on us. None of them is offered
|
|
384
|
+
* unless the deployment's config lets it through by name.
|
|
385
|
+
*/
|
|
386
|
+
export declare const GATED_TAGS: Set<string>;
|
|
387
|
+
/** Meal plans that put a meal on the rate. RO is room only. */
|
|
388
|
+
export declare const MEAL_PLANS: Record<string, string>;
|
|
389
|
+
//# sourceMappingURL=wire.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/huazhu/wire.ts"],"names":[],"mappings":"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"}
|