@gojinko/api-client 1.3.0 → 2.1.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 CHANGED
@@ -32,36 +32,50 @@ OAuth tokens auto-refresh when they expire.
32
32
 
33
33
  ## Methods
34
34
 
35
+ The client targets the **jinko-api public surface** (`https://api.gojinko.com`,
36
+ canonical `/v1/*` routes). Authenticate with a `jnk_` API key (`X-API-Key`).
37
+
35
38
  ### Discovery (cached)
36
39
 
37
- | Method | BFF Endpoint |
40
+ | Method | Endpoint |
38
41
  |---|---|
39
- | `client.findFlight()` | `POST /flights/search` |
40
- | `client.findDestination()` | `POST /flights/destination-search` |
41
- | `client.flightCalendar()` | `POST /flights/search` |
42
+ | `client.findFlight()` | `POST /v1/flight_calendar` |
43
+ | `client.flightCalendar()` | `POST /v1/flight_calendar` |
44
+ | `client.findDestination()` | `POST /v1/find_destination` |
42
45
 
43
46
  ### Live search & trip building
44
47
 
45
- | Method | BFF Endpoint |
48
+ | Method | Endpoint |
46
49
  |---|---|
47
- | `client.flightSearch()` | `POST /flights/shop` |
48
- | `client.hotelSearch()` | `POST /hotels/shop` |
49
- | `client.trip()` | `POST /shop/sync` |
50
+ | `client.flightSearch()` | `POST /v1/flight_search` |
51
+ | `client.hotelSearch()` | `POST /v1/hotel_search` |
52
+ | `client.hotelDetails()` | `GET /v1/hotel_details/{hotel_id}` |
53
+ | `client.trip()` | `POST /v1/trip` |
54
+ | `client.getTrip(tripId)` | `GET /v1/trip/{trip_id}` |
50
55
 
51
56
  ### Checkout
52
57
 
53
- | Method | BFF Endpoint |
58
+ | Method | Endpoint |
54
59
  |---|---|
55
- | `client.book(tripId)` | `POST /api/v1/shop/sync/checkout` |
56
- | `client.selectAncillaries()` | `POST /api/v1/shop/sync/ancillaries` |
57
- | `client.getTrip(tripId)` | `GET /api/v1/shop/sync/{id}` |
60
+ | `client.book(tripId)` | `POST /v1/book` |
61
+ | `client.selectAncillaries()` | `POST /v1/select_ancillaries` |
58
62
 
59
63
  ### Post-booking
60
64
 
61
- | Method | BFF Endpoint |
65
+ | Method | Endpoint |
62
66
  |---|---|
63
- | `client.refundCheck()` | `POST /flights/refund-check` |
64
- | `client.refundCommit()` | `POST /flights/refund-commit` |
67
+ | `client.getBooking()` | `POST /v1/get_booking` |
68
+ | `client.refundCheck()` | `POST /v1/refund_check` |
69
+ | `client.refundCommit()` | `POST /v1/refund_commit` |
70
+ | `client.refundStatus()` | `POST /v1/refund_status` |
71
+ | `client.exchangeShop()` | `POST /v1/exchange_shop` |
72
+ | `client.exchangePrice()` | `POST /v1/exchange_price` |
73
+ | `client.exchangeCommit()` | `POST /v1/exchange_commit` |
74
+ | `client.exchangeStatus()` | `POST /v1/exchange_status` |
75
+ | `client.hotelCancelBooking()` | `POST /v1/hotel_cancel` |
76
+
77
+ > `get_booking` returns the **whole** booking (flight + hotel). There is no
78
+ > separate hotel-retrieve method on the public surface.
65
79
 
66
80
  ## Usage
67
81
 
@@ -70,19 +84,19 @@ OAuth tokens auto-refresh when they expire.
70
84
  Preferred flight entry point. Returns a bookable `trip_item_token` in one step.
71
85
 
72
86
  ```typescript
73
- // Search mode
87
+ // Search mode — canonical flat body (adults at top level)
74
88
  const results = await client.flightSearch({
75
89
  origin: 'PAR',
76
90
  destination: 'NYC',
77
91
  departure_date: '2026-06-15',
78
92
  trip_type: 'oneway',
79
- passengers: { adults: 1 },
93
+ adults: 1,
80
94
  });
81
95
 
82
96
  // Price-check mode (returns trip_item_token)
83
97
  const fares = await client.flightSearch({
84
98
  offer_token: 'tok_abc123',
85
- passengers: { adults: 1 },
99
+ adults: 1,
86
100
  });
87
101
  ```
