@gojinko/api-client 2.22.1 → 2.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 CHANGED
@@ -22,13 +22,16 @@ const client = await createJinkoClient({ apiKey: 'jnk_...' });
22
22
 
23
23
  ## Authentication
24
24
 
25
- The client resolves credentials automatically in this order:
25
+ Authenticate with a **tenant API key** (`jnk_...`) — get one from
26
+ **dashboard.gojinko.com → Developers → API keys**. The client resolves
27
+ credentials automatically in this order:
26
28
 
27
29
  1. `apiKey` option passed to `createJinkoClient()`
28
30
  2. `JINKO_API_KEY` environment variable
29
- 3. `~/.jinko/config.yaml` — API key or OAuth tokens (managed by `jinko auth login`)
31
+ 3. `~/.jinko/config.yaml` — API key (managed by `jinko auth login --key jnk_...`)
30
32
 
31
- OAuth tokens auto-refresh when they expire.
33
+ > OAuth is deprecated. Legacy OAuth tokens still present in `~/.jinko/config.yaml`
34
+ > continue to auto-refresh, but new logins use API keys.
32
35
 
33
36
  ## Methods
34
37
 
@@ -52,6 +55,7 @@ canonical `/v1/*` routes). Authenticate with a `jnk_` API key (`X-API-Key`).
52
55
  | `client.flightSearch()` | `POST /v1/flight_search` |
53
56
  | `client.hotelSearch()` | `POST /v1/hotel_search` |
54
57
  | `client.hotelDetails()` | `GET /v1/hotel_details/{hotel_id}` |
58
+ | `client.groundSearch()` | `POST /v1/ground_search` |
55
59
  | `client.trip()` | `POST /v1/trip` |
56
60
  | `client.getTrip(tripId)` | `GET /v1/trip/{trip_id}` |
57
61
 
