@gojinko/cli 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.
Files changed (44) hide show
  1. package/README.md +46 -5
  2. package/SKILL.md +19 -5
  3. package/dist/commands/checkout.d.ts.map +1 -1
  4. package/dist/commands/checkout.js +5 -0
  5. package/dist/commands/checkout.js.map +1 -1
  6. package/dist/commands/flight-search.d.ts +106 -0
  7. package/dist/commands/flight-search.d.ts.map +1 -1
  8. package/dist/commands/flight-search.js +451 -45
  9. package/dist/commands/flight-search.js.map +1 -1
  10. package/dist/commands/get-booking.d.ts +26 -0
  11. package/dist/commands/get-booking.d.ts.map +1 -1
  12. package/dist/commands/get-booking.js +55 -3
  13. package/dist/commands/get-booking.js.map +1 -1
  14. package/dist/commands/ground-search.d.ts +2 -1
  15. package/dist/commands/ground-search.d.ts.map +1 -1
  16. package/dist/commands/ground-search.js +14 -25
  17. package/dist/commands/ground-search.js.map +1 -1
  18. package/dist/commands/hotel-cancel.js +1 -1
  19. package/dist/commands/hotel-cancel.js.map +1 -1
  20. package/dist/commands/schema.d.ts.map +1 -1
  21. package/dist/commands/schema.js +88 -24
  22. package/dist/commands/schema.js.map +1 -1
  23. package/dist/commands/shared.d.ts.map +1 -1
  24. package/dist/commands/shared.js +5 -2
  25. package/dist/commands/shared.js.map +1 -1
  26. package/dist/commands/trip-status.d.ts.map +1 -1
  27. package/dist/commands/trip-status.js +2 -0
  28. package/dist/commands/trip-status.js.map +1 -1
  29. package/dist/commands/trip.d.ts.map +1 -1
  30. package/dist/commands/trip.js +2 -0
  31. package/dist/commands/trip.js.map +1 -1
  32. package/dist/output/formatter.d.ts +19 -7
  33. package/dist/output/formatter.d.ts.map +1 -1
  34. package/dist/output/formatter.js +22 -8
  35. package/dist/output/formatter.js.map +1 -1
  36. package/dist/output/price-change.d.ts +41 -0
  37. package/dist/output/price-change.d.ts.map +1 -0
  38. package/dist/output/price-change.js +80 -0
  39. package/dist/output/price-change.js.map +1 -0
  40. package/dist/output/remedies.d.ts +30 -0
  41. package/dist/output/remedies.d.ts.map +1 -0
  42. package/dist/output/remedies.js +45 -0
  43. package/dist/output/remedies.js.map +1 -0
  44. package/package.json +2 -2
@@ -1,4 +1,56 @@
1
+ import chalk from 'chalk';
1
2
  import { withClient, output, resolveDeprecatedFlag, userIntentOption } from './shared.js';
3
+ /**
4
+ * One compact line per calendar file (JIN-2176): the iTIP method and the
5
+ * filename the confirmation email attached that same file under.
6
+ *
7
+ * The iCalendar body itself is deliberately NOT printed — it is multi-kilobyte
8
+ * CRLF text, and a consumer that wants the bytes reads them from `--format
9
+ * json`, which carries the response untouched.
10
+ *
11
+ * Empty when the booking carries no calendar — a booking with no flight and no
12
+ * hotel omits it altogether — so those bookings print nothing extra. Pure —
13
+ * exported for tests.
14
+ */
15
+ export function calendarLines(response) {
16
+ const files = response.booking?.calendar?.files ?? [];
17
+ if (files.length === 0)
18
+ return [];
19
+ const method = (file) => file.method ?? '—';
20
+ const width = Math.max(...files.map((file) => method(file).length));
21
+ return [
22
+ 'Calendar:',
23
+ ...files.map((file) => ` ${method(file).padEnd(width)} ${file.filename ?? '—'}`),
24
+ ];
25
+ }
26
+ /** The same response with `booking.calendar` dropped. */
27
+ function withoutCalendar(response) {
28
+ if (!response.booking)
29
+ return response;
30
+ const { calendar: _calendar, ...booking } = response.booking;
31
+ return { ...response, booking };
32
+ }
33
+ /**
34
+ * Print the booking, then the calendar summary under it.
35
+ *
36
+ * JSON output gets the calendar for free — `calendar` is a response field and
37
+ * travels through `output` untouched — so only the human format needs anything
38
+ * extra. There the files are summarised INSTEAD of dumped: `output` renders a
39
+ * nested object by JSON.stringify-ing it into a single table cell, which for an
40
+ * iCalendar body means thousands of characters of escaped CRLF on one line.
41
+ * Swapping it for the summary keeps the table readable and leaves the bytes one
42
+ * `--format json` away. Exported for tests.
43
+ */
44
+ export function renderGetBookingResponse(response, format) {
45
+ const lines = format === 'table' ? calendarLines(response) : [];
46
+ output(lines.length > 0 ? withoutCalendar(response) : response, { format });
47
+ if (lines.length === 0)
48
+ return;
49
+ console.log('');
50
+ console.log(chalk.bold(lines[0]));
51
+ for (const line of lines.slice(1))
52
+ console.log(line);
53
+ }
2
54
  // Commander action for `get-booking`. The canonical flag is `--booking-ref`
3
55
  // (matches the jinko-api `booking_ref` leaf); `--ref` is kept as a deprecated
4
56
  // alias (JIN-665).
@@ -12,14 +64,14 @@ const action = withClient(async (client, globals, opts) => {
12
64
  booking_ref: bookingRef,
13
65
  last_name: opts.lastName,
14
66
  });
15
- output(response, { format: globals.format });
67
+ renderGetBookingResponse(response, globals.format);
16
68
  });
17
69
  export function registerGetBookingCommand(program) {
18
70
  program
19
71
  .command('get-booking')
20
72
  .summary("Retrieve a booking using the Jinko booking reference and the traveler's last name")
21
- .description('Anonymous retrieval for a booking the user already made. Use it when the traveler has their Jinko booking reference and last name, for example to look up the itinerary days later without signing in. Returns the full booking envelope: status, travelers, and itinerary items with confirmation numbers (PNR for flights, confirmation number for hotels).')
22
- .option('--booking-ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9). JSON: `booking_ref`. [required]')
73
+ .description("Anonymous retrieval for a booking the user already made. Use it when the traveler has their Jinko booking reference and last name, for example to look up the itinerary days later without signing in. Returns the full booking envelope: status, travelers, and itinerary items with confirmation numbers (PNR for flights, confirmation number for hotels), plus `calendar` — the iCalendar (.ics) files for the booking's flights and stays, the same bytes the confirmation email attaches. The human format lists one line per file; `--format json` carries the file contents.")
74
+ .option('--booking-ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9) — the `booking_ref` returned by trip-status / agent-pay submit, not a supplier PNR. JSON: `booking_ref`. [required]')
23
75
  .requiredOption('--last-name <name>', 'Last name of the primary traveler. JSON: `last_name`. [required]')
24
76
  .addOption(userIntentOption())
25
77
  .option('--ref <ref>', 'DEPRECATED: use --booking-ref.')
@@ -1 +1 @@
1
- {"version":3,"file":"get-booking.js","sourceRoot":"","sources":["../../src/commands/get-booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1F,4EAA4E;AAC5E,8EAA8E;AAC9E,mBAAmB;AACnB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC9F,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;QACvC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,mFAAmF,CAAC;SAC5F,WAAW,CACV,+VAA+V,CAChW;SACA,MAAM,CAAC,qBAAqB,EAAE,4EAA4E,CAAC;SAC3G,cAAc,CAAC,oBAAoB,EAAE,kEAAkE,CAAC;SACxG,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"get-booking.js","sourceRoot":"","sources":["../../src/commands/get-booking.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Command } from "commander";
2
- import type { GroundSearchRequest } from "@gojinko/api-client";
2
+ import { type GroundSearchRequest } from "@gojinko/api-client";
3
3
  /** Resolved, validated inputs for a ground_search request. */
4
4
  export interface GroundSearchInputs {
5
5
  departureCity?: string;
@@ -49,6 +49,7 @@ interface ConnectionLike {
49
49
  value?: number;
50
50
  currency?: string;
51
51
  decimal_places?: number;
52
+ display?: string;
52
53
  };
53
54
  }>;
54
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ground-search.d.ts","sourceRoot":"","sources":["../../src/commands/ground-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAoB/D,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CA+BrB;AAED,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,eAAe,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,iBAAiB,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACjG;AAmED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,CAiCzE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2HlE"}
1
+ {"version":3,"file":"ground-search.d.ts","sourceRoot":"","sources":["../../src/commands/ground-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAgB,KAAK,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAoBhG,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CA+BrB;AAED,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,eAAe,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,iBAAiB,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,WAAW,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAChG,CAAC,CAAC;CACJ;AAsDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,CAiCzE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2HlE"}
@@ -1,3 +1,4 @@
1
+ import { tryReadMoney } from "@gojinko/api-client";
1
2
  import { withClient, output, userIntentOption } from "./shared.js";
2
3
  const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
3
4
  /**
@@ -92,36 +93,24 @@ function dayOffsetSuffix(departure, arrival) {
92
93
  return `+${days}d`;
93
94
  }
94
95
  /**
95
- * Minor-unit digits for a currency, per ISO 4217, via Intl. `decimal_places` is
96
- * optional in the spec, and assuming 2 when it is genuinely absent renders a
97
- * zero-decimal currency 100x low — a JPY fare of {value: 3200} would print
98
- * "32.00 JPY" instead of "3200 JPY". Falls back to 2 only when Intl does not
99
- * recognise the code at all.
96
+ * The cheapest fare, read through the api-client money reader: the fare's own
97
+ * `display` string when it carries one, else "GBP 18.00" built from the reading.
98
+ *
99
+ * Fares are compared by major amount, not by the raw figure, so a scale is
100
+ * always applied before comparing. The reader honours an explicit
101
+ * `decimal_places: 0` and, when the field is genuinely absent, the currency's
102
+ * ISO digits — assuming 2 would print a JPY fare of {value: 3200} as
103
+ * "JPY 32.00". A fare whose money cannot be read is skipped rather than
104
+ * printed wrong.
100
105
  */
101
- function isoFractionDigits(currency) {
102
- if (!currency)
103
- return 2;
104
- try {
105
- return (new Intl.NumberFormat("en-US", { style: "currency", currency })
106
- .resolvedOptions().maximumFractionDigits ?? 2);
107
- }
108
- catch {
109
- return 2;
110
- }
111
- }
112
106
  function cheapestFare(c) {
113
107
  const prices = (c.fares ?? [])
114
- .map((f) => f.total_price)
115
- .filter((p) => typeof p?.value === "number");
108
+ .map((f) => tryReadMoney(f.total_price))
109
+ .filter((p) => p !== undefined);
116
110
  if (!prices.length)
117
111
  return "";
118
- const cheapest = prices.reduce((a, b) => ((a.value ?? 0) <= (b.value ?? 0) ? a : b));
119
- // Prices are minor units. An explicit 0 (JPY etc.) must not be treated as
120
- // "unset" — hence `??` — and a genuinely absent field falls back to the
121
- // currency's own ISO digits rather than assuming 2.
122
- const places = cheapest.decimal_places ?? isoFractionDigits(cheapest.currency);
123
- const amount = (cheapest.value ?? 0) / 10 ** places;
124
- return `${amount.toFixed(places)} ${cheapest.currency ?? ""}`.trim();
112
+ const cheapest = prices.reduce((a, b) => (a.amount <= b.amount ? a : b));
113
+ return cheapest.display ?? `${cheapest.currency} ${cheapest.text}`;
125
114
  }
126
115
  /**
127
116
  * Table view. The connection id is printed in full and never truncated: it is
@@ -1 +1 @@
1
- {"version":3,"file":"ground-search.js","sourceRoot":"","sources":["../../src/commands/ground-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ground-search.js","sourceRoot":"","sources":["../../src/commands/ground-search.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export function registerHotelCancelCommand(program) {
19
19
  .command('hotel-cancel')
20
20
  .summary('Cancel a hotel booking and get a refund when eligible')
21
21
  .description('Cancel a hotel booking when the traveler can no longer make the stay or wants to drop a hotel from a multi-item trip. The call is idempotent: retrying the same cancellation re-serves the stored result rather than charging or refunding twice. Works with guest auth (booking ref + last name) or the authenticated shortcut (provider booking ID).')
22
- .option('--booking-ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9). Guest path — pair with --last-name. JSON: `booking_ref`. [required: guest mode]')
22
+ .option('--booking-ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9) — the `booking_ref` returned by trip-status / agent-pay submit, not the hotel confirmation number. Guest path — pair with --last-name. JSON: `booking_ref`. [required: guest mode]')
23
23
  .option('--last-name <name>', 'Last name of the lead guest. Guest path — pair with --booking-ref. JSON: `last_name`. [required: guest mode]')
24
24
  .option('--provider-booking-id <id>', 'Provider booking ID (authenticated shortcut). Mutually exclusive with --booking-ref + --last-name. JSON: `provider_booking_id`. [required: authenticated mode]')
25
25
  .option('--provider <code>', 'Provider code (e.g. "nuitee"). Optional, only meaningful with --provider-booking-id. JSON: `provider`.')
@@ -1 +1 @@
1
- {"version":3,"file":"hotel-cancel.js","sourceRoot":"","sources":["../../src/commands/hotel-cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1F;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,uDAAuD,CAAC;SAChE,WAAW,CACV,wVAAwV,CACzV;SACA,MAAM,CAAC,qBAAqB,EAAE,4HAA4H,CAAC;SAC3J,MAAM,CAAC,oBAAoB,EAAE,8GAA8G,CAAC;SAC5I,MAAM,CACL,4BAA4B,EAC5B,gKAAgK,CACjK;SACA,MAAM,CAAC,mBAAmB,EAAE,wGAAwG,CAAC;SACrI,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,IAAI,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;YAC/C,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"hotel-cancel.js","sourceRoot":"","sources":["../../src/commands/hotel-cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE1F;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,uDAAuD,CAAC;SAChE,WAAW,CACV,wVAAwV,CACzV;SACA,MAAM,CAAC,qBAAqB,EAAE,8NAA8N,CAAC;SAC7P,MAAM,CAAC,oBAAoB,EAAE,8GAA8G,CAAC;SAC5I,MAAM,CACL,4BAA4B,EAC5B,gKAAgK,CACjK;SACA,MAAM,CAAC,mBAAmB,EAAE,wGAAwG,CAAC;SACrI,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,IAAI,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;YAC/C,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgNpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmC5D"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6RpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmC5D"}
@@ -2,10 +2,26 @@ import { output } from "./shared.js";
2
2
  import { getGlobalOptions } from "../config/config.js";
3
3
  /**
4
4
  * Schema definitions for CLI commands. Names match MCP tools 1:1.
5
+ *
6
+ * HAND-MAINTAINED. This table is prose about the contract, not generated from
7
+ * `public-api.yaml` or `generated.ts`, so a spec sync does NOT update it —
8
+ * update it here when the contract moves. Last aligned to contract 0.3.0.
5
9
  */
10
+ /**
11
+ * The identity a submitted offer echoes back on every item and booking (C11,
12
+ * as narrowed by D29). Optional throughout, and per kind: flights carry
13
+ * `offer_id` + `trip_item_token`, hotels carry `offer_id` + `hotel_id`.
14
+ */
15
+ const IDENTITY_FIELDS = "offer_id?, trip_item_token? (flights), hotel_id? (hotels — the same id hotel_search publishes)";
16
+ /** Terms captured for a quoted hotel item (C12). */
17
+ const HOTEL_TERMS = '{ terms_as_of: "search" | "quote", is_refundable?, free_cancellation_until?, board_type?, board_name?, room_name?, room_capacity?, payment_types?, taxes_breakdown: [{ name, amount, currency, included }], cancellation_schedule: [{ cancel_time, amount, currency }] }? — hotels only. terms_as_of "search" means the terms were captured at search and NOT re-confirmed at quote. Cancellation timestamps are RFC 3339 with the supplier offset; a deadline the supplier gave no timezone for is omitted rather than published without one, so an absent free_cancellation_until does not mean non-refundable and a cancellation_schedule can be shorter than the supplier\'s own.';
18
+ /** The closed public error enum (C15) — `error.code` is one of these twenty. */
19
+ const ERROR_CODES = "error.code is a closed enum: AUTH_REQUIRED, PAYMENT_REQUIRED, RATE_LIMITED, BAD_REQUEST, FORBIDDEN, NOT_FOUND, CONFLICT, GONE (410, the generic 410 beneath QUOTE_EXPIRED and OFFER_EXPIRED — what the request named is gone for good, so repeating it cannot succeed), QUOTE_EXPIRED (410, carries expires_at and a numeric quoted_cart_id naming which quote lapsed), TRIP_EXPIRED (409, carries status), TRIP_STATE_CONFLICT (409, carries status), OFFER_EXPIRED, OFFER_UNAVAILABLE, MISSING_CUSTOMER_DETAILS, CURRENCY_UNSUPPORTED, UPSTREAM_REJECTED, UPSTREAM_UNAVAILABLE, UPSTREAM_TIMEOUT, UPSTREAM_ERROR, INTERNAL. Carried keys are SIBLINGS of error, never nested inside it.";
20
+ /** Every lifecycle state a trip can report (C13). */
21
+ const TRIP_STATUS = "draft | quoting | quoted | fulfillment_prepared | fulfilling | fulfilled | partially_fulfilled | failed | cancelled | expired";
6
22
  const SCHEMAS = {
7
23
  "find-destination": {
8
- description: "Discover destinations from origin airports (POST /flights/destination-search).",
24
+ description: "Discover destinations from origin airports (POST /v1/find_destination).",
9
25
  request: {
10
26
  passengers: "{ adt: number }",
11
27
  filters: {
@@ -26,33 +42,71 @@ const SCHEMAS = {
26
42
  money_format: "Money objects here are INTEGER MINOR UNITS: divide value by 10 ** decimal_places to display ({ value: 15977, decimal_places: 2 } is 159.77). See docs.gojinko.com/concepts/money.",
27
43
  },
28
44
  "flight-search": {
29
- description: "Live flight search or price-check a specific offer (POST /flights/shop).",
45
+ description: "Live flight search or price-check a specific offer (POST /v1/flight_search).",
30
46
  request: {
31
47
  mode_a_search: {
32
- origin: "string (IATA code)",
33
- destination: "string (IATA code)",
48
+ origin: "string (IATA city or airport code)",
49
+ destination: "string (IATA city or airport code)",
50
+ origin_type: "city | airport? (omit to let the platform classify the code)",
51
+ destination_type: "city | airport?",
34
52
  departure_date: "string (YYYY-MM-DD)",
35
53
  return_date: "string? (YYYY-MM-DD)",
36
54
  trip_type: "oneway | roundtrip",
37
- cabin_class: "economy | premium_economy | business | first",
38
- direct_only: "boolean?",
39
- max_price: "number?",
40
- passengers: "{ adults?: number, children?: number, infants?: number }",
55
+ cabin_class: "economy | premium_economy | business | first (advisory — never appears in applied_filters)",
56
+ adults: "number (default 1)",
57
+ children: "number?",
58
+ infants: "number?",
59
+ max_stops: "number? (0 non-stop, 1, 2 — per leg)",
60
+ direct_only: "boolean? (DEPRECATED alias of max_stops: 0)",
61
+ multi_fare: "boolean? (branded fare ladder; default true)",
62
+ max_price: "number? (total for all passengers, in currency, major units)",
63
+ include_carriers: "string[]? (IATA 2-letter)",
64
+ exclude_carriers: "string[]? (IATA 2-letter, must not overlap include_carriers)",
65
+ departure_time_range: '{ earliest?: "HH:MM", latest?: "HH:MM" }? (outbound leg)',
66
+ arrival_time_range: "{ earliest?, latest? }? (outbound leg)",
67
+ return_departure_time_range: "{ earliest?, latest? }? (return leg)",
68
+ return_arrival_time_range: "{ earliest?, latest? }? (return leg)",
69
+ connection_time_min_minutes: "number? (must not exceed the max)",
70
+ connection_time_max_minutes: "number?",
71
+ max_total_duration_minutes: "number? (per leg, door to door)",
72
+ refundable_only: "boolean? (conservative — fares whose rules cannot be verified are dropped)",
73
+ changeable_only: "boolean? (conservative in the same way)",
74
+ checked_bag_included: "boolean?",
75
+ single_carrier_only: "boolean?",
76
+ via_airports: "string[]? (at least one connection must be one of them)",
77
+ exclude_via_airports: "string[]? (must not overlap via_airports)",
78
+ aircraft_types: "string[]? (IATA equipment codes, every segment)",
79
+ origin_alternate_airports: "string[]? (ADDITIONAL departure airports beside origin; airport anchor only — against a city anchor it comes back under `origin` in unapplied_filters)",
80
+ destination_alternate_airports: "string[]? (same rules, reported as `destination`)",
81
+ nearby_airports: "boolean? (widening)",
82
+ same_connection_airport_only: "boolean?",
83
+ same_origin_airport_only: "boolean?",
84
+ same_turnaround_airport_only: "boolean?",
85
+ limit: "number? (1-300 TOTAL flights, not a page size; search mode only)",
86
+ currency: "string? (ISO 4217)",
87
+ locale: "string?",
41
88
  },
42
89
  mode_b_price_check: {
43
90
  offer_token: "string (from flight-search or flight-calendar results)",
44
- passengers: "{ adults?: number, children?: number, infants?: number }",
91
+ adults: "number (default 1)",
92
+ children: "number?",
93
+ infants: "number?",
94
+ currency: "string?",
95
+ locale: "string?",
96
+ note: "search-mode fields are rejected beside offer_token",
45
97
  },
46
98
  },
47
99
  response: {
48
- mode: "search | price_check",
49
- flights: "[{ offer_token, origin, destination, total_price, currency, outbound_*, inbound_*, fares? }]",
50
- fares: "(price_check only) [{ trip_item_token, brand_name, cabin_class, total_price, is_refundable, ... }]",
100
+ offers: "[{ offer_id, provider, origin, destination, is_round_trip, total_duration_minutes, outbound, inbound, additional_legs, fares }]",
101
+ fares: "offers[].fares: [{ trip_item_token, brand_name, cabin_class, total_price, price_per_person, included_baggage, is_refundable, is_changeable, checked_bag_included }]",
102
+ exact_match_found: "boolean?",
103
+ applied_filters: "string[] — requested filters these results DO honor (alternate-airport lists reported per side as `origin` / `destination`)",
104
+ unapplied_filters: "[{ name, reason }] — requested filters these results do NOT honor; post-filter yourself or tell the user the constraint could not be met",
51
105
  },
52
106
  money_format: "Money objects here are INTEGER MINOR UNITS: divide value by 10 ** decimal_places to display ({ value: 15977, decimal_places: 2 } is 159.77). See docs.gojinko.com/concepts/money.",
53
107
  },
54
108
  "flight-calendar": {
55
- description: "Cheapest prices across a date range (POST /flights/search with date range).",
109
+ description: "Cheapest prices across a date range (POST /v1/flight_calendar).",
56
110
  request: {
57
111
  from: "string (IATA code, origin)",
58
112
  to: "string (IATA code, destination)",
@@ -66,7 +120,7 @@ const SCHEMAS = {
66
120
  money_format: "Money objects here are INTEGER MINOR UNITS: divide value by 10 ** decimal_places to display ({ value: 15977, decimal_places: 2 } is 159.77). See docs.gojinko.com/concepts/money.",
67
121
  },
68
122
  trip: {
69
- description: "Manage a trip: create, add/remove flight items, set travelers (POST /shop/sync).",
123
+ description: "Manage a trip: create, add/remove flight items, set travelers (POST /v1/trip).",
70
124
  request: {
71
125
  trip_id: "string? (omit to create new)",
72
126
  add_item: "{ trip_item_token: string }? (from flight-search)",
@@ -75,17 +129,18 @@ const SCHEMAS = {
75
129
  },
76
130
  response: {
77
131
  trip_id: "string",
78
- status: "string",
79
- items: "[{ item_id, type, description, price, currency }]",
132
+ status: TRIP_STATUS,
133
+ items: `[{ item_id, type, description, price, currency, ${IDENTITY_FIELDS} }]`,
80
134
  travelers: "[...]",
81
135
  contact: "{ email, phone }",
82
136
  totals: "{ total, currency }",
83
137
  actions_performed: "string[]",
84
138
  },
139
+ error_codes: ERROR_CODES,
85
140
  money_format: "Amounts here are already MAJOR units (plain decimals, no decimal_places) — display as-is, do not divide. See docs.gojinko.com/concepts/money.",
86
141
  },
87
142
  checkout: {
88
- description: "Checkout a trip — returns the web checkout_url a human opens to pay, the agent_spt_params an agent uses to pay programmatically, plus cart items and ancillaries (POST /shop/sync/checkout). `book` is a deprecated alias.",
143
+ description: "Checkout a trip — returns the web checkout_url a human opens to pay, the agent_spt_params an agent uses to pay programmatically, plus cart items and ancillaries (POST /v1/checkout). `book` is a deprecated alias.",
89
144
  request: {
90
145
  trip_id: "string (from trip command)",
91
146
  },
@@ -96,27 +151,32 @@ const SCHEMAS = {
96
151
  status: "ready | pending | failed",
97
152
  total_amount: "{ amount: number, currency: string }? (amount is MAJOR units — display as-is)",
98
153
  agent_spt_params: "{ max_amount: number, currency: string, stripe_profile?: string, expires_at?: string }? (mint an SPT scoped to these, then call agent-pay submit; max_amount is an INTEGER in MINOR units per Stripe convention — the one exception to the no-decimal_places-means-major rule)",
99
- items: "[{ item_id, kind, price, pax_count, available_ancillaries: [...], selected_ancillaries: [...] }]",
154
+ items: `[{ item_id, kind, price, pax_count, ${IDENTITY_FIELDS}, hotel_terms?, available_ancillaries: [...], selected_ancillaries: [...] }]`,
155
+ "items[].hotel_terms": HOTEL_TERMS,
100
156
  },
157
+ error_codes: ERROR_CODES,
101
158
  },
102
159
  "trip-status": {
103
- description: "Full lifecycle state for a trip: cart, quote, fulfillment, bookings (GET /shop/sync/:id).",
160
+ description: "Full lifecycle state for a trip: cart, quote, fulfillment, bookings (GET /v1/trip/:trip_id).",
104
161
  request: {
105
162
  trip_id: "string",
106
163
  },
107
164
  response: {
108
165
  trip_id: "string",
109
- status: "draft | quoting | quoted | fulfillment_prepared | fulfilling | fulfilled | partially_fulfilled | failed | cancelled",
166
+ status: TRIP_STATUS,
110
167
  travelers: "[...]",
111
168
  contact: "{ email?, phone? }?",
112
- items: "[{ item_id, kind, price, pax_count, available_ancillaries, selected_ancillaries }]",
169
+ items: `[{ item_id, kind, price, pax_count, ${IDENTITY_FIELDS}, hotel_terms?, available_ancillaries, selected_ancillaries }]`,
170
+ "items[].hotel_terms": HOTEL_TERMS,
113
171
  total_amount: "{ amount, currency }?",
114
172
  quote: "{ quoted_cart_id, status, expires_at? }?",
115
173
  fulfillment: "{ fulfillment_cart_id, status, phase?, scheduled_at? }?",
116
- bookings: "[{ item_id, kind, booking_reference, pnr?, provider_status? }]?",
174
+ booking_ref: "string? (the Jinko booking reference, JNK-XXXXXX — the value get-booking, hotel-cancel, refund and exchange take as --booking-ref, and the booking_ref every webhook event carries. Present as soon as a fulfillment cart exists for the trip — i.e. once fulfillment has been scheduled, which can be before payment completes (a hosted checkout still in progress, or an agent-pay submit that fell back to checkout_url, leaves the cart awaiting_payment). Presence does not mean paid: read fulfillment.status. The value never changes afterwards. One per trip.)",
175
+ bookings: `[{ item_id, kind, booking_reference (the SUPPLIER confirmation — airline record locator / hotel confirmation number, NOT the get-booking handle), pnr?, provider_status?, ${IDENTITY_FIELDS} }]?`,
117
176
  created_at: "string (ISO)",
118
177
  updated_at: "string (ISO)",
119
178
  },
179
+ error_codes: ERROR_CODES,
120
180
  money_format: "price and price_per_unit are { amount, currency } in MAJOR units — display as-is. See docs.gojinko.com/concepts/money.",
121
181
  },
122
182
  "get-ancillaries": {
@@ -130,11 +190,13 @@ const SCHEMAS = {
130
190
  quoted_cart_id: "number?",
131
191
  expires_at: "string (ISO)?",
132
192
  retry_after_seconds: "number? (present when status=pricing)",
133
- items: "[{ item_id, kind, price, pax_count, available_ancillaries: [{ offer_id, type, label, display_label, price_per_unit, per_pax, max_quantity }], selected_ancillaries }]",
193
+ items: `[{ item_id, kind, price, pax_count, ${IDENTITY_FIELDS}, hotel_terms?, available_ancillaries: [{ offer_id, type, label, display_label, price_per_unit, per_pax, max_quantity }], selected_ancillaries }]`,
194
+ "items[].hotel_terms": HOTEL_TERMS,
134
195
  },
196
+ error_codes: ERROR_CODES,
135
197
  },
136
198
  "select-ancillaries": {
137
- description: "Select bags / seats / meals for a trip item (POST /shop/sync/ancillaries).",
199
+ description: "Select bags / seats / meals for a trip item (POST /v1/select_ancillaries).",
138
200
  request: {
139
201
  trip_id: "string",
140
202
  item_id: "string",
@@ -160,10 +222,12 @@ const SCHEMAS = {
160
222
  status: "string",
161
223
  payment_verified: "boolean",
162
224
  message: "string?",
225
+ booking_ref: "string? (the Jinko booking reference, JNK-XXXXXX, for the trip just paid — hand it to get-booking, hotel-cancel, refund or exchange as --booking-ref. Present when the token was authorized; absent when the payment could not be authorized and checkout_url is returned instead.)",
163
226
  checkout_url: "string? (hosted-checkout fallback, present only on a 3DS step-up / decline)",
164
227
  recap_token: "string?",
165
228
  },
166
229
  },
230
+ error_codes: ERROR_CODES,
167
231
  },
168
232
  };
169
233
  export function registerSchemaCommand(program) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,iEAAiE;AACjE,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB;CAKpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAezE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,SAAS,EAAE,CAAC,GAAG,SAAS,EACxB,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAMf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY/E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,CACP,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EAEtB,OAAO,CAAC,EAAE,GAAG,EACb,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,IAAI,CAAC,IAGK,MAAM,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,mBAiCrD"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,iEAAiE;AACjE,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB;CAKpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAkBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,SAAS,EAAE,CAAC,GAAG,SAAS,EACxB,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAMf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY/E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,CACP,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EAEtB,OAAO,CAAC,EAAE,GAAG,EACb,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,IAAI,CAAC,IAGK,MAAM,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,mBAuCrD"}
@@ -31,7 +31,7 @@ export function exitWithError(err, globals) {
31
31
  process.exit(2);
32
32
  }
33
33
  if (err instanceof ApiError) {
34
- outputError({ code: err.code, message: err.message, doc_url: err.docUrl }, globals);
34
+ outputError({ code: err.code, message: err.message, doc_url: err.docUrl, details: err.details }, globals);
35
35
  process.exit(1);
36
36
  }
37
37
  outputError({ message: err instanceof Error ? err.message : String(err) }, globals);
@@ -126,7 +126,10 @@ export function withClient(handler) {
126
126
  process.exit(2);
127
127
  }
128
128
  if (error instanceof ApiError) {
129
- outputError({ code: error.code, message: error.message, doc_url: error.docUrl }, globals);
129
+ // `details` carries the envelope keys that sit beside `error` (D27) —
130
+ // expires_at, status, items — which is what tells the caller what to do
131
+ // next about the code they just got.
132
+ outputError({ code: error.code, message: error.message, doc_url: error.docUrl, details: error.details }, globals);
130
133
  process.exit(1);
131
134
  }
132
135
  if (error instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trip-status.d.ts","sourceRoot":"","sources":["../../src/commands/trip-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAYhE"}
1
+ {"version":3,"file":"trip-status.d.ts","sourceRoot":"","sources":["../../src/commands/trip-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAahE"}
@@ -1,4 +1,5 @@
1
1
  import { withClient, output } from './shared.js';
2
+ import { printPriceChangeNotices } from '../output/price-change.js';
2
3
  export function registerTripStatusCommand(program) {
3
4
  program
4
5
  .command('trip-status')
@@ -8,6 +9,7 @@ export function registerTripStatusCommand(program) {
8
9
  .action(withClient(async (client, globals, opts) => {
9
10
  const response = await client.getTrip(opts.tripId);
10
11
  output(response, { format: globals.format });
12
+ printPriceChangeNotices(response);
11
13
  }));
12
14
  }
13
15
  //# sourceMappingURL=trip-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trip-status.js","sourceRoot":"","sources":["../../src/commands/trip-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,6GAA6G,CAAC;SACtH,WAAW,CACV,qVAAqV,CACtV;SACA,cAAc,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;SACtD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"trip-status.js","sourceRoot":"","sources":["../../src/commands/trip-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,6GAA6G,CAAC;SACtH,WAAW,CACV,qVAAqV,CACtV;SACA,cAAc,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;SACtD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"trip.d.ts","sourceRoot":"","sources":["../../src/commands/trip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE1D"}
1
+ {"version":3,"file":"trip.d.ts","sourceRoot":"","sources":["../../src/commands/trip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoE1D"}
@@ -1,4 +1,5 @@
1
1
  import { withClient, output, userIntentOption } from './shared.js';
2
+ import { printPriceChangeNotices } from '../output/price-change.js';
2
3
  export function registerTripCommand(program) {
3
4
  program
4
5
  .command('trip')
@@ -48,6 +49,7 @@ export function registerTripCommand(program) {
48
49
  }
49
50
  const response = await client.trip(body);
50
51
  output(response, { format: globals.format });
52
+ printPriceChangeNotices(response);
51
53
  }));
52
54
  }
53
55
  //# sourceMappingURL=trip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trip.js","sourceRoot":"","sources":["../../src/commands/trip.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,mFAAmF,CAAC;SAC5F,WAAW,CACV,2RAA2R,CAC5R;SACA,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;SACjE,MAAM,CAAC,2BAA2B,EAAE,wCAAwC,CAAC;SAC7E,MAAM,CACL,uBAAuB,EACvB,0KAA0K,CAC3K;SACA,MAAM,CACL,oBAAoB,EACpB,qMAAqM,CACtM;SACA,MAAM,CACL,kBAAkB,EAClB,6GAA6G,CAC9G;SACA,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,IAAI,GAA4B,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,SAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAc,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,eAAe,GAA4B,EAAE,SAAS,EAAE,CAAC;YAE/D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAmB,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"trip.js","sourceRoot":"","sources":["../../src/commands/trip.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,mFAAmF,CAAC;SAC5F,WAAW,CACV,2RAA2R,CAC5R;SACA,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;SACjE,MAAM,CAAC,2BAA2B,EAAE,wCAAwC,CAAC;SAC7E,MAAM,CACL,uBAAuB,EACvB,0KAA0K,CAC3K;SACA,MAAM,CACL,oBAAoB,EACpB,qMAAqM,CACtM;SACA,MAAM,CACL,kBAAkB,EAClB,6GAA6G,CAC9G;SACA,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,IAAI,GAA4B,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,SAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAc,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,eAAe,GAA4B,EAAE,SAAS,EAAE,CAAC;YAE/D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAmB,CAAC,CAAC;QACxD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}