88
102
 
@@ -123,14 +137,14 @@ const trip = await client.trip({
123
137
  // → { trip_id, ... }
124
138
  ```
125
139
 
126
- ### checkout — Schedule checkout
140
+ ### book — Schedule checkout
127
141
 
128
142
  ```typescript
129
- const checkout = await client.checkout('42');
143
+ const checkout = await client.book('42');
130
144
  // {
131
145
  // session_id, checkout_url, expires_at, status,
132
146
  // total_amount: { amount, currency },
133
- // items: [ { item_id, kind, price, pax_count, available_ancillaries, selected_ancillaries } ],
147
+ // items: [ ... ],
134
148
  // }
135
149
 
136
150
  // Send the user to checkout.checkout_url to complete payment.
@@ -167,9 +181,11 @@ Poll `getTrip()` until `status === 'fulfilled'` (or `'partially_fulfilled'`) to
167
181
 
168
182
  ### refundCheck / refundCommit
169
183
 
184
+ Two auth modes: guest (`booking_ref` + `last_name`) or authenticated (`order_id`).
185
+
170
186
  ```typescript
171
- const eligibility = await client.refundCheck({ booking_reference: 'ref_123', pnr: 'ABC123' });
172
- const refund = await client.refundCommit({ booking_reference: 'ref_123', pnr: 'ABC123', reason: 'schedule change' });
187
+ const eligibility = await client.refundCheck({ booking_ref: 'JNK-ABC123', last_name: 'Doe' });
188
+ const refund = await client.refundCommit({ booking_ref: 'JNK-ABC123', last_name: 'Doe' });
173
189
  ```
174
190
 
175
191
  ## Token Flow
@@ -179,12 +195,12 @@ findFlight / findDestination / flightCalendar → offer_token (cached, fl
179
195
  flightSearch (offer_token) → trip_item_token (live, flights)
180
196
  hotelSearch → htl_* offer_id (live, hotels)
181
197
  trip (trip_item_token OR htl_* + travelers) → trip_id (multi-domain)
182
- checkout (trip_id) → checkout_url + items + ancillaries
198
+ book (trip_id) → checkout_url + items + ancillaries
183
199
  [user pays on checkout_url]
184
200
  getTrip (trip_id) → bookings / PNRs
185
201
  ```
186
202
 
187
- Quote is automatic — it's handled internally by `checkout()`. You don't call it.
203
+ Quote is automatic — it's handled internally by `book()`. You don't call it.
188
204
 
189
205
  ## Error Handling
190
206
 
@@ -205,36 +221,40 @@ try {
205
221
 
206
222
  ## Types
207
223
 
224
+ All request/response types are derived from the canonical `public-api.yaml`
225
+ contract (regenerated into `src/types/generated.ts`):
226
+
208
227
  ```typescript
209
228
  import type {
210
- FlightFindRequest,
211
- FlightDestinationSearchRequest,
229
+ FlightDiscoveryRequest,
230
+ FindDestinationRequest,
212
231
  FlightSearchRequest,
232
+ HotelSearchRequest,
233
+ HotelDetailsRequest,
213
234
  TripRequest,
214
- CheckoutRequest,
215
- CheckoutResponse,
216
- TripQuotedItem,
217
- AncillaryOffer,
218
- SelectedAncillary,
219
- TripStatusResponse,
220
- QuoteSummary,
221
- FulfillmentSummary,
222
- BookingRef,
223
- SelectAncillariesRequest,
235
+ BookRequest,
236
+ BookResponse,
237
+ GetTripResponse,
238
+ AncillaryRequest,
239
+ BookingGetRequest,
240
+ BookingGetResponse,
224
241
  RefundCheckRequest,
225
242
  RefundCommitRequest,
226
243
  Traveler,
227
- Contact,
228
244
  Money,
229
245
  } from '@gojinko/api-client';
230
246
  ```
231
247
 
248
+ The generated `paths` and `components` from the OpenAPI spec are also exported
249
+ for advanced use.
250
+
232
251
  ## Raw Client
233
252
 
234
- The underlying openapi-fetch client is still accessible:
253
+ The underlying openapi-fetch client is still accessible and is typed against the
254
+ jinko-api `/v1/*` surface:
235
255
 
236
256
  ```typescript
237
- const response = await client.raw.POST('/api/v1/flights/shop' as never, {
238
- body: { /* ... */ },
239
- } as never);
257
+ const response = await client.raw.POST('/v1/flight_search', {
258
+ body: { origin: 'JFK', destination: 'LAX', departure_date: '2026-09-01' },
259
+ });
240
260
  ```
package/dist/index.d.ts CHANGED
@@ -5,5 +5,5 @@ export { loadOrCreateCliSession, clearCliSession, extractUserIdFromJwt, getSessi
5
5
  export { ApiError, AuthError, ValidationError, type ApiErrorDetail } from './errors.js';
6
6
  export { requestDeviceAuthorization, pollForToken, refreshAccessToken, isTokenExpired, OAuthError, OAuthRefreshError, resolveExpiresAt, type OAuthTokens, type DeviceAuthorization, } from './oauth.js';
7
7
  export type { paths, components } from './types/generated.js';
8
- export type { FlightPassengers, ShopPassengers, FlightSearchFilters, FlightPriceConstraints, DateRange, Money, FlightFindRequest, FlightDestinationSearchRequest, FlightSearchRequest, FlightSearchLiveRequest, FlightSearchPriceCheckRequest, HotelOccupancy, HotelSearchRequest, HotelDetailsRequest, HotelDetailsResponse, HotelDetailsHotel, HotelDetailsRoom, HotelDetailsPolicy, HotelDetailsCoords, Traveler, Contact, TripUpsertTravelers, TripRequest, CheckoutRequest, CheckoutResponse, AncillaryOffer, SelectedAncillary, TripQuotedItem, TripStatusResponse, TravelerSummary, ContactInfo, QuoteSummary, FulfillmentSummary, BookingRef, AncillarySelection, SelectAncillariesRequest, BookingLookupRequest, BookingLookupResponse, BookingDetails, BookingContact, BookingTraveler, BookingConfirmation, BookingItem, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, RefundAmount, ExchangeShopRequest, ExchangeShopResponse, ExchangeShopOffer, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, } from './types/devplatform.js';
8
+ export type { Money, Amount, DateRange, Itinerary, FlightDiscoveryRequest, FlightFindRequest, FlightCalendarResponse, FindDestinationRequest, FlightDestinationSearchRequest, DestinationSuggestion, FindDestinationResponse, FlightSearchRequest, FlightSearchResponse, FlightOffer, Fare, FlightLeg, PriceMonitoringRequest, PriceMonitoringResponse, HotelOccupancy, HotelSearchRequest, HotelSearchResponse, HotelDetailsRequest, HotelDetailsResponse, Traveler, TripRequest, TripResponse, BookRequest, BookResponse, CheckoutRequest, CheckoutResponse, GetTripResponse, TripStatusResponse, AncillaryRequest, AncillaryResponse, SelectAncillariesRequest, BookingGetRequest, BookingGetResponse, BookingLookupRequest, BookingLookupResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelCancelBookingRequest, HotelCancelBookingResponse, } from './types/devplatform.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACzK,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,KAAK,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACzK,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAEV,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EAET,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,EAEvB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,IAAI,EACJ,SAAS,EAET,sBAAsB,EACtB,uBAAuB,EAEvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAEpB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EAExB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,52 +1,59 @@
1
- import type { JinkoRawClient } from './client.js';
2
- import type { FlightFindRequest, FlightDestinationSearchRequest, FlightSearchRequest, HotelSearchRequest, HotelDetailsRequest, HotelDetailsResponse, TripRequest, CheckoutResponse, TripStatusResponse, SelectAncillariesRequest, BookingGetRequest, BookingGetResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelRetrieveBookingRequest, HotelRetrieveBookingResponse, HotelCancelBookingRequest, HotelCancelBookingResponse } from './types/devplatform.js';
1
+ import type { JinkoRawClient } from "./client.js";
2
+ import type { FlightFindRequest, FlightDestinationSearchRequest, FlightSearchRequest, FlightSearchResponse, PriceMonitoringRequest, PriceMonitoringResponse, FlightCalendarResponse, FindDestinationResponse, HotelSearchRequest, HotelSearchResponse, HotelDetailsRequest, HotelDetailsResponse, TripRequest, TripResponse, BookResponse, GetTripResponse, AncillaryRequest, AncillaryResponse, BookingGetRequest, BookingGetResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelCancelBookingRequest, HotelCancelBookingResponse } from "./types/devplatform.js";
3
3
  /**
4
- * Tool methods matching MCP/CLI tool names.
4
+ * Tool methods matching the canonical jinko-api capability names.
5
5
  *
6
- * find_flight → findFlight()
7
- * find_destination → findDestination()
8
- * flight_search → flightSearch()
9
- * flight_calendar → flightCalendar()
10
- * hotel_search → hotelSearch()
11
- * hotel_details → hotelDetails()
12
- * trip → trip()
13
- * book → book()
14
- * select_ancillaries → selectAncillaries()
15
- * get_trip → getTrip()
16
- * refund_check → refundCheck()
17
- * refund_commit → refundCommit()
18
- * refund_status → refundStatus()
19
- * exchange_shop → exchangeShop()
20
- * exchange_price → exchangePrice()
21
- * exchange_commit → exchangeCommit()
22
- * exchange_status → exchangeStatus()
6
+ * Wave 6 cutover (JIN-665): every method now targets the public `/v1/*`
7
+ * surface served by jinko-api (`api.gojinko.com`), not the BFF directly. The
8
+ * method NAMES are kept stable to avoid churning the CLI:
23
9
  *
24
- * All cart-sync endpoints use the canonical /api/v1/shop/sync/* paths
25
- * introduced in Track 2.1 (jinkoso/mcp-bff#371). The legacy
26
- * /api/v1/trips/* aliases still work during the migration window.
10
+ * find_destination → findDestination() POST /v1/find_destination
11
+ * flight_calendar → flightCalendar() POST /v1/flight_calendar
12
+ * find_dates → findDates() POST /v1/find_dates
13
+ * find_flight → findFlight() POST /v1/flight_calendar (alias)
14
+ * flight_search → flightSearch() POST /v1/flight_search
15
+ * price_monitoring → priceMonitoring() POST /v1/price_monitoring
16
+ * hotel_search → hotelSearch() POST /v1/hotel_search
17
+ * hotel_details → hotelDetails() GET /v1/hotel_details/{hotel_id}
18
+ * trip → trip() POST /v1/trip
19
+ * get_trip → getTrip() GET /v1/trip/{trip_id}
20
+ * select_ancillaries → selectAncillaries() POST /v1/select_ancillaries
21
+ * book → book() POST /v1/book
22
+ * get_booking → getBooking() POST /v1/get_booking
23
+ * refund_check/_commit/_status → refundCheck/Commit/Status() POST /v1/refund_*
24
+ * exchange_shop/_price/_commit/_status → exchangeShop/Price/Commit/Status() POST /v1/exchange_*
25
+ * hotel_cancel → hotelCancelBooking() POST /v1/hotel_cancel
26
+ *
27
+ * `get_booking` returns the WHOLE booking (flight + hotel). The internal-only
28
+ * hotel-retrieve endpoint is no longer exposed — `hotelRetrieveBooking` was
29
+ * removed at the cutover.
27
30
  */
