@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 +48 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +10 -1
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +16 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/money.d.ts +53 -0
- package/dist/money.d.ts.map +1 -0
- package/dist/money.js +149 -0
- package/dist/money.js.map +1 -0
- package/dist/types/devplatform.d.ts +50 -3
- package/dist/types/devplatform.d.ts.map +1 -1
- package/dist/types/devplatform.js +8 -3
- package/dist/types/devplatform.js.map +1 -1
- package/dist/types/generated.d.ts +10566 -2100
- package/dist/types/generated.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.yaml +10258 -2719
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
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
},
|
package/dist/client.js.map
CHANGED
|
@@ -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 {
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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"}
|
package/dist/money.d.ts
ADDED
|
@@ -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
|
|
17
|
-
* `
|
|
18
|
-
*
|
|
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":"AAAA
|
|
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
|
|
17
|
-
* `
|
|
18
|
-
*
|
|
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
|
|
1
|
+
{"version":3,"file":"devplatform.js","sourceRoot":"","sources":["../../src/types/devplatform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|