@gojinko/api-client 2.23.0 → 2.25.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
@@ -208,10 +208,15 @@ fallback instead of advancing the booking.
208
208
 
209
209
  ```typescript
210
210
  const result = await client.submitAgentPayment('42', 'spt_1Nq8L2eZvKYlo2C0');
211
- // { status: 'processing', payment_verified: true, fulfillment_cart_id, ... }
212
- // 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)
213
213
  ```
214
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
+
215
220
  ### selectAncillaries — Add baggage, seats, meals
216
221
 
217
222
  ```typescript
@@ -234,6 +239,7 @@ const status = await client.getTrip('42');
234
239
  // travelers, contact, items, total_amount,
235
240
  // quote: { quoted_cart_id, status, expires_at },
236
241
  // fulfillment: { fulfillment_cart_id, status, phase, scheduled_at },
242
+ // booking_ref: 'JNK-XEVGW5', // the Jinko reference — present once fulfillment is scheduled
237
243
  // bookings: [ { item_id, booking_reference, pnr, provider_status } ],
238
244
  // created_at, updated_at,
239
245
  // }
@@ -241,6 +247,11 @@ const status = await client.getTrip('42');
241
247
 
242
248
  Poll `getTrip()` until `status === 'fulfilled'` (or `'partially_fulfilled'`) to read the PNRs.
243
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
+
244
255
  ### refundCheck / refundCommit
245
256
 
246
257
  Two auth modes: guest (`booking_ref` + `last_name`) or authenticated (`order_id`).
@@ -312,6 +323,41 @@ import type {
312
323
  The generated `paths` and `components` from the OpenAPI spec are also exported
313
324
  for advanced use.
314
325
 
326
+ ## Reading money
327
+
328
+ Money objects come in two shapes that share field names, and `decimal_places`
329
+ is what tells them apart ([docs.gojinko.com/concepts/money](https://docs.gojinko.com/concepts/money)).
330
+ `readMoney` applies that rule so you don't divide by 100 on the wrong shape:
331
+
332
+ ```typescript
333
+ import { readMoney, tryReadMoney, MoneyShapeError } from '@gojinko/api-client';
334
+
335
+ const { itineraries } = await client.flightCalendar({
336
+ origins: ['CDG'],
337
+ destinations: ['JFK'],
338
+ departure_date_ranges: [{ start: '2026-10-01', end: '2026-10-31' }],
339
+ trip_type: 'oneway',
340
+ });
341
+
342
+ const total = readMoney(itineraries[0].total);
343
+ // { currency: 'USD', scale: 'minor', decimalPlaces: 2, minor: 33000,
344
+ // amount: 330, text: '330.00', display: 'USD 330.00' }
345
+
346
+ console.log(total.display ?? `${total.currency} ${total.text}`); // "USD 330.00"
347
+ ```
348
+
349
+ - **`decimal_places` present** → the figure is an integer in minor units:
350
+ `amount` is the figure / 10^`decimal_places`.
351
+ - **`decimal_places` absent** → an `amount` is already major units. A bare
352
+ `value` is read at the currency's ISO 4217 digits (JPY 0, KWD 3, most others
353
+ 2), never an assumed 2.
354
+ - **`amount` and `value` both present** → the non-zero one.
355
+ - `text` is exact decimal text built with integer arithmetic, not float
356
+ rounding. `display` is the server's own string, when the response carries one.
357
+ - An unexpected shape (no currency, a fractional minor figure, two figures that
358
+ disagree, …) throws `MoneyShapeError`. `tryReadMoney` returns `undefined`
359
+ instead.
360
+
315
361
  ## Raw Client
316
362
 
317
363
  The underlying openapi-fetch client is still accessible and is typed against the
@@ -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;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,CA2LzF"}
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
@@ -198,10 +198,19 @@ export async function createJinkoClient(options = {}) {
198
198
  async onResponse({ response }) {
199
199
  if (!response.ok) {
200
200
  let detail = { code: 'API_ERROR', message: response.statusText };
201
+ let details;
201
202
  try {
202
203
  const body = await response.clone().json();
203
204
  if (body?.error) {
204
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
+ }
205
214
  }
206
215
  else if (body?.message) {
207
216
  detail = { ...detail, message: body.message };
@@ -210,7 +219,7 @@ export async function createJinkoClient(options = {}) {
210
219
  catch {
211
220
  // Response body isn't JSON — use statusText.
212
221
  }
213
- throw new ApiError({ ...detail, statusCode: response.status });
222
+ throw new ApiError({ ...detail, statusCode: response.status, details });
214
223
  }
215
224
  return response;
216
225
  },
@@ -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":"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"}
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;gBAEnC,OAAO,SAAgK;CAK1K;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,6 +17,7 @@ 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
  }
@@ -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,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"}
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,9 @@ 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
+ export { readMoney, tryReadMoney, MoneyShapeError, type MoneyReading } from './money.js';
6
7
  export { requestDeviceAuthorization, pollForToken, refreshAccessToken, isTokenExpired, OAuthError, OAuthRefreshError, resolveExpiresAt, type OAuthTokens, type DeviceAuthorization, } from './oauth.js';
7
8
  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, GroundSearchRequest, GroundSearchResponse, GroundConnection, GroundFare, GroundStation, GroundCarrier, GroundAmount, 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';
9
+ 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, BookingCalendar, BookingCalendarFile, 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
10
  //# 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,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,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,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACzF,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,eAAe,EACf,mBAAmB,EACnB,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,7 @@
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
+ export { readMoney, tryReadMoney, MoneyShapeError } from './money.js';
5
6
  export { requestDeviceAuthorization, pollForToken, refreshAccessToken, isTokenExpired, OAuthError, OAuthRefreshError, resolveExpiresAt, } from './oauth.js';
6
7
  //# 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,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAC;AACzF,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GAGjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Reads a money object off a response body, following the published rule
3
+ * (https://docs.gojinko.com/concepts/money).
4
+ *
5
+ * The public surface carries money in two shapes that share field names:
6
+ *
7
+ * - WITH `decimal_places` → the figure (`value` or `amount`) is an INTEGER in
8
+ * minor units: 15977 at 2 places is 159.77.
9
+ * - WITHOUT `decimal_places` → an `amount` is already MAJOR units. A `value`
10
+ * without a scale should not occur; it is read defensively as minor units at
11
+ * the currency's ISO 4217 digits — never an assumed 2, which renders a
12
+ * zero-decimal currency 100x low.
13
+ *
14
+ * When both figures are present the non-zero one wins, which is how the BFF
15
+ * picks between them. Anything else unexpected throws {@link MoneyShapeError}
16
+ * rather than producing a plausible wrong price.
17
+ */
18
+ export declare class MoneyShapeError extends Error {
19
+ /** The input that could not be read, as it was passed in. */
20
+ readonly raw: unknown;
21
+ constructor(message: string, raw: unknown);
22
+ }
23
+ export interface MoneyReading {
24
+ readonly currency: string;
25
+ /** Whether the figure that was sent was minor units or major units. */
26
+ readonly scale: 'minor' | 'major';
27
+ /**
28
+ * The scale that was sent, or the currency's ISO 4217 digits when none was:
29
+ * for a bare `value`, and for formatting a major `amount`.
30
+ */
31
+ readonly decimalPlaces: number;
32
+ /** The figure as sent, when it was minor units. */
33
+ readonly minor?: number;
34
+ /** Major units. */
35
+ readonly amount: number;
36
+ /**
37
+ * The major amount as exact decimal text at `decimalPlaces`, with a leading
38
+ * "-" when negative: "159.77", "3200", "1.234". Built by integer arithmetic,
39
+ * never float rounding.
40
+ */
41
+ readonly text: string;
42
+ /** The server-formatted string (e.g. "USD 159.77"), when the object carried one. */
43
+ readonly display?: string;
44
+ }
45
+ /**
46
+ * Reads one money object. Throws {@link MoneyShapeError} on a non-object, a
47
+ * missing or empty `currency`, no finite figure, a `decimal_places` outside
48
+ * 0..18, a non-integer minor figure, or two non-zero figures that disagree.
49
+ */
50
+ export declare function readMoney(raw: unknown): MoneyReading;
51
+ /** {@link readMoney}, returning `undefined` instead of throwing on an unexpected shape. */
52
+ export declare function tryReadMoney(raw: unknown): MoneyReading | undefined;
53
+ //# sourceMappingURL=money.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO;CAK1C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiFD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAgCpD;AAED,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAOnE"}
package/dist/money.js ADDED
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Reads a money object off a response body, following the published rule
3
+ * (https://docs.gojinko.com/concepts/money).
4
+ *
5
+ * The public surface carries money in two shapes that share field names:
6
+ *
7
+ * - WITH `decimal_places` → the figure (`value` or `amount`) is an INTEGER in
8
+ * minor units: 15977 at 2 places is 159.77.
9
+ * - WITHOUT `decimal_places` → an `amount` is already MAJOR units. A `value`
10
+ * without a scale should not occur; it is read defensively as minor units at
11
+ * the currency's ISO 4217 digits — never an assumed 2, which renders a
12
+ * zero-decimal currency 100x low.
13
+ *
14
+ * When both figures are present the non-zero one wins, which is how the BFF
15
+ * picks between them. Anything else unexpected throws {@link MoneyShapeError}
16
+ * rather than producing a plausible wrong price.
17
+ */
18
+ export class MoneyShapeError extends Error {
19
+ /** The input that could not be read, as it was passed in. */
20
+ raw;
21
+ constructor(message, raw) {
22
+ super(message);
23
+ this.name = 'MoneyShapeError';
24
+ this.raw = raw;
25
+ }
26
+ }
27
+ /** ISO 4217 minor-unit digits that differ from 2, per the published rule. */
28
+ const ISO_DIGITS = {
29
+ JPY: 0,
30
+ KRW: 0,
31
+ VND: 0,
32
+ CLP: 0,
33
+ ISK: 0,
34
+ BHD: 3,
35
+ JOD: 3,
36
+ KWD: 3,
37
+ OMR: 3,
38
+ TND: 3,
39
+ };
40
+ const MAX_DECIMAL_PLACES = 18;
41
+ function isoDigits(currency) {
42
+ return ISO_DIGITS[currency.toUpperCase()] ?? 2;
43
+ }
44
+ /** A signed integer count of minor units as decimal text at `digits` places. */
45
+ function minorText(minor, digits) {
46
+ const negative = minor < 0n;
47
+ const units = (negative ? -minor : minor).toString().padStart(digits + 1, '0');
48
+ const sign = negative ? '-' : '';
49
+ if (digits === 0)
50
+ return `${sign}${units}`;
51
+ return `${sign}${units.slice(0, -digits)}.${units.slice(-digits)}`;
52
+ }
53
+ /**
54
+ * A major amount as decimal text at `digits` places, rounded half away from
55
+ * zero on the decimal the number was written as. `toFixed` rounds the binary
56
+ * value instead, so 1.005 — stored as 1.00499… — would print "1.00".
57
+ */
58
+ function majorText(amount, digits) {
59
+ const match = /^(\d+)(?:\.(\d+))?$/.exec(String(Math.abs(amount)));
60
+ // Exponent notation only appears beyond 1e21 or below 1e-6, outside any price.
61
+ if (!match)
62
+ return amount.toFixed(digits);
63
+ const [, whole, fraction = ''] = match;
64
+ let minor = BigInt(whole + fraction.padEnd(digits, '0').slice(0, digits));
65
+ if ((fraction[digits] ?? '0') >= '5')
66
+ minor += 1n;
67
+ return minorText(amount < 0 ? -minor : minor, digits);
68
+ }
69
+ /** A figure field: absent (undefined or null), or a finite number. */
70
+ function readFigure(money, field, raw) {
71
+ const figure = money[field];
72
+ if (figure === undefined || figure === null)
73
+ return undefined;
74
+ if (typeof figure !== 'number' || !Number.isFinite(figure)) {
75
+ throw new MoneyShapeError(`money \`${field}\` is not a finite number: ${String(figure)}`, raw);
76
+ }
77
+ return figure;
78
+ }
79
+ /** The figure to read and the field it came from, as the BFF picks it. */
80
+ function pickFigure(money, raw) {
81
+ const amount = readFigure(money, 'amount', raw);
82
+ const value = readFigure(money, 'value', raw);
83
+ if (amount === undefined && value === undefined) {
84
+ throw new MoneyShapeError('money has neither `amount` nor `value`', raw);
85
+ }
86
+ if (amount === undefined)
87
+ return { figure: value, field: 'value' };
88
+ if (value === undefined || value === 0)
89
+ return { figure: amount, field: 'amount' };
90
+ if (amount === 0 || amount === value)
91
+ return { figure: value, field: 'value' };
92
+ throw new MoneyShapeError(`money \`amount\` (${amount}) and \`value\` (${value}) disagree`, raw);
93
+ }
94
+ function readDecimalPlaces(money, raw) {
95
+ const places = money.decimal_places;
96
+ if (places === undefined || places === null)
97
+ return undefined;
98
+ if (typeof places !== 'number' || !Number.isInteger(places) || places < 0 || places > MAX_DECIMAL_PLACES) {
99
+ throw new MoneyShapeError(`money \`decimal_places\` must be an integer from 0 to ${MAX_DECIMAL_PLACES}: ${JSON.stringify(places)}`, raw);
100
+ }
101
+ return places;
102
+ }
103
+ /**
104
+ * Reads one money object. Throws {@link MoneyShapeError} on a non-object, a
105
+ * missing or empty `currency`, no finite figure, a `decimal_places` outside
106
+ * 0..18, a non-integer minor figure, or two non-zero figures that disagree.
107
+ */
108
+ export function readMoney(raw) {
109
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
110
+ throw new MoneyShapeError('money is not an object', raw);
111
+ }
112
+ const money = raw;
113
+ const { currency } = money;
114
+ if (typeof currency !== 'string' || currency === '') {
115
+ throw new MoneyShapeError('money has no `currency`', raw);
116
+ }
117
+ const { figure, field } = pickFigure(money, raw);
118
+ const sentPlaces = readDecimalPlaces(money, raw);
119
+ const display = typeof money.display === 'string' && money.display !== '' ? { display: money.display } : {};
120
+ if (sentPlaces === undefined && field === 'amount') {
121
+ const decimalPlaces = isoDigits(currency);
122
+ return { currency, scale: 'major', decimalPlaces, amount: figure, text: majorText(figure, decimalPlaces), ...display };
123
+ }
124
+ const decimalPlaces = sentPlaces ?? isoDigits(currency);
125
+ if (!Number.isSafeInteger(figure)) {
126
+ throw new MoneyShapeError(`money \`${field}\` is minor units and must be an integer: ${figure}`, raw);
127
+ }
128
+ return {
129
+ currency,
130
+ scale: 'minor',
131
+ decimalPlaces,
132
+ minor: figure,
133
+ amount: figure / 10 ** decimalPlaces,
134
+ text: minorText(BigInt(figure), decimalPlaces),
135
+ ...display,
136
+ };
137
+ }
138
+ /** {@link readMoney}, returning `undefined` instead of throwing on an unexpected shape. */
139
+ export function tryReadMoney(raw) {
140
+ try {
141
+ return readMoney(raw);
142
+ }
143
+ catch (error) {
144
+ if (error instanceof MoneyShapeError)
145
+ return undefined;
146
+ throw error;
147
+ }
148
+ }
149
+ //# sourceMappingURL=money.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,14 @@
13
13
  * not the BFF's nested `filters.locations` / `passengers.adt` body