28
31
  export interface JinkoTools {
29
- /** find_flight — cached flight search, returns offer_tokens. */
30
- readonly findFlight: (request: FlightFindRequest) => Promise<unknown>;
32
+ /** find_flight — cached flight discovery (alias of flightCalendar). Returns itineraries. */
33
+ readonly findFlight: (request: FlightFindRequest) => Promise<FlightCalendarResponse>;
31
34
  /** find_destination — discover destinations from origin airports (cached). */
32
- readonly findDestination: (request: FlightDestinationSearchRequest) => Promise<unknown>;
33
- /** flight_search — live search or price-check a specific offer. Returns trip_item_token. */
34
- readonly flightSearch: (request: FlightSearchRequest) => Promise<unknown>;
35
- /** flight_calendar — cheapest prices across a date range (cached, uses /flights/search). */
36
- readonly flightCalendar: (request: FlightFindRequest) => Promise<unknown>;
37
- /** hotel_searchlive hotel search by destination, dates, occupancy. Returns htl_* offer_ids. */
38
- readonly hotelSearch: (request: HotelSearchRequest) => Promise<unknown>;
39
- /** hotel_detailsrich metadata (gallery, facilities, policies, per-room details) for a single hotel. */
35
+ readonly findDestination: (request: FlightDestinationSearchRequest) => Promise<FindDestinationResponse>;
36
+ /** flight_search — live search or price-check a specific offer. */
37
+ readonly flightSearch: (request: FlightSearchRequest) => Promise<FlightSearchResponse>;
38
+ /** price_monitoringcache-only poll for the cheapest itinerary on a fixed route + dates. */
39
+ readonly priceMonitoring: (request: PriceMonitoringRequest) => Promise<PriceMonitoringResponse>;
40
+ /** flight_calendarcheapest itineraries across a route + flexible dates (cached). */
41
+ readonly flightCalendar: (request: FlightFindRequest) => Promise<FlightCalendarResponse>;
42
+ /** find_datesup to 10 cheapest itineraries, one per date-pair, spread across the departure window (cached). */
43
+ readonly findDates: (request: FlightFindRequest) => Promise<FlightCalendarResponse>;
44
+ /** hotel_search — live hotel search by destination, dates, occupancy. */
45
+ readonly hotelSearch: (request: HotelSearchRequest) => Promise<HotelSearchResponse>;
46
+ /** hotel_details — rich metadata (gallery, facilities, policies, per-room details). */
40
47
  readonly hotelDetails: (request: HotelDetailsRequest) => Promise<HotelDetailsResponse>;
41
48
  /** trip — create trip, add/remove items, set travelers. Returns trip_id. */
42
- readonly trip: (request: TripRequest) => Promise<unknown>;
43
- /** book — schedule checkout: returns checkout_url, items, available ancillaries, total. */
44
- readonly book: (tripId: string) => Promise<CheckoutResponse>;
49
+ readonly trip: (request: TripRequest) => Promise<TripResponse>;
50
+ /** book — checkout a trip: returns checkout_url, items, total. */
51
+ readonly book: (tripId: string) => Promise<BookResponse>;
45
52
  /** select_ancillaries — select baggage, seats, meals for a trip item. */
46
- readonly selectAncillaries: (request: SelectAncillariesRequest) => Promise<unknown>;
53
+ readonly selectAncillaries: (request: AncillaryRequest) => Promise<AncillaryResponse>;
47
54
  /** getTrip — full lifecycle state: cart, quote, fulfillment, bookings. */
48
- readonly getTrip: (tripId: string) => Promise<TripStatusResponse>;
49
- /** get_booking — retrieve a booking by Jinko reference + last name (guest access). */
55
+ readonly getTrip: (tripId: string) => Promise<GetTripResponse>;
56
+ /** get_booking — retrieve the whole booking by Jinko reference + last name (guest access). */
50
57
  readonly getBooking: (request: BookingGetRequest) => Promise<BookingGetResponse>;
51
58
  /**
52
59
  * @deprecated Renamed to {@link getBooking} by JIN-663. Delegates to `getBooking`.
@@ -67,8 +74,6 @@ export interface JinkoTools {
67
74
  readonly exchangeCommit: (request: ExchangeCommitRequest) => Promise<ExchangeCommitResponse>;
68
75
  /** exchange_status — poll the status of an in-flight exchange. */
69
76
  readonly exchangeStatus: (request: ExchangeStatusRequest) => Promise<ExchangeStatusResponse>;
70
- /** hotel_lookup_booking — guest-access hotel booking retrieval (status, stay details, cancellation policy). */
71
- readonly hotelRetrieveBooking: (request: HotelRetrieveBookingRequest) => Promise<HotelRetrieveBookingResponse>;
72
77
  /** hotel_cancel — cancel a hotel booking (idempotent: second call re-serves stored result). */
73
78
  readonly hotelCancelBooking: (request: HotelCancelBookingRequest) => Promise<HotelCancelBookingResponse>;
74
79
  }
