@gojinko/cli 2.22.0 → 2.23.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 +21 -6
- package/SKILL.md +9 -9
- package/dist/commands/agent-pay.d.ts.map +1 -1
- package/dist/commands/agent-pay.js +2 -1
- package/dist/commands/agent-pay.js.map +1 -1
- package/dist/commands/auth/index.d.ts.map +1 -1
- package/dist/commands/auth/index.js +51 -83
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/auth/prompt.d.ts +0 -9
- package/dist/commands/auth/prompt.d.ts.map +1 -1
- package/dist/commands/auth/prompt.js +0 -18
- package/dist/commands/auth/prompt.js.map +1 -1
- package/dist/commands/checkout.d.ts.map +1 -1
- package/dist/commands/checkout.js +3 -1
- package/dist/commands/checkout.js.map +1 -1
- package/dist/commands/exchange.d.ts.map +1 -1
- package/dist/commands/exchange.js +16 -18
- package/dist/commands/exchange.js.map +1 -1
- package/dist/commands/find-dates.d.ts.map +1 -1
- package/dist/commands/find-dates.js +2 -1
- package/dist/commands/find-dates.js.map +1 -1
- package/dist/commands/find-destination.d.ts.map +1 -1
- package/dist/commands/find-destination.js +2 -1
- package/dist/commands/find-destination.js.map +1 -1
- package/dist/commands/flight-calendar.d.ts.map +1 -1
- package/dist/commands/flight-calendar.js +2 -1
- package/dist/commands/flight-calendar.js.map +1 -1
- package/dist/commands/flight-search.d.ts.map +1 -1
- package/dist/commands/flight-search.js +2 -1
- package/dist/commands/flight-search.js.map +1 -1
- package/dist/commands/get-booking.d.ts.map +1 -1
- package/dist/commands/get-booking.js +2 -1
- package/dist/commands/get-booking.js.map +1 -1
- package/dist/commands/ground-search.d.ts +62 -0
- package/dist/commands/ground-search.d.ts.map +1 -0
- package/dist/commands/ground-search.js +236 -0
- package/dist/commands/ground-search.js.map +1 -0
- package/dist/commands/hotel-cancel.d.ts.map +1 -1
- package/dist/commands/hotel-cancel.js +2 -1
- package/dist/commands/hotel-cancel.js.map +1 -1
- package/dist/commands/hotel-search.d.ts +30 -0
- package/dist/commands/hotel-search.d.ts.map +1 -1
- package/dist/commands/hotel-search.js +83 -47
- package/dist/commands/hotel-search.js.map +1 -1
- package/dist/commands/lowest-fare.d.ts.map +1 -1
- package/dist/commands/lowest-fare.js +2 -1
- package/dist/commands/lowest-fare.js.map +1 -1
- package/dist/commands/price-monitoring.d.ts.map +1 -1
- package/dist/commands/price-monitoring.js +2 -1
- package/dist/commands/price-monitoring.js.map +1 -1
- package/dist/commands/refund.d.ts +7 -27
- package/dist/commands/refund.d.ts.map +1 -1
- package/dist/commands/refund.js +17 -52
- package/dist/commands/refund.js.map +1 -1
- package/dist/commands/schema.d.ts.map +1 -1
- package/dist/commands/schema.js +9 -3
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/select-ancillaries.d.ts.map +1 -1
- package/dist/commands/select-ancillaries.js +2 -1
- package/dist/commands/select-ancillaries.js.map +1 -1
- package/dist/commands/shared.d.ts +14 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +19 -0
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/travel-demand/demand-shared.d.ts +10 -0
- package/dist/commands/travel-demand/demand-shared.d.ts.map +1 -1
- package/dist/commands/travel-demand/demand-shared.js +17 -1
- package/dist/commands/travel-demand/demand-shared.js.map +1 -1
- package/dist/commands/travel-demand/index.d.ts.map +1 -1
- package/dist/commands/travel-demand/index.js +18 -12
- package/dist/commands/travel-demand/index.js.map +1 -1
- package/dist/commands/travel-demand/trend-shared.d.ts.map +1 -1
- package/dist/commands/travel-demand/trend-shared.js +2 -2
- package/dist/commands/travel-demand/trend-shared.js.map +1 -1
- package/dist/commands/trip.d.ts.map +1 -1
- package/dist/commands/trip.js +2 -1
- package/dist/commands/trip.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
package/README.md
CHANGED
|
@@ -10,21 +10,28 @@ npm install -g @gojinko/cli
|
|
|
10
10
|
|
|
11
11
|
## Authentication
|
|
12
12
|
|
|
13
|
+
Jinko authenticates with a **tenant API key** (`jnk_...`). Get one from
|
|
14
|
+
**dashboard.gojinko.com → Developers → API keys**.
|
|
15
|
+
|
|
13
16
|
```bash
|
|
14
|
-
# API key (recommended
|
|
15
|
-
|
|
17
|
+
# Store an API key (recommended)
|
|
18
|
+
jinko auth login --key jnk_YOUR_KEY
|
|
16
19
|
|
|
17
|
-
#
|
|
20
|
+
# Or interactively — prompts for the key
|
|
18
21
|
jinko auth login
|
|
22
|
+
|
|
23
|
+
# Or pass it via the environment (agents, CI/CD)
|
|
24
|
+
export JINKO_API_KEY=jnk_YOUR_KEY
|
|
19
25
|
```
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
> **OAuth sign-in is deprecated** and no longer supported for the data plane.
|
|
28
|
+
> Use an API key.
|
|
22
29
|
|
|
23
30
|
### Auth commands
|
|
24
31
|
|
|
25
32
|
```bash
|
|
26
|
-
jinko auth login
|
|
27
|
-
jinko auth login
|
|
33
|
+
jinko auth login --key jnk_… # Store an API key (recommended)
|
|
34
|
+
jinko auth login # Interactive — prompts for an API key
|
|
28
35
|
jinko auth status # Show current method, expiry
|
|
29
36
|
jinko auth logout # Clear stored credentials
|
|
30
37
|
```
|
|
@@ -60,6 +67,7 @@ Prod and sandbox keys are stored separately in `~/.jinko/config.yaml`. Resolutio
|
|
|
60
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). |
|
|
61
68
|
| `hotel-search` | Live hotel search by city / query / geo / hotel-ids. Returns hotels with rooms, rates, `htl_*` offer tokens. |
|
|
62
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. |
|
|
70
|
+
| `ground-search` | Live rail / coach / ferry search. Each result's `id` is itself the `trip_item_token` — no prefix. |
|
|
63
71
|
| `trip` | Create/update a trip, add flight or hotel items, set travelers |
|
|
64
72
|
|
|
65
73
|
### Legacy
|
|
@@ -119,6 +127,13 @@ jinko flight-search --offer-token <offer_token>
|
|
|
119
127
|
# Live hotel search (returns htl_* tokens that plug into trip the same way as flight tokens)
|
|
120
128
|
jinko hotel-search --city-name "Paris" --country-code FR --checkin 2026-07-15 --checkout 2026-07-18 --adults 2
|
|
121
129
|
|
|
130
|
+
# Live ground search — rail, coach, ferry. Codes are ISO-country + city (GBLON), NOT IATA (LON).
|
|
131
|
+
jinko ground-search --departure-city GBLON --arrival-city FRPAR --date 2026-08-28 --adults 2 --currency GBP
|
|
132
|
+
# --currency is currently REQUIRED despite the schema marking it optional:
|
|
133
|
+
# without it the provider rejects the search and you get an unhelpful "Please retry."
|
|
134
|
+
# Each connection's id IS the trip item token — pass it through unmodified:
|
|
135
|
+
jinko trip --trip-item-token <connection_id>
|
|
136
|
+
|
|
122
137
|
# Multi-domain cart: add flight + hotel to the same trip → one Stripe checkout
|
|
123
138
|
jinko trip --trip-item-token <flight_token> # returns trip_id
|
|
124
139
|
jinko trip --trip-id <trip_id> --trip-item-token <htl_*>
|
package/SKILL.md
CHANGED
|
@@ -4,21 +4,21 @@ You are using `jinko`, a CLI for the Jinko developer platform. A trip can be pai
|
|
|
4
4
|
|
|
5
5
|
## Authentication
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Jinko authenticates with a **tenant API key** (`jnk_...`). Get one from
|
|
8
|
+
**dashboard.gojinko.com → Developers → API keys**.
|
|
8
9
|
|
|
9
10
|
```
|
|
11
|
+
# Store the key (recommended)
|
|
12
|
+
jinko auth login --key jnk_...
|
|
13
|
+
|
|
14
|
+
# Or via the environment (agents, CI/CD)
|
|
10
15
|
export JINKO_API_KEY=jnk_...
|
|
11
16
|
```
|
|
12
17
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
### Option 2: OAuth (interactive humans)
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
jinko auth login
|
|
19
|
-
```
|
|
18
|
+
`jinko auth login` (no flag) prompts for the key interactively and stores it in
|
|
19
|
+
`~/.jinko/config.yaml`.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
> OAuth sign-in is deprecated and no longer supported — use an API key.
|
|
22
22
|
|
|
23
23
|
## Tools
|
|
24
24
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-pay.d.ts","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"agent-pay.d.ts","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBnE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { withClient, output } from './shared.js';
|
|
1
|
+
import { withClient, output, userIntentOption } from './shared.js';
|
|
2
2
|
export function registerAgentPaymentCommands(program) {
|
|
3
3
|
const agent = program
|
|
4
4
|
.command('agent-pay')
|
|
@@ -10,6 +10,7 @@ export function registerAgentPaymentCommands(program) {
|
|
|
10
10
|
.description('Present a trip ID and a Shared Payment Token: the BFF schedules the agent fulfillment and redeems the token to authorize the booking server-side, advancing it to fulfillment. If the issuer requires customer action (3DS) the response carries a checkout_url fallback instead of confirming.')
|
|
11
11
|
.requiredOption('--trip-id <id>', 'trip ID (from the trip command) [required]')
|
|
12
12
|
.requiredOption('--token <spt>', 'Shared Payment Token (spt_...) [required]')
|
|
13
|
+
.addOption(userIntentOption())
|
|
13
14
|
.action(withClient(async (client, globals, opts) => {
|
|
14
15
|
const response = await client.submitAgentPayment(opts.tripId, opts.token);
|
|
15
16
|
output(response, { format: globals.format });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-pay.js","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-pay.js","sourceRoot":"","sources":["../../src/commands/agent-pay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,gFAAgF,CAAC;SACzF,WAAW,CACV,0ZAA0Z,CAC3Z,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,OAAO,CAAC,mEAAmE,CAAC;SAC5E,WAAW,CACV,iSAAiS,CAClS;SACA,cAAc,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SAC9E,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC;SAC5E,SAAS,CAAC,gBAAgB,EAAE,CAAC;SAC7B,MAAM,CACL,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,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":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA0C5C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G3D"}
|
|
@@ -1,100 +1,66 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import { resolveAuth, resolveEnvironment, writeEnvAuth, clearAuthConfig, clearCliSession, readConfigFile, CONFIG_FILE, } from '@gojinko/api-client';
|
|
2
3
|
import { output, outputError } from '../shared.js';
|
|
3
4
|
import { getGlobalOptions } from '../../config/config.js';
|
|
4
|
-
import {
|
|
5
|
+
import { promptText } from './prompt.js';
|
|
6
|
+
// The single documented way to authenticate the Jinko data plane. OAuth
|
|
7
|
+
// sign-in was retired, so every "how do I authenticate?" message points here.
|
|
8
|
+
const API_KEY_SOURCE = 'dashboard.gojinko.com → Developers → API keys';
|
|
9
|
+
/**
|
|
10
|
+
* Validate a `jnk_` API key and persist it to the environment's credential
|
|
11
|
+
* slot. Exits with code 3 on a missing/malformed key. `writeEnvAuth` deep-merges
|
|
12
|
+
* a fresh config object, so the on-disk config is replaced, never mutated.
|
|
13
|
+
*/
|
|
14
|
+
async function saveApiKey(env, token, globals) {
|
|
15
|
+
if (!token) {
|
|
16
|
+
outputError({ code: 'INVALID_TOKEN', message: `No API key provided. Get one from ${API_KEY_SOURCE}.` }, globals);
|
|
17
|
+
process.exit(3);
|
|
18
|
+
}
|
|
19
|
+
if (!token.startsWith('jnk_')) {
|
|
20
|
+
outputError({ code: 'INVALID_TOKEN', message: `API key must start with "jnk_". Get one from ${API_KEY_SOURCE}.` }, globals);
|
|
21
|
+
process.exit(3);
|
|
22
|
+
}
|
|
23
|
+
await writeEnvAuth(env, { api_key: token });
|
|
24
|
+
output({
|
|
25
|
+
status: 'ok',
|
|
26
|
+
method: 'api_key',
|
|
27
|
+
environment: env,
|
|
28
|
+
message: `API key saved to ${CONFIG_FILE} (environment: ${env})`,
|
|
29
|
+
}, { format: globals.format });
|
|
30
|
+
}
|
|
5
31
|
export function registerAuthCommands(program) {
|
|
6
32
|
const auth = program
|
|
7
33
|
.command('auth')
|
|
8
34
|
.description('Manage authentication.');
|
|
9
35
|
auth
|
|
10
36
|
.command('login')
|
|
11
|
-
.description(
|
|
12
|
-
.option('--key <token>', 'API key (jnk_...) — skip interactive prompt')
|
|
37
|
+
.description(`Authenticate with a Jinko API key (jnk_...). Get one from ${API_KEY_SOURCE}.`)
|
|
38
|
+
.option('--key <token>', 'API key (jnk_...) — skip the interactive prompt')
|
|
39
|
+
// Hidden escape hatch. OAuth sign-in is deprecated and no longer works for
|
|
40
|
+
// the data plane; this flag exists only so anyone reaching for the old flow
|
|
41
|
+
// gets a clear signpost to API keys instead of a cryptic "unknown option".
|
|
42
|
+
.addOption(new Option('--oauth', 'Deprecated — OAuth sign-in is no longer supported').hideHelp())
|
|
13
43
|
.action(async (opts, cmd) => {
|
|
14
44
|
const globals = getGlobalOptions(cmd);
|
|
15
45
|
// Credentials are stored per-environment so prod and sandbox keys coexist.
|
|
16
46
|
const env = await resolveEnvironment(globals.environment);
|
|
17
|
-
//
|
|
18
|
-
if (opts['
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
await writeEnvAuth(env, { api_key: token });
|
|
25
|
-
output({
|
|
26
|
-
status: 'ok',
|
|
27
|
-
method: 'api_key',
|
|
28
|
-
environment: env,
|
|
29
|
-
message: `API key saved to ${CONFIG_FILE} (environment: ${env})`,
|
|
30
|
-
}, { format: globals.format });
|
|
31
|
-
return;
|
|
47
|
+
// Deprecated OAuth path — do not run the device flow; point at API keys.
|
|
48
|
+
if (opts['oauth']) {
|
|
49
|
+
outputError({
|
|
50
|
+
code: 'OAUTH_DEPRECATED',
|
|
51
|
+
message: `OAuth sign-in is deprecated and no longer supported. Get an API key from ${API_KEY_SOURCE}, then run \`jinko auth login --key jnk_...\`.`,
|
|
52
|
+
}, globals);
|
|
53
|
+
process.exit(3);
|
|
32
54
|
}
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{ label: 'API key — paste a jnk_... token', value: 'api_key' },
|
|
37
|
-
]);
|
|
38
|
-
if (method === 'api_key') {
|
|
39
|
-
const token = await promptText('Enter your Jinko API key (jnk_...): ');
|
|
40
|
-
if (!token) {
|
|
41
|
-
outputError({ code: 'INVALID_TOKEN', message: 'No API key provided.' }, globals);
|
|
42
|
-
process.exit(3);
|
|
43
|
-
}
|
|
44
|
-
if (!token.startsWith('jnk_')) {
|
|
45
|
-
outputError({ code: 'INVALID_TOKEN', message: 'API key must start with "jnk_". Get one from the Jinko developer platform.' }, globals);
|
|
46
|
-
process.exit(3);
|
|
47
|
-
}
|
|
48
|
-
await writeEnvAuth(env, { api_key: token });
|
|
49
|
-
output({
|
|
50
|
-
status: 'ok',
|
|
51
|
-
method: 'api_key',
|
|
52
|
-
environment: env,
|
|
53
|
-
message: `API key saved to ${CONFIG_FILE} (environment: ${env})`,
|
|
54
|
-
}, { format: globals.format });
|
|
55
|
+
// Fast path: --key flag → save without prompting.
|
|
56
|
+
if (opts['key']) {
|
|
57
|
+
await saveApiKey(env, opts['key'], globals);
|
|
55
58
|
return;
|
|
56
59
|
}
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
console.log(`Visit this URL to authenticate:\n`);
|
|
62
|
-
console.log(` ${device.verification_uri_complete}\n`);
|
|
63
|
-
console.log(`Or go to ${device.verification_uri} and enter code: ${device.user_code}\n`);
|
|
64
|
-
// Try to open browser automatically
|
|
65
|
-
try {
|
|
66
|
-
const open = await import('open');
|
|
67
|
-
await open.default(device.verification_uri_complete);
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
// Browser open failed — URL is already printed above
|
|
71
|
-
}
|
|
72
|
-
console.log('Waiting for approval...');
|
|
73
|
-
const tokens = await pollForToken(device.device_code, {
|
|
74
|
-
intervalSeconds: device.interval,
|
|
75
|
-
expiresIn: device.expires_in,
|
|
76
|
-
});
|
|
77
|
-
await writeEnvAuth(env, {
|
|
78
|
-
oauth: {
|
|
79
|
-
access_token: tokens.access_token,
|
|
80
|
-
refresh_token: tokens.refresh_token,
|
|
81
|
-
expires_at: tokens.expires_at,
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
output({
|
|
85
|
-
status: 'ok',
|
|
86
|
-
method: 'oauth',
|
|
87
|
-
environment: env,
|
|
88
|
-
message: `Authenticated successfully. Credentials saved to ${CONFIG_FILE} (environment: ${env})`,
|
|
89
|
-
}, { format: globals.format });
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
if (error instanceof OAuthError) {
|
|
93
|
-
outputError({ code: 'OAUTH_ERROR', message: error.message }, globals);
|
|
94
|
-
process.exit(3);
|
|
95
|
-
}
|
|
96
|
-
throw error;
|
|
97
|
-
}
|
|
60
|
+
// Interactive: API keys are the only supported auth, so prompt for one
|
|
61
|
+
// directly — no method-choice menu.
|
|
62
|
+
const token = await promptText('Enter your Jinko API key (jnk_...): ');
|
|
63
|
+
await saveApiKey(env, token, globals);
|
|
98
64
|
});
|
|
99
65
|
auth
|
|
100
66
|
.command('logout')
|
|
@@ -143,7 +109,9 @@ export function registerAuthCommands(program) {
|
|
|
143
109
|
token: masked,
|
|
144
110
|
source,
|
|
145
111
|
};
|
|
146
|
-
// Add expiry info for OAuth — prefer the per-env slot, fall back to legacy
|
|
112
|
+
// Add expiry info for OAuth — prefer the per-env slot, fall back to legacy
|
|
113
|
+
// top-level. OAuth login is deprecated; this branch only fires for
|
|
114
|
+
// pre-existing OAuth credentials still present in ~/.jinko/config.yaml.
|
|
147
115
|
if (auth.method === 'oauth' && source === 'config') {
|
|
148
116
|
const config = await readConfigFile();
|
|
149
117
|
const oauth = config?.environments?.[env]?.oauth ?? config?.oauth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
interface Choice<T> {
|
|
2
|
-
readonly label: string;
|
|
3
|
-
readonly value: T;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Interactive numbered-menu prompt. Returns selected value.
|
|
7
|
-
*/
|
|
8
|
-
export declare function promptChoice<T>(question: string, choices: ReadonlyArray<Choice<T>>): Promise<T>;
|
|
9
1
|
/**
|
|
10
2
|
* Simple text prompt. Returns trimmed input.
|
|
11
3
|
*/
|
|
12
4
|
export declare function promptText(question: string): Promise<string>;
|
|
13
|
-
export {};
|
|
14
5
|
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlE"}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
1
|
import { createInterface } from 'node:readline';
|
|
2
|
-
/**
|
|
3
|
-
* Interactive numbered-menu prompt. Returns selected value.
|
|
4
|
-
*/
|
|
5
|
-
export async function promptChoice(question, choices) {
|
|
6
|
-
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
7
|
-
const menu = choices.map((c, i) => ` ${i + 1}) ${c.label}`).join('\n');
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
rl.question(`${question}\n${menu}\n\nChoice: `, (answer) => {
|
|
10
|
-
rl.close();
|
|
11
|
-
const index = parseInt(answer.trim(), 10) - 1;
|
|
12
|
-
if (isNaN(index) || index < 0 || index >= choices.length) {
|
|
13
|
-
reject(new Error('Invalid choice'));
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
resolve(choices[index].value);
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
2
|
/**
|
|
21
3
|
* Simple text prompt. Returns trimmed input.
|
|
22
4
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/auth/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -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;AAGpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyB9D"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { withClient, output } from './shared.js';
|
|
1
|
+
import { withClient, output, userIntentOption } from './shared.js';
|
|
2
2
|
export function registerCheckoutCommand(program) {
|
|
3
3
|
program
|
|
4
4
|
.command('checkout')
|
|
5
5
|
.summary('Checkout a trip — returns a checkout URL the user opens to pay, plus agent payment params')
|
|
6
6
|
.description('Finalize a finalized trip. Use it once the trip is set and traveler details are filled in, for example after the user picks a Paris to Tokyo round trip and adds a hotel for the stay. The response carries two payment paths: `checkout_url` is what a human opens in a browser to pay, and `agent_spt_params` (max amount, currency, profile) is what an agent uses to mint a Shared Payment Token and pay programmatically via `agent-pay submit`.')
|
|
7
7
|
.requiredOption('--trip-id <id>', 'trip ID (from trip command) [required]')
|
|
8
|
+
.addOption(userIntentOption())
|
|
8
9
|
.action(withClient(async (client, globals, opts) => {
|
|
9
10
|
const response = await client.checkout(opts.tripId);
|
|
10
11
|
output(response, { format: globals.format });
|
|
@@ -15,6 +16,7 @@ export function registerCheckoutCommand(program) {
|
|
|
15
16
|
.command('book', { hidden: true })
|
|
16
17
|
.summary('DEPRECATED — use `checkout`. Alias retained for backward compatibility.')
|
|
17
18
|
.requiredOption('--trip-id <id>', 'trip ID (from trip command) [required]')
|
|
19
|
+
.addOption(userIntentOption())
|
|
18
20
|
.action(withClient(async (client, globals, opts) => {
|
|
19
21
|
const response = await client.book(opts.tripId);
|
|
20
22
|
output(response, { format: globals.format });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,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;AAEnE,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;IAC/C,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;IAC/C,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -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;AAIpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
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,CAqF9D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { withClient, output } from './shared.js';
|
|
2
|
-
import { buildAuthFields
|
|
1
|
+
import { withClient, output, userIntentOption } from './shared.js';
|
|
2
|
+
import { buildAuthFields } from './refund.js';
|
|
3
3
|
export function registerExchangeCommand(program) {
|
|
4
4
|
const exchange = program
|
|
5
5
|
.command('exchange')
|
|
@@ -8,12 +8,12 @@ export function registerExchangeCommand(program) {
|
|
|
8
8
|
.command('shop')
|
|
9
9
|
.summary('Shop for flight exchange alternatives')
|
|
10
10
|
.description('Shop for flight exchange alternatives.')
|
|
11
|
-
.
|
|
12
|
-
.
|
|
13
|
-
.option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
|
|
11
|
+
.requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
|
|
12
|
+
.requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
|
|
14
13
|
.option('--provider <provider>', 'override provider hint')
|
|
15
14
|
.option('--ticket-numbers <numbers...>', 'one or more ticket numbers')
|
|
16
15
|
.option('--preferred-departure-date <date>', 'preferred departure date (YYYY-MM-DD)')
|
|
16
|
+
.addOption(userIntentOption())
|
|
17
17
|
.action(withClient(async (client, globals, opts) => {
|
|
18
18
|
const response = await client.exchangeShop({
|
|
19
19
|
...buildAuthFields(opts),
|
|
@@ -26,11 +26,11 @@ export function registerExchangeCommand(program) {
|
|
|
26
26
|
.summary('Price a specific exchange offer')
|
|
27
27
|
.description('Price a specific exchange offer.')
|
|
28
28
|
.requiredOption('--offer-id <id>', 'exchange offer ID from shop response [required]')
|
|
29
|
-
.
|
|
30
|
-
.
|
|
31
|
-
.option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
|
|
29
|
+
.requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
|
|
30
|
+
.requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
|
|
32
31
|
.option('--provider <provider>', 'override provider hint')
|
|
33
32
|
.option('--ticket-numbers <numbers...>', 'one or more ticket numbers')
|
|
33
|
+
.addOption(userIntentOption())
|
|
34
34
|
.action(withClient(async (client, globals, opts) => {
|
|
35
35
|
const response = await client.exchangePrice({
|
|
36
36
|
...buildAuthFields(opts),
|
|
@@ -44,11 +44,11 @@ export function registerExchangeCommand(program) {
|
|
|
44
44
|
.description('Execute a flight exchange.')
|
|
45
45
|
.requiredOption('--offer-id <id>', 'exchange offer ID [required]')
|
|
46
46
|
.requiredOption('--session-reference <ref>', 'session reference from price response [required]')
|
|
47
|
-
.
|
|
48
|
-
.
|
|
49
|
-
.option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
|
|
47
|
+
.requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
|
|
48
|
+
.requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
|
|
50
49
|
.option('--provider <provider>', 'override provider hint')
|
|
51
50
|
.option('--ticket-numbers <numbers...>', 'one or more ticket numbers')
|
|
51
|
+
.addOption(userIntentOption())
|
|
52
52
|
.action(withClient(async (client, globals, opts) => {
|
|
53
53
|
const response = await client.exchangeCommit({
|
|
54
54
|
...buildAuthFields(opts),
|
|
@@ -61,16 +61,14 @@ export function registerExchangeCommand(program) {
|
|
|
61
61
|
.command('status')
|
|
62
62
|
.summary('Check the status of an exchange')
|
|
63
63
|
.description('Poll the status of an in-flight exchange.')
|
|
64
|
-
.
|
|
65
|
-
.
|
|
66
|
-
.option('--order-id <id>', 'DevPlatform order ID (authenticated auth) [required: authenticated mode]')
|
|
64
|
+
.requiredOption('--booking-ref <ref>', 'Jinko booking reference [required]')
|
|
65
|
+
.requiredOption('--last-name <name>', 'Last name of the primary traveler [required]')
|
|
67
66
|
.option('--provider <provider>', 'override provider hint')
|
|
67
|
+
.addOption(userIntentOption())
|
|
68
68
|
.action(withClient(async (client, globals, opts) => {
|
|
69
|
-
validateAuthFields(opts);
|
|
70
69
|
const response = await client.exchangeStatus({
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
...(opts.lastName && { last_name: opts.lastName }),
|
|
70
|
+
booking_ref: opts.bookingRef,
|
|
71
|
+
last_name: opts.lastName,
|
|
74
72
|
...(opts.provider && { provider: opts.provider }),
|
|
75
73
|
});
|
|
76
74
|
output(response, { format: globals.format });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/commands/exchange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-dates.d.ts","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GACrB,iBAAiB,CAmBnB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"find-dates.d.ts","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GACrB,iBAAiB,CAmBnB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwG/D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { withClient, output, resolveDeprecatedFlag } from "./shared.js";
|
|
1
|
+
import { withClient, output, resolveDeprecatedFlag, userIntentOption } from "./shared.js";
|
|
2
2
|
const DEFAULT_STAY_DAYS = 7;
|
|
3
3
|
/** Expand a YYYY-MM month into a full-month [start, end] range, or null if malformed. */
|
|
4
4
|
export function monthToRange(month) {
|
|
@@ -50,6 +50,7 @@ export function registerFindDatesCommand(program) {
|
|
|
50
50
|
.option("--cabin-class <class>", "cabin class: economy, premium_economy, business, first (default: economy). JSON: `cabin_class`.")
|
|
51
51
|
.option("--direct-only", "only direct flights. JSON: `direct_only`.")
|
|
52
52
|
.option("--limit <n>", "max date-pairs to return (1-100, default 20). JSON: `limit`.")
|
|
53
|
+
.addOption(userIntentOption())
|
|
53
54
|
// Deprecated aliases — Phase 1 transition (JIN-665), remove in next major.
|
|
54
55
|
.option("--from <origin>", "DEPRECATED: use --origins.")
|
|
55
56
|
.option("--to <destination>", "DEPRECATED: use --destinations.")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-dates.js","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"find-dates.js","sourceRoot":"","sources":["../../src/commands/find-dates.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;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;AA8CD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiCtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkEnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
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;AA8CD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiCtE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkEnF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0IrE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { withClient, output } from './shared.js';
|
|
1
|
+
import { withClient, output, userIntentOption } from './shared.js';
|
|
2
2
|
const SUMMARY = 'Discover travel destinations accessible from your departure airports';
|
|
3
3
|
const DESCRIPTION = 'Surface inspiration when a user knows where they want to leave from but not where they want to go. ' +
|
|
4
4
|
'Typical prompts include "cheap beach getaways from New York" or "weekend trips out of London under €200". ' +
|
|
@@ -199,6 +199,7 @@ export function registerFindDestinationCommand(program) {
|
|
|
199
199
|
.option('--offset <n>', 'Pagination offset (default 0). JSON: `offset`.')
|
|
200
200
|
.option('--flights-per-destination <n>', 'Itineraries per destination (1-10, default 1). JSON: `flights_per_destination`.')
|
|
201
201
|
.option('--sort-by <strategy>', '`lowest` or `recommendation` (default: `lowest`). JSON: `sort_by`.', 'lowest')
|
|
202
|
+
.addOption(userIntentOption())
|
|
202
203
|
// Deprecated aliases — Phase 1 transition, remove in next major.
|
|
203
204
|
.option('--from <origins...>', 'DEPRECATED: use --origins.')
|
|
204
205
|
.option('--date <date>', 'DEPRECATED: use --departure-dates.')
|