14
14
  * - `checkout` returns `CheckoutResponse`, `getTrip` returns `GetTripResponse`, …
15
15
  *
16
- * To update a shape: edit the contract in `jinko-api`, regenerate
17
- * `public-api.yaml`, copy it here, then `pnpm run generate:api-types`. Do not
18
- * hand-edit `generated.ts` or re-introduce BFF-internal field names.
16
+ * To update a shape: edit the contract in `jinko-api` and merge it, then run
17
+ * `pnpm sync:api-spec <jinko-api ref>` here. It vendors `public-api.yaml` at
18
+ * that commit (writing the `# synced from` header) and runs
19
+ * `pnpm generate:api-types`; CI fails when `generated.ts` and the vendored
20
+ * spec disagree. `generated.ts` is regenerated in full from the vendored spec —
21
+ * never edit it by hand, and never re-introduce BFF-internal field names. (The vendored
22
+ * spec was re-synced to contract 0.8.0 by JIN-2054, which ended the period
23
+ * where `generated.ts` was hand-maintained ahead of a stale 0.5.0 spec.)
19
24
  */
20
25
  import type { components } from './generated.js';
21
26
  type Schemas = components['schemas'];
@@ -59,6 +64,19 @@ export type FlightSearchResponse = Schemas['FlightSearchResponse'];
59
64
  export type FlightOffer = Schemas['FlightOffer'];