@@ -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
@@ -4,58 +4,50 @@ export function createTools(raw) {
4
4
  return response.data;
5
5
  }
6
6
  return {
7
- findFlight: (request) => post('/api/v1/flights/search', request),
8
- findDestination: (request) => post('/api/v1/flights/destination-search', request),
9
- flightSearch: (request) => post('/api/v1/flights/shop', request),
10
- flightCalendar: (request) => post('/api/v1/flights/search', request),
11
- hotelSearch: (request) => post('/api/v1/hotels/shop', request),
7
+ findFlight: async (request) => (await post("/v1/flight_calendar", request)),
8
+ flightCalendar: async (request) => (await post("/v1/flight_calendar", request)),
9
+ findDates: async (request) => (await post("/v1/find_dates", request)),
10
+ findDestination: async (request) => (await post("/v1/find_destination", request)),
11
+ flightSearch: async (request) => (await post("/v1/flight_search", request)),
12
+ priceMonitoring: async (request) => (await post("/v1/price_monitoring", request)),
13
+ hotelSearch: async (request) => (await post("/v1/hotel_search", request)),
12
14
  hotelDetails: async ({ hotel_id, checkin, checkout }) => {
13
15
  const query = {};
14
16
  if (checkin)
15
- query['checkin'] = checkin;
17
+ query["checkin"] = checkin;
16
18
  if (checkout)
17
- query['checkout'] = checkout;
18
- const response = await raw.GET('/api/v1/hotels/{id}/details', {
19
+ query["checkout"] = checkout;
20
+ const response = await raw.GET("/v1/hotel_details/{hotel_id}", {
19
21
  params: {
20
- path: { id: hotel_id },
22
+ path: { hotel_id },
21
23
  ...(Object.keys(query).length > 0 ? { query } : {}),
22
24
  },
23
25
  });
24
- return response.data;
25
- },
26
- trip: (request) => post('/api/v1/shop/sync', request),
27
- book: async (tripId) => {
28
- const body = { trip_id: tripId };
29
- const data = await post('/api/v1/shop/sync/checkout', body);
30
- return data;
26
+ return response
27
+ .data;
31
28
  },
32
- selectAncillaries: (request) => post('/api/v1/shop/sync/ancillaries', request),
29
+ trip: async (request) => (await post("/v1/trip", request)),
30
+ book: async (tripId) => (await post("/v1/book", { trip_id: tripId })),
31
+ selectAncillaries: async (request) => (await post("/v1/select_ancillaries", request)),
33
32
  getTrip: async (tripId) => {
34
- const response = await raw.GET('/api/v1/shop/sync/{id}', {
35
- params: { path: { id: tripId } },
33
+ const response = await raw.GET("/v1/trip/{trip_id}", {
34
+ params: { path: { trip_id: tripId } },
36
35
  });
37
36
  return response.data;
38
37
  },
39
- getBooking: async (request) => {
40
- const data = await post('/api/v1/bookings/get', request);
41
- return data;
42
- },
38
+ getBooking: async (request) => (await post("/v1/get_booking", request)),
43
39
  // Deprecated — kept for back-compat (JIN-663). Delegates to the canonical
44
- // get_booking SDK method; the BFF still accepts /bookings/lookup as a
45
- // deprecated alias, but new callers should use getBooking().
46
- lookupBooking: async (request) => {
47
- const data = await post('/api/v1/bookings/get', request);
48
- return data;
49
- },
50
- refundCheck: async (request) => (await post('/api/v1/flights/refund-check', request)),
51
- refundCommit: async (request) => (await post('/api/v1/flights/refund-commit', request)),
52
- refundStatus: async (request) => (await post('/api/v1/flights/refund-status', request)),
53
- exchangeShop: async (request) => (await post('/api/v1/flights/exchange-shop', request)),
54
- exchangePrice: async (request) => (await post('/api/v1/flights/exchange-price', request)),
55
- exchangeCommit: async (request) => (await post('/api/v1/flights/exchange-commit', request)),
56
- exchangeStatus: async (request) => (await post('/api/v1/flights/exchange-status', request)),
57
- hotelRetrieveBooking: async (request) => (await post('/api/v1/hotels/retrieve-booking', request)),
58
- hotelCancelBooking: async (request) => (await post('/api/v1/hotels/cancel-booking', request)),
40
+ // get_booking capability so a single SDK bump moves callers onto the new
41
+ // public surface.
42
+ lookupBooking: async (request) => (await post("/v1/get_booking", request)),
43
+ refundCheck: async (request) => (await post("/v1/refund_check", request)),
44
+ refundCommit: async (request) => (await post("/v1/refund_commit", request)),
45
+ refundStatus: async (request) => (await post("/v1/refund_status", request)),
46
+ exchangeShop: async (request) => (await post("/v1/exchange_shop", request)),
47
+ exchangePrice: async (request) => (await post("/v1/exchange_price", request)),
48
+ exchangeCommit: async (request) => (await post("/v1/exchange_commit", request)),
49
+ exchangeStatus: async (request) => (await post("/v1/exchange_status", request)),
50
+ hotelCancelBooking: async (request) => (await post("/v1/hotel_cancel", request)),
59
51
  };
60
52
  }
61
53
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}