@gojinko/cli 1.1.1 → 1.2.1

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 (45) hide show
  1. package/README.md +22 -6
  2. package/dist/commands/exchange.d.ts.map +1 -1
  3. package/dist/commands/exchange.js +1 -15
  4. package/dist/commands/exchange.js.map +1 -1
  5. package/dist/commands/find-destination.d.ts +40 -0
  6. package/dist/commands/find-destination.d.ts.map +1 -1
  7. package/dist/commands/find-destination.js +207 -41
  8. package/dist/commands/find-destination.js.map +1 -1
  9. package/dist/commands/find-flight.js.map +1 -1
  10. package/dist/commands/flight-calendar.js.map +1 -1
  11. package/dist/commands/get-booking.d.ts +3 -0
  12. package/dist/commands/get-booking.d.ts.map +1 -0
  13. package/dist/commands/get-booking.js +33 -0
  14. package/dist/commands/get-booking.js.map +1 -0
  15. package/dist/commands/hotel-cancel.d.ts +16 -0
  16. package/dist/commands/hotel-cancel.d.ts.map +1 -0
  17. package/dist/commands/hotel-cancel.js +48 -0
  18. package/dist/commands/hotel-cancel.js.map +1 -0
  19. package/dist/commands/hotel-details.d.ts +3 -0
  20. package/dist/commands/hotel-details.d.ts.map +1 -0
  21. package/dist/commands/hotel-details.js +18 -0
  22. package/dist/commands/hotel-details.js.map +1 -0
  23. package/dist/commands/hotel-lookup-booking.d.ts +7 -0
  24. package/dist/commands/hotel-lookup-booking.d.ts.map +1 -0
  25. package/dist/commands/hotel-lookup-booking.js +20 -0
  26. package/dist/commands/hotel-lookup-booking.js.map +1 -0
  27. package/dist/commands/hotel-search.d.ts.map +1 -1
  28. package/dist/commands/hotel-search.js +19 -16
  29. package/dist/commands/hotel-search.js.map +1 -1
  30. package/dist/commands/price-monitoring.d.ts +3 -0
  31. package/dist/commands/price-monitoring.d.ts.map +1 -0
  32. package/dist/commands/price-monitoring.js +50 -0
  33. package/dist/commands/price-monitoring.js.map +1 -0
  34. package/dist/commands/refund.d.ts +21 -0
  35. package/dist/commands/refund.d.ts.map +1 -1
  36. package/dist/commands/refund.js +1 -1
  37. package/dist/commands/refund.js.map +1 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +10 -2
  40. package/dist/index.js.map +1 -1
  41. package/package.json +3 -6
  42. package/dist/commands/lookup-booking.d.ts +0 -3
  43. package/dist/commands/lookup-booking.d.ts.map +0 -1
  44. package/dist/commands/lookup-booking.js +0 -16
  45. package/dist/commands/lookup-booking.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @gojinko/cli
2
2
 
3
- Command-line tool for the Jinko developer platform. Search flights, build trips, and hand users off to a Jinko-hosted checkout page.
3
+ Command-line tool for the Jinko developer platform. Search flights and hotels, build trips (multi-domain — flights and hotels share one cart), and hand users off to a Jinko-hosted checkout page.
4
4
 
5
5
  ## Install
6
6
 
@@ -43,7 +43,10 @@ jinko auth logout # Clear stored credentials
43
43
  | Command | Description |
44
44
  |---|---|
45
45
  | `flight-search` | Direct search by route + dates OR price-check an `offer_token`. Returns bookable `trip_item_token`. |
46
- | `trip` | Create/update a trip, add items, set travelers |
46
+ | `price-monitoring` | Cache-only price snapshot for a fixed OD + dates intended for scheduled polling. Semantically distinct from `flight-search` (one-shot live shopping). |
47
+ | `hotel-search` | Live hotel search by city / query / geo / hotel-ids. Returns hotels with rooms, rates, `htl_*` offer tokens. |
48
+ | `hotel-details` | Lazy lookup for a specific hotel — images, amenities, location detail. Pairs with `hotel-search` when the user wants the full picture before booking. |
49
+ | `trip` | Create/update a trip, add flight or hotel items, set travelers |
47
50
 
48
51
  ### Legacy
49
52
 
@@ -55,7 +58,7 @@ jinko auth logout # Clear stored credentials
55
58
 
56
59
  | Command | Description |
57
60
  |---|---|
58
- | `checkout` | Schedule checkout, returns `checkout_url` + items + ancillaries + total |
61
+ | `book` | Schedule checkout, returns `checkout_url` + items + ancillaries + total |
59
62
  | `select-ancillaries` | Optional: preselect bags / seats / meals before handoff |
60
63
  | `trip-status` | Full lifecycle state: cart, quote, fulfillment, bookings |
61
64
 
@@ -63,8 +66,14 @@ jinko auth logout # Clear stored credentials
63
66
 
64
67
  | Command | Description |
65
68
  |---|---|
69
+ | `get-booking` | Retrieve a booking by reference (booking ref + last-name guest-auth). No subcommands. (Previously `lookup-booking`, which is kept as a hidden deprecated alias.) |
66
70
  | `refund check` | Check refund eligibility for a booking |
67
71
  | `refund commit` | Initiate a refund for a booking |
72
+ | `refund status` | Check the status of a previously committed refund |
73
+ | `exchange shop` | Search exchange options for an existing booking |
74
+ | `exchange price` | Price a selected exchange option |
75
+ | `exchange commit` | Commit a flight exchange |
76
+ | `exchange status` | Check the status of a previously committed exchange |
68
77
 
69
78
  ### Utility
70
79
 
@@ -76,10 +85,10 @@ jinko auth logout # Clear stored credentials
76
85
  ## Canonical Flow
77
86
 
78
87
  ```
79
- flight-search → trip → checkout → user pays on checkout_url → trip-status
88
+ flight-search → trip → book → user pays on checkout_url → trip-status
80
89
  ```
81
90
 
82
- Quote is automatic — `checkout` handles it internally. Payment happens on the Jinko web page, not in the CLI.
91
+ Quote is automatic — `book` handles it internally. Payment happens on the Jinko web page, not in the CLI.
83
92
 
84
93
  ## Examples
85
94
 
@@ -90,6 +99,13 @@ jinko flight-search --from PAR --to NYC --date 2026-06-15
90
99
  # Or price-check an offer_token from flight-calendar
91
100
  jinko flight-search --offer-token <offer_token>
92
101
 
102
+ # Live hotel search (returns htl_* tokens that plug into trip the same way as flight tokens)
103
+ jinko hotel-search --city "Paris" --checkin 2026-07-15 --checkout 2026-07-18 --adults 2
104
+
105
+ # Multi-domain cart: add flight + hotel to the same trip → one Stripe checkout
106
+ jinko trip --trip-item-token <flight_token> # returns trip_id
107
+ jinko trip --trip-id <trip_id> --trip-item-token <htl_*>
108
+
93
109
  # Create trip with travelers + contact
94
110
  jinko trip \