60
65
  export type Fare = Schemas['Fare'];
61
66
  export type FlightLeg = Schemas['FlightLeg'];
67
+ /**
68
+ * Inclusive local time-of-day window, 24-hour `HH:MM`, on the flight_search
69
+ * time-range filters. Either bound may be omitted: only `earliest` means "at or
70
+ * after", only `latest` means "at or before".
71
+ */
72
+ export type TimeRange = Schemas['TimeRange'];
73
+ /**
74
+ * One entry of `FlightSearchResponse.unapplied_filters`: a requested filter the
75
+ * returned offers do NOT honor, with the reason it could not be enforced. The
76
+ * alternate-airport lists are reported per side as `origin` / `destination`,
77
+ * never under the request field name they were sent with.
78
+ */
79
+ export type UnappliedFilter = Schemas['UnappliedFilter'];
62
80
  export type PriceMonitoringRequest = Omit<Schemas['PriceMonitoringRequest'], 'adults'> & Partial<Pick<Schemas['PriceMonitoringRequest'], 'adults'>>;
63
81
  export type PriceMonitoringResponse = Schemas['PriceMonitoringResponse'];
64
82
  export type HotelSearchRequest = Schemas['HotelSearchRequest'];
@@ -89,6 +107,17 @@ export interface HotelDetailsRequest {
89
107
  export type HotelDetailsResponse = Schemas['HotelDetailsResponse'];
90
108
  export type TripRequest = Schemas['TripRequest'];
91
109
  export type TripResponse = Schemas['TripResponse'];
110
+ /**
111
+ * The move between the price shown at search time and the price the trip is
112
+ * quoted at, on a trip item that was re-priced (JIN-2086 S2).
113
+ *
114
+ * All three figures are major currency units in one currency, like `price` and
115
+ * `original_price` beside them. Present ONLY when the two differ — an item
116
+ * whose price held carries no `price_change` at all, so read absence as "the
117
+ * price held", never as "no difference was computed". Checkout PROCEEDS at
118
+ * `current`; there is no flag that refuses a re-priced trip.
119
+ */
120
+ export type PriceChange = Schemas['PriceChange'];
92
121
  export type Traveler = Schemas['Traveler'];
93
122
  export type CheckoutRequest = Schemas['CheckoutRequest'];
94
123
  export type CheckoutResponse = Schemas['CheckoutResponse'];
@@ -124,6 +153,24 @@ export type AncillaryResponse = Schemas['AncillaryResponse'];
124
153
  export type SelectAncillariesRequest = AncillaryRequest;
125
154
  export type BookingGetRequest = Schemas['GetBookingRequest'];
126
155
  export type BookingGetResponse = Schemas['GetBookingResponse'];
156
+ /**
157
+ * The iCalendar files a booking is carried in (JIN-2176) — the same bytes the
158
+ * traveller's confirmation, cancellation and exchange emails attach.
159
+ *
160
+ * `booking.calendar` is ABSENT — not null, and never an empty `files` list —
161
+ * when the booking holds no flight and no hotel, and whenever the files could
162
+ * not be built. `files` is ordered cancellation first, then invitation, the
163
+ * order the emails attach them in.
164
+ */
165
+ export type BookingCalendar = Schemas['BookingCalendar'];
166
+ /**
167
+ * One iCalendar file. `method` is the iTIP method (RFC 5546) it carries —
168
+ * `REQUEST` for the events the booking still holds, `CANCEL` for the ones it no
169
+ * longer does; one file is never both. Serve or attach it under `content_type`
170
+ * exactly: the `method` parameter is what makes a mail client act on the file
171
+ * rather than store it as a plain attachment.
172
+ */
173
+ export type BookingCalendarFile = Schemas['BookingCalendarFile'];
127
174
  /** @deprecated Renamed to {@link BookingGetRequest} by JIN-663. */
128
175
  export type BookingLookupRequest = BookingGetRequest;
129
176
  /** @deprecated Renamed to {@link BookingGetResponse} by JIN-663. */
@@ -1 +1 @@
1
- {"version":3,"file":"devplatform.d.ts","sourceRoot":"","sources":["../../src/types/devplatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devplatform.d.ts","sourceRoot":"","sources":["../../src/types/devplatform.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,14 @@
13
13
  * not the BFF's nested `filters.locations` / `passengers.adt` body
14
14
  * - `checkout` returns `CheckoutResponse`, `getTrip` returns `GetTripResponse`, …
15
15
  *
16
- * To update a shape: edit the contract in `jinko-api`, regenerate
17
- * `public-api.yaml`, copy it here, then `pnpm run generate:api-types`. Do not
18
- * hand-edit `generated.ts` or re-introduce BFF-internal field names.
16
+ * To update a shape: edit the contract in `jinko-api` and merge it, then run
17
+ * `pnpm sync:api-spec <jinko-api ref>` here. It vendors `public-api.yaml` at
18
+ * that commit (writing the `# synced from` header) and runs
19
+ * `pnpm generate:api-types`; CI fails when `generated.ts` and the vendored
20
+ * spec disagree. `generated.ts` is regenerated in full from the vendored spec —
21
+ * never edit it by hand, and never re-introduce BFF-internal field names. (The vendored
22
+ * spec was re-synced to contract 0.8.0 by JIN-2054, which ended the period
23
+ * where `generated.ts` was hand-maintained ahead of a stale 0.5.0 spec.)
19
24
  */
20
25
  export {};
21
26
  //# sourceMappingURL=devplatform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devplatform.js","sourceRoot":"","sources":["../../src/types/devplatform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"devplatform.js","sourceRoot":"","sources":["../../src/types/devplatform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}