@curless/hotel-storefront 0.23.2 → 0.24.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.
- package/README.md +35 -11
- package/dist/__tests__/__fixtures__/huazhu-fake.d.ts +2 -0
- package/dist/__tests__/__fixtures__/huazhu-fake.d.ts.map +1 -0
- package/dist/__tests__/__fixtures__/huazhu-fake.js +3 -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-sandbox.test.d.ts +2 -0
- package/dist/__tests__/huazhu-sandbox.test.d.ts.map +1 -0
- package/dist/__tests__/huazhu-sandbox.test.js +172 -0
- package/dist/__tests__/huazhu-sandbox.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 +85 -7
- package/dist/__tests__/tool-descriptions.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 +64 -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/fake.d.ts +64 -0
- package/dist/huazhu/fake.d.ts.map +1 -0
- package/dist/huazhu/fake.js +365 -0
- package/dist/huazhu/fake.js.map +1 -0
- package/dist/huazhu/sandbox.d.ts +26 -0
- package/dist/huazhu/sandbox.d.ts.map +1 -0
- package/dist/huazhu/sandbox.js +289 -0
- package/dist/huazhu/sandbox.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 +71 -30
- 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 +42 -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 +122 -11
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +21 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vocab.d.ts +5 -0
- package/dist/vocab.d.ts.map +1 -1
- package/dist/vocab.js +2 -1
- package/dist/vocab.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.generated.js","sourceRoot":"","sources":["../src/card.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wEAAwE;AACxE,gFAAgF;AAChF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAW,MAAM,CAAC,IAAI,CAChD,
|
|
1
|
+
{"version":3,"file":"card.generated.js","sourceRoot":"","sources":["../src/card.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wEAAwE;AACxE,gFAAgF;AAChF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAW,MAAM,CAAC,IAAI,CAChD,8+iYAA8+iY,EAC9+iY,QAAQ,CACT,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEnB,2FAA2F;AAC3F,MAAM,CAAC,MAAM,qBAAqB,GAChC,kEAAkE,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -49,14 +49,14 @@ export type HotelConfig = {
|
|
|
49
49
|
* `demo` - read `file` and price it ourselves. Every rate it answers with is
|
|
50
50
|
* marked as a demonstration value, in the tool output and on the card, so
|
|
51
51
|
* nobody can mistake it for a rate they could book.
|
|
52
|
-
* `api` - the group's own booking
|
|
53
|
-
*
|
|
52
|
+
* `api` - the group's own booking system, named in `api`. Real rooms, real
|
|
53
|
+
* rates, real bookings: nothing on the card or in the tools says "demo".
|
|
54
54
|
*/
|
|
55
55
|
source: 'demo' | 'api';
|
|
56
56
|
/** Demo only: the hotels file, resolved against the config file's directory. */
|
|
57
57
|
file?: string;
|
|
58
|
-
/** api only:
|
|
59
|
-
|
|
58
|
+
/** api only: which system, and how to reach it. */
|
|
59
|
+
api?: ApiSource;
|
|
60
60
|
/**
|
|
61
61
|
* demo only: how many minutes a booking request holds its rooms.
|
|
62
62
|
*
|
|
@@ -104,6 +104,66 @@ export type HotelConfig = {
|
|
|
104
104
|
updated?: string;
|
|
105
105
|
};
|
|
106
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* A group's own booking system. One kind today - Huazhu's distributor API -
|
|
109
|
+
* and the next group's is another member of this union, not another config
|
|
110
|
+
* shape.
|
|
111
|
+
*
|
|
112
|
+
* ⚠️ NO SECRET GOES HERE. The client id, the secret and the distributor id
|
|
113
|
+
* arrive through the environment, named by `envPrefix`: a config lives in the
|
|
114
|
+
* group's repository, where their people read it.
|
|
115
|
+
*/
|
|
116
|
+
export type ApiSource = {
|
|
117
|
+
provider: 'huazhu';
|
|
118
|
+
/** The business endpoints: https://<bizdomain>. */
|
|
119
|
+
baseUrl: string;
|
|
120
|
+
/** The token issuer: https://<authservicedomain>, which serves POST /oauth/token. */
|
|
121
|
+
authUrl: string;
|
|
122
|
+
/**
|
|
123
|
+
* A TEST deployment: `baseUrl` and `authUrl` answer from the simulated
|
|
124
|
+
* provider (`huazhu/sandbox.ts`), not the group's own system. The payloads
|
|
125
|
+
* then say `demo`, the card prints its strip, and the instructions and the
|
|
126
|
+
* pages say that nothing booked here is a reservation - the hotels, rates and
|
|
127
|
+
* bookings are the simulation's.
|
|
128
|
+
*
|
|
129
|
+
* ⚠️ Without this flag an api source is taken to be real, and every page
|
|
130
|
+
* says the booking went to the group: a sandbox that forgot it would tell a
|
|
131
|
+
* tester they hold a real room.
|
|
132
|
+
*/
|
|
133
|
+
sandbox?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* A directory this deployment may WRITE: the copy of the hotel list and the
|
|
136
|
+
* bookings it made. Absolute, or against the config file's directory - and
|
|
137
|
+
* outside a read-only mount of the group's repository. `HOTEL_STATE_DIR` in
|
|
138
|
+
* the environment overrides it, which is how a deployment moves it there.
|
|
139
|
+
*/
|
|
140
|
+
stateDir: string;
|
|
141
|
+
/**
|
|
142
|
+
* `<prefix>_CLIENT_ID`, `<prefix>_CLIENT_SECRET`, `<prefix>_DISTRIBUTOR_ID`.
|
|
143
|
+
* Default `HUAZHU`.
|
|
144
|
+
*/
|
|
145
|
+
envPrefix?: string;
|
|
146
|
+
/**
|
|
147
|
+
* How our bookings are settled, which the contract decides. `NGPL`: nobody
|
|
148
|
+
* guarantees the booking and the guest pays at the hotel. `OGPL`: WE
|
|
149
|
+
* guarantee it - a no-show is billed to us - and the guest pays at the hotel.
|
|
150
|
+
* Default `NGPL`. The prepaid kinds are not offered: this connector takes no
|
|
151
|
+
* money.
|
|
152
|
+
*/
|
|
153
|
+
paymentType?: 'NGPL' | 'OGPL';
|
|
154
|
+
/** Only these hotel ids, for a deployment that sells some of what the list offers. */
|
|
155
|
+
hotels?: string[];
|
|
156
|
+
/** Names and addresses in Chinese (the records' own) or English where the record has it. Default `zh`. */
|
|
157
|
+
language?: 'zh' | 'en';
|
|
158
|
+
/** The hotels' clock. Default `Asia/Shanghai` - Huazhu's records carry no zone. */
|
|
159
|
+
timezone?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Rate tags that limit who may see a rate - students, first stays, coupon
|
|
162
|
+
* holders. None is shown unless named here, because the contract puts the
|
|
163
|
+
* loss of showing one to the wrong guest on us.
|
|
164
|
+
*/
|
|
165
|
+
allowTags?: string[];
|
|
166
|
+
};
|
|
107
167
|
/**
|
|
108
168
|
* The tool names this config produces.
|
|
109
169
|
*
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IAEX,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,sFAAsF;QACtF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,iCAAiC;IACjC,IAAI,EAAE;QACJ;;;;;;WAMG;QACH,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;QACvB,gFAAgF;QAChF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IAEX,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,sFAAsF;QACtF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,iCAAiC;IACjC,IAAI,EAAE;QACJ;;;;;;WAMG;QACH,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;QACvB,gFAAgF;QAChF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mDAAmD;QACnD,GAAG,CAAC,EAAE,SAAS,CAAC;QAChB;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IAEF,2GAA2G;IAC3G,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,6EAA6E;QAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,KAAK,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mEAAmE;QACnE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAQF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;CAiC5D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuKH,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CACjC,CAAC;KACE,WAAW,EAAE;KACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;KAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE3B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAmC,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;IAC7D,OAAO;QACL,UAAU,EAAE,QAAQ,MAAM,GAAG,MAAM,EAAE;QACrC,QAAQ,EAAE,OAAO,MAAM,GAAG,IAAI,EAAE;QAChC,yEAAyE;QACzE,0EAA0E;QAC1E,+CAA+C;QAC/C,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE;QACpC,UAAU,EAAE,QAAQ,MAAM,QAAQ;QAClC,SAAS,EAAE,UAAU,MAAM,MAAM;QACjC,QAAQ,EAAE,QAAQ,MAAM,MAAM;QAC9B,SAAS,EAAE,SAAS,MAAM,MAAM;QAChC,cAAc,EAAE,WAAW,MAAM,SAAS;QAC1C,YAAY,EAAE,WAAW,MAAM,UAAU;QACzC,mBAAmB,EAAE,WAAW,MAAM,cAAc;QACpD,aAAa,EAAE,UAAU,MAAM,SAAS;QACxC,yEAAyE;QACzE,kEAAkE;QAClE,aAAa,EAAE,WAAW,MAAM,gBAAgB;QAChD,aAAa,EAAE,UAAU,MAAM,SAAS;QACxC,QAAQ,EAAE,OAAO,MAAM,GAAG,IAAI,WAAW;QACzC,wEAAwE;QACxE,2EAA2E;QAC3E,6DAA6D;QAC7D,OAAO,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE;QACrC,SAAS,EAAE,QAAQ,MAAM,WAAW;QACpC,MAAM,EAAE,WAAW,MAAM,QAAQ;QACjC,OAAO,EAAE,YAAY,MAAM,QAAQ;QACnC,iBAAiB,EAAE,UAAU,MAAM,aAAa;KACxC,CAAC;AACb,CAAC,CAAC"}
|
package/dist/facilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilities.d.ts","sourceRoot":"","sources":["../src/facilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"facilities.d.ts","sourceRoot":"","sources":["../src/facilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,UAAU,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAMrE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,WAAW,SAAS,MAAM,EAAE,EAAE,KAAK,MAAM,KAAG,OAGvE,CAAC"}
|
package/dist/facilities.js
CHANGED
|
@@ -4,12 +4,14 @@
|
|
|
4
4
|
* others. A hotel's own amenity names are matched against these; nothing
|
|
5
5
|
* here invents an amenity a hotel did not list.
|
|
6
6
|
*/
|
|
7
|
+
// A group whose records are in Chinese names its facilities in Chinese -
|
|
8
|
+
// Huazhu's are 游泳池, SPA, 健身房 - so each also matches the Chinese word.
|
|
7
9
|
export const FACILITIES = [
|
|
8
|
-
{ key: 'pool', label: 'Pool', match: /pool
|
|
9
|
-
{ key: 'spa', label: 'Spa', match: /\bspa\b
|
|
10
|
-
{ key: 'beach', label: 'Beachfront', match: /beach
|
|
11
|
-
{ key: 'fitness', label: 'Fitness centre', match: /fitness|gym
|
|
12
|
-
{ key: 'kids', label: 'Kids club', match: /kids
|
|
10
|
+
{ key: 'pool', label: 'Pool', match: /pool|游泳/i },
|
|
11
|
+
{ key: 'spa', label: 'Spa', match: /\bspa\b|水疗/i },
|
|
12
|
+
{ key: 'beach', label: 'Beachfront', match: /beach|海滩|沙滩/i },
|
|
13
|
+
{ key: 'fitness', label: 'Fitness centre', match: /fitness|gym|健身/i },
|
|
14
|
+
{ key: 'kids', label: 'Kids club', match: /kids|儿童乐园|儿童俱乐部/i },
|
|
13
15
|
];
|
|
14
16
|
export const hasFacility = (amenities, key) => {
|
|
15
17
|
const f = FACILITIES.find((x) => x.key === key);
|
package/dist/facilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilities.js","sourceRoot":"","sources":["../src/facilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAoD;IACzE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"facilities.js","sourceRoot":"","sources":["../src/facilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAoD;IACzE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;IACjD,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE;IAClD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE;IAC5D,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,iBAAiB,EAAE;IACrE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAC/D,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAA4B,EAAE,GAAW,EAAW,EAAE;IAChF,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type BackendCapabilities, type HotelBackend } from '../backend.js';
|
|
2
|
+
import { type BookingStore, type Reconciler } from './bookings.js';
|
|
3
|
+
import { type Catalog } from './catalog.js';
|
|
4
|
+
import { type HuazhuClient } from './client.js';
|
|
5
|
+
import type { PaymentType } from './wire.js';
|
|
6
|
+
export type HuazhuHotelsOptions = {
|
|
7
|
+
brand: string;
|
|
8
|
+
client: HuazhuClient;
|
|
9
|
+
catalog: Catalog;
|
|
10
|
+
store: BookingStore;
|
|
11
|
+
reconciler: Reconciler;
|
|
12
|
+
/** How our bookings are settled. Only the pay-at-hotel kinds: this connector takes no money. */
|
|
13
|
+
paymentType: Extract<PaymentType, 'NGPL' | 'OGPL'>;
|
|
14
|
+
language: 'zh' | 'en';
|
|
15
|
+
/** The hotels' clock. Huazhu's records carry none; its hotels are in China. */
|
|
16
|
+
tz: string;
|
|
17
|
+
/** Gated rate tags the contract lets this deployment show - see `GATED_TAGS`. */
|
|
18
|
+
allowTags?: string[];
|
|
19
|
+
now?: () => number;
|
|
20
|
+
ariTtlMs?: number;
|
|
21
|
+
productsTtlMs?: number;
|
|
22
|
+
/** How long a booking call's unknown outcome is chased inside the guest's request, before the rest is left to the reconciler. */
|
|
23
|
+
settleWithinMs?: number;
|
|
24
|
+
/** Test hook: how a pause is taken. */
|
|
25
|
+
sleep?: (ms: number) => Promise<void>;
|
|
26
|
+
};
|
|
27
|
+
export declare const HUAZHU_CAPABILITIES: BackendCapabilities;
|
|
28
|
+
/**
|
|
29
|
+
* The most hotels priced for one search. A city can hold hundreds of Huazhu
|
|
30
|
+
* hotels, and every one priced is two calls to Huazhu; past this, the page is
|
|
31
|
+
* priced and a price ORDER or CEILING is not applied - and the answer says so,
|
|
32
|
+
* rather than sorting the twenty it happened to price.
|
|
33
|
+
*/
|
|
34
|
+
export declare const PRICE_ALL = 20;
|
|
35
|
+
export declare const createHuazhuHotels: (opts: HuazhuHotelsOptions) => HotelBackend & {
|
|
36
|
+
capabilities: BackendCapabilities;
|
|
37
|
+
imageDomains(): string[];
|
|
38
|
+
health(): Record<string, unknown>;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/huazhu/backend.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,YAAY,EAIlB,MAAM,eAAe,CAAC;AA0BvB,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAgC,MAAM,eAAe,CAAC;AAWjG,OAAO,EAAE,KAAK,OAAO,EAA2C,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,KAAK,YAAY,EAAoC,MAAM,aAAa,CAAC;AAWlF,OAAO,KAAK,EAMV,WAAW,EAIZ,MAAM,WAAW,CAAC;AAsBnB,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,gGAAgG;IAChG,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACnD,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iIAAiI;IACjI,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAKjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AA0H5B,eAAO,MAAM,kBAAkB,GAC7B,MAAM,mBAAmB,KACxB,YAAY,GAAG;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,YAAY,IAAI,MAAM,EAAE,CAAC;IACzB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA2tCnC,CAAC"}
|