95
111
  --trip-item-token <token> \
@@ -97,7 +113,7 @@ jinko trip \
97
113
  --contact '{"email":"jane@example.com","phone":"+33612345678"}'
98
114
 
99
115
  # Schedule checkout → returns checkout_url
100
- jinko checkout --trip-id <trip_id>
116
+ jinko book --trip-id <trip_id>
101
117
 
102
118
  # Optional: add baggage/seats/meals before handoff
103
119
  jinko select-ancillaries \
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiF9D"}
1
+ {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiF9D"}
@@ -1,19 +1,5 @@
1
1
  import { withClient, output } from './shared.js';
2
- import { validateAuthFields } from './refund.js';
3
- /**
4
- * Build exchange auth + common fields from CLI options.
5
- * Reuses the same two-mode auth validation as refund.
6
- */
7
- function buildAuthFields(opts) {
8
- validateAuthFields(opts);
9
- return {
10
- ...(opts.orderId && { order_id: opts.orderId }),
11
- ...(opts.bookingRef && { booking_ref: opts.bookingRef }),
12
- ...(opts.lastName && { last_name: opts.lastName }),
13
- ...(opts.provider && { provider: opts.provider }),
14
- ...(opts.ticketNumbers && opts.ticketNumbers.length > 0 && { ticket_numbers: opts.ticketNumbers }),
15
- };
16
- }
2
+ import { buildAuthFields, validateAuthFields } from './refund.js';
17
3
  export function registerExchangeCommand(program) {
18
4
  const exchange = program
19
5
  .command('exchange')
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,43 @@
1
1
  import { Command } from 'commander';
2
+ export interface FindDestinationOpts {
3
+ origins?: string[];
4
+ destinations?: string[];
5
+ originType?: string;
6
+ destinationType?: string;
7
+ departureDates?: string[];
8
+ departureDateRanges?: string[];
9
+ returnDates?: string[];
10
+ returnDateRanges?: string[];
11
+ stayDays?: string;
12
+ stayDaysRange?: string;
13
+ tripType?: string;
14
+ cabinClass?: string;
15
+ directOnly?: boolean;
16
+ adults?: string;
17
+ children?: string;
18
+ infantsInLap?: string;
19
+ infantsInSeat?: string;
20
+ youth?: string;
21
+ student?: string;
22
+ ages?: string[];
23
+ residencyCountry?: string;
24
+ maxTotal?: string;
25
+ currency?: string;
26
+ locale?: string;
27
+ limit?: string;
28
+ offset?: string;
29
+ flightsPerDestination?: string;
30
+ sortBy?: string;
31
+ from?: string[];
32
+ date?: string;
33
+ return?: string;
34
+ departureRange?: string;
35
+ stay?: string;
36
+ cabin?: string;
37
+ maxPrice?: string;
38
+ sort?: string;
39
+ }
40
+ export declare function applyDeprecatedAliases(opts: FindDestinationOpts): void;
41
+ export declare function buildRequestBody(opts: FindDestinationOpts): Record<string, unknown>;
2
42
  export declare function registerFindDestinationCommand(program: Command): void;
3
43
  //# sourceMappingURL=find-destination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-destination.d.ts","sourceRoot":"","sources":["../../src/commands/find-destination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsDrE"}
1
+ {"version":3,"file":"find-destination.d.ts","sourceRoot":"","sources":["../../src/commands/find-destination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,WAAW,mBAAmB;IAElC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8DD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiCtE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwDnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0IrE"}
@@ -1,49 +1,215 @@
1
1
  import { withClient, output } from './shared.js';
2
+ const DESCRIPTION = 'Discover travel destinations accessible from your departure airports. ' +
3
+ 'Surface inspiration when a user knows where they want to leave from but not where they want to go. ' +
4
+ "Typical prompts include 'cheap beach getaways from New York' or 'weekend trips out of London under €200'. " +
5
+ 'Results come back ranked by lowest available fare so the user can compare options before committing to a route. ' +
6
+ 'Same call as `POST /api/v1/flights/destination-search` — every CLI flag maps 1:1 to a JSON field.';
7
+ function parseDateRange(raw) {
8
+ const [start, end] = raw.split(':');
9
+ if (!start || !end) {
10
+ throw new Error(`Invalid date range '${raw}'. Expected YYYY-MM-DD:YYYY-MM-DD.`);
11
+ }
12
+ return { start, end };
13
+ }
14
+ function parseIntRange(raw) {
15
+ const [min, max] = raw.split(':').map(Number);
16
+ if (!Number.isFinite(min) || !Number.isFinite(max)) {
17
+ throw new Error(`Invalid integer range '${raw}'. Expected min:max (e.g. 5:10).`);
18
+ }
19
+ return { min, max };
20
+ }
21
+ function warn(msg) {
22
+ process.stderr.write(`[jinko] DEPRECATED: ${msg}\n`);
23
+ }
24
+ /**
25
+ * Phase 1 translation: a small, documented bridge between canonical CLI / spec
26
+ * names (what users learn) and the BFF's current legacy leaf names.
27
+ *
28
+ * When Phase 2 ships (BFF rename adt→adults, sort→sort_by, etc.), delete this
29
+ * function and its callers. CLI users see no change.
30
+ *
31
+ * Tracked: JIN-665 phase 2.
32
+ */
33
+ const PHASE_1_PASSENGER_LEGACY = {
34
+ adults: 'adt',
35
+ children: 'chd',
36
+ infants_in_lap: 'inf_lap',
37
+ infants_in_seat: 'inf_seat',
38
+ };
39
+ function buildPassengers(opts) {
40
+ const canonical = {};
41
+ if (opts.adults !== undefined)
42
+ canonical.adults = Number(opts.adults);
43
+ if (opts.children !== undefined)
44
+ canonical.children = Number(opts.children);
45
+ if (opts.infantsInLap !== undefined)
46
+ canonical.infants_in_lap = Number(opts.infantsInLap);
47
+ if (opts.infantsInSeat !== undefined)
48
+ canonical.infants_in_seat = Number(opts.infantsInSeat);
49
+ if (opts.youth !== undefined)
50
+ canonical.youth = Number(opts.youth);
51
+ if (opts.student !== undefined)
52
+ canonical.student = Number(opts.student);
53
+ if (opts.ages?.length)
54
+ canonical.ages = opts.ages.map(Number);
55
+ if (opts.residencyCountry)
56
+ canonical.residency_country = opts.residencyCountry;
57
+ // Default to one adult so BFF doesn't reject the request.
58
+ if (canonical.adults === undefined && canonical.children === undefined) {
59
+ canonical.adults = 1;
60
+ }
61
+ // Apply Phase 1 legacy translation (adults→adt etc.). See PHASE_1_PASSENGER_LEGACY.
62
+ const out = {};
63
+ for (const [key, value] of Object.entries(canonical)) {
64
+ out[PHASE_1_PASSENGER_LEGACY[key] ?? key] = value;
65
+ }
66
+ return out;
67
+ }
68
+ export function applyDeprecatedAliases(opts) {
69
+ if (opts.from && !opts.origins) {
70
+ warn('--from is deprecated, use --origins.');
71
+ opts.origins = opts.from;
72
+ }
73
+ if (opts.date && !opts.departureDates) {
74
+ warn('--date is deprecated, use --departure-dates.');
75
+ opts.departureDates = [opts.date];
76
+ }
77
+ if (opts.return && !opts.returnDates) {
78
+ warn('--return is deprecated, use --return-dates.');
79
+ opts.returnDates = [opts.return];
80
+ }
81
+ if (opts.departureRange && !opts.departureDateRanges) {
82
+ warn('--departure-range is deprecated, use --departure-date-ranges.');
83
+ opts.departureDateRanges = [opts.departureRange];
84
+ }
85
+ if (opts.stay && !opts.stayDaysRange) {
86
+ warn('--stay is deprecated, use --stay-days-range.');
87
+ opts.stayDaysRange = opts.stay;
88
+ }
89
+ if (opts.cabin && !opts.cabinClass) {
90
+ warn('--cabin is deprecated, use --cabin-class.');
91
+ opts.cabinClass = opts.cabin;
92
+ }
93
+ if (opts.maxPrice && !opts.maxTotal) {
94
+ warn('--max-price is deprecated, use --max-total.');
95
+ opts.maxTotal = opts.maxPrice;
96
+ }
97
+ if (opts.sort && !opts.sortBy) {
98
+ warn('--sort is deprecated, use --sort-by.');
99
+ opts.sortBy = opts.sort;
100
+ }
101
+ }
102
+ export function buildRequestBody(opts) {
103
+ if (!opts.origins || opts.origins.length === 0) {
104
+ throw new Error('Missing required option: --origins.');
105
+ }
106
+ const locations = { origins: opts.origins };
107
+ if (opts.destinations?.length)
108
+ locations.destinations = opts.destinations;
109
+ if (opts.originType)
110
+ locations.origin_type = opts.originType;
111
+ if (opts.destinationType)
112
+ locations.destination_type = opts.destinationType;
113
+ const dates = {};
114
+ if (opts.departureDates?.length)
115
+ dates.departure_dates = opts.departureDates;
116
+ if (opts.departureDateRanges?.length) {
117
+ dates.departure_date_ranges = opts.departureDateRanges.map(parseDateRange);
118
+ }
119
+ if (opts.returnDates?.length)
120
+ dates.return_dates = opts.returnDates;
121
+ if (opts.returnDateRanges?.length) {
122
+ dates.return_date_ranges = opts.returnDateRanges.map(parseDateRange);
123
+ }
124
+ if (opts.stayDays !== undefined)
125
+ dates.stay_days = Number(opts.stayDays);
126
+ if (opts.stayDaysRange)
127
+ dates.stay_days_range = parseIntRange(opts.stayDaysRange);
128
+ // BFF requires at least one date — default to next 12 months if none provided.
129
+ if (Object.keys(dates).length === 0) {
130
+ const today = new Date();
131
+ const start = today.toISOString().slice(0, 10);
132
+ const end = new Date(today.getFullYear() + 1, today.getMonth(), today.getDate())
133
+ .toISOString().slice(0, 10);
134
+ dates.departure_date_ranges = [{ start, end }];
135
+ }
136
+ const tripType = opts.tripType ??
137
+ (opts.returnDates?.length || opts.returnDateRanges?.length ? 'roundtrip' : 'oneway');
138
+ const filters = { locations, dates, trip_type: tripType };
139
+ if (opts.cabinClass)
140
+ filters.cabin_class = opts.cabinClass;
141
+ if (opts.directOnly)
142
+ filters.direct_only = true;
143
+ const body = {
144
+ filters,
145
+ passengers: buildPassengers(opts),
146
+ // Phase 1 legacy: BFF leaf is `sort`; CLI canonical is `--sort-by`.
147
+ sort: opts.sortBy,
148
+ limit: Number(opts.limit) || 20,
149
+ flights_per_destination: opts.flightsPerDestination
150
+ ? Number(opts.flightsPerDestination)
151
+ : 1,
152
+ };
153
+ if (opts.maxTotal)
154
+ body.price_constraints = { max_total: Number(opts.maxTotal) };
155
+ if (opts.currency)
156
+ body.currency = opts.currency;
157
+ if (opts.locale)
158
+ body.locale = opts.locale;
159
+ if (opts.offset !== undefined)
160
+ body.offset = Number(opts.offset);
161
+ return body;
162
+ }
2
163
  export function registerFindDestinationCommand(program) {
3
164
  program
4
165
  .command('find-destination')
5
- .description('Discover destinations from one or more origins.')
6
- .requiredOption('--from <origins...>', 'origin airport code(s) (e.g. PAR or PAR CDG)')
7
- .option('--date <date>', 'departure date (YYYY-MM-DD)')
8
- .option('--return <date>', 'return date (YYYY-MM-DD)')
9
- .option('--direct-only', 'only direct flights')
10
- .option('--cabin <class>', 'cabin class', 'economy')
11
- .option('--max-price <amount>', 'maximum price filter')
12
- .option('--sort <sort>', 'sort: lowest, recommendation', 'lowest')
13
- .option('--limit <n>', 'max destinations', '20')
166
+ .description(DESCRIPTION)
167
+ // Location
168
+ .option('--origins <codes...>', 'IATA airport or city codes (e.g. JFK LGA). JSON: `filters.locations.origins[]`. Required.')
169
+ .option('--destinations <codes...>', 'IATA airport or city codes to filter to. Omit for global discovery. JSON: `filters.locations.destinations[]`.')
170
+ .option('--origin-type <type>', 'How to interpret --origins: `city` or `airport` (default: `city`). JSON: `filters.locations.origin_type`.')
171
+ .option('--destination-type <type>', 'How to interpret --destinations: `city` or `airport` (default: `city`). JSON: `filters.locations.destination_type`.')
172
+ // Dates
173
+ .option('--departure-dates <dates...>', 'Exact departure dates (YYYY-MM-DD), OR logic. JSON: `filters.dates.departure_dates[]`.')
174
+ .option('--departure-date-ranges <ranges...>', 'Flexible departure ranges, repeatable. Format: `YYYY-MM-DD:YYYY-MM-DD`. JSON: `filters.dates.departure_date_ranges[]`.')
175
+ .option('--return-dates <dates...>', 'Exact return dates (YYYY-MM-DD), roundtrip only. JSON: `filters.dates.return_dates[]`.')
176
+ .option('--return-date-ranges <ranges...>', 'Flexible return ranges, roundtrip only. Format: `YYYY-MM-DD:YYYY-MM-DD`. JSON: `filters.dates.return_date_ranges[]`.')
177
+ .option('--stay-days <n>', 'Exact stay length in days. JSON: `filters.dates.stay_days`.')
178
+ .option('--stay-days-range <min:max>', 'Flexible stay range, e.g. `5:10`. JSON: `filters.dates.stay_days_range`.')
179
+ // Trip + filters
180
+ .option('--trip-type <type>', '`oneway` or `roundtrip` (inferred from --return-dates if omitted). JSON: `filters.trip_type`.')
181
+ .option('--cabin-class <class>', '`economy`, `premium_economy`, `business`, or `first` (default: `economy`). JSON: `filters.cabin_class`.', 'economy')
182
+ .option('--direct-only', 'Only return nonstop flights. JSON: `filters.direct_only`.')
183
+ // Passengers (canonical names — see PHASE_1_PASSENGER_LEGACY for the BFF leaf mapping)
184
+ .option('--adults <n>', 'Adult passengers (default: 1). JSON: `passengers.adt`† (renames to `passengers.adults` after Phase 2).')
185
+ .option('--children <n>', 'Child passengers. JSON: `passengers.chd`† (renames to `passengers.children` after Phase 2).')
186
+ .option('--infants-in-lap <n>', 'Infants on lap (no seat). JSON: `passengers.inf_lap`† (renames to `passengers.infants_in_lap` after Phase 2).')
187
+ .option('--infants-in-seat <n>', 'Infants in own seat. JSON: `passengers.inf_seat`† (renames to `passengers.infants_in_seat` after Phase 2).')
188
+ .option('--youth <n>', 'Youth fare. JSON: `passengers.youth`.')
189
+ .option('--student <n>', 'Student fare. JSON: `passengers.student`.')
190
+ .option('--ages <ages...>', 'Explicit ages array (alternative to counts). JSON: `passengers.ages[]`.')
191
+ .option('--residency-country <iso2>', 'Residency country, ISO 3166-1 alpha-2. JSON: `passengers.residency_country`.')
192
+ // Price
193
+ .option('--max-total <amount>', 'Maximum total price in --currency. JSON: `price_constraints.max_total`.')
194
+ // Presentation + pagination
195
+ .option('--currency <code>', 'ISO 4217 currency code (default: USD). JSON: `currency`.')
196
+ .option('--locale <bcp47>', 'BCP 47 locale, e.g. `en-US`, `fr-FR` (default: `en-US`). JSON: `locale`.')
197
+ .option('--limit <n>', 'Maximum destinations (1-100, default 20). JSON: `limit`.', '20')
198
+ .option('--offset <n>', 'Pagination offset (default 0). JSON: `offset`.')
199
+ .option('--flights-per-destination <n>', 'Itineraries per destination (1-10, default 1). JSON: `flights_per_destination`.')
200
+ .option('--sort-by <strategy>', '`lowest` or `recommendation` (default: `lowest`). JSON: `sort`† (renames to `sort_by` after Phase 2).', 'lowest')
201
+ // Deprecated aliases — Phase 1 transition, remove in next major.
202
+ .option('--from <origins...>', 'DEPRECATED: use --origins.')
203
+ .option('--date <date>', 'DEPRECATED: use --departure-dates.')
204
+ .option('--return <date>', 'DEPRECATED: use --return-dates.')
205
+ .option('--departure-range <range>', 'DEPRECATED: use --departure-date-ranges.')
206
+ .option('--stay <range>', 'DEPRECATED: use --stay-days-range.')
207
+ .option('--cabin <class>', 'DEPRECATED: use --cabin-class.')
208
+ .option('--max-price <amount>', 'DEPRECATED: use --max-total.')
209
+ .option('--sort <strategy>', 'DEPRECATED: use --sort-by.')
14
210
  .action(withClient(async (client, globals, opts) => {
15
- const origins = Array.isArray(opts.from) ? opts.from : [opts.from];
16
- const body = {
17
- passengers: { adt: 1 },
18
- filters: {
19
- locations: {
20
- origins,
21
- },
22
- trip_type: opts.return ? 'roundtrip' : 'oneway',
23
- },
24
- flights_per_destination: 1,
25
- sort: opts.sort,
26
- limit: Number(opts.limit) || 20,
27
- };
28
- // BFF requires dates — use provided date or default to next 12 months.
29
- if (opts.date) {
30
- body['filters']['dates'] = {
31
- departure_dates: [opts.date],
32
- ...(opts.return ? { return_dates: [opts.return] } : {}),
33
- };
34
- }
35
- else {
36
- const today = new Date();
37
- const start = today.toISOString().slice(0, 10);
38
- const end = new Date(today.getFullYear() + 1, today.getMonth(), today.getDate())
39
- .toISOString().slice(0, 10);
40
- body['filters']['dates'] = {
41
- departure_date_ranges: [{ start, end }],
42
- };
43
- }
44
- if (opts.maxPrice) {
45
- body['price_constraints'] = { max_total: Number(opts.maxPrice) };
46
- }
211
+ applyDeprecatedAliases(opts);
212
+ const body = buildRequestBody(opts);
47
213
  const response = await client.raw.POST('/api/v1/flights/destination-search', {
48
214
  body,
49
215
  });
@@ -1 +1 @@
1
- {"version":3,"file":"find-destination.js","sourceRoot":"","sources":["../../src/commands/find-destination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-destination.js","sourceRoot":"","sources":["../../src/commands/find-destination.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"find-flight.js","sourceRoot":"","sources":["../../src/commands/find-flight.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,WAAW,CAAC,8IAA8I,CAAC;SAC3J,cAAc,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SACnE,cAAc,CAAC,oBAAoB,EAAE,qCAAqC,CAAC;SAC3E,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;SACpE,MAAM,CAAC,iBAAiB,EAAE,wDAAwD,EAAE,SAAS,CAAC;SAC9F,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;SACnD,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,8BAA8B,EAAE,QAAQ,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,IAAI,GAA4B;YACpC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,OAAO,EAAE;gBACP,SAAS,EAAE;oBACT,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpB,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;iBACxB;gBACD,KAAK,EAAE;oBACL,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD;gBACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;gBAC/C,WAAW,EAAE,IAAI,CAAC,KAAK;gBACvB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;aACtC;YACD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAiC,EAAE;YACxE,IAAI;SACI,CAAC,CAAC;QAEZ,MAAM,CAAE,QAA+B,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"find-flight.js","sourceRoot":"","sources":["../../src/commands/find-flight.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,WAAW,CAAC,8IAA8I,CAAC;SAC3J,cAAc,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SACnE,cAAc,CAAC,oBAAoB,EAAE,qCAAqC,CAAC;SAC3E,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;SACpE,MAAM,CAAC,iBAAiB,EAAE,wDAAwD,EAAE,SAAS,CAAC;SAC9F,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;SACnD,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,8BAA8B,EAAE,QAAQ,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,IAAI,GAA4B;YACpC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,OAAO,EAAE;gBACP,SAAS,EAAE;oBACT,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpB,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;iBACxB;gBACD,KAAK,EAAE;oBACL,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD;gBACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;gBAC/C,WAAW,EAAE,IAAI,CAAC,KAAK;gBACvB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;aACtC;YACD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC/D,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,CAAE,QAA+B,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"flight-calendar.js","sourceRoot":"","sources":["../../src/commands/flight-calendar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,uDAAuD,CAAC;SACpE,cAAc,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SACxD,cAAc,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,uDAAuD,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC;SACnD,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,KAAK,KAAK,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAE/D,MAAM,IAAI,GAA4B;YACpC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,OAAO,EAAE;gBACP,SAAS,EAAE;oBACT,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpB,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;iBACxB;gBACD,KAAK,EAAE;oBACL,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;iBAC5D;gBACD,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,IAAI,CAAC,KAAK;gBACvB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;aACtC;YACD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAiC,EAAE;YACxE,IAAI;SACI,CAAC,CAAC;QAEZ,MAAM,IAAI,GAAI,QAA+B,CAAC,IAAI,CAAC;QAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,OAAO,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"flight-calendar.js","sourceRoot":"","sources":["../../src/commands/flight-calendar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,6BAA6B,CAAC,OAAgB;IAC5D,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,uDAAuD,CAAC;SACpE,cAAc,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SACxD,cAAc,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,uDAAuD,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC;SACnD,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,KAAK,KAAK,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAE/D,MAAM,IAAI,GAA4B;YACpC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,OAAO,EAAE;gBACP,SAAS,EAAE;oBACT,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpB,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;iBACxB;gBACD,KAAK,EAAE;oBACL,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;iBAC5D;gBACD,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,IAAI,CAAC,KAAK;gBACvB,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;aACtC;YACD,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC/D,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,IAAI,GAAI,QAA+B,CAAC,IAAI,CAAC;QAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,KAAK,KAAK,GAAG,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,OAAO,OAAO,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerGetBookingCommand(program: Command): void;
3
+ //# sourceMappingURL=get-booking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-booking.d.ts","sourceRoot":"","sources":["../../src/commands/get-booking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBhE"}
@@ -0,0 +1,33 @@
1
+ import { withClient, output } from './shared.js';
2
+ // Shared commander action used by both the canonical `get-booking` command
3
+ // and its deprecated `lookup-booking` alias (JIN-663).
4
+ const action = withClient(async (client, globals, opts) => {
5
+ const response = await client.getBooking({
6
+ booking_ref: opts.ref,
7
+ last_name: opts.lastName,
8
+ });
9
+ output(response, { format: globals.format });
10
+ });
11
+ export function registerGetBookingCommand(program) {
12
+ program
13
+ .command('get-booking')
14
+ .description('Retrieve a booking by Jinko reference + last name (guest access).')
15
+ .requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
16
+ .requiredOption('--last-name <name>', 'Last name of the primary traveler')
17
+ .action(action);
18
+ // Deprecated alias (JIN-663) — hidden from `--help`, emits a one-line
19
+ // deprecation warning to stderr, then runs the same action. Remove once
20
+ // external scripts have migrated to `jinko get-booking`.
21
+ program
22
+ .command('lookup-booking', { hidden: true })
23
+ .description('[DEPRECATED] Alias for `get-booking`. Use `get-booking` instead.')
24
+ .requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
25
+ .requiredOption('--last-name <name>', 'Last name of the primary traveler')
26
+ .action(function deprecatedLookupBookingAction(...args) {
27
+ // eslint-disable-next-line no-console
28
+ console.error('[DEPRECATED] `jinko lookup-booking` is renamed to `jinko get-booking`. ' +
29
+ 'The old name will be removed in a future release.');
30
+ return action.apply(this, args);
31
+ });
32
+ }
33
+ //# sourceMappingURL=get-booking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-booking.js","sourceRoot":"","sources":["../../src/commands/get-booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;QACvC,WAAW,EAAE,IAAI,CAAC,GAAG;QACrB,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,WAAW,CAAC,mEAAmE,CAAC;SAChF,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACzE,MAAM,CAAC,MAAM,CAAC,CAAC;IAElB,sEAAsE;IACtE,wEAAwE;IACxE,yDAAyD;IACzD,OAAO;SACJ,OAAO,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC3C,WAAW,CAAC,kEAAkE,CAAC;SAC/E,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACzE,MAAM,CAAC,SAAS,6BAA6B,CAAgB,GAAG,IAAe;QAC9E,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,yEAAyE;YACvE,mDAAmD,CACtD,CAAC;QACF,OAAQ,MAA6C,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * `gojinko hotel-cancel` — hotel cancellation, idempotent.
4
+ *
5
+ * Dual-auth (JIN-281, mirrors flight_refund):
6
+ * - Guest: --ref + --last-name (must be provided together)
7
+ * - Authenticated: --provider-booking-id [+ --provider]
8
+ *
9
+ * The two modes are mutually exclusive at the BFF. Idempotent: the BFF
10
+ * persists the cancellation result and re-serves the stored response on
11
+ * subsequent calls (with `idempotent: true`). Safe to retry.
12
+ *
13
+ * Wraps BFF POST /api/v1/hotels/cancel-booking.
14
+ */
15
+ export declare function registerHotelCancelCommand(program: Command): void;
16
+ //# sourceMappingURL=hotel-cancel.d.ts.map
@@ -0,0 +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;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8CjE"}
@@ -0,0 +1,48 @@
1
+ import { withClient, output } from './shared.js';
2
+ /**
3
+ * `gojinko hotel-cancel` — hotel cancellation, idempotent.
4
+ *
5
+ * Dual-auth (JIN-281, mirrors flight_refund):
6
+ * - Guest: --ref + --last-name (must be provided together)
7
+ * - Authenticated: --provider-booking-id [+ --provider]
8
+ *
9
+ * The two modes are mutually exclusive at the BFF. Idempotent: the BFF
10
+ * persists the cancellation result and re-serves the stored response on
11
+ * subsequent calls (with `idempotent: true`). Safe to retry.
12
+ *
13
+ * Wraps BFF POST /api/v1/hotels/cancel-booking.
14
+ */
15
+ export function registerHotelCancelCommand(program) {
16
+ program
17
+ .command('hotel-cancel')
18
+ .description('Cancel a hotel booking. Idempotent — safe to retry. Use either guest auth (--ref + --last-name) OR the authenticated shortcut (--provider-booking-id).')
19
+ .option('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9). Guest path — pair with --last-name.')
20
+ .option('--last-name <name>', 'Last name of the lead guest. Guest path — pair with --ref.')
21
+ .option('--provider-booking-id <id>', 'Provider booking ID (authenticated shortcut). Mutually exclusive with --ref + --last-name.')
22
+ .option('--provider <code>', 'Provider code (e.g. "nuitee"). Optional, only meaningful with --provider-booking-id.')
23
+ .action(withClient(async (client, globals, opts) => {
24
+ const hasGuest = Boolean(opts.ref) && Boolean(opts.lastName);
25
+ const guestPartial = (Boolean(opts.ref) && !opts.lastName) || (!opts.ref && Boolean(opts.lastName));
26
+ const hasProviderId = Boolean(opts.providerBookingId);
27
+ if (guestPartial) {
28
+ console.error('Error: --ref and --last-name must be provided together.');
29
+ process.exit(3);
30
+ }
31
+ if (hasGuest && hasProviderId) {
32
+ console.error('Error: --ref + --last-name and --provider-booking-id are mutually exclusive. Pass one mode.');
33
+ process.exit(3);
34
+ }
35
+ if (!hasGuest && !hasProviderId) {
36
+ console.error('Error: provide either --ref + --last-name (guest) or --provider-booking-id (authenticated).');
37
+ process.exit(3);
38
+ }
39
+ const response = await client.hotelCancelBooking({
40
+ booking_ref: opts.ref,
41
+ last_name: opts.lastName,
42
+ provider_booking_id: opts.providerBookingId,
43
+ provider: opts.provider,
44
+ });
45
+ output(response, { format: globals.format });
46
+ }));
47
+ }
48
+ //# sourceMappingURL=hotel-cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotel-cancel.js","sourceRoot":"","sources":["../../src/commands/hotel-cancel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,wJAAwJ,CACzJ;SACA,MAAM,CAAC,aAAa,EAAE,gFAAgF,CAAC;SACvG,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;SAC1F,MAAM,CACL,4BAA4B,EAC5B,4FAA4F,CAC7F;SACA,MAAM,CAAC,mBAAmB,EAAE,sFAAsF,CAAC;SACnH,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,IAAI,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CACX,6FAA6F,CAC9F,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,6FAA6F,CAC9F,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;YAC/C,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerHotelDetailsCommand(program: Command): void;
3
+ //# sourceMappingURL=hotel-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotel-details.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAelE"}
@@ -0,0 +1,18 @@
1
+ import { withClient, output } from './shared.js';
2
+ export function registerHotelDetailsCommand(program) {
3
+ program
4
+ .command('hotel-details')
5
+ .description('Fetch rich metadata (gallery, facilities, policies, per-room details) for a single hotel.')
6
+ .requiredOption('--hotel-id <id>', 'hotel ID (from a prior hotel-search offer)')
7
+ .option('--checkin <date>', 'check-in date (YYYY-MM-DD) — accepted for future cache-key alignment, currently unused by the BFF')
8
+ .option('--checkout <date>', 'check-out date (YYYY-MM-DD) — accepted for future cache-key alignment, currently unused by the BFF')
9
+ .action(withClient(async (client, globals, opts) => {
10
+ const response = await client.hotelDetails({
11
+ hotel_id: opts.hotelId,
12
+ ...(opts.checkin ? { checkin: opts.checkin } : {}),
13
+ ...(opts.checkout ? { checkout: opts.checkout } : {}),
14
+ });
15
+ output(response, { format: globals.format });
16
+ }));
17
+ }
18
+ //# sourceMappingURL=hotel-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotel-details.js","sourceRoot":"","sources":["../../src/commands/hotel-details.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,2FAA2F,CAAC;SACxG,cAAc,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;SAC/E,MAAM,CAAC,kBAAkB,EAAE,mGAAmG,CAAC;SAC/H,MAAM,CAAC,mBAAmB,EAAE,oGAAoG,CAAC;SACjI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * `gojinko hotel-lookup-booking` — guest-access hotel booking retrieval.
4
+ * JIN-281. Wraps BFF POST /api/v1/hotels/retrieve-booking.
5
+ */
6
+ export declare function registerHotelLookupBookingCommand(program: Command): void;
7
+ //# sourceMappingURL=hotel-lookup-booking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotel-lookup-booking.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-lookup-booking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBxE"}
@@ -0,0 +1,20 @@
1
+ import { withClient, output } from './shared.js';
2
+ /**
3
+ * `gojinko hotel-lookup-booking` — guest-access hotel booking retrieval.
4
+ * JIN-281. Wraps BFF POST /api/v1/hotels/retrieve-booking.
5
+ */
6
+ export function registerHotelLookupBookingCommand(program) {
7
+ program
8
+ .command('hotel-lookup-booking')
9
+ .description('Look up a hotel booking by Jinko reference + last name (guest access). Returns status, hotel details, total, and cancellation policy.')
10
+ .requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
11
+ .requiredOption('--last-name <name>', 'Last name of the lead guest')
12
+ .action(withClient(async (client, globals, opts) => {
13
+ const response = await client.hotelRetrieveBooking({
14
+ booking_ref: opts.ref,
15
+ last_name: opts.lastName,
16
+ });
17
+ output(response, { format: globals.format });
18
+ }));
19
+ }
20
+ //# sourceMappingURL=hotel-lookup-booking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotel-lookup-booking.js","sourceRoot":"","sources":["../../src/commands/hotel-lookup-booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,iCAAiC,CAAC,OAAgB;IAChE,OAAO;SACJ,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CACV,uIAAuI,CACxI;SACA,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;SACnE,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC;YACjD,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,SAAS,EAAE,IAAI,CAAC,QAAQ;SACzB,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":"hotel-search.d.ts","sourceRoot":"","sources":["../../src/commands/hotel-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuEjE"}
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;AAOpC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyEjE"}
@@ -20,6 +20,7 @@ export function registerHotelSearchCommand(program) {
20
20
  .option('--nationality <code>', 'guest nationality (ISO 3166-1 alpha-2)')
21
21
  .option('--min-rating <n>', 'minimum guest review rating (0-10)')
22
22
  .option('--stars <n>', 'minimum star rating (1-5)')
23
+ .option('--max-stars <n>', 'maximum star rating (1-5)')
23
24
  .option('--min-reviews <n>', 'minimum number of reviews')
24
25
  .option('--max-results <n>', 'maximum hotels to return (default 50)')
25
26
  .action(withClient(async (client, globals, opts) => {
@@ -39,40 +40,42 @@ export function registerHotelSearchCommand(program) {
39
40
  };
40
41
  // Destination
41
42
  if (opts.query)
42
- body['query'] = opts.query;
43
+ body.query = opts.query;
43
44
  if (opts.city)
44
- body['city_name'] = opts.city;
45
+ body.city_name = opts.city;
45
46
  if (opts.country)
46
- body['country_code'] = opts.country;
47
+ body.country_code = opts.country;
47
48
  if (opts.lat)
48
- body['latitude'] = Number(opts.lat);
49
+ body.latitude = Number(opts.lat);
49
50
  if (opts.lng)
50
- body['longitude'] = Number(opts.lng);
51
+ body.longitude = Number(opts.lng);
51
52
  if (opts.radius)
52
- body['radius_km'] = Number(opts.radius);
53
+ body.radius_km = Number(opts.radius);
53
54
  if (opts.placeId)
54
- body['place_id'] = opts.placeId;
55
+ body.place_id = opts.placeId;
55
56
  if (opts.hotelIds)
56
- body['hotel_ids'] = opts.hotelIds;
57
+ body.hotel_ids = opts.hotelIds;
57
58
  // Occupancy shorthand
58
59
  if (opts.children)
59
- body['children'] = opts.children.map(Number);
60
+ body.children = opts.children.map(Number);
60
61
  if (opts.rooms)
61
- body['rooms'] = Number(opts.rooms);
62
+ body.rooms = Number(opts.rooms);
62
63
  // Context
63
64
  if (opts.currency)
64
- body['currency'] = opts.currency;
65
+ body.currency = opts.currency;
65
66
  if (opts.nationality)
66
- body['guest_nationality'] = opts.nationality;
67
+ body.guest_nationality = opts.nationality;
67
68
  // Filters
68
69
  if (opts.minRating)
69
- body['min_rating'] = Number(opts.minRating);
70
+ body.min_rating = Number(opts.minRating);
70
71
  if (opts.stars)
71
- body['star_rating'] = Number(opts.stars);
72
+ body.min_star_rating = Number(opts.stars);
73
+ if (opts.maxStars)
74
+ body.max_star_rating = Number(opts.maxStars);
72
75
  if (opts.minReviews)
73
- body['min_reviews'] = Number(opts.minReviews);
76
+ body.min_reviews = Number(opts.minReviews);
74
77
  if (opts.maxResults)
75
- body['max_results'] = Number(opts.maxResults);
78
+ body.max_results = Number(opts.maxResults);
76
79
  const response = await client.raw.POST('/api/v1/hotels/shop', {
77
80
  body,
78
81
  });
@@ -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":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKjD,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;SACrE,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;SACnD,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;SACvE,MAAM,CAAC,kBAAkB,EAAE,gCAAgC,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;SAC9D,MAAM,CAAC,eAAe,EAAE,yCAAyC,CAAC;SAClE,MAAM,CAAC,iBAAiB,EAAE,+CAA+C,CAAC;SAC1E,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;SAC5D,MAAM,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,SAAS,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,SAAS,CAAC;SACrE,MAAM,CAAC,cAAc,EAAE,8BAA8B,EAAE,GAAG,CAAC;SAC3D,MAAM,CAAC,sBAAsB,EAAE,qCAAqC,CAAC;SACrE,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,sCAAsC,CAAC;SACnE,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;SACxE,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;SAChE,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;SACxD,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;SACpE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,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,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC5F,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAmB;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SACjC,CAAC;QAEF,cAAc;QACd,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;QACnD,IAAI,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/C,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,sBAAsB;QACtB,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAI,IAAI,CAAC,QAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,UAAU;QACV,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;QAEhE,UAAU;QACV,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC5D,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,CAAE,QAA+B,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerPriceMonitoringCommand(program: Command): void;
3
+ //# sourceMappingURL=price-monitoring.d.ts.map
@@ -0,0 +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;AAQpC,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4DrE"}
@@ -0,0 +1,50 @@
1
+ import { withClient, output } from './shared.js';
2
+ // price_monitoring — cache-only flight price snapshot for a fixed OD +
3
+ // dates pair. JIN-256. Intended to be wired into a cron / scheduled job
4
+ // so partners can track a route over time. On cache miss the BFF returns
5
+ // status:"stale" and this command surfaces it as a non-zero-but-not-error
6
+ // path — the caller can use --format=json + jq to act on it.
7
+ export function registerPriceMonitoringCommand(program) {
8
+ program
9
+ .command('price-monitoring')
10
+ .description('Cache-only flight price snapshot for a fixed OD + dates pair. Poll-friendly; never triggers a live call.')
11
+ .option('--from <origin>', 'origin IATA code (e.g. PAR for city, CDG for airport)')
12
+ .option('--origin-type <type>', 'origin code type: city or airport (default: city)', 'city')
13
+ .option('--to <destination>', 'destination IATA code (e.g. NYC for city, JFK for airport)')
14
+ .option('--destination-type <type>', 'destination code type: city or airport (default: city)', 'city')
15
+ .option('--date <date>', 'departure date (YYYY-MM-DD)')
16
+ .option('--return <date>', 'return date for round-trip (YYYY-MM-DD)')
17
+ .option('--cabin <class>', 'cabin class: economy, premium_economy, business, first')
18
+ .option('--direct-only', 'only consider direct flights')
19
+ .option('--max-price <amount>', 'upper bound on total fare')
20
+ .option('--include-carriers <codes...>', 'whitelist IATA 2-letter carrier codes (e.g. AF KL)')
21
+ .option('--exclude-carriers <codes...>', 'blacklist IATA 2-letter carrier codes (e.g. FR U2)')
22
+ .action(withClient(async (client, globals, opts) => {
23
+ if (!opts.from || !opts.to || !opts.date) {
24
+ console.error('Error: --from, --to, and --date are required.');
25
+ process.exit(3);
26
+ }
27
+ const body = {
28
+ origin: String(opts.from).toUpperCase(),
29
+ origin_type: opts.originType ?? 'city',
30
+ destination: String(opts.to).toUpperCase(),
31
+ destination_type: opts.destinationType ?? 'city',
32
+ departure_date: opts.date,
33
+ };
34
+ if (opts.return)
35
+ body.return_date = opts.return;
36
+ if (opts.cabin)
37
+ body.cabin_class = opts.cabin;
38
+ if (opts.directOnly)
39
+ body.direct_only = true;
40
+ if (opts.maxPrice)
41
+ body.max_price = Number(opts.maxPrice);
42
+ if (opts.includeCarriers)
43
+ body.include_carriers = opts.includeCarriers;
44
+ if (opts.excludeCarriers)
45
+ body.exclude_carriers = opts.excludeCarriers;
46
+ const response = await client.raw.POST('/api/v1/flights/monitor', { body });
47
+ output(response.data, { format: globals.format });
48
+ }));
49
+ }
50
+ //# sourceMappingURL=price-monitoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-monitoring.js","sourceRoot":"","sources":["../../src/commands/price-monitoring.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,6DAA6D;AAC7D,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CACV,0GAA0G,CAC3G;SACA,MAAM,CAAC,iBAAiB,EAAE,uDAAuD,CAAC;SAClF,MAAM,CACL,sBAAsB,EACtB,mDAAmD,EACnD,MAAM,CACP;SACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;SAC1F,MAAM,CACL,2BAA2B,EAC3B,wDAAwD,EACxD,MAAM,CACP;SACA,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;SACpE,MAAM,CAAC,iBAAiB,EAAE,wDAAwD,CAAC;SACnF,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SAC3D,MAAM,CACL,+BAA+B,EAC/B,oDAAoD,CACrD;SACA,MAAM,CACL,+BAA+B,EAC/B,oDAAoD,CACrD;SACA,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAA4B;YACpC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM;YACtC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAC1C,gBAAgB,EAAE,IAAI,CAAC,eAAe,IAAI,MAAM;YAChD,cAAc,EAAE,IAAI,CAAC,IAAI;SAC1B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9C,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;QACvE,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;QAEvE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CACpC,yBAAkC,EAClC,EAAE,IAAI,EAAW,CAClB,CAAC;QAEF,MAAM,CAAE,QAA+B,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -15,5 +15,26 @@ export declare function validateAuthFields(opts: {
15
15
  lastName?: string;
16
16
  orderId?: string;
17
17
  }): void;
18
+ /**
19
+ * Build a refund request body from CLI options, picking the right auth mode.
20
+ *
21
+ * Guest auth: --booking-ref + --last-name (public; validated by BFF).
22
+ * Authenticated: --order-id (DevPlatform OAuth / jnk_* keys).
23
+ *
24
+ * Exactly one mode must be provided — the BFF rejects mixed combinations.
25
+ */
26
+ export declare function buildAuthFields(opts: {
27
+ bookingRef?: string;
28
+ lastName?: string;
29
+ orderId?: string;
30
+ provider?: string;
31
+ ticketNumbers?: string[];
32
+ }): {
33
+ ticket_numbers?: string[] | undefined;
34
+ provider?: string | undefined;
35
+ last_name?: string | undefined;
36
+ booking_ref?: string | undefined;
37
+ order_id?: string | undefined;
38
+ };
18
39
  export declare function registerRefundCommand(program: Command): void;
19
40
  //# sourceMappingURL=refund.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refund.d.ts","sourceRoot":"","sources":["../../src/commands/refund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAiBP;AA2BD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwD5D"}
1
+ {"version":3,"file":"refund.d.ts","sourceRoot":"","sources":["../../src/commands/refund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAiBP;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;;;;;;EASA;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwD5D"}
@@ -36,7 +36,7 @@ export function validateAuthFields(opts) {
36
36
  *
37
37
  * Exactly one mode must be provided — the BFF rejects mixed combinations.
38
38
  */
39
- function buildAuthFields(opts) {
39
+ export function buildAuthFields(opts) {
40
40
  validateAuthFields(opts);
41
41
  return {
42
42
  ...(opts.orderId && { order_id: opts.orderId }),
@@ -1 +1 @@
1
- {"version":3,"file":"refund.js","sourceRoot":"","sources":["../../src/commands/refund.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refund.js","sourceRoot":"","sources":["../../src/commands/refund.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,wBAAgB,aAAa,IAAI,OAAO,CAkCvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,aAAa,IAAI,OAAO,CAsCvC"}
package/dist/index.js CHANGED
@@ -6,14 +6,18 @@ import { registerFindFlightCommand } from './commands/find-flight.js';
6
6
  import { registerFindDestinationCommand } from './commands/find-destination.js';
7
7
  import { registerFlightSearchCommand } from './commands/flight-search.js';
8
8
  import { registerFlightCalendarCommand } from './commands/flight-calendar.js';
9
+ import { registerPriceMonitoringCommand } from './commands/price-monitoring.js';
9
10
  import { registerHotelSearchCommand } from './commands/hotel-search.js';
11
+ import { registerHotelDetailsCommand } from './commands/hotel-details.js';
10
12
  import { registerTripCommand } from './commands/trip.js';
11
13
  import { registerBookCommand } from './commands/checkout.js';
12
14
  import { registerTripStatusCommand } from './commands/trip-status.js';
13
15
  import { registerSelectAncillariesCommand } from './commands/select-ancillaries.js';
14
16
  import { registerRefundCommand } from './commands/refund.js';
15
17
  import { registerExchangeCommand } from './commands/exchange.js';
16
- import { registerLookupBookingCommand } from './commands/lookup-booking.js';
18
+ import { registerGetBookingCommand } from './commands/get-booking.js';
19
+ import { registerHotelLookupBookingCommand } from './commands/hotel-lookup-booking.js';
20
+ import { registerHotelCancelCommand } from './commands/hotel-cancel.js';
17
21
  import { registerAuthCommands } from './commands/auth/index.js';
18
22
  import { registerSchemaCommand } from './commands/schema.js';
19
23
  import { registerConfigCommands } from './commands/config/index.js';
@@ -33,14 +37,18 @@ export function createProgram() {
33
37
  registerFindDestinationCommand(program);
34
38
  registerFlightSearchCommand(program);
35
39
  registerFlightCalendarCommand(program);
40
+ registerPriceMonitoringCommand(program);
36
41
  registerHotelSearchCommand(program);
42
+ registerHotelDetailsCommand(program);
37
43
  // Trip building + checkout
38
44
  registerTripCommand(program);
39
45
  registerBookCommand(program);
40
46
  registerSelectAncillariesCommand(program);
41
47
  registerTripStatusCommand(program);
42
48
  // Post-booking
43
- registerLookupBookingCommand(program);
49
+ registerGetBookingCommand(program);
50
+ registerHotelLookupBookingCommand(program);
51
+ registerHotelCancelCommand(program);
44
52
  registerRefundCommand(program);
45
53
  registerExchangeCommand(program);
46
54
  // Utility commands
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,iEAAiE;AACjE,sEAAsE;AACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACpE,CAAC;AAEzB,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,8EAA8E,CAAC;SAC3F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;SACpB,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,EAAE,MAAM,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;IAEzE,YAAY;IACZ,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACxC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAEpC,2BAA2B;IAC3B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC1C,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAEnC,eAAe;IACf,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,mBAAmB;IACnB,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gojinko/cli",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "jinko": "./dist/bin/jinko.js"
@@ -17,19 +17,16 @@
17
17
  "docs:gen": "tsx scripts/gen-cli-docs.ts"
18
18
  },
19
19
  "dependencies": {
20
- "@gojinko/api-client": "1.1.1",
20
+ "@gojinko/api-client": "1.2.1",
21
21
  "commander": "^12.1.0",
22
22
  "chalk": "^5.4.1",
23
- "open": "^10.0.0",
24
- "zod": "^3.23.8",
25
- "yaml": "^2.7.0"
23
+ "open": "^10.0.0"
26
24
  },
27
25
  "publishConfig": {
28
26
  "access": "public"
29
27
  },
30
28
  "files": [
31
29
  "dist",
32
- "bin",
33
30
  "SKILL.md",
34
31
  "README.md"
35
32
  ],
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function registerLookupBookingCommand(program: Command): void;
3
- //# sourceMappingURL=lookup-booking.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lookup-booking.d.ts","sourceRoot":"","sources":["../../src/commands/lookup-booking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAenE"}
@@ -1,16 +0,0 @@
1
- import { withClient, output } from './shared.js';
2
- export function registerLookupBookingCommand(program) {
3
- program
4
- .command('lookup-booking')
5
- .description('Look up a booking by Jinko reference + last name (guest access).')
6
- .requiredOption('--ref <ref>', 'Jinko booking reference (e.g. JNK-A7B3X9)')
7
- .requiredOption('--last-name <name>', 'Last name of the primary traveler')
8
- .action(withClient(async (client, globals, opts) => {
9
- const response = await client.lookupBooking({
10
- booking_ref: opts.ref,
11
- last_name: opts.lastName,
12
- });
13
- output(response, { format: globals.format });
14
- }));
15
- }
16
- //# sourceMappingURL=lookup-booking.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lookup-booking.js","sourceRoot":"","sources":["../../src/commands/lookup-booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,kEAAkE,CAAC;SAC/E,cAAc,CAAC,aAAa,EAAE,2CAA2C,CAAC;SAC1E,cAAc,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACzE,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;YAC1C,WAAW,EAAE,IAAI,CAAC,GAAG;YACrB,SAAS,EAAE,IAAI,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}