@gojinko/cli 2.23.0 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -5
- package/SKILL.md +19 -5
- package/dist/commands/checkout.d.ts.map +1 -1
- package/dist/commands/checkout.js +5 -0
- package/dist/commands/checkout.js.map +1 -1
- package/dist/commands/flight-search.d.ts +106 -0
- package/dist/commands/flight-search.d.ts.map +1 -1
- package/dist/commands/flight-search.js +451 -45
- package/dist/commands/flight-search.js.map +1 -1
- package/dist/commands/get-booking.d.ts +26 -0
- package/dist/commands/get-booking.d.ts.map +1 -1
- package/dist/commands/get-booking.js +55 -3
- package/dist/commands/get-booking.js.map +1 -1
- package/dist/commands/ground-search.d.ts +2 -1
- package/dist/commands/ground-search.d.ts.map +1 -1
- package/dist/commands/ground-search.js +14 -25
- package/dist/commands/ground-search.js.map +1 -1
- package/dist/commands/hotel-cancel.js +1 -1
- package/dist/commands/hotel-cancel.js.map +1 -1
- package/dist/commands/schema.d.ts.map +1 -1
- package/dist/commands/schema.js +88 -24
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +5 -2
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/trip-status.d.ts.map +1 -1
- package/dist/commands/trip-status.js +2 -0
- package/dist/commands/trip-status.js.map +1 -1
- package/dist/commands/trip.d.ts.map +1 -1
- package/dist/commands/trip.js +2 -0
- package/dist/commands/trip.js.map +1 -1
- package/dist/output/formatter.d.ts +19 -7
- package/dist/output/formatter.d.ts.map +1 -1
- package/dist/output/formatter.js +22 -8
- package/dist/output/formatter.js.map +1 -1
- package/dist/output/price-change.d.ts +41 -0
- package/dist/output/price-change.d.ts.map +1 -0
- package/dist/output/price-change.js +80 -0
- package/dist/output/price-change.js.map +1 -0
- package/dist/output/remedies.d.ts +30 -0
- package/dist/output/remedies.d.ts.map +1 -0
- package/dist/output/remedies.js +45 -0
- package/dist/output/remedies.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ Prod and sandbox keys are stored separately in `~/.jinko/config.yaml`. Resolutio
|
|
|
63
63
|
|
|
64
64
|
| Command | Description |
|
|
65
65
|
|---|---|
|
|
66
|
-
| `flight-search` | Direct search by route + dates OR price-check an `offer_token`. Returns bookable `trip_item_token`. |
|
|
66
|
+
| `flight-search` | Direct search by route + dates OR price-check an `offer_token`. Returns bookable `trip_item_token`. Carries the full shop filter set (stops, time windows, layovers, fare attributes, alternate airports) and reports which filters the results honor. |
|
|
67
67
|
| `price-monitoring` | Cache-only price snapshot for a fixed OD + dates — intended for scheduled polling. Semantically distinct from `flight-search` (one-shot live shopping). |
|
|
68
68
|
| `hotel-search` | Live hotel search by city / query / geo / hotel-ids. Returns hotels with rooms, rates, `htl_*` offer tokens. |
|
|
69
69
|
| `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. |
|
|
@@ -80,16 +80,16 @@ Prod and sandbox keys are stored separately in `~/.jinko/config.yaml`. Resolutio
|
|
|
80
80
|
| Command | Description |
|
|
81
81
|
|---|---|
|
|
82
82
|
| `checkout` | Finalize a trip → returns `checkout_url` (human pays in a browser) + `agent_spt_params` (agent pays programmatically) + items + total. (`book` is a deprecated alias.) |
|
|
83
|
-
| `agent-pay submit` | Pay programmatically with a Shared Payment Token: present `--trip-id` + `--token`; the BFF schedules the agent fulfillment and redeems the SPT. Falls back to `checkout_url` on a 3DS step-up. |
|
|
83
|
+
| `agent-pay submit` | Pay programmatically with a Shared Payment Token: present `--trip-id` + `--token`; the BFF schedules the agent fulfillment and redeems the SPT. Returns the Jinko `booking_ref` (`JNK-…`) once authorized. Falls back to `checkout_url` on a 3DS step-up. |
|
|
84
84
|
| `get-ancillaries` | List a trip's purchasable ancillaries (bags / seats / meals) without generating a checkout URL |
|
|
85
85
|
| `select-ancillaries` | Optional: preselect bags / seats / meals before handoff |
|
|
86
|
-
| `trip-status` | Full lifecycle state: cart, quote, fulfillment, bookings |
|
|
86
|
+
| `trip-status` | Full lifecycle state: cart, quote, fulfillment, bookings — plus the Jinko `booking_ref` once fulfillment has been scheduled (it can be present before payment completes — read `fulfillment.status` for paid), the value `get-booking` / `hotel-cancel` / `refund` / `exchange` take as `--booking-ref` |
|
|
87
87
|
|
|
88
88
|
### Post-booking
|
|
89
89
|
|
|
90
90
|
| Command | Description |
|
|
91
91
|
|---|---|
|
|
92
|
-
| `get-booking` | Retrieve the whole booking (flight + hotel) by reference (booking ref + last-name guest-auth). No subcommands. |
|
|
92
|
+
| `get-booking` | Retrieve the whole booking (flight + hotel) by reference (booking ref + last-name guest-auth). No subcommands. Carries `calendar` — the `.ics` files for the booking's flights and stays; the table format lists one line per file, `--format json` carries the contents. |
|
|
93
93
|
| `refund check` | Check refund eligibility for a booking |
|
|
94
94
|
| `refund commit` | Initiate a refund for a booking |
|
|
95
95
|
| `refund status` | Check the status of a previously committed refund |
|
|
@@ -121,6 +121,14 @@ Quote is automatic — `checkout` handles it internally. A human pays on the ret
|
|
|
121
121
|
# Live flight search by route + dates (returns trip_item_token directly)
|
|
122
122
|
jinko flight-search --origin PAR --destination NYC --departure-date 2026-06-15
|
|
123
123
|
|
|
124
|
+
# Filtered search — non-stop, morning departure, checked bag in the fare
|
|
125
|
+
jinko flight-search --origin JFK --destination CDG --departure-date 2026-09-01 \
|
|
126
|
+
--max-stops 0 --departure-time-range 06:00-11:00 --checked-bag-included
|
|
127
|
+
|
|
128
|
+
# Widen the search to more departure airports (the anchor still decides ranking)
|
|
129
|
+
jinko flight-search --origin JFK --destination CDG --departure-date 2026-09-01 \
|
|
130
|
+
--origin-alternate-airports EWR LGA
|
|
131
|
+
|
|
124
132
|
# Or price-check an offer_token from flight-calendar
|
|
125
133
|
jinko flight-search --offer-token <offer_token>
|
|
126
134
|
|
|
@@ -163,11 +171,44 @@ jinko refund check --booking-ref <ref> --pnr <pnr>
|
|
|
163
171
|
jinko refund commit --booking-ref <ref> --pnr <pnr> --reason "schedule change"
|
|
164
172
|
|
|
165
173
|
# Hotel cancellations (idempotent — safe to retry)
|
|
166
|
-
jinko hotel-cancel --ref <booking_ref> --last-name <name>
|
|
174
|
+
jinko hotel-cancel --booking-ref <booking_ref> --last-name <name>
|
|
167
175
|
# Or via the authenticated shortcut:
|
|
168
176
|
jinko hotel-cancel --provider-booking-id <id> --provider nuitee
|
|
169
177
|
```
|
|
170
178
|
|
|
179
|
+
## Flight search filters
|
|
180
|
+
|
|
181
|
+
`flight-search` exposes every filter the `POST /v1/flight_search` contract
|
|
182
|
+
accepts, one option per field — run `jinko flight-search --help` for the list.
|
|
183
|
+
Two things are worth knowing before you use them:
|
|
184
|
+
|
|
185
|
+
**The response says which filters were honored.** Every search comes back with
|
|
186
|
+
`applied_filters` (the ones these results DO honor) and `unapplied_filters`
|
|
187
|
+
(the ones they do not, each with a reason). A filter the platform could not
|
|
188
|
+
enforce is a reported outcome, not an error: the call still returns 200 with
|
|
189
|
+
offers. Post-filter them yourself, or tell the user the constraint could not be
|
|
190
|
+
met. `--format table` prints the report under the results; JSON output carries
|
|
191
|
+
both lists as response fields.
|
|
192
|
+
|
|
193
|
+
**Alternate airports widen an airport anchor.** `--origin-alternate-airports`
|
|
194
|
+
and `--destination-alternate-airports` add departure/arrival airports beside
|
|
195
|
+
`--origin` / `--destination` — widening only, so they can add results but never
|
|
196
|
+
remove any. The anchor decides ranking and truncation, which makes the two
|
|
197
|
+
airports NOT interchangeable: put the airport that matters most in `--origin`.
|
|
198
|
+
Against a city anchor (`--origin-type city`, or a code the platform resolves to
|
|
199
|
+
a city) the list is ignored — a city already searches its whole metro area —
|
|
200
|
+
and comes back in `unapplied_filters` under the name `origin` or `destination`,
|
|
201
|
+
never under the option name it was sent with.
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
jinko flight-search --origin PAR --destination NYC --departure-date 2026-06-15 \
|
|
205
|
+
--origin-alternate-airports ORY --format table
|
|
206
|
+
# ...offers...
|
|
207
|
+
#
|
|
208
|
+
# Unapplied filters:
|
|
209
|
+
# origin — <the reason the platform gives for not enforcing it>
|
|
210
|
+
```
|
|
211
|
+
|
|
171
212
|
## Output Formats
|
|
172
213
|
|
|
173
214
|
```bash
|
package/SKILL.md
CHANGED
|
@@ -28,17 +28,20 @@ export JINKO_API_KEY=jnk_...
|
|
|
28
28
|
|
|
29
29
|
### Pricing (live)
|
|
30
30
|
- `flight-search` — direct search by route + dates OR price-check an `offer_token`. Returns `trip_item_token`.
|
|
31
|
+
Carries the full shop filter set (`--max-stops`, `--departure-time-range`, `--refundable-only`,
|
|
32
|
+
`--checked-bag-included`, `--via-airports`, `--origin-alternate-airports`, …) — run
|
|
33
|
+
`jinko flight-search --help` for the list.
|
|
31
34
|
|
|
32
35
|
### Trip building
|
|
33
36
|
- `trip` — create/update a trip (add items, set travelers + contact). Returns `trip_id`.
|
|
34
37
|
|
|
35
38
|
### Checkout
|
|
36
39
|
- `checkout` — finalize a trip; returns BOTH `checkout_url` (a human opens it to pay) AND `agent_spt_params` (an agent uses them to pay programmatically), plus items + ancillaries + total. (`book` is a deprecated alias.)
|
|
37
|
-
- `agent-pay submit --trip-id <id> --token <spt>` — pay programmatically: mint a Shared Payment Token scoped to `checkout`'s `agent_spt_params`, then submit it; the BFF schedules the agent fulfillment and redeems the token. A 3DS step-up / decline falls back to a `checkout_url`.
|
|
40
|
+
- `agent-pay submit --trip-id <id> --token <spt>` — pay programmatically: mint a Shared Payment Token scoped to `checkout`'s `agent_spt_params`, then submit it; the BFF schedules the agent fulfillment and redeems the token. Returns the Jinko `booking_ref` (`JNK-…`) once authorized. A 3DS step-up / decline falls back to a `checkout_url`.
|
|
38
41
|
- `select-ancillaries` — (optional) preselect bags/seats/meals before checkout.
|
|
39
42
|
|
|
40
43
|
### Status
|
|
41
|
-
- `trip-status` — full lifecycle state: cart, quote, fulfillment, bookings (PNRs).
|
|
44
|
+
- `trip-status` — full lifecycle state: cart, quote, fulfillment, bookings (PNRs). Once fulfillment has been scheduled it also carries the Jinko `booking_ref` — the value `get-booking` / `hotel-cancel` / `refund` / `exchange` take as `--booking-ref`. It can be present before payment completes (a hosted checkout still in progress, or an `agent-pay submit` that fell back to `checkout_url`), so presence does not mean paid — read `fulfillment.status`. `bookings[].booking_reference` is the supplier's confirmation, not that handle.
|
|
42
45
|
|
|
43
46
|
### Post-booking
|
|
44
47
|
- `refund check` / `refund commit`
|
|
@@ -49,7 +52,7 @@ export JINKO_API_KEY=jnk_...
|
|
|
49
52
|
## Canonical Flow
|
|
50
53
|
|
|
51
54
|
```
|
|
52
|
-
1. jinko flight-search --
|
|
55
|
+
1. jinko flight-search --origin PAR --destination NYC --departure-date 2026-05-01
|
|
53
56
|
→ each fare has a trip_item_token (live pricing already applied)
|
|
54
57
|
|
|
55
58
|
2. jinko trip \
|
|
@@ -67,10 +70,11 @@ export JINKO_API_KEY=jnk_...
|
|
|
67
70
|
5a. Human path: send the user to checkout_url — they complete payment on the Jinko web page.
|
|
68
71
|
5b. Agent path: mint a Shared Payment Token scoped to agent_spt_params, then
|
|
69
72
|
jinko agent-pay submit --trip-id <trip_id> --token <spt>
|
|
70
|
-
→ { status: "processing", payment_verified: true } (or a checkout_url fallback on 3DS)
|
|
73
|
+
→ { status: "processing", payment_verified: true, booking_ref: "JNK-…" } (or a checkout_url fallback on 3DS)
|
|
71
74
|
|
|
72
75
|
6. jinko trip-status --trip-id <trip_id>
|
|
73
76
|
→ poll until status = "fulfilled" (or "partially_fulfilled") to get PNRs.
|
|
77
|
+
→ booking_ref is the Jinko reference for get-booking / hotel-cancel / refund / exchange (--booking-ref).
|
|
74
78
|
```
|
|
75
79
|
|
|
76
80
|
## Important Notes
|
|
@@ -82,4 +86,14 @@ export JINKO_API_KEY=jnk_...
|
|
|
82
86
|
- Dates: YYYY-MM-DD.
|
|
83
87
|
- Gender: MALE | FEMALE (uppercase).
|
|
84
88
|
- Passenger types: ADULT | CHILD | INFANT.
|
|
85
|
-
- Cabin classes: economy | premium_economy | business | first.
|
|
89
|
+
- Cabin classes: economy | premium_economy | business | first. Cabin is ADVISORY —
|
|
90
|
+
providers may still return other cabins, so read each fare's own `cabin_class`.
|
|
91
|
+
- `flight-search` reports what it enforced: `applied_filters` lists the requested
|
|
92
|
+
filters the results honor, `unapplied_filters` the ones they do not, each with a
|
|
93
|
+
reason. An unapplied filter is not an error — the call still returns 200. Either
|
|
94
|
+
post-filter the offers yourself or tell the user the constraint could not be met.
|
|
95
|
+
- `--origin-alternate-airports` / `--destination-alternate-airports` WIDEN an airport
|
|
96
|
+
anchor: they add airports beside `--origin` / `--destination`, never remove results.
|
|
97
|
+
The anchor decides ranking, so put the airport that matters most in `--origin`.
|
|
98
|
+
Against a city anchor the list is ignored and reported back under `origin` /
|
|
99
|
+
`destination` in `unapplied_filters`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6B9D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { withClient, output, userIntentOption } from './shared.js';
|
|
2
|
+
import { printPriceChangeNotices } from '../output/price-change.js';
|
|
2
3
|
export function registerCheckoutCommand(program) {
|
|
3
4
|
program
|
|
4
5
|
.command('checkout')
|
|
@@ -9,6 +10,9 @@ export function registerCheckoutCommand(program) {
|
|
|
9
10
|
.action(withClient(async (client, globals, opts) => {
|
|
10
11
|
const response = await client.checkout(opts.tripId);
|
|
11
12
|
output(response, { format: globals.format });
|
|
13
|
+
// Last thing the user reads before they open checkout_url: the price
|
|
14
|
+
// they are about to pay is not the one they were shown in search.
|
|
15
|
+
printPriceChangeNotices(response);
|
|
12
16
|
}));
|
|
13
17
|
// DEPRECATED alias — `book` was renamed to `checkout` (JIN-1131). Kept so
|
|
14
18
|
// existing scripts keep working; mcp-apps still exposes `book`.
|
|
@@ -20,6 +24,7 @@ export function registerCheckoutCommand(program) {
|
|
|
20
24
|
.action(withClient(async (client, globals, opts) => {
|
|
21
25
|
const response = await client.book(opts.tripId);
|
|
22
26
|
output(response, { format: globals.format });
|
|
27
|
+
printPriceChangeNotices(response);
|
|
23
28
|
}));
|
|
24
29
|
}
|
|
25
30
|
//# sourceMappingURL=checkout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,2FAA2F,CAAC;SACpG,WAAW,CACV,ubAAub,CACxb;SACA,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAC1E,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,qEAAqE;QACrE,kEAAkE;QAClE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC,CAAC;IAEN,0EAA0E;IAC1E,gEAAgE;IAChE,OAAO;SACJ,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SACjC,OAAO,CAAC,yEAAyE,CAAC;SAClF,cAAc,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;SAC1E,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -1,3 +1,109 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import type { FlightSearchRequest, FlightSearchResponse, TimeRange } from '@gojinko/api-client';
|
|
3
|
+
/**
|
|
4
|
+
* Canonical (post-deprecated-alias-resolution) inputs for the request body.
|
|
5
|
+
* Values arrive as commander strings; numbers and time windows are coerced
|
|
6
|
+
* here. Every field maps to one leaf of the jinko-api flight_search contract.
|
|
7
|
+
*/
|
|
8
|
+
export interface FlightSearchBodyOpts {
|
|
9
|
+
origin: string;
|
|
10
|
+
destination: string;
|
|
11
|
+
departureDate: string;
|
|
12
|
+
returnDate?: string;
|
|
13
|
+
originType?: string;
|
|
14
|
+
destinationType?: string;
|
|
15
|
+
tripType?: string;
|
|
16
|
+
adults?: string;
|
|
17
|
+
children?: string;
|
|
18
|
+
infants?: string;
|
|
19
|
+
cabinClass?: string;
|
|
20
|
+
directOnly?: boolean;
|
|
21
|
+
maxStops?: string;
|
|
22
|
+
multiFare?: boolean;
|
|
23
|
+
maxPrice?: string;
|
|
24
|
+
includeCarriers?: string[];
|
|
25
|
+
excludeCarriers?: string[];
|
|
26
|
+
departureTimeRange?: string;
|
|
27
|
+
arrivalTimeRange?: string;
|
|
28
|
+
returnDepartureTimeRange?: string;
|
|
29
|
+
returnArrivalTimeRange?: string;
|
|
30
|
+
connectionTimeMinMinutes?: string;
|
|
31
|
+
connectionTimeMaxMinutes?: string;
|
|
32
|
+
maxTotalDurationMinutes?: string;
|
|
33
|
+
singleCarrierOnly?: boolean;
|
|
34
|
+
viaAirports?: string[];
|
|
35
|
+
excludeViaAirports?: string[];
|
|
36
|
+
aircraftTypes?: string[];
|
|
37
|
+
sameConnectionAirportOnly?: boolean;
|
|
38
|
+
sameOriginAirportOnly?: boolean;
|
|
39
|
+
sameTurnaroundAirportOnly?: boolean;
|
|
40
|
+
originAlternateAirports?: string[];
|
|
41
|
+
destinationAlternateAirports?: string[];
|
|
42
|
+
nearbyAirports?: boolean;
|
|
43
|
+
refundableOnly?: boolean;
|
|
44
|
+
changeableOnly?: boolean;
|
|
45
|
+
checkedBagIncluded?: boolean;
|
|
46
|
+
limit?: string;
|
|
47
|
+
currency?: string;
|
|
48
|
+
locale?: string;
|
|
49
|
+
}
|
|
50
|
+
/** Price-check inputs: the contract's non-search-only fields plus the token. */
|
|
51
|
+
export interface OfferCheckBodyOpts {
|
|
52
|
+
offerToken: string;
|
|
53
|
+
adults?: string;
|
|
54
|
+
children?: string;
|
|
55
|
+
infants?: string;
|
|
56
|
+
currency?: string;
|
|
57
|
+
locale?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse a `HH:MM-HH:MM` window into the contract's TimeRange object. Either
|
|
61
|
+
* bound may be omitted — `08:00-` is "at or after 08:00", `-12:00` is "at or
|
|
62
|
+
* before 12:00" — which is exactly what TimeRange means when one key is absent.
|
|
63
|
+
* Exported for tests.
|
|
64
|
+
*/
|
|
65
|
+
export declare function parseTimeRange(value: string | undefined, flag: string): TimeRange | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Map canonical CLI options onto the jinko-api flight_search search-mode body.
|
|
68
|
+
* Pure — exported for tests. Only fields the caller actually set are attached:
|
|
69
|
+
* the platform reads an absent field as "not asked for", and an empty list or
|
|
70
|
+
* a `false` flag would mean the same thing while cluttering the request.
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildFlightSearchBody(o: FlightSearchBodyOpts): FlightSearchRequest;
|
|
73
|
+
/**
|
|
74
|
+
* Map canonical CLI options onto the price-check body. Every search-mode field
|
|
75
|
+
* is a contradiction beside `offer_token` (the platform rejects the pair), so
|
|
76
|
+
* only the fields that describe the re-price itself travel.
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildOfferCheckBody(o: OfferCheckBodyOpts): FlightSearchRequest;
|
|
79
|
+
/**
|
|
80
|
+
* Search-mode flags the caller set, in flag spelling. Reads "set" the way the
|
|
81
|
+
* platform does: `false` and an empty list are not a request. `multi_fare` is
|
|
82
|
+
* the exception — the platform asks whether the field was sent at all, so an
|
|
83
|
+
* explicit `--no-multi-fare` counts. Exported for tests.
|
|
84
|
+
*/
|
|
85
|
+
export declare function searchOnlyFlagsPresent(o: Partial<FlightSearchBodyOpts>): string[];
|
|
86
|
+
/**
|
|
87
|
+
* The filter report every flight_search response carries, with both lists
|
|
88
|
+
* optional so an older response (or a fixture) without them renders as "no
|
|
89
|
+
* report" instead of throwing.
|
|
90
|
+
*/
|
|
91
|
+
export type FilterReport = Partial<Pick<FlightSearchResponse, 'applied_filters' | 'unapplied_filters'>>;
|
|
92
|
+
/**
|
|
93
|
+
* Human lines for the applied/unapplied filter report. Empty when the request
|
|
94
|
+
* carried no filters (both lists empty), so an unfiltered search prints
|
|
95
|
+
* nothing extra. An unapplied entry is not an error — the results simply do
|
|
96
|
+
* not honor that filter, and the reason says why. The alternate-airport lists
|
|
97
|
+
* are reported per side as `origin` / `destination`, never under the field
|
|
98
|
+
* name they were sent with. Pure — exported for tests.
|
|
99
|
+
*/
|
|
100
|
+
export declare function filterReportLines(report: FilterReport): string[];
|
|
101
|
+
/**
|
|
102
|
+
* Print the response, then the filter report under the results table. JSON
|
|
103
|
+
* output gets the report for free — `applied_filters` / `unapplied_filters` are
|
|
104
|
+
* response fields and travel through `output` untouched — so only the human
|
|
105
|
+
* format needs the extra block. Exported for tests.
|
|
106
|
+
*/
|
|
107
|
+
export declare function renderFlightSearchResponse(response: FlightSearchResponse, format: 'json' | 'table'): void;
|
|
2
108
|
export declare function registerFlightSearchCommand(program: Command): void;
|
|
3
109
|
//# sourceMappingURL=flight-search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flight-search.d.ts","sourceRoot":"","sources":["../../src/commands/flight-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"flight-search.d.ts","sourceRoot":"","sources":["../../src/commands/flight-search.ts"],"names":[],"mappings":"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"}
|