@@ -123,6 +127,35 @@ const results = await client.hotelSearch({
123
127
  await client.trip({ add_item: { trip_item_token: 'htl_xxx:rate_yyy' } });
124
128
  ```
125
129
 
130
+ ### ground_search — Live rail, coach and ferry search
131
+
132
+ Returns ground connections (Distribusion). Two things to know before your first call:
133
+
134
+ 1. **Codes are ISO-country + city, not IATA** — `GBLON` for London, not `LON`. A
135
+ wrong code returns no inventory rather than an error, which is a confusing way
136
+ to fail.
137
+ 2. **`connections[].id` *is* the trip item token.** Unlike hotels it carries no
138
+ `htl_`-style prefix — pass it verbatim to `trip()`.
139
+
140
+ ```typescript
141
+ const results = await client.groundSearch({
142
+ departure_city: 'GBLON',
143
+ arrival_city: 'GBLON',
144
+ departure_date: '2026-08-28',
145
+ passengers: [{ pax: 1 }], // omit max_age for an adult; 0-15 prices as a child
146
+ currency: 'GBP',
147
+ });
148
+ // → { connections: [ { id, departure_station, arrival_station, departure_time,
149
+ // duration_minutes, transport_mode, marketing_carrier,
150
+ // fares: [ { fare_class, total_price, refundable } ] } ] }
151
+
152
+ // Add the journey to a trip — the id goes in unmodified:
153
+ await client.trip({ add_item: { trip_item_token: results.connections[0].id } });
154
+ ```
155
+
156
+ Pass `return_date` for a round trip. Ground shares the cart with flights and
157
+ hotels, so `checkout()` and `getTrip()` need no ground-specific handling.
158
+
126
159
  ### trip — Create trip, add flight or hotel, set travelers
127
160
 
128
161
  ```typescript
@@ -138,6 +171,9 @@ const trip = await client.trip({
138
171
  // Optional per-traveler loyalty program. airline = IATA code of the
139
172
  // program issuer (e.g. 'LH'), not necessarily the operating carrier.
140
173
  frequent_flyer: { airline: 'LH', number: '992100100' },
174
+ // Optional US trusted-traveler identifiers (flights only). The issuing
175
+ // country defaults to US; a redress_number works the same way.
176
+ known_traveler_number: '998765432',
141
177
  }],
142
178
  contact: { email: 'jane@example.com', phone: '+33612345678' },
143
179
  },
@@ -172,10 +208,15 @@ fallback instead of advancing the booking.
172
208
 
173
209
  ```typescript
174
210
  const result = await client.submitAgentPayment('42', 'spt_1Nq8L2eZvKYlo2C0');
175
- // { status: 'processing', payment_verified: true, fulfillment_cart_id, ... }
176
- // or, on a 3DS step-up: { payment_verified: false, checkout_url }
211
+ // { status: 'processing', payment_verified: true, booking_ref: 'JNK-XEVGW5', fulfillment_cart_id, ... }
212
+ // or, on a 3DS step-up: { payment_verified: false, checkout_url } (no booking_ref)
177
213
  ```
178
214
 
215
+ `booking_ref` is the Jinko booking reference (`JNK-…`) — the handle
216
+ `getBooking()`, `hotelCancelBooking()`, refund and exchange take as
217
+ `booking_ref`. An agent that pays this way never opens `checkout_url`, so this
218
+ response (and `getTrip()` afterwards) is where it learns the reference.
219
+
179
220
  ### selectAncillaries — Add baggage, seats, meals
180
221
 
181
222
  ```typescript
@@ -198,6 +239,7 @@ const status = await client.getTrip('42');
198
239
  // travelers, contact, items, total_amount,
199
240
  // quote: { quoted_cart_id, status, expires_at },
200
241
  // fulfillment: { fulfillment_cart_id, status, phase, scheduled_at },
242
+ // booking_ref: 'JNK-XEVGW5', // the Jinko reference — present once fulfillment is scheduled
201
243
  // bookings: [ { item_id, booking_reference, pnr, provider_status } ],
202
244
  // created_at, updated_at,
203
245
  // }
@@ -205,6 +247,11 @@ const status = await client.getTrip('42');
205
247
 
206
248
  Poll `getTrip()` until `status === 'fulfilled'` (or `'partially_fulfilled'`) to read the PNRs.
207
249
 
250
+ `booking_ref` (top level, one per trip) is the Jinko booking reference — what
251
+ `getBooking()`, `hotelCancelBooking()`, refund and exchange take as
252
+ `booking_ref`. `bookings[].booking_reference` is the SUPPLIER confirmation
253
+ (airline record locator, hotel confirmation number) and is not that handle.
254
+
208
255
  ### refundCheck / refundCommit
209
256
 
210
257
  Two auth modes: guest (`booking_ref` + `last_name`) or authenticated (`order_id`).
@@ -220,7 +267,8 @@ const refund = await client.refundCommit({ booking_ref: 'JNK-ABC123', last_
220
267
  findFlight / findDestination / flightCalendar → offer_token (cached, flights)
221
268
  flightSearch (offer_token) → trip_item_token (live, flights)
222
269
  hotelSearch → htl_* offer_id (live, hotels)
223
- trip (trip_item_token OR htl_* + travelers) → trip_id (multi-domain)
270
+ groundSearch → connections[].id (live, ground; raw, NOT prefixed)
271
+ trip (trip_item_token OR htl_* OR ground id) → trip_id (multi-domain)
224
272
  checkout (trip_id) → checkout_url + agent_spt_params + items
225
273
  ├─ [human] user pays on checkout_url
226
274
  └─ [agent] submitAgentPayment(trip_id, spt) → authorized server-side
@@ -238,7 +286,7 @@ try {
238
286
  const client = await createJinkoClient();
239
287
  } catch (error) {
240
288
  if (error instanceof AuthError) {
241
- // No credentials configured — run `jinko auth login`
289
+ // No credentials configured — run `jinko auth login --key jnk_...`
242
290
  }
243
291
  if (error instanceof ApiError) {
244
292
  console.error(error.code, error.message, error.statusCode);
package/dist/client.d.ts CHANGED
@@ -30,6 +30,17 @@ export interface ClientOptions {
30
30
  * producer (jinkoso/mcp-bff#1146) consumes it.
31
31
  */
32
32
  readonly originAction?: string;
33
+ /**
34
+ * The end user's request in their own words (avoid PII), forwarded to Jinko
35
+ * for observability and relevance. When set, it is merged into the JSON
36
+ * request body of every POST tool call as the optional
37
+ * `intent: { user_intent }` envelope (IntentInput) — the shape all 21
38
+ * intent-eligible public POST operations accept. Unlike the X-Origin-*
39
+ * headers this is a body field, so non-ASCII text (any language) passes
40
+ * through untouched; the value is trimmed and omitted entirely when blank.
41
+ * The CLI threads its per-command `--user-intent` flag here.
42
+ */
43
+ readonly userIntent?: string;
33
44
  }
34
45
  export type JinkoRawClient = ReturnType<typeof createClient<paths>>;
35
46
  export interface JinkoClient extends JinkoTools {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,YAAiC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAoClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAQD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA8KzF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,YAAiC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAgDlD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpE,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAQD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAoMzF"}
package/dist/client.js CHANGED
@@ -36,6 +36,17 @@ function sanitizeOriginAction(value) {
36
36
  .slice(0, ORIGIN_ACTION_MAX_LEN);
37
37
  return ascii.length > 0 ? ascii : undefined;
38
38
  }
39
+ /**
40
+ * Normalize the user-intent text destined for the `intent.user_intent`
41
+ * request-body field. Unlike X-Origin-Action this travels in the JSON body,
42
+ * not a header, so non-ASCII text (any language) passes through untouched —
43
+ * we only trim whitespace and return undefined when the result is empty so
44
+ * the `intent` envelope is omitted rather than sent blank.
45
+ */
46
+ function normalizeUserIntent(value) {
47
+ const trimmed = value?.trim();
48
+ return trimmed ? trimmed : undefined;
49
+ }
39
50
  /**
40
51
  * Create a configured openapi-fetch client for the Jinko BFF.
41
52
  *
@@ -71,8 +82,14 @@ export async function createJinkoClient(options = {}) {
71
82
  // sufficient for backend trace continuity.
72
83
  const traceId = randomBytes(16).toString('hex'); // 32 hex chars
73
84
  const newSpanId = () => randomBytes(8).toString('hex'); // 16 hex chars
74
- // Derive a best-effort user id. API-key auth doesn't expose one; OAuth/JWT
75
- // does via the `sub` claim. Either value is optional on the downstream side.
85
+ // Derive a best-effort user id for the legacy X-User-ID header. API-key auth
86
+ // (the supported path) doesn't expose one, so this stays `undefined` for every
87
+ // `jnk_...` request — X-User-ID is never sent on the api_key path. It is only
88
+ // populated for OAuth/JWT tokens via the `sub` claim. OAuth sign-in is
89
+ // deprecated, so this only fires for pre-existing OAuth credentials or an
90
+ // explicit non-`jnk_` token; the downstream side treats it as optional. Do not
91
+ // wire new behavior onto X-User-ID — it is legacy and effectively dead for new
92
+ // (API-key) auth.
76
93
  const userId = auth.method === 'oauth' ? extractUserIdFromJwt(auth.token) : undefined;
77
94
  // Intent-tracking provenance (Revision 2 contract). X-Origin-Source carries
78
95
  // the caller's surface (only when the caller opts in — see ClientOptions) and
@@ -99,13 +116,15 @@ export async function createJinkoClient(options = {}) {
99
116
  // (e.g. a 401 at the public ingress) — masking every auth failure as an
100
117
  // opaque "fetch failed". Header mutation leaves the body untouched.
101
118
  const { headers } = request;
102
- headers.set('X-Tenant-ID', 'jinko');
103
119
  headers.set('Content-Type', 'application/json');
104
120
  headers.set('Accept', 'application/json');
105
121
  // Observability headers — let downstream services group, filter, and trace
106
122
  // a user's CLI flow in Datadog. `X-Session-ID` is stable per CLI session;
107
- // `X-Request-ID` is unique per HTTP call; `X-User-ID` is set only when
108
- // OAuth is in use (JWT sub claim).
123
+ // `X-Request-ID` is unique per HTTP call. `X-User-ID` is legacy: it is set
124
+ // only when OAuth is in use (JWT sub claim) and is NEVER sent on the
125
+ // api_key path (`userId` is undefined there). Kept for back-compat with
126
+ // pre-existing OAuth tokens; the clean api_key path authenticates purely
127
+ // via the X-API-Key header below.
109
128
  headers.set('X-Session-ID', sessionId);
110
129
  headers.set('X-Request-ID', randomUUID());
111
130
  if (userId) {
@@ -140,10 +159,12 @@ export async function createJinkoClient(options = {}) {
140
159
  // public ingress and rebuilds it post-auth from the validated API key.
141
160
  headers.set('traceparent', `00-${traceId}-${newSpanId()}-01`);
142
161
  if (auth.method === 'api_key') {
162
+ // Supported, documented auth path: the tenant API key travels in
163
+ // X-API-Key. No Authorization bearer, no X-User-ID — just the key.
143
164
  headers.set('X-API-Key', auth.token);
144
165
  }
145
166
  else {
146
- // OAuth — check if we need to refresh
167
+ // OAuth (deprecated, legacy tokens only) — check if we need to refresh
147
168
  let currentToken = auth.token;
148
169
  if (tokenState && isTokenExpired({ access_token: tokenState.accessToken, refresh_token: tokenState.refreshToken, expires_at: tokenState.expiresAt })) {
149
170
  try {
@@ -177,10 +198,19 @@ export async function createJinkoClient(options = {}) {
177
198
  async onResponse({ response }) {
178
199
  if (!response.ok) {
179
200
  let detail = { code: 'API_ERROR', message: response.statusText };
201
+ let details;
180
202
  try {
181
203
  const body = await response.clone().json();
182
204
  if (body?.error) {
183
205
  detail = { ...detail, ...body.error };
206
+ // Everything beside `error` is a carried key (D27): `expires_at` on
207
+ // QUOTE_EXPIRED, `status` on TRIP_EXPIRED / TRIP_STATE_CONFLICT,
208
+ // `items` on PRICE_CHANGED. Spreading `body.error` alone dropped
209
+ // them, which left the caller holding a code it could not act on.
210
+ const { error: _error, ...carried } = body;
211
+ if (Object.keys(carried).length > 0) {
212
+ details = carried;
213
+ }
184
214
  }
185
215
  else if (body?.message) {
186
216
  detail = { ...detail, message: body.message };
@@ -189,14 +219,17 @@ export async function createJinkoClient(options = {}) {
189
219
  catch {
190
220
  // Response body isn't JSON — use statusText.
191
221
  }
192
- throw new ApiError({ ...detail, statusCode: response.status });
222
+ throw new ApiError({ ...detail, statusCode: response.status, details });
193
223
  }
194
224
  return response;
195
225
  },
196
226
  };
197
227
  client.use(authMiddleware);
198
228
  client.use(errorMiddleware);
199
- const tools = createTools(client);
229
+ // User intent travels in the request BODY (intent.user_intent), not a
230
+ // header, so it is threaded into the tools layer where POST bodies are
231
+ // assembled rather than into the middleware above.
232
+ const tools = createTools(client, { userIntent: normalizeUserIntent(options.userIntent) });
200
233
  return {
201
234
  raw: client,
202
235
  auth,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,YAAiC,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,eAAe,GAGhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAmB,MAAM,YAAY,CAAC;AAG1D,qEAAqE;AACrE,gEAAgE;AAChE,sEAAsE;AACtE,oCAAoC;AACpC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAwB,CAAC;AAErF,qEAAqE;AACrE,uEAAuE;AACvE,4DAA4D;AAC5D,MAAM,eAAe,GAAG,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC;AAEnD,6EAA6E;AAC7E,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK;SAChB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAyB;IACpD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAwDD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAyB,EAAE;IACjE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,SAAS,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAEhD,gFAAgF;IAChF,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,0CAA0C;IACtE,CAAC;IAED,uEAAuE;IACvE,kEAAkE;IAClE,mEAAmE;IACnE,0DAA0D;IAC1D,EAAE;IACF,mEAAmE;IACnE,oEAAoE;IACpE,qEAAqE;IACrE,2CAA2C;IAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe;IAChE,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe;IAE/E,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,uEAAuE;IACvE,0EAA0E;IAC1E,+EAA+E;IAC/E,+EAA+E;IAC/E,kBAAkB;IAClB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtF,4EAA4E;IAC5E,8EAA8E;IAC9E,wEAAwE;IACxE,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM;IACN,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhE,yEAAyE;IACzE,IAAI,UAAkC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC5B,gEAAgE;QAChE,oEAAoE;QACpE,sEAAsE;QACtE,UAAU,GAAG,SAAS,CAAC,CAAC,wCAAwC;IAClE,CAAC;IAED,MAAM,cAAc,GAAe;QACjC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;YACzB,wEAAwE;YACxE,kEAAkE;YAClE,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAE1C,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,qEAAqE;YACrE,wEAAwE;YACxE,yEAAyE;YACzE,kCAAkC;YAClC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;YAED,oEAAoE;YACpE,kEAAkE;YAClE,iEAAiE;YACjE,2DAA2D;YAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;YAE9C,wEAAwE;YACxE,iEAAiE;YACjE,0EAA0E;YAC1E,mEAAmE;YACnE,0EAA0E;YAC1E,0EAA0E;YAC1E,iEAAiE;YACjE,wEAAwE;YACxE,oCAAoC;YACpC,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC/C,CAAC;YAED,qEAAqE;YACrE,iEAAiE;YACjE,wDAAwD;YACxD,qEAAqE;YACrE,oEAAoE;YACpE,uEAAuE;YACvE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,OAAO,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC;YAE9D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,iEAAiE;gBACjE,mEAAmE;gBACnE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE9B,IAAI,UAAU,IAAI,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;oBACrJ,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;wBACpE,UAAU,GAAG;4BACX,WAAW,EAAE,SAAS,CAAC,YAAY;4BACnC,YAAY,EAAE,SAAS,CAAC,aAAa;4BACrC,SAAS,EAAE,SAAS,CAAC,UAAU;yBAChC,CAAC;wBACF,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;wBACtC,mBAAmB;wBACnB,MAAM,eAAe,CAAC;4BACpB,KAAK,EAAE;gCACL,YAAY,EAAE,SAAS,CAAC,YAAY;gCACpC,aAAa,EAAE,SAAS,CAAC,aAAa;gCACtC,UAAU,EAAE,SAAS,CAAC,UAAU;6BACjC;yBACF,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,6BAA6B;oBAC/B,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,YAAY,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;IAEF,uDAAuD;IACvD,MAAM,eAAe,GAAe;QAClC,KAAK,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACjE,IAAI,OAA4C,CAAC;gBACjD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;oBAC3C,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;wBAChB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;wBACtC,oEAAoE;wBACpE,iEAAiE;wBACjE,iEAAiE;wBACjE,kEAAkE;wBAClE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAA+B,CAAC;wBACtE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpC,OAAO,GAAG,OAAO,CAAC;wBACpB,CAAC;oBACH,CAAC;yBAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;wBACzB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;oBAChD,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;gBACD,MAAM,IAAI,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;IAEF,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE5B,sEAAsE;IACtE,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE3F,OAAO;QACL,GAAG,EAAE,MAAM;QACX,IAAI;QACJ,GAAG,KAAK;KACT,CAAC;AACJ,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -3,15 +3,31 @@ export interface ApiErrorDetail {
3
3
  readonly message: string;
4
4
  readonly doc_url?: string;
5
5
  }
6
+ /**
7
+ * The keys the public error envelope carries BESIDE `error`, not inside it
8
+ * (contract amendment D27):
9
+ *
10
+ * { "error": { "code", "message", "doc_url"? }, "expires_at": "…" }
11
+ *
12
+ * Which key appears is a function of the code: `expires_at` on QUOTE_EXPIRED
13
+ * (410), `status` on TRIP_EXPIRED and TRIP_STATE_CONFLICT (409), `items` on
14
+ * PRICE_CHANGED (409). They are what makes a code actionable, so they are
15
+ * captured verbatim rather than enumerated here — a code that starts carrying
16
+ * a new key reaches the caller without a client release.
17
+ */
18
+ export type ApiErrorDetails = Readonly<Record<string, unknown>>;
6
19
  export declare class ApiError extends Error {
7
20
  readonly code: string;
8
21
  readonly statusCode: number;
9
22
  readonly docUrl?: string;
23
+ readonly details?: ApiErrorDetails;
10
24
  constructor(detail: ApiErrorDetail & {
11
25
  statusCode: number;
26
+ details?: ApiErrorDetails;
12
27
  });
13
28
  toJSON(): ApiErrorDetail & {
14
29
  statusCode: number;
30
+ details?: ApiErrorDetails;
15
31
  };
16
32
  }
17
33
  export declare class AuthError extends ApiError {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEb,MAAM,EAAE,cAAc,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;IAQ3D,MAAM,IAAI,cAAc,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE;CAQlD;AAED,qBAAa,SAAU,SAAQ,QAAQ;gBACzB,OAAO,SAA0E;CAI9F;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhE,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;gBAEvB,MAAM,EAAE,cAAc,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,CAAA;KAAE;IAStF,MAAM,IAAI,cAAc,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,CAAA;KAAE;CAS7E;AAED,qBAAa,SAAU,SAAQ,QAAQ;gBAEnC,OAAO,SAAgK;CAK1K;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM;CAI5B"}
package/dist/errors.js CHANGED
@@ -2,12 +2,14 @@ export class ApiError extends Error {
2
2
  code;
3
3
  statusCode;
4
4
  docUrl;
5
+ details;
5
6
  constructor(detail) {
6
7
  super(detail.message);
7
8
  this.name = 'ApiError';
8
9
  this.code = detail.code;
9
10
  this.statusCode = detail.statusCode;
10
11
  this.docUrl = detail.doc_url;
12
+ this.details = detail.details;
11
13
  }
12
14
  toJSON() {
13
15
  return {
@@ -15,11 +17,12 @@ export class ApiError extends Error {
15
17
  message: this.message,
16
18
  statusCode: this.statusCode,
17
19
  doc_url: this.docUrl,
20
+ ...(this.details ? { details: this.details } : {}),
18
21
  };
19
22
  }
20
23
  }
21
24
  export class AuthError extends ApiError {
22
- constructor(message = 'Authentication required. Run `jinko auth login` or set JINKO_API_KEY.') {
25
+ constructor(message = 'Authentication required. Get an API key from dashboard.gojinko.com → Developers → API keys, then run `jinko auth login --key jnk_...` or set JINKO_API_KEY.') {
23
26
  super({ code: 'AUTH_REQUIRED', message, statusCode: 401 });
24
27
  this.name = 'AuthError';
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,MAAM,CAAU;IAEzB,YAAY,MAA+C;QACzD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACrC,YAAY,OAAO,GAAG,uEAAuE;QAC3F,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,MAAM,CAAU;IAChB,OAAO,CAAmB;IAEnC,YAAY,MAA0E;QACpF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACrC,YACE,OAAO,GAAG,6JAA6J;QAEvK,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ export { createJinkoClient, type ClientOptions, type JinkoClient, type JinkoRawC
2
2
  export { type JinkoTools } from './tools.js';
3
3
  export { resolveAuth, resolveBaseUrl, resolveEnvironment, readConfigFile, writeConfigFile, writeEnvAuth, setEnvironment, clearAuthConfig, ENV_BASE_URLS, CONFIG_DIR, CONFIG_FILE, DEFAULT_ENVIRONMENT, type AuthMethod, type Environment, type ResolvedAuth, type OAuthConfig, } from './auth.js';
4
4
  export { loadOrCreateCliSession, clearCliSession, extractUserIdFromJwt, getSessionFilePath, SESSION_TTL_MS } from './session.js';
5
- export { ApiError, AuthError, ValidationError, type ApiErrorDetail } from './errors.js';
5
+ export { ApiError, AuthError, ValidationError, type ApiErrorDetail, type ApiErrorDetails, } 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 { 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, TripAncillariesResponse, AncillaryOffer, AncillaryRequest, AncillaryResponse, SelectAncillariesRequest, BookingGetRequest, BookingGetResponse, BookingLookupRequest, BookingLookupResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelCancelBookingRequest, HotelCancelBookingResponse, DemandQuery, Level, TravelerType, TripType, DestinationRow, MarketRow, AudienceRow, DestinationResponse, MarketResponse, AudienceResponse, DemandTrendQuery, Granularity, TrendPoint, SeriesSummary, TrendSeries, TrendResponse, } from './types/devplatform.js';
8
+ export type { Money, Amount, DateRange, Itinerary, FlightDiscoveryRequest, FlightFindRequest, FlightCalendarResponse, FindDestinationRequest, FlightDestinationSearchRequest, DestinationSuggestion, FindDestinationResponse, FlightSearchRequest, FlightSearchResponse, FlightOffer, Fare, FlightLeg, TimeRange, UnappliedFilter, PriceMonitoringRequest, PriceMonitoringResponse, HotelOccupancy, GroundSearchRequest, GroundSearchResponse, GroundConnection, GroundFare, GroundStation, GroundCarrier, GroundAmount, HotelSearchRequest, HotelSearchResponse, HotelDetailsRequest, HotelDetailsResponse, Traveler, TripRequest, TripResponse, PriceChange, BookRequest, BookResponse, CheckoutRequest, CheckoutResponse, GetTripResponse, TripStatusResponse, TripAncillariesResponse, AncillaryOffer, AncillaryRequest, AncillaryResponse, SelectAncillariesRequest, BookingGetRequest, BookingGetResponse, BookingLookupRequest, BookingLookupResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelCancelBookingRequest, HotelCancelBookingResponse, DemandQuery, Level, TravelerType, TripType, DestinationRow, MarketRow, AudienceRow, DestinationResponse, MarketResponse, AudienceResponse, DemandTrendQuery, Granularity, TrendPoint, SeriesSummary, TrendSeries, TrendResponse, } 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,EACL,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AACnB,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,uBAAuB,EACvB,cAAc,EACd,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,EAE1B,WAAW,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,GACd,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,EACL,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjI,OAAO,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AACrB,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,EACT,SAAS,EACT,eAAe,EAEf,sBAAsB,EACtB,uBAAuB,EAEvB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAEpB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,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,EAE1B,WAAW,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createJinkoClient } from './client.js';
2
2
  export { resolveAuth, resolveBaseUrl, resolveEnvironment, readConfigFile, writeConfigFile, writeEnvAuth, setEnvironment, clearAuthConfig, ENV_BASE_URLS, CONFIG_DIR, CONFIG_FILE, DEFAULT_ENVIRONMENT, } from './auth.js';
3
3
  export { loadOrCreateCliSession, clearCliSession, extractUserIdFromJwt, getSessionFilePath, SESSION_TTL_MS } from './session.js';
4
- export { ApiError, AuthError, ValidationError } from './errors.js';
4
+ export { ApiError, AuthError, ValidationError, } from './errors.js';
5
5
  export { requestDeviceAuthorization, pollForToken, refreshAccessToken, isTokenExpired, OAuthError, OAuthRefreshError, resolveExpiresAt, } from './oauth.js';
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA6D,MAAM,aAAa,CAAC;AAE3G,OAAO,EACL,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACX,mBAAmB,GAKpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA6D,MAAM,aAAa,CAAC;AAE3G,OAAO,EACL,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,WAAW,EACX,mBAAmB,GAKpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjI,OAAO,EACL,QAAQ,EACR,SAAS,EACT,eAAe,GAGhB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,YAAY,CAAC"}
package/dist/oauth.d.ts CHANGED
@@ -19,11 +19,20 @@ export declare class OAuthRefreshError extends OAuthError {
19
19
  }
20
20
  /**
21
21
  * Request device authorization — returns a user code and verification URL.
22
+ *
23
+ * @deprecated OAuth sign-in was retired for the Jinko data plane. Tenant API
24
+ * keys (`jnk_...`) are the auth model — see `jinko auth login --key`. This
25
+ * device-authorization helper is no longer reachable from the CLI and is kept
26
+ * only for backward compatibility of the SDK's public surface.
22
27
  */
23
28
  export declare function requestDeviceAuthorization(): Promise<DeviceAuthorization>;
24
29
  /**
25
30
  * Poll the token endpoint until the user approves or the code expires.
26
31
  * Calls onPoll() before each attempt (for progress indicators).
32
+ *
33
+ * @deprecated OAuth sign-in was retired for the Jinko data plane. Tenant API
34
+ * keys (`jnk_...`) are the auth model. This device-flow poller is no longer
35
+ * reachable from the CLI and is kept only for SDK back-compat.
27
36
  */
28
37
  export declare function pollForToken(deviceCode: string, options: {
29
38
  readonly intervalSeconds: number;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAwE;CAI5F;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAa/E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B,GACA,OAAO,CAAC,WAAW,CAAC,CAqDtB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA0BnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,SAAK,GAAG,OAAO,CAE/E;AAQD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBhF"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAwE;CAI5F;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAa/E;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B,GACA,OAAO,CAAC,WAAW,CAAC,CAqDtB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA0BnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,SAAK,GAAG,OAAO,CAE/E;AAQD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAyBhF"}
package/dist/oauth.js CHANGED
@@ -17,6 +17,11 @@ export class OAuthRefreshError extends OAuthError {
17
17
  }
18
18
  /**
19
19
  * Request device authorization — returns a user code and verification URL.
20
+ *
21
+ * @deprecated OAuth sign-in was retired for the Jinko data plane. Tenant API
22
+ * keys (`jnk_...`) are the auth model — see `jinko auth login --key`. This
23
+ * device-authorization helper is no longer reachable from the CLI and is kept
24
+ * only for backward compatibility of the SDK's public surface.
20
25
  */
21
26
  export async function requestDeviceAuthorization() {
22
27
  const response = await fetch(DEVICE_AUTHORIZE_URL, {
@@ -33,6 +38,10 @@ export async function requestDeviceAuthorization() {
33
38
  /**
34
39
  * Poll the token endpoint until the user approves or the code expires.
35
40
  * Calls onPoll() before each attempt (for progress indicators).
41
+ *
42
+ * @deprecated OAuth sign-in was retired for the Jinko data plane. Tenant API
43
+ * keys (`jnk_...`) are the auth model. This device-flow poller is no longer
44
+ * reachable from the CLI and is kept only for SDK back-compat.
36
45
  */
37
46
  export async function pollForToken(deviceCode, options) {
38
47
  const { intervalSeconds, expiresIn, onPoll } = options;
package/dist/oauth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { JinkoRawClient } from "./client.js";
2
- import type { FlightFindRequest, FlightDestinationSearchRequest, FlightSearchRequest, FlightSearchResponse, PriceMonitoringRequest, PriceMonitoringResponse, FlightCalendarResponse, FindDestinationResponse, HotelSearchRequest, HotelSearchResponse, HotelDetailsRequest, HotelDetailsResponse, TripRequest, TripResponse, CheckoutResponse, AgentPaymentSubmitResponse, GetTripResponse, TripAncillariesResponse, AncillaryRequest, AncillaryResponse, BookingGetRequest, BookingGetResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelCancelBookingRequest, HotelCancelBookingResponse, DemandQuery, DestinationResponse, MarketResponse, AudienceResponse, DemandTrendQuery, TrendResponse } from "./types/devplatform.js";
2
+ import type { FlightFindRequest, FlightDestinationSearchRequest, FlightSearchRequest, FlightSearchResponse, PriceMonitoringRequest, PriceMonitoringResponse, FlightCalendarResponse, FindDestinationResponse, GroundSearchRequest, GroundSearchResponse, HotelSearchRequest, HotelSearchResponse, HotelDetailsRequest, HotelDetailsResponse, TripRequest, TripResponse, CheckoutResponse, AgentPaymentSubmitResponse, GetTripResponse, TripAncillariesResponse, AncillaryRequest, AncillaryResponse, BookingGetRequest, BookingGetResponse, RefundCheckRequest, RefundCheckResponse, RefundCommitRequest, RefundCommitResponse, RefundStatusRequest, RefundStatusResponse, ExchangeShopRequest, ExchangeShopResponse, ExchangePriceRequest, ExchangePriceResponse, ExchangeCommitRequest, ExchangeCommitResponse, ExchangeStatusRequest, ExchangeStatusResponse, HotelCancelBookingRequest, HotelCancelBookingResponse, DemandQuery, DestinationResponse, MarketResponse, AudienceResponse, DemandTrendQuery, TrendResponse } from "./types/devplatform.js";
3
3
  /**
4
4
  * Tool methods matching the canonical jinko-api capability names.
5
5
  *
@@ -15,6 +15,7 @@ import type { FlightFindRequest, FlightDestinationSearchRequest, FlightSearchReq
15
15
  * flight_search → flightSearch() POST /v1/flight_search
16
16
  * price_monitoring → priceMonitoring() POST /v1/price_monitoring
17
17
  * hotel_search → hotelSearch() POST /v1/hotel_search
18
+ * ground_search → groundSearch() POST /v1/ground_search
18
19
  * hotel_details → hotelDetails() GET /v1/hotel_details/{hotel_id}
19
20
  * trip → trip() POST /v1/trip
20
21
  * get_trip → getTrip() GET /v1/trip/{trip_id}
@@ -47,6 +48,15 @@ export interface JinkoTools {
47
48
  readonly lowestFare: (request: FlightFindRequest) => Promise<FlightCalendarResponse>;
48
49
  /** hotel_search — live hotel search by destination, dates, occupancy. */
49
50
  readonly hotelSearch: (request: HotelSearchRequest) => Promise<HotelSearchResponse>;
51
+ /**
52
+ * ground_search — live rail / coach / ferry search (Distribusion).
53
+ *
54
+ * Codes are ISO-country + city (`GBLON` for London, NOT the IATA `LON`); a
55
+ * wrong code returns no inventory rather than an error. Each
56
+ * `connections[].id` is the trip item token — pass it verbatim to `trip()` as
57
+ * `trip_item_token`, unprefixed, then `checkout()` as normal.
58
+ */
59
+ readonly groundSearch: (request: GroundSearchRequest) => Promise<GroundSearchResponse>;
50
60
  /** hotel_details — rich metadata (gallery, facilities, policies, per-room details). */
51
61
  readonly hotelDetails: (request: HotelDetailsRequest) => Promise<HotelDetailsResponse>;
52
62
  /** trip — create trip, add/remove items, set travelers. Returns trip_id. */
@@ -110,5 +120,16 @@ export interface JinkoTools {
110
120
  /** demand_audience_trend — series per traveler-type segment. GET /v1/audience/trend. */
111
121
  readonly demandAudienceTrend: (query: DemandTrendQuery) => Promise<TrendResponse>;
112
122
  }
113
- export declare function createTools(raw: JinkoRawClient): JinkoTools;
123
+ export interface ToolsOptions {
124
+ /**
125
+ * The end user's request in their own words. When set, merged into every
126
+ * POST request body as the optional `intent: { user_intent }` envelope
127
+ * (IntentInput). Every POST on this surface is one of the 21
128
+ * intent-eligible public operations — they all route through the `post()`
129
+ * helper below, and the GET tools carry no body — so the envelope lands on
130
+ * exactly the eligible set.
131
+ */
132
+ readonly userIntent?: string;
133
+ }
134
+ export declare function createTools(raw: JinkoRawClient, options?: ToolsOptions): JinkoTools;
114
135
  //# sourceMappingURL=tools.d.ts.map
@@ -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
@@ -1,7 +1,21 @@
1
1
  import { ApiError } from "./errors.js";
2
- export function createTools(raw) {
2
+ export function createTools(raw, options = {}) {
3
+ const { userIntent } = options;
4
+ // Merge `intent: { user_intent }` into a JSON body when userIntent is set.
5
+ // A caller-provided `intent` key wins (never clobbered); non-object bodies
6
+ // pass through untouched.
7
+ function withIntent(body) {
8
+ if (userIntent === undefined ||
9
+ typeof body !== 'object' ||
10
+ body === null ||
11
+ Array.isArray(body) ||
12
+ 'intent' in body) {
13
+ return body;
14
+ }
15
+ return { ...body, intent: { user_intent: userIntent } };
16
+ }
3
17
  async function post(path, body) {
4
- const response = await raw.POST(path, { body });
18
+ const response = await raw.POST(path, { body: withIntent(body) });
5
19
  return response.data;
6
20
  }
7
21
  // GET with a query-string params object — used by the demand endpoints. The
@@ -30,6 +44,7 @@ export function createTools(raw) {
30
44
  flightSearch: async (request) => (await post("/v1/flight_search", request)),
31
45
  priceMonitoring: async (request) => (await post("/v1/price_monitoring", request)),
32
46
  hotelSearch: async (request) => (await post("/v1/hotel_search", request)),
47
+ groundSearch: async (request) => (await post("/v1/ground_search", request)),
33
48
  hotelDetails: async ({ hotel_id, checkin, checkout }) => {
34
49
  const query = {};
35
50
  if (checkin)