@gojinko/cli 1.1.0 → 1.2.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 (39) hide show
  1. package/README.md +38 -17
  2. package/SKILL.md +16 -15
  3. package/dist/commands/exchange.d.ts.map +1 -1
  4. package/dist/commands/exchange.js +1 -15
  5. package/dist/commands/exchange.js.map +1 -1
  6. package/dist/commands/find-destination.d.ts +40 -0
  7. package/dist/commands/find-destination.d.ts.map +1 -1
  8. package/dist/commands/find-destination.js +207 -41
  9. package/dist/commands/find-destination.js.map +1 -1
  10. package/dist/commands/find-flight.js +1 -1
  11. package/dist/commands/find-flight.js.map +1 -1
  12. package/dist/commands/flight-calendar.js.map +1 -1
  13. package/dist/commands/hotel-cancel.d.ts +16 -0
  14. package/dist/commands/hotel-cancel.d.ts.map +1 -0
  15. package/dist/commands/hotel-cancel.js +48 -0
  16. package/dist/commands/hotel-cancel.js.map +1 -0
  17. package/dist/commands/hotel-details.d.ts +3 -0
  18. package/dist/commands/hotel-details.d.ts.map +1 -0
  19. package/dist/commands/hotel-details.js +18 -0
  20. package/dist/commands/hotel-details.js.map +1 -0
  21. package/dist/commands/hotel-lookup-booking.d.ts +7 -0
  22. package/dist/commands/hotel-lookup-booking.d.ts.map +1 -0
  23. package/dist/commands/hotel-lookup-booking.js +20 -0
  24. package/dist/commands/hotel-lookup-booking.js.map +1 -0
  25. package/dist/commands/hotel-search.d.ts.map +1 -1
  26. package/dist/commands/hotel-search.js +19 -16
  27. package/dist/commands/hotel-search.js.map +1 -1
  28. package/dist/commands/price-monitoring.d.ts +3 -0
  29. package/dist/commands/price-monitoring.d.ts.map +1 -0
  30. package/dist/commands/price-monitoring.js +50 -0
  31. package/dist/commands/price-monitoring.js.map +1 -0
  32. package/dist/commands/refund.d.ts +21 -0
  33. package/dist/commands/refund.d.ts.map +1 -1
  34. package/dist/commands/refund.js +1 -1
  35. package/dist/commands/refund.js.map +1 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +8 -0
  38. package/dist/index.js.map +1 -1
  39. package/package.json +3 -6
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
 
@@ -31,26 +31,34 @@ jinko auth logout # Clear stored credentials
31
31
 
32
32
  ## Commands
33
33
 
34
- ### Discovery (cached)
34
+ ### Exploration (cached)
35
35
 
36
36
  | Command | Description |
37
37
  |---|---|
38
- | `find-flight` | Cheapest flights A → B, returns `offer_token` |
39
38
  | `find-destination` | Discover destinations from an origin |
40
- | `flight-calendar` | Cheapest prices across a date range |
39
+ | `flight-calendar` | Cheapest prices across a date range for a known route |
41
40
 
42
- ### Live search & trip building
41
+ ### Live pricing & trip building
43
42
 
44
43
  | Command | Description |
45
44
  |---|---|
46
- | `flight-search` | Live search or price-check an offer, returns `trip_item_token` |
47
- | `trip` | Create/update a trip, add items, set travelers |
45
+ | `flight-search` | Direct search by route + dates OR price-check an `offer_token`. Returns bookable `trip_item_token`. |
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 |
50
+
51
+ ### Legacy
52
+
53
+ | Command | Description |
54
+ |---|---|
55
+ | `find-flight` | Cached route + dates search. Kept for backwards compat; prefer `flight-search` for new integrations. |
48
56
 
49
57
  ### Checkout
50
58
 
51
59
  | Command | Description |
52
60
  |---|---|
53
- | `checkout` | Schedule checkout, returns `checkout_url` + items + ancillaries + total |
61
+ | `book` | Schedule checkout, returns `checkout_url` + items + ancillaries + total |
54
62
  | `select-ancillaries` | Optional: preselect bags / seats / meals before handoff |
55
63
  | `trip-status` | Full lifecycle state: cart, quote, fulfillment, bookings |
56
64
 
@@ -58,8 +66,14 @@ jinko auth logout # Clear stored credentials
58
66
 
59
67
  | Command | Description |
60
68
  |---|---|
69
+ | `lookup-booking` | Retrieve a booking by reference (booking ref + last-name guest-auth). No subcommands. |
61
70
  | `refund check` | Check refund eligibility for a booking |
62
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 |
63
77
 
64
78
  ### Utility
65
79
 
@@ -71,20 +85,27 @@ jinko auth logout # Clear stored credentials
71
85
  ## Canonical Flow
72
86
 
73
87
  ```
74
- find-flight → flight-search → trip → checkout → user pays on checkout_url → trip-status
88
+ flight-search → trip → book → user pays on checkout_url → trip-status
75
89
  ```
76
90
 
77
- 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.
78
92
 
79
93
  ## Examples
80
94
 
81
95
  ```bash
82
- # Find cheapest flights
83
- jinko find-flight --from PAR --to NYC --date 2026-06-15
96
+ # Live flight search by route + dates (returns trip_item_token directly)
97
+ jinko flight-search --from PAR --to NYC --date 2026-06-15
84
98
 
85
- # Live price-check an offer
99
+ # Or price-check an offer_token from flight-calendar
86
100
  jinko flight-search --offer-token <offer_token>
87
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
+
88
109
  # Create trip with travelers + contact
89
110
  jinko trip \
90
111
  --trip-item-token <token> \
@@ -92,7 +113,7 @@ jinko trip \
92
113
  --contact '{"email":"jane@example.com","phone":"+33612345678"}'
93
114
 
94
115
  # Schedule checkout → returns checkout_url
95
- jinko checkout --trip-id <trip_id>
116
+ jinko book --trip-id <trip_id>
96
117
 
97
118
  # Optional: add baggage/seats/meals before handoff
98
119
  jinko select-ancillaries \
@@ -113,13 +134,13 @@ jinko refund commit --booking-ref <ref> --pnr <pnr> --reason "schedule change"
113
134
  ## Output Formats
114
135
 
115
136
  ```bash
116
- jinko find-flight --from PAR --to NYC --date 2026-06-15
117
- jinko find-flight --from PAR --to NYC --date 2026-06-15 --format table
137
+ jinko flight-search --from PAR --to NYC --date 2026-06-15
138
+ jinko flight-search --from PAR --to NYC --date 2026-06-15 --format table
118
139
  ```
119
140
 
120
141
  ## Schema Introspection
121
142
 
122
143
  ```bash
123
144
  jinko schema # List all tools
124
- jinko schema find-flight # Show a tool's request/response schema
145
+ jinko schema flight-search # Show a tool's request/response schema
125
146
  ```
package/SKILL.md CHANGED
@@ -22,11 +22,15 @@ Opens a browser for WorkOS device flow login. Token is stored in `~/.jinko/confi
22
22
 
23
23
  ## Tools
24
24
 
25
- ### Discovery (cached, cheap)
26
- - `find-flight` — cheapest flights from A to B
27
- - `find-destination` — explore destinations from an origin
28
- - `flight-calendar` — price across a date range
29
- - `flight-search` live search or price-check an offer (returns `trip_item_token`)
25
+ ### Exploration (cached, cheap)
26
+ - `find-destination` — discover destinations from one or more origins
27
+ - `flight-calendar` — cheapest prices across a date range for a known route
28
+
29
+ ### Pricing (live)
30
+ - `flight-search` — direct search by route + dates OR price-check an `offer_token`. Returns `trip_item_token`.
31
+
32
+ ### Legacy
33
+ - `find-flight` — cached route + dates search. Kept for backwards compat; prefer `flight-search` for any new integration.
30
34
 
31
35
  ### Trip building
32
36
  - `trip` — create/update a trip (add items, set travelers + contact). Returns `trip_id`.
@@ -47,27 +51,24 @@ Opens a browser for WorkOS device flow login. Token is stored in `~/.jinko/confi
47
51
  ## Canonical Flow
48
52
 
49
53
  ```
50
- 1. jinko find-flight --from PAR --to NYC --date 2026-05-01
51
- → each result has an offer_token
52
-
53
- 2. jinko flight-search --offer-token <offer_token>
54
- → returns trip_item_token with live pricing
54
+ 1. jinko flight-search --from PAR --to NYC --date 2026-05-01
55
+ → each fare has a trip_item_token (live pricing already applied)
55
56
 
56
- 3. jinko trip \
57
+ 2. jinko trip \
57
58
  --trip-item-token <trip_item_token> \
58
59
  --travelers '[{"first_name":"Jane","last_name":"Doe","date_of_birth":"1990-01-15","gender":"FEMALE","passenger_type":"ADULT"}]' \
59
60
  --contact '{"email":"jane@example.com","phone":"+33612345678"}'
60
61
  → returns trip_id
61
62
 
62
- 4. jinko checkout --trip-id <trip_id>
63
+ 3. jinko checkout --trip-id <trip_id>
63
64
  → returns { checkout_url, items, available_ancillaries, total_amount }
64
65
 
65
- 5. (optional) jinko select-ancillaries --trip-id <id> --item-id <id> --select <offer_ids>
66
+ 4. (optional) jinko select-ancillaries --trip-id <id> --item-id <id> --select <offer_ids>
66
67
  → apply bag/seat selections
67
68
 
68
- 6. Send the user to checkout_url — they complete payment on the Jinko web page.
69
+ 5. Send the user to checkout_url — they complete payment on the Jinko web page.
69
70
 
70
- 7. jinko trip-status --trip-id <trip_id>
71
+ 6. jinko trip-status --trip-id <trip_id>
71
72
  → poll until status = "fulfilled" (or "partially_fulfilled") to get PNRs.
72
73
  ```
73
74
 
@@ -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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"}
@@ -2,7 +2,7 @@ import { withClient, output } from './shared.js';
2
2
  export function registerFindFlightCommand(program) {
3
3
  program
4
4
  .command('find-flight')
5
- .description('Find cheapest flights from cached data. Returns offer_tokens for live pricing.')
5
+ .description('[legacy] Cached flight search by route + dates. Prefer `flight-search` it returns live pricing and a bookable trip_item_token in one step.')
6
6
  .requiredOption('--from <origin>', 'origin airport code (e.g. PAR)')
7
7
  .requiredOption('--to <destination>', 'destination airport code (e.g. NYC)')
8
8
  .requiredOption('--date <date>', 'departure date (YYYY-MM-DD)')
@@ -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,gFAAgF,CAAC;SAC7F,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,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":"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"}
@@ -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,7 +6,9 @@ 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';
@@ -14,6 +16,8 @@ import { registerSelectAncillariesCommand } from './commands/select-ancillaries.
14
16
  import { registerRefundCommand } from './commands/refund.js';
15
17
  import { registerExchangeCommand } from './commands/exchange.js';
16
18
  import { registerLookupBookingCommand } from './commands/lookup-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,7 +37,9 @@ 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);
@@ -41,6 +47,8 @@ export function createProgram() {
41
47
  registerTripStatusCommand(program);
42
48
  // Post-booking
43
49
  registerLookupBookingCommand(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.0",
3
+ "version": "1.2.0",
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.0",
20
+ "@gojinko/api-client": "1.2.0",
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
  ],