@gojinko/cli 2.22.1 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +66 -10
  2. package/SKILL.md +28 -14
  3. package/dist/commands/agent-pay.d.ts.map +1 -1
  4. package/dist/commands/agent-pay.js +2 -1
  5. package/dist/commands/agent-pay.js.map +1 -1
  6. package/dist/commands/auth/index.d.ts.map +1 -1
  7. package/dist/commands/auth/index.js +51 -83
  8. package/dist/commands/auth/index.js.map +1 -1
  9. package/dist/commands/auth/prompt.d.ts +0 -9
  10. package/dist/commands/auth/prompt.d.ts.map +1 -1
  11. package/dist/commands/auth/prompt.js +0 -18
  12. package/dist/commands/auth/prompt.js.map +1 -1
  13. package/dist/commands/checkout.d.ts.map +1 -1
  14. package/dist/commands/checkout.js +8 -1
  15. package/dist/commands/checkout.js.map +1 -1
  16. package/dist/commands/exchange.d.ts.map +1 -1
  17. package/dist/commands/exchange.js +16 -18
  18. package/dist/commands/exchange.js.map +1 -1
  19. package/dist/commands/find-dates.d.ts.map +1 -1
  20. package/dist/commands/find-dates.js +2 -1
  21. package/dist/commands/find-dates.js.map +1 -1
  22. package/dist/commands/find-destination.d.ts.map +1 -1
  23. package/dist/commands/find-destination.js +2 -1
  24. package/dist/commands/find-destination.js.map +1 -1
  25. package/dist/commands/flight-calendar.d.ts.map +1 -1
  26. package/dist/commands/flight-calendar.js +2 -1
  27. package/dist/commands/flight-calendar.js.map +1 -1
  28. package/dist/commands/flight-search.d.ts +106 -0
  29. package/dist/commands/flight-search.d.ts.map +1 -1
  30. package/dist/commands/flight-search.js +452 -45
  31. package/dist/commands/flight-search.js.map +1 -1
  32. package/dist/commands/get-booking.d.ts.map +1 -1
  33. package/dist/commands/get-booking.js +3 -2
  34. package/dist/commands/get-booking.js.map +1 -1
  35. package/dist/commands/ground-search.d.ts +62 -0
  36. package/dist/commands/ground-search.d.ts.map +1 -0
  37. package/dist/commands/ground-search.js +236 -0
  38. package/dist/commands/ground-search.js.map +1 -0
  39. package/dist/commands/hotel-cancel.d.ts.map +1 -1
  40. package/dist/commands/hotel-cancel.js +3 -2
  41. package/dist/commands/hotel-cancel.js.map +1 -1
  42. package/dist/commands/hotel-search.d.ts +30 -0
  43. package/dist/commands/hotel-search.d.ts.map +1 -1
  44. package/dist/commands/hotel-search.js +83 -47
  45. package/dist/commands/hotel-search.js.map +1 -1
  46. package/dist/commands/lowest-fare.d.ts.map +1 -1
  47. package/dist/commands/lowest-fare.js +2 -1
  48. package/dist/commands/lowest-fare.js.map +1 -1
  49. package/dist/commands/price-monitoring.d.ts.map +1 -1
  50. package/dist/commands/price-monitoring.js +2 -1
  51. package/dist/commands/price-monitoring.js.map +1 -1
  52. package/dist/commands/refund.d.ts +7 -27
  53. package/dist/commands/refund.d.ts.map +1 -1
  54. package/dist/commands/refund.js +17 -52
  55. package/dist/commands/refund.js.map +1 -1
  56. package/dist/commands/schema.d.ts.map +1 -1
  57. package/dist/commands/schema.js +97 -27
  58. package/dist/commands/schema.js.map +1 -1
  59. package/dist/commands/select-ancillaries.d.ts.map +1 -1
  60. package/dist/commands/select-ancillaries.js +2 -1
  61. package/dist/commands/select-ancillaries.js.map +1 -1
  62. package/dist/commands/shared.d.ts +14 -1
  63. package/dist/commands/shared.d.ts.map +1 -1
  64. package/dist/commands/shared.js +24 -2
  65. package/dist/commands/shared.js.map +1 -1
  66. package/dist/commands/trip-status.d.ts.map +1 -1
  67. package/dist/commands/trip-status.js +2 -0
  68. package/dist/commands/trip-status.js.map +1 -1
  69. package/dist/commands/trip.d.ts.map +1 -1
  70. package/dist/commands/trip.js +4 -1
  71. package/dist/commands/trip.js.map +1 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +2 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/output/formatter.d.ts +19 -7
  76. package/dist/output/formatter.d.ts.map +1 -1
  77. package/dist/output/formatter.js +22 -8
  78. package/dist/output/formatter.js.map +1 -1
  79. package/dist/output/price-change.d.ts +45 -0
  80. package/dist/output/price-change.d.ts.map +1 -0
  81. package/dist/output/price-change.js +86 -0
  82. package/dist/output/price-change.js.map +1 -0
  83. package/dist/output/remedies.d.ts +30 -0
  84. package/dist/output/remedies.d.ts.map +1 -0
  85. package/dist/output/remedies.js +45 -0
  86. package/dist/output/remedies.js.map +1 -0
  87. package/package.json +3 -4
@@ -0,0 +1,62 @@
1
+ import { Command } from "commander";
2
+ import type { GroundSearchRequest } from "@gojinko/api-client";
3
+ /** Resolved, validated inputs for a ground_search request. */
4
+ export interface GroundSearchInputs {
5
+ departureCity?: string;
6
+ arrivalCity?: string;
7
+ departureStations?: string[];
8
+ arrivalStations?: string[];
9
+ date: string;
10
+ returnDate?: string;
11
+ adults?: string;
12
+ children?: string[];
13
+ carriers?: string[];
14
+ currency?: string;
15
+ locale?: string;
16
+ }
17
+ /**
18
+ * Build the canonical ground_search body (jinko-api POST /v1/ground_search).
19
+ *
20
+ * Passenger groups carry an *upper age bound*, not an age: `max_age` 0-15
21
+ * prices as a child, and its absence means adult. So `--adults 2 --children 8 12`
22
+ * becomes three groups — one of two adults, then one per child. Collapsing the
23
+ * children into a single group would be wrong whenever their ages straddle a
24
+ * carrier's fare bands.
25
+ *
26
+ * Pure — exported for tests.
27
+ */
28
+ export declare function buildGroundSearchBody(input: GroundSearchInputs): GroundSearchRequest;
29
+ interface ConnectionLike {
30
+ id?: string;
31
+ departure_time?: string;
32
+ arrival_time?: string;
33
+ duration_minutes?: number;
34
+ transport_mode?: string;
35
+ departure_station?: {
36
+ name?: string;
37
+ code?: string;
38
+ };
39
+ arrival_station?: {
40
+ name?: string;
41
+ code?: string;
42
+ };
43
+ marketing_carrier?: {
44
+ trade_name?: string;
45
+ code?: string;
46
+ };
47
+ fares?: Array<{
48
+ total_price?: {
49
+ value?: number;
50
+ currency?: string;
51
+ decimal_places?: number;
52
+ };
53
+ }>;
54
+ }
55
+ /**
56
+ * Table view. The connection id is printed in full and never truncated: it is
57
+ * the trip item token, so a shortened one would be silently unusable.
58
+ */
59
+ export declare function formatGroundTable(connections: ConnectionLike[]): string[];
60
+ export declare function registerGroundSearchCommand(program: Command): void;
61
+ export {};
62
+ //# sourceMappingURL=ground-search.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,236 @@
1
+ import { withClient, output, userIntentOption } from "./shared.js";
2
+ const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
3
+ /**
4
+ * Parse a non-negative integer, or return undefined.
5
+ *
6
+ * Number("4x") is NaN, and NaN silently fails every `> 0` comparison — so an
7
+ * unvalidated `--adults 4x` used to drop the adult group entirely, leaving the
8
+ * server to apply its "defaults to one adult" rule. The user got a full page of
9
+ * results priced for one traveller with nothing saying so, and could book the
10
+ * wrong inventory. `--children abc` was worse in kind: it produced
11
+ * `{max_age: NaN}`, which serialises as `null` and violates the schema.
12
+ */
13
+ function parseCount(raw) {
14
+ if (!/^\d+$/.test(raw.trim()))
15
+ return undefined;
16
+ return Number(raw);
17
+ }
18
+ /**
19
+ * Build the canonical ground_search body (jinko-api POST /v1/ground_search).
20
+ *
21
+ * Passenger groups carry an *upper age bound*, not an age: `max_age` 0-15
22
+ * prices as a child, and its absence means adult. So `--adults 2 --children 8 12`
23
+ * becomes three groups — one of two adults, then one per child. Collapsing the
24
+ * children into a single group would be wrong whenever their ages straddle a
25
+ * carrier's fare bands.
26
+ *
27
+ * Pure — exported for tests.
28
+ */
29
+ export function buildGroundSearchBody(input) {
30
+ const body = { departure_date: input.date };
31
+ // Stations win over cities when both are given: they are strictly more
32
+ // specific, and the API treats the pair as either/or per side.
33
+ if (input.departureStations?.length) {
34
+ body.departure_stations = input.departureStations;
35
+ }
36
+ else if (input.departureCity) {
37
+ body.departure_city = input.departureCity;
38
+ }
39
+ if (input.arrivalStations?.length) {
40
+ body.arrival_stations = input.arrivalStations;
41
+ }
42
+ else if (input.arrivalCity) {
43
+ body.arrival_city = input.arrivalCity;
44
+ }
45
+ if (input.returnDate)
46
+ body.return_date = input.returnDate;
47
+ const passengers = [];
48
+ const adults = Number(input.adults ?? "1");
49
+ if (adults > 0)
50
+ passengers.push({ pax: adults });
51
+ for (const age of input.children ?? []) {
52
+ passengers.push({ pax: 1, max_age: Number(age) });
53
+ }
54
+ if (passengers.length)
55
+ body.passengers = passengers;
56
+ if (input.carriers?.length)
57
+ body.carrier_codes = input.carriers;
58
+ if (input.currency)
59
+ body.currency = input.currency;
60
+ if (input.locale)
61
+ body.locale = input.locale;
62
+ return body;
63
+ }
64
+ /** HH:MM from an ISO timestamp, without dragging in a date library. */
65
+ function clockTime(iso) {
66
+ if (!iso)
67
+ return "--:--";
68
+ const match = /T(\d{2}:\d{2})/.exec(iso);
69
+ return match ? match[1] : iso;
70
+ }
71
+ /** The calendar date part of an ISO timestamp, if it has one. */
72
+ function isoDate(iso) {
73
+ return /^(\d{4}-\d{2}-\d{2})T/.exec(iso ?? "")?.[1];
74
+ }
75
+ /**
76
+ * "+1d"-style suffix when a journey lands on a later calendar day.
77
+ *
78
+ * Without it an overnight coach prints "23:50→06:15", which reads as arriving
79
+ * before it departed — and overnight routes are exactly what this command is
80
+ * for. Compares the date components as written, so a journey that crosses a
81
+ * timezone is described in each end's own local date, which is what a traveller
82
+ * reads off a ticket.
83
+ */
84
+ function dayOffsetSuffix(departure, arrival) {
85
+ const from = isoDate(departure);
86
+ const to = isoDate(arrival);
87
+ if (!from || !to || from === to)
88
+ return "";
89
+ const days = Math.round((Date.parse(`${to}T00:00:00Z`) - Date.parse(`${from}T00:00:00Z`)) / 86_400_000);
90
+ if (!Number.isFinite(days) || days <= 0)
91
+ return "";
92
+ return `+${days}d`;
93
+ }
94
+ /**
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.
100
+ */
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
+ function cheapestFare(c) {
113
+ const prices = (c.fares ?? [])
114
+ .map((f) => f.total_price)
115
+ .filter((p) => typeof p?.value === "number");
116
+ if (!prices.length)
117
+ 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();
125
+ }
126
+ /**
127
+ * Table view. The connection id is printed in full and never truncated: it is
128
+ * the trip item token, so a shortened one would be silently unusable.
129
+ */
130
+ export function formatGroundTable(connections) {
131
+ if (!connections.length) {
132
+ return [
133
+ "No connections found.",
134
+ "Codes are ISO-country + city (GBLON for London), NOT IATA (LON) — a wrong code returns no inventory rather than an error.",
135
+ ];
136
+ }
137
+ const lines = [];
138
+ for (const c of connections) {
139
+ const from = c.departure_station?.name ?? c.departure_station?.code ?? "?";
140
+ const to = c.arrival_station?.name ?? c.arrival_station?.code ?? "?";
141
+ const carrier = c.marketing_carrier?.trade_name ?? c.marketing_carrier?.code ?? "";
142
+ const mode = c.transport_mode ? `[${c.transport_mode}]` : "";
143
+ const duration = typeof c.duration_minutes === "number" ? `${c.duration_minutes}min` : "";
144
+ const price = cheapestFare(c);
145
+ lines.push([
146
+ `${clockTime(c.departure_time)}→${clockTime(c.arrival_time)}${dayOffsetSuffix(c.departure_time, c.arrival_time)}`,
147
+ duration,
148
+ mode,
149
+ `${from} → ${to}`,
150
+ carrier,
151
+ price && `from ${price}`,
152
+ ]
153
+ .filter(Boolean)
154
+ .join(" "));
155
+ lines.push(` trip_item_token: ${c.id ?? "(missing)"}`);
156
+ }
157
+ return lines;
158
+ }
159
+ export function registerGroundSearchCommand(program) {
160
+ program
161
+ .command("ground-search")
162
+ .summary("Search live rail, coach and ferry inventory")
163
+ .description("Search live ground-transport connections — rail, coach and ferry — for a route and date. It handles requests like \"train from London to Heathrow on 28 August\" or \"coach from Berlin to Prague next Friday for two adults and a child\". Codes are ISO-country + city (GBLON for London), NOT IATA (LON); a wrong code returns no inventory rather than an error. Each result's `id` is a trip item token you can hand straight to the trip command to start a booking.")
164
+ .option("--departure-city <code>", "departure city code — ISO-country + city, e.g. GBLON for London. JSON: `departure_city`.")
165
+ .option("--arrival-city <code>", "arrival city code — ISO-country + city, e.g. FRPAR for Paris. JSON: `arrival_city`.")
166
+ .option("--departure-stations <codes...>", "specific departure station codes, e.g. GBLONLPB. More specific than --departure-city, and wins when both are given. JSON: `departure_stations`.")
167
+ .option("--arrival-stations <codes...>", "specific arrival station codes. Wins over --arrival-city. JSON: `arrival_stations`.")
168
+ .option("--date <date>", "departure date (YYYY-MM-DD). JSON: `departure_date`. [required]")
169
+ .option("--return-date <date>", "return date (YYYY-MM-DD) — makes it a round trip. JSON: `return_date`.")
170
+ .option("--adults <n>", "number of adults (default 1). JSON: `passengers[].pax`.", "1")
171
+ .option("--children <ages...>", "children ages, e.g. 8 12 — each becomes its own passenger group. JSON: `passengers[].max_age`.")
172
+ .option("--carriers <codes...>", "restrict to specific carrier codes, e.g. HEXR. JSON: `carrier_codes`.")
173
+ .option("--currency <code>", "ISO 4217 currency code, e.g. GBP. JSON: `currency`. NOTE: currently REQUIRED in practice — the provider rejects a search without one, and the schema marking it optional is a known server-side bug.")
174
+ .option("--locale <locale>", "response locale, e.g. en. JSON: `locale`.")
175
+ .addOption(userIntentOption())
176
+ .action(withClient(async (client, globals, opts) => {
177
+ if (!opts.date || !DATE_RE.test(opts.date)) {
178
+ console.error("Error: --date is required and must be YYYY-MM-DD.");
179
+ process.exit(3);
180
+ }
181
+ if (opts.returnDate && !DATE_RE.test(opts.returnDate)) {
182
+ console.error("Error: --return-date must be YYYY-MM-DD.");
183
+ process.exit(3);
184
+ }
185
+ if (!opts.departureCity && !opts.departureStations?.length) {
186
+ console.error("Error: provide --departure-city (e.g. GBLON) or --departure-stations.");
187
+ process.exit(3);
188
+ }
189
+ if (!opts.arrivalCity && !opts.arrivalStations?.length) {
190
+ console.error("Error: provide --arrival-city or --arrival-stations.");
191
+ process.exit(3);
192
+ }
193
+ if (opts.adults !== undefined && parseCount(opts.adults) === undefined) {
194
+ console.error("Error: --adults must be a non-negative whole number.");
195
+ process.exit(3);
196
+ }
197
+ for (const age of opts.children ?? []) {
198
+ if (parseCount(age) === undefined) {
199
+ console.error(`Error: --children ages must be non-negative whole numbers (got "${age}").`);
200
+ process.exit(3);
201
+ }
202
+ }
203
+ if (parseCount(opts.adults ?? "1") === 0 && !opts.children?.length) {
204
+ console.error("Error: --adults 0 needs at least one --children age.");
205
+ process.exit(3);
206
+ }
207
+ const body = buildGroundSearchBody({
208
+ departureCity: opts.departureCity,
209
+ arrivalCity: opts.arrivalCity,
210
+ departureStations: opts.departureStations,
211
+ arrivalStations: opts.arrivalStations,
212
+ date: opts.date,
213
+ returnDate: opts.returnDate,
214
+ adults: opts.adults,
215
+ children: opts.children,
216
+ carriers: opts.carriers,
217
+ currency: opts.currency,
218
+ locale: opts.locale,
219
+ });
220
+ const data = await client.groundSearch(body);
221
+ if (globals.format === "table") {
222
+ const route = `${opts.departureStations?.join(",") ?? opts.departureCity} → ${opts.arrivalStations?.join(",") ?? opts.arrivalCity}`;
223
+ const when = opts.returnDate
224
+ ? `${opts.date} → ${opts.returnDate}`
225
+ : opts.date;
226
+ console.log(`\nGround connections: ${route} (${when})\n`);
227
+ for (const line of formatGroundTable((data.connections ?? []))) {
228
+ console.log(line);
229
+ }
230
+ console.log("");
231
+ return;
232
+ }
233
+ output(data, { format: globals.format });
234
+ }));
235
+ }
236
+ //# sourceMappingURL=ground-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ground-search.js","sourceRoot":"","sources":["../../src/commands/ground-search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hotel-cancel.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiDjE"}
1
+ {"version":3,"file":"hotel-cancel.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkDjE"}
@@ -1,4 +1,4 @@
1
- import { withClient, output, resolveDeprecatedFlag } from './shared.js';
1
+ import { withClient, output, resolveDeprecatedFlag, userIntentOption } from './shared.js';
2
2
  /**
3
3
  * `gojinko hotel-cancel` — hotel cancellation, idempotent.
4
4
  *
@@ -19,10 +19,11 @@ 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`.')
26
+ .addOption(userIntentOption())
26
27
  .option('--ref <ref>', 'DEPRECATED: use --booking-ref.')
27
28
  .action(withClient(async (client, globals, opts) => {
28
29
  const bookingRef = resolveDeprecatedFlag(opts.bookingRef, opts.ref, '--ref', '--booking-ref');
@@ -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,MAAM,aAAa,CAAC;AAExE;;;;;;;;;;;;;;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,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,3 +1,33 @@
1
1
  import { Command } from 'commander';
2
+ import type { HotelSearchRequest } from '@gojinko/api-client';
3
+ export type HotelsShopBody = HotelSearchRequest & {
4
+ hotel_name?: string;
5
+ };
6
+ export interface HotelSearchBodyOpts {
7
+ checkin: string;
8
+ checkout: string;
9
+ adults?: string;
10
+ query?: string;
11
+ cityName?: string;
12
+ countryCode?: string;
13
+ latitude?: string;
14
+ longitude?: string;
15
+ radiusKm?: string;
16
+ placeId?: string;
17
+ hotelIds?: string[];
18
+ hotelName?: string;
19
+ children?: string[];
20
+ rooms?: string;
21
+ currency?: string;
22
+ guestNationality?: string;
23
+ minRating?: string;
24
+ starRating?: string;
25
+ maxStarRating?: string;
26
+ minReviews?: string;
27
+ maxResults?: string;
28
+ offset?: string;
29
+ maxBudgetPerNight?: string;
30
+ }
31
+ export declare function buildHotelSearchBody(o: HotelSearchBodyOpts): HotelsShopBody;
2
32
  export declare function registerHotelSearchCommand(program: Command): void;
3
33
  //# sourceMappingURL=hotel-search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hotel-search.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4EpC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsIjE"}
1
+ {"version":3,"file":"hotel-search.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAI1E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAuC3E;AA8DD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgIjE"}
@@ -1,5 +1,62 @@
1
1
  import chalk from 'chalk';
2
- import { withClient, output, resolveDeprecatedFlag } from './shared.js';
2
+ import { withClient, output, resolveDeprecatedFlag, userIntentOption } from './shared.js';
3
+ // buildHotelSearchBody maps canonical CLI options onto the jinko-api
4
+ // hotel_search body. Pure — exported for tests.
5
+ export function buildHotelSearchBody(o) {
6
+ const body = {
7
+ checkin: o.checkin,
8
+ checkout: o.checkout,
9
+ adults: Number(o.adults) || 2,
10
+ };
11
+ // Destination
12
+ if (o.query)
13
+ body.query = o.query;
14
+ if (o.cityName)
15
+ body.city_name = o.cityName;
16
+ if (o.countryCode)
17
+ body.country_code = o.countryCode;
18
+ if (o.latitude)
19
+ body.latitude = Number(o.latitude);
20
+ if (o.longitude)
21
+ body.longitude = Number(o.longitude);
22
+ if (o.radiusKm)
23
+ body.radius_km = Number(o.radiusKm);
24
+ if (o.placeId)
25
+ body.place_id = o.placeId;
26
+ if (o.hotelIds)
27
+ body.hotel_ids = o.hotelIds;
28
+ if (o.hotelName)
29
+ body.hotel_name = o.hotelName;
30
+ // Occupancy shorthand
31
+ if (o.children)
32
+ body.children = o.children.map(Number);
33
+ if (o.rooms)
34
+ body.rooms = Number(o.rooms);
35
+ // Context
36
+ if (o.currency)
37
+ body.currency = o.currency;
38
+ if (o.guestNationality)
39
+ body.guest_nationality = o.guestNationality;
40
+ // Filters (Mode B only — Mode A warns in the action). `--star-rating` maps
41
+ // to the canonical `min_star_rating` leaf (minimum-stars semantics).
42
+ if (o.minRating)
43
+ body.min_rating = Number(o.minRating);
44
+ if (o.starRating)
45
+ body.min_star_rating = Number(o.starRating);
46
+ if (o.maxStarRating)
47
+ body.max_star_rating = Number(o.maxStarRating);
48
+ if (o.minReviews)
49
+ body.min_reviews = Number(o.minReviews);
50
+ if (o.maxResults)
51
+ body.max_results = Number(o.maxResults);
52
+ if (o.offset !== undefined)
53
+ body.offset = Number(o.offset);
54
+ // Budget is NOT a Mode-B-only filter — it also applies in Mode A (rate
55
+ // lookup), so it is deliberately outside the Mode A filters warning.
56
+ if (o.maxBudgetPerNight)
57
+ body.max_budget_per_night = Number(o.maxBudgetPerNight);
58
+ return body;
59
+ }
3
60
  function isLowConfidenceError(body) {
4
61
  if (!body || typeof body !== 'object')
5
62
  return false;
@@ -63,6 +120,8 @@ export function registerHotelSearchCommand(program) {
63
120
  .option('--min-reviews <n>', 'minimum number of reviews. JSON: `min_reviews`.')
64
121
  .option('--max-results <n>', 'maximum hotels to return per page (default 50). JSON: `max_results`.')
65
122
  .option('--offset <n>', 'pagination offset — skip this many hotels at the upstream search (default 0). JSON: `offset`.')
123
+ .option('--max-budget-per-night <amount>', 'keep only hotels whose cheapest per-night price (per room, in the request currency) fits this budget; the search scans deeper automatically when few hotels fit. JSON: `max_budget_per_night`.')
124
+ .addOption(userIntentOption())
66
125
  // Deprecated aliases — Phase 1 transition (JIN-665), remove in next major.
67
126
  .option('--city <name>', 'DEPRECATED: use --city-name.')
68
127
  .option('--country <code>', 'DEPRECATED: use --country-code.')
@@ -103,54 +162,31 @@ export function registerHotelSearchCommand(program) {
103
162
  'are ignored when --hotel-name or --hotel-ids is set (rate-lookup mode). ' +
104
163
  'The server will return a warnings entry in the response.');
105
164
  }
106
- const body = {
165
+ const body = buildHotelSearchBody({
107
166
  checkin: opts.checkin,
108
167
  checkout: opts.checkout,
109
- adults: Number(opts.adults) || 2,
110
- };
111
- // Destination
112
- if (opts.query)
113
- body.query = opts.query;
114
- if (cityName)
115
- body.city_name = cityName;
116
- if (countryCode)
117
- body.country_code = countryCode;
118
- if (latitude)
119
- body.latitude = Number(latitude);
120
- if (longitude)
121
- body.longitude = Number(longitude);
122
- if (radiusKm)
123
- body.radius_km = Number(radiusKm);
124
- if (opts.placeId)
125
- body.place_id = opts.placeId;
126
- if (opts.hotelIds)
127
- body.hotel_ids = opts.hotelIds;
128
- if (opts.hotelName)
129
- body.hotel_name = opts.hotelName;
130
- // Occupancy shorthand
131
- if (opts.children)
132
- body.children = opts.children.map(Number);
133
- if (opts.rooms)
134
- body.rooms = Number(opts.rooms);
135
- // Context
136
- if (opts.currency)
137
- body.currency = opts.currency;
138
- if (guestNationality)
139
- body.guest_nationality = guestNationality;
140
- // Filters (Mode B only — Mode A warned above). `--star-rating` maps to
141
- // the canonical `min_star_rating` leaf (minimum-stars semantics).
142
- if (opts.minRating)
143
- body.min_rating = Number(opts.minRating);
144
- if (starRating)
145
- body.min_star_rating = Number(starRating);
146
- if (maxStarRating)
147
- body.max_star_rating = Number(maxStarRating);
148
- if (opts.minReviews)
149
- body.min_reviews = Number(opts.minReviews);
150
- if (opts.maxResults)
151
- body.max_results = Number(opts.maxResults);
152
- if (opts.offset !== undefined)
153
- body.offset = Number(opts.offset);
168
+ adults: opts.adults,
169
+ query: opts.query,
170
+ cityName,
171
+ countryCode,
172
+ latitude,
173
+ longitude,
174
+ radiusKm,
175
+ placeId: opts.placeId,
176
+ hotelIds: opts.hotelIds,
177
+ hotelName: opts.hotelName,
178
+ children: opts.children,
179
+ rooms: opts.rooms,
180
+ currency: opts.currency,
181
+ guestNationality,
182
+ minRating: opts.minRating,
183
+ starRating,
184
+ maxStarRating,
185
+ minReviews: opts.minReviews,
186
+ maxResults: opts.maxResults,
187
+ offset: opts.offset,
188
+ maxBudgetPerNight: opts.maxBudgetPerNight,
189
+ });
154
190
  const response = await client.raw.POST('/v1/hotel_search', {
155
191
  body,
156
192
  });
@@ -1 +1 @@
1
- {"version":3,"file":"hotel-search.js","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hotel-search.js","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqC1F,qEAAqE;AACrE,gDAAgD;AAChD,MAAM,UAAU,oBAAoB,CAAC,CAAsB;IACzD,MAAM,IAAI,GAAmB;QAC3B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;KAC9B,CAAC;IAEF,cAAc;IACd,IAAI,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAClC,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5C,IAAI,CAAC,CAAC,WAAW;QAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC;IACrD,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,OAAO;QAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC;IACzC,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5C,IAAI,CAAC,CAAC,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC;IAE/C,sBAAsB;IACtB,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1C,UAAU;IACV,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3C,IAAI,CAAC,CAAC,gBAAgB;QAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,gBAAgB,CAAC;IAEpE,2EAA2E;IAC3E,qEAAqE;IACrE,IAAI,CAAC,CAAC,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,UAAU;QAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,aAAa;QAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,CAAC,UAAU;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,UAAU;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3D,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,CAAC,CAAC,iBAAiB;QAAE,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAEjF,OAAO,IAAI,CAAC;AACd,CAAC;AAqBD,SAAS,oBAAoB,CAAC,IAAa;IACzC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,CAAC,GAAI,IAAuC,CAAC,KAAK,CAAC;IACzD,OAAO,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,2BAA2B,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,wBAAwB,CAAC,IAA4B,EAAE,MAAwB;IACtF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,qEAAqE;QACrE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9C,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,4GAA4G,CAAC,CACxH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,uCAAuC,CAAC;SAChD,WAAW,CACV,iTAAiT,CAClT;SACA,MAAM,CAAC,gBAAgB,EAAE,oEAAoE,CAAC;SAC9F,MAAM,CAAC,oBAAoB,EAAE,2HAA2H,CAAC;SACzJ,MAAM,CAAC,uBAAuB,EAAE,+IAA+I,CAAC;SAChL,MAAM,CAAC,uBAAuB,EAAE,4DAA4D,CAAC;SAC7F,MAAM,CAAC,yBAAyB,EAAE,8DAA8D,CAAC;SACjG,MAAM,CAAC,kBAAkB,EAAE,sEAAsE,CAAC;SAClG,MAAM,CAAC,iBAAiB,EAAE,2EAA2E,CAAC;SACtG,MAAM,CAAC,sBAAsB,EAAE,yDAAyD,CAAC;SACzF,MAAM,CAAC,qBAAqB,EAAE,iHAAiH,CAAC;SAChJ,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,EAAE,SAAS,CAAC;SAChG,MAAM,CAAC,mBAAmB,EAAE,2DAA2D,EAAE,SAAS,CAAC;SACnG,MAAM,CAAC,cAAc,EAAE,+CAA+C,EAAE,GAAG,CAAC;SAC5E,MAAM,CAAC,sBAAsB,EAAE,wDAAwD,CAAC;SACxF,MAAM,CAAC,aAAa,EAAE,6CAA6C,CAAC;SACpE,MAAM,CAAC,mBAAmB,EAAE,yDAAyD,CAAC;SACtF,MAAM,CAAC,4BAA4B,EAAE,oEAAoE,CAAC;SAC1G,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,CAAC;SACrF,MAAM,CAAC,mBAAmB,EAAE,qDAAqD,CAAC;SAClF,MAAM,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,mBAAmB,EAAE,sEAAsE,CAAC;SACnG,MAAM,CAAC,cAAc,EAAE,+FAA+F,CAAC;SACvH,MAAM,CAAC,iCAAiC,EAAE,gMAAgM,CAAC;SAC3O,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC9B,2EAA2E;SAC1E,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;SAC7D,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;SACzD,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;SACtE,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SAC/D,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,mDAAmD;QACnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACzG,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAC9F,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAChI,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAClG,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAEnH,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;QACxF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CACX,gHAAgH;gBAC9G,sEAAsE,CACzE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,OAAO,CACxB,IAAI,CAAC,SAAS,IAAI,UAAU,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CACpF,CAAC;QACF,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CACV,sGAAsG;gBACpG,0EAA0E;gBAC1E,0DAA0D,CAC7D,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU;YACV,aAAa;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzD,IAAI;SACL,CAAC,CAAC;QAEH,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,sEAAsE;QACtE,MAAM,OAAO,GAAG,QAIf,CAAC;QACF,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5E,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lowest-fare.d.ts","sourceRoot":"","sources":["../../src/commands/lowest-fare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,gBAAgB,GACtB,iBAAiB,CAenB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4FhE"}
1
+ {"version":3,"file":"lowest-fare.d.ts","sourceRoot":"","sources":["../../src/commands/lowest-fare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,gBAAgB,GACtB,iBAAiB,CAenB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6FhE"}
@@ -1,4 +1,4 @@
1
- import { withClient, output, resolveDeprecatedFlag } from "./shared.js";
1
+ import { withClient, output, resolveDeprecatedFlag, userIntentOption } from "./shared.js";
2
2
  const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
3
3
  /**
4
4
  * Build the canonical FLAT lowest_fare body (jinko-api POST /v1/lowest_fare).
@@ -32,6 +32,7 @@ export function registerLowestFareCommand(program) {
32
32
  .option("--return-date <date>", "return date (YYYY-MM-DD) — makes it a round-trip. JSON: `return_dates[0]`.")
33
33
  .option("--cabin-class <class>", "cabin class: economy, premium_economy, business, first (default: economy). JSON: `cabin_class`.")
34
34
  .option("--direct-only", "only direct flights. JSON: `direct_only`.")
35
+ .addOption(userIntentOption())
35
36
  // Deprecated aliases — Phase 1 transition (JIN-665), remove in next major.
36
37
  .option("--from <origin>", "DEPRECATED: use --origins.")
37
38
  .option("--to <destination>", "DEPRECATED: use --destinations.")
@@ -1 +1 @@
1
- {"version":3,"file":"lowest-fare.js","sourceRoot":"","sources":["../../src/commands/lowest-fare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lowest-fare.js","sourceRoot":"","sources":["../../src/commands/lowest-fare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"price-monitoring.d.ts","sourceRoot":"","sources":["../../src/commands/price-monitoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6ErE"}
1
+ {"version":3,"file":"price-monitoring.d.ts","sourceRoot":"","sources":["../../src/commands/price-monitoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8ErE"}