@gojinko/cli 2.19.1 → 2.21.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.
@@ -30,6 +30,18 @@ export declare function exitWithError(err: unknown, globals: GlobalOptions): nev
30
30
  * Returns the resolved canonical value so callers can use it inline.
31
31
  */
32
32
  export declare function resolveDeprecatedFlag<T>(canonical: T | undefined, deprecated: T | undefined, oldFlag: string, newFlag: string): T | undefined;
33
+ /**
34
+ * Build the source-native action string for the `X-Origin-Action` header: the
35
+ * invoked CLI command path (e.g. `flight-search`, `book`, `auth login`),
36
+ * excluding the root `jinko` program name. Threaded into the api-client so its
37
+ * middleware can stamp `X-Origin-Action` for intent tracking.
38
+ *
39
+ * Walks up the Commander parent chain until the root program (whose `.parent`
40
+ * is null), so the program name is never included. Returns undefined when the
41
+ * command cannot be determined (e.g. a stub Command in unit tests), keeping the
42
+ * header omitted rather than blank.
43
+ */
44
+ export declare function resolveCommandPath(cmd: Command | undefined): string | undefined;
33
45
  /**
34
46
  * Wraps a command handler with standard error handling and client creation.
35
47
  * Commander calls action with varying arg counts:
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,iEAAiE;AACjE,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB;CAKpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAezE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,SAAS,EAAE,CAAC,GAAG,SAAS,EACxB,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAMf;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,CACP,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EAEtB,OAAO,CAAC,EAAE,GAAG,EACb,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,IAAI,CAAC,IAGK,MAAM,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,mBA4BrD"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,iEAAiE;AACjE,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB;CAKpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,CAezE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,SAAS,EAAE,CAAC,GAAG,SAAS,EACxB,UAAU,EAAE,CAAC,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAMf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY/E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,CACP,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,aAAa,EAEtB,OAAO,CAAC,EAAE,GAAG,EACb,GAAG,CAAC,EAAE,OAAO,KACV,OAAO,CAAC,IAAI,CAAC,IAGK,MAAM,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,mBA8BrD"}
@@ -53,6 +53,30 @@ export function resolveDeprecatedFlag(canonical, deprecated, oldFlag, newFlag) {
53
53
  }
54
54
  return canonical;
55
55
  }
56
+ /**
57
+ * Build the source-native action string for the `X-Origin-Action` header: the
58
+ * invoked CLI command path (e.g. `flight-search`, `book`, `auth login`),
59
+ * excluding the root `jinko` program name. Threaded into the api-client so its
60
+ * middleware can stamp `X-Origin-Action` for intent tracking.
61
+ *
62
+ * Walks up the Commander parent chain until the root program (whose `.parent`
63
+ * is null), so the program name is never included. Returns undefined when the
64
+ * command cannot be determined (e.g. a stub Command in unit tests), keeping the
65
+ * header omitted rather than blank.
66
+ */
67
+ export function resolveCommandPath(cmd) {
68
+ if (!cmd || typeof cmd.name !== 'function') {
69
+ return undefined;
70
+ }
71
+ const names = [];
72
+ let current = cmd;
73
+ while (current && current.parent) {
74
+ names.unshift(current.name());
75
+ current = current.parent;
76
+ }
77
+ const path = names.join(' ').trim();
78
+ return path.length > 0 ? path : undefined;
79
+ }
56
80
  /**
57
81
  * Wraps a command handler with standard error handling and client creation.
58
82
  * Commander calls action with varying arg counts:
@@ -72,6 +96,8 @@ export function withClient(handler) {
72
96
  const client = await createJinkoClient({
73
97
  apiKey: globals.apiKey,
74
98
  environment: globals.environment,
99
+ originSource: 'cli',
100
+ originAction: resolveCommandPath(cmd),
75
101
  });
76
102
  await handler(client, globals, cmdOpts, cmd);
77
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  /** Shared option registration + request building for the three travel-demand commands. */
2
2
  import type { Command } from 'commander';
3
- import { type DemandQuery, type JinkoClient } from '@gojinko/api-client';
3
+ import { type DemandQuery, type JinkoClient, type Level, type TravelPeriod, type TravelerType, type TripType } from '@gojinko/api-client';
4
+ export declare const TRAVEL_PERIODS: readonly TravelPeriod[];
5
+ export declare const TRAVELER_TYPES: readonly TravelerType[];
6
+ export declare const TRIP_TYPES: readonly TripType[];
7
+ export declare const LEVELS: string[];
8
+ /** Values accepted by --level (ranked-output granularity); lowercase, matching the API. */
9
+ export declare const LEVEL_VALUES: readonly Level[];
4
10
  /** Raw option bag as parsed by Commander (camelCased flags). */
5
11
  export interface DemandCliOpts {
6
- analysis?: string;
7
12
  originMarket?: string;
8
13
  destination?: string;
14
+ level?: string;
9
15
  travelPeriod?: string;
10
16
  departureDateFrom?: string;
11
17
  departureDateTo?: string;
@@ -16,13 +22,19 @@ export interface DemandCliOpts {
16
22
  searchWindowMin?: string;
17
23
  searchWindowMax?: string;
18
24
  snapshotWindowDays?: string;
19
- trendWindowDays?: string;
20
25
  limit?: string;
21
26
  }
22
27
  export interface BuildOpts {
23
28
  requireDestination?: boolean;
24
29
  allowTravelerType?: boolean;
30
+ /** Whether --level (ranked-output granularity) is a valid option (destination/market, not audience). */
31
+ allowLevel?: boolean;
25
32
  }
33
+ export declare function checkEnum<T extends string>(value: string | undefined, allowed: readonly T[], flag: string): T | undefined;
34
+ export declare function checkLocation(value: string | undefined, flag: string): string | undefined;
35
+ export declare function checkDate(value: string | undefined, flag: string): string | undefined;
36
+ export declare function checkNonNegInt(value: string | undefined, flag: string): number | undefined;
37
+ export declare function checkRangeInt(value: string | undefined, flag: string, min: number, max: number, oneDayReason?: string): number | undefined;
26
38
  /** Validate CLI options and build the wire query. Throws UsageError (exit 3) on bad input. */
27
39
  export declare function buildDemandQuery(opts: DemandCliOpts, build?: BuildOpts): DemandQuery;
28
40
  /**
@@ -32,6 +44,12 @@ export declare function buildDemandQuery(opts: DemandCliOpts, build?: BuildOpts)
32
44
  * commands don't use the generic withClient wrapper, which creates the client first.)
33
45
  */
34
46
  export declare function demandAction(build: BuildOpts, call: (client: JinkoClient, query: DemandQuery) => Promise<unknown>): (this: Command, ...args: unknown[]) => Promise<void>;
47
+ /**
48
+ * Register the `--level` (ranked-output granularity) option. Only the destination
49
+ * and market rankings (and their trend variants) accept it — not audience,
50
+ * which buckets by traveler type, nor the explicit-pairs trend command.
51
+ */
52
+ export declare function addLevelOption(cmd: Command): Command;
35
53
  /** Register the query options shared by all three demand commands. */
36
54
  export declare function addCommonDemandOptions(cmd: Command): Command;
37
55
  //# sourceMappingURL=demand-shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"demand-shared.d.ts","sourceRoot":"","sources":["../../../src/commands/travel-demand/demand-shared.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAIjB,MAAM,qBAAqB,CAAC;AAmB7B,gEAAgE;AAChE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA6ED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,GAAE,SAAc,GAAG,WAAW,CAiFxF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,IAE5C,MAAM,OAAO,EAAE,GAAG,MAAM,OAAO,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAezE;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA8B5D"}
1
+ {"version":3,"file":"demand-shared.d.ts","sourceRoot":"","sources":["../../../src/commands/travel-demand/demand-shared.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { createJinkoClient, } from '@gojinko/api-client';
2
2
  import { getGlobalOptions } from '../../config/config.js';
3
- import { exitWithError, output, UsageError } from '../shared.js';
4
- const ANALYSIS = ['snapshot', 'trend'];
5
- const TRAVEL_PERIODS = [
3
+ import { exitWithError, output, resolveCommandPath, UsageError } from '../shared.js';
4
+ export const TRAVEL_PERIODS = [
6
5
  'Summer',
7
6
  'Winter',
8
7
  'Christmas',
@@ -11,11 +10,13 @@ const TRAVEL_PERIODS = [
11
10
  'Next90Days',
12
11
  'Custom',
13
12
  ];
14
- const TRAVELER_TYPES = ['Solo', 'Couple', 'Group', 'Family'];
15
- const TRIP_TYPES = ['One-Way', 'Round-Trip'];
16
- const LEVELS = ['City', 'Country'];
13
+ export const TRAVELER_TYPES = ['Solo', 'Couple', 'Group', 'Family'];
14
+ export const TRIP_TYPES = ['One-Way', 'Round-Trip'];
15
+ export const LEVELS = ['City', 'Country'];
16
+ /** Values accepted by --level (ranked-output granularity); lowercase, matching the API. */
17
+ export const LEVEL_VALUES = ['country', 'city'];
17
18
  const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
18
- function checkEnum(value, allowed, flag) {
19
+ export function checkEnum(value, allowed, flag) {
19
20
  if (value === undefined)
20
21
  return undefined;
21
22
  if (!allowed.includes(value)) {
@@ -23,7 +24,7 @@ function checkEnum(value, allowed, flag) {
23
24
  }
24
25
  return value;
25
26
  }
26
- function checkLocation(value, flag) {
27
+ export function checkLocation(value, flag) {
27
28
  if (value === undefined)
28
29
  return undefined;
29
30
  const parts = value.split(':');
@@ -35,7 +36,7 @@ function checkLocation(value, flag) {
35
36
  }
36
37
  return value;
37
38
  }
38
- function checkDate(value, flag) {
39
+ export function checkDate(value, flag) {
39
40
  if (value === undefined)
40
41
  return undefined;
41
42
  if (DATE_RE.test(value)) {
@@ -57,7 +58,7 @@ function checkLimit(value) {
57
58
  }
58
59
  return n;
59
60
  }
60
- function checkNonNegInt(value, flag) {
61
+ export function checkNonNegInt(value, flag) {
61
62
  if (value === undefined)
62
63
  return undefined;
63
64
  const n = Number(value);
@@ -66,21 +67,23 @@ function checkNonNegInt(value, flag) {
66
67
  }
67
68
  return n;
68
69
  }
69
- function checkRangeInt(value, flag, min, max) {
70
+ export function checkRangeInt(value, flag, min, max,
71
+ // Why "1" specifically is rejected. The snapshot window includes the current
72
+ // (incomplete) day, hence the default reason; a trend series window ends on the
73
+ // last COMPLETE bucket, so the trend builder passes its own reason. `1` looks
74
+ // like a reasonable input either way.
75
+ oneDayReason = 'a 1-day window relies on the current day, whose search data is not yet complete') {
70
76
  if (value === undefined)
71
77
  return undefined;
72
78
  const n = Number(value);
73
79
  if (!Number.isInteger(n) || n < min || n > max) {
74
- // A 1-day window is the current day, whose search data isn't complete yet —
75
- // call that out specifically since "1" looks like a reasonable input.
76
- const why = n === 1 ? ' — a 1-day window relies on the current day, whose search data is not yet complete' : '';
80
+ const why = n === 1 ? ` — ${oneDayReason}` : '';
77
81
  throw new UsageError(`${flag} must be an integer between ${min} and ${max}${why} (got "${value}")`);
78
82
  }
79
83
  return n;
80
84
  }
81
85
  /** Validate CLI options and build the wire query. Throws UsageError (exit 3) on bad input. */
82
86
  export function buildDemandQuery(opts, build = {}) {
83
- const analysis = checkEnum(opts.analysis, ANALYSIS, '--analysis') ?? 'snapshot';
84
87
  const travelPeriod = checkEnum(opts.travelPeriod, TRAVEL_PERIODS, '--travel-period');
85
88
  const from = checkDate(opts.departureDateFrom, '--departure-date-from');
86
89
  const to = checkDate(opts.departureDateTo, '--departure-date-to');
@@ -100,6 +103,9 @@ export function buildDemandQuery(opts, build = {}) {
100
103
  throw new UsageError('--destination is required for this command (e.g. --destination Country:TH)');
101
104
  }
102
105
  const originMarket = checkLocation(opts.originMarket, '--origin-market');
106
+ const level = build.allowLevel
107
+ ? checkEnum(opts.level, LEVEL_VALUES, '--level')
108
+ : undefined;
103
109
  const travelerType = build.allowTravelerType
104
110
  ? checkEnum(opts.travelerType, TRAVELER_TYPES, '--traveler-type')
105
111
  : undefined;
@@ -118,22 +124,17 @@ export function buildDemandQuery(opts, build = {}) {
118
124
  searchWindowMax < searchWindowMin) {
119
125
  throw new UsageError('--search-window-max must be >= --search-window-min');
120
126
  }
121
- // Per-mode analysis-window overrides. Each is only valid in its own mode;
122
- // pairing it with the other mode is rejected (matches the API/BFF).
127
+ // Recent-activity window for the snapshot ranking (2-90). A 1-day window is
128
+ // rejected because the current day's search data is still incomplete.
123
129
  const snapshotWindowDays = checkRangeInt(opts.snapshotWindowDays, '--snapshot-window-days', 2, 90);
124
- if (snapshotWindowDays !== undefined && analysis !== 'snapshot') {
125
- throw new UsageError('--snapshot-window-days is only valid with --analysis snapshot');
126
- }
127
- const trendWindowDays = checkRangeInt(opts.trendWindowDays, '--trend-window-days', 2, 45);
128
- if (trendWindowDays !== undefined && analysis !== 'trend') {
129
- throw new UsageError('--trend-window-days is only valid with --analysis trend');
130
- }
131
130
  const limit = checkLimit(opts.limit);
132
- const query = { analysis };
131
+ const query = {};
133
132
  if (originMarket)
134
133
  query.origin_market = originMarket;
135
134
  if (destination)
136
135
  query.destination = destination;
136
+ if (level)
137
+ query.level = level;
137
138
  if (travelPeriod)
138
139
  query.travel_period = travelPeriod;
139
140
  if (from)
@@ -154,8 +155,6 @@ export function buildDemandQuery(opts, build = {}) {
154
155
  query.search_window_max = searchWindowMax;
155
156
  if (snapshotWindowDays !== undefined)
156
157
  query.snapshot_window_days = snapshotWindowDays;
157
- if (trendWindowDays !== undefined)
158
- query.trend_window_days = trendWindowDays;
159
158
  if (limit !== undefined)
160
159
  query.limit = limit;
161
160
  return query;
@@ -176,6 +175,8 @@ export function demandAction(build, call) {
176
175
  const client = await createJinkoClient({
177
176
  apiKey: globals.apiKey,
178
177
  environment: globals.environment,
178
+ originSource: 'cli',
179
+ originAction: resolveCommandPath(command),
179
180
  });
180
181
  output(await call(client, query), { format: globals.format });
181
182
  }
@@ -184,10 +185,17 @@ export function demandAction(build, call) {
184
185
  }
185
186
  };
186
187
  }
188
+ /**
189
+ * Register the `--level` (ranked-output granularity) option. Only the destination
190
+ * and market rankings (and their trend variants) accept it — not audience,
191
+ * which buckets by traveler type, nor the explicit-pairs trend command.
192
+ */
193
+ export function addLevelOption(cmd) {
194
+ return cmd.option('--level <level>', 'ranked output granularity: country (default) or city', 'country');
195
+ }
187
196
  /** Register the query options shared by all three demand commands. */
188
197
  export function addCommonDemandOptions(cmd) {
189
198
  return cmd
190
- .option('--analysis <mode>', 'analysis mode: snapshot (default) or trend', 'snapshot')
191
199
  .option('--origin-market <level:code>', 'origin market filter, e.g. Country:US or City:NYC')
192
200
  .option('--travel-period <period>', 'Summer|Winter|Christmas|Easter|Next30Days|Next90Days|Custom (default Next90Days)')
193
201
  .option('--departure-date-from <YYYY-MM-DD>', 'start of departure window (requires --travel-period Custom)')
@@ -197,8 +205,7 @@ export function addCommonDemandOptions(cmd) {
197
205
  .option('--trip-duration-max <n>', 'maximum trip length in nights (>= --trip-duration-min)')
198
206
  .option('--search-window-min <n>', 'minimum advance-purchase window in days before departure (>= 0)')
199
207
  .option('--search-window-max <n>', 'maximum advance-purchase window in days (>= --search-window-min)')
200
- .option('--snapshot-window-days <n>', 'snapshot only: days of recent search activity in the level window (2-90, default 7)')
201
- .option('--trend-window-days <n>', 'trend only: size in days of each compared window (2-45, default 7)')
208
+ .option('--snapshot-window-days <n>', 'days of recent search activity aggregated into the demand level (2-90, default 7)')
202
209
  .option('--limit <n>', 'max rows, 1-200 (default 20)');
203
210
  }
204
211
  //# sourceMappingURL=demand-shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"demand-shared.js","sourceRoot":"","sources":["../../../src/commands/travel-demand/demand-shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demand-shared.js","sourceRoot":"","sources":["../../../src/commands/travel-demand/demand-shared.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import type { Command } from 'commander';
2
2
  /**
3
- * `jinko travel-demand <operation>` — Travel Demand Intelligence (JIN-1378).
3
+ * `jinko travel-demand <operation>` — Travel Demand Intelligence (JIN-1378, JIN-1471).
4
4
  *
5
- * A second-level command group (like `auth`/`config`) with three operations:
6
- * destination / market / audience. ("demand-" is dropped — it is redundant under
7
- * `travel-demand`.) The SDK keeps its demand* method names
8
- * (demandDestination/demandMarket/demandAudience) since that namespace is flat.
9
- * Registration is purely additive — see createProgram() in ../../index.ts.
5
+ * A second-level command group (like `auth`/`config`) with seven operations:
6
+ * three snapshot rankings — destination / market / audience — and four
7
+ * time-series ("trend") deep-dives — trend / destination-trend / market-trend /
8
+ * audience-trend (JIN-1471, renamed from "evolution" by JIN-1529). ("demand-" is
9
+ * dropped — it is redundant under `travel-demand`.) The SDK keeps its flat
10
+ * demand* method names (demandDestination/…/demandTrend/…). Registration is
11
+ * purely additive — see createProgram() in ../../index.ts.
10
12
  */
11
13
  export declare function registerTravelDemandCommands(program: Command): void;
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/travel-demand/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkDnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/travel-demand/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2DnE"}
@@ -1,37 +1,86 @@
1
- import { addCommonDemandOptions, demandAction } from './demand-shared.js';
1
+ import { addCommonDemandOptions, addLevelOption, demandAction } from './demand-shared.js';
2
+ import { addCommonTrendOptions, addRankedTrendOptions, buildPairsTrendQuery, buildRankedTrendQuery, collectLocations, trendAction, } from './trend-shared.js';
2
3
  /**
3
- * `jinko travel-demand <operation>` — Travel Demand Intelligence (JIN-1378).
4
+ * `jinko travel-demand <operation>` — Travel Demand Intelligence (JIN-1378, JIN-1471).
4
5
  *
5
- * A second-level command group (like `auth`/`config`) with three operations:
6
- * destination / market / audience. ("demand-" is dropped — it is redundant under
7
- * `travel-demand`.) The SDK keeps its demand* method names
8
- * (demandDestination/demandMarket/demandAudience) since that namespace is flat.
9
- * Registration is purely additive — see createProgram() in ../../index.ts.
6
+ * A second-level command group (like `auth`/`config`) with seven operations:
7
+ * three snapshot rankings — destination / market / audience — and four
8
+ * time-series ("trend") deep-dives — trend / destination-trend / market-trend /
9
+ * audience-trend (JIN-1471, renamed from "evolution" by JIN-1529). ("demand-" is
10
+ * dropped — it is redundant under `travel-demand`.) The SDK keeps its flat
11
+ * demand* method names (demandDestination/…/demandTrend/…). Registration is
12
+ * purely additive — see createProgram() in ../../index.ts.
10
13
  */
11
14
  export function registerTravelDemandCommands(program) {
12
15
  const td = program
13
16
  .command('travel-demand')
14
- .summary('Travel Demand Intelligence — top destinations, source markets, audience mix')
15
- .description('Query de-sampled search-demand analytics (JIN-1378): the most-searched destinations, ' +
16
- 'the source markets driving demand for a destination, and the traveler-type mix.');
17
- addCommonDemandOptions(td
17
+ .summary('Travel Demand Intelligence — rankings + trend time series')
18
+ .description('Query de-sampled search-demand analytics (JIN-1378, JIN-1471): the most-searched ' +
19
+ 'destinations, the source markets driving demand for a destination, and the traveler-type ' +
20
+ 'mix — as point-in-time rankings, or as "trend" time series you can plot over a window.');
21
+ addLevelOption(addCommonDemandOptions(td
18
22
  .command('destination')
19
23
  .summary('Top destinations by search demand')
20
24
  .description('Most-searched destinations by de-sampled request share. Optionally scope to an origin ' +
21
25
  'market with --origin-market, or filter to a single destination with --destination.')
22
26
  .option('--destination <level:code>', 'optional destination filter, e.g. Country:TH')
23
- .option('--traveler-type <type>', 'Solo|Couple|Group|Family')).action(demandAction({ allowTravelerType: true }, (client, query) => client.demandDestination(query)));
24
- addCommonDemandOptions(td
27
+ .option('--traveler-type <type>', 'Solo|Couple|Group|Family'))).action(demandAction({ allowTravelerType: true, allowLevel: true }, (client, query) => client.demandDestination(query)));
28
+ addLevelOption(addCommonDemandOptions(td
25
29
  .command('market')
26
30
  .summary('Top source markets for a destination')
27
31
  .description('Which source markets generate the most demand for a destination. --destination is required.')
28
32
  .option('--destination <level:code>', 'destination, e.g. Country:TH (required)')
29
- .option('--traveler-type <type>', 'Solo|Couple|Group|Family')).action(demandAction({ requireDestination: true, allowTravelerType: true }, (client, query) => client.demandMarket(query)));
33
+ .option('--traveler-type <type>', 'Solo|Couple|Group|Family'))).action(demandAction({ requireDestination: true, allowTravelerType: true, allowLevel: true }, (client, query) => client.demandMarket(query)));
30
34
  addCommonDemandOptions(td
31
35
  .command('audience')
32
36
  .summary('Traveler-type mix for a destination')
33
37
  .description('Traveler-type composition (Solo/Couple/Family/Group) of demand for a destination. ' +
34
38
  '--destination is required. (traveler_type is not a filter here — it is the dimension.)')
35
39
  .option('--destination <level:code>', 'destination, e.g. Country:JP (required)')).action(demandAction({ requireDestination: true }, (client, query) => client.demandAudience(query)));
40
+ registerTrendCommands(td);
41
+ }
42
+ /**
43
+ * The four TREND (time-series) commands (JIN-1471, renamed from "evolution" by
44
+ * JIN-1529). A series is always a series, so there is no --analysis /
45
+ * --snapshot-window-days here; the window is --trend-window (per-granularity:
46
+ * day 2-60 | week 2-52 | month 2-12, default 12) and --granularity (week
47
+ * default) buckets it.
48
+ */
49
+ function registerTrendCommands(td) {
50
+ // Deep dive over explicit pairs. --origin / --destination are repeatable and
51
+ // comma-splittable; v1 requires one side to be a single location.
52
+ addCommonTrendOptions(td
53
+ .command('trend')
54
+ .summary('Demand time series for explicit origin/destination pairs')
55
+ .description('Deep dive: one de-sampled search-volume series per (origin, destination) pair. ' +
56
+ '--origin and --destination are repeatable (or comma-separated); v1 allows a list on ' +
57
+ 'only one side (keep the other a single location).')
58
+ .option('--origin <level:code>', 'origin selector, e.g. Country:US (repeatable)', collectLocations, [])
59
+ .option('--destination <level:code>', 'destination selector, e.g. Country:FR (repeatable)', collectLocations, [])
60
+ .option('--traveler-type <type>', 'Solo|Couple|Group|Family')).action(trendAction(buildPairsTrendQuery, (client, query) => client.demandTrend(query)));
61
+ addLevelOption(addRankedTrendOptions(td
62
+ .command('destination-trend')
63
+ .summary('Demand time series for the top-N destinations')
64
+ .description('Ranks destinations (optionally reachable from --origin-market) by within-window growth, ' +
65
+ 'then returns each top-N destination’s series.')
66
+ .option('--destination <level:code>', 'optional destination filter, e.g. Country:TH')
67
+ .option('--traveler-type <type>', 'Solo|Couple|Group|Family'))).action(trendAction((opts) => buildRankedTrendQuery(opts, { allowTravelerType: true, allowLevel: true }), (client, query) => client.demandDestinationTrend(query)));
68
+ addLevelOption(addRankedTrendOptions(td
69
+ .command('market-trend')
70
+ .summary('Demand time series for the top-N source markets')
71
+ .description('Ranks source markets for a destination by within-window growth, then returns each ' +
72
+ 'top-N market’s series. --destination is required.')
73
+ .option('--destination <level:code>', 'destination, e.g. Country:TH (required)')
74
+ .option('--traveler-type <type>', 'Solo|Couple|Group|Family'))).action(trendAction((opts) => buildRankedTrendQuery(opts, {
75
+ requireDestination: true,
76
+ allowTravelerType: true,
77
+ allowLevel: true,
78
+ }), (client, query) => client.demandMarketTrend(query)));
79
+ addRankedTrendOptions(td
80
+ .command('audience-trend')
81
+ .summary('Demand time series for the traveler-type mix')
82
+ .description('A series per traveler-type segment (Solo/Couple/Family/Group) of demand for a ' +
83
+ 'destination. --destination is required. (traveler_type is not a filter here — it is the dimension.)')
84
+ .option('--destination <level:code>', 'destination, e.g. Country:JP (required)')).action(trendAction((opts) => buildRankedTrendQuery(opts, { requireDestination: true }), (client, query) => client.demandAudienceTrend(query)));
36
85
  }
37
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/travel-demand/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,6EAA6E,CAAC;SACtF,WAAW,CACV,uFAAuF;QACrF,iFAAiF,CACpF,CAAC;IAEJ,sBAAsB,CACpB,EAAE;SACC,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,mCAAmC,CAAC;SAC5C,WAAW,CACV,wFAAwF;QACtF,oFAAoF,CACvF;SACA,MAAM,CAAC,4BAA4B,EAAE,8CAA8C,CAAC;SACpF,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CAAC,MAAM,CACN,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9F,CAAC;IAEF,sBAAsB,CACpB,EAAE;SACC,OAAO,CAAC,QAAQ,CAAC;SACjB,OAAO,CAAC,sCAAsC,CAAC;SAC/C,WAAW,CACV,6FAA6F,CAC9F;SACA,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC;SAC/E,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CAAC,MAAM,CACN,YAAY,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACpF,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAC3B,CACF,CAAC;IAEF,sBAAsB,CACpB,EAAE;SACC,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CACV,oFAAoF;QAClF,wFAAwF,CAC3F;SACA,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC,CACnF,CAAC,MAAM,CACN,YAAY,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAC5F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/travel-demand/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,eAAe,CAAC;SACxB,OAAO,CAAC,2DAA2D,CAAC;SACpE,WAAW,CACV,mFAAmF;QACjF,2FAA2F;QAC3F,wFAAwF,CAC3F,CAAC;IAEJ,cAAc,CACZ,sBAAsB,CACpB,EAAE;SACC,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,mCAAmC,CAAC;SAC5C,WAAW,CACV,wFAAwF;QACtF,oFAAoF,CACvF;SACA,MAAM,CAAC,4BAA4B,EAAE,8CAA8C,CAAC;SACpF,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CACF,CAAC,MAAM,CACN,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAC5E,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAChC,CACF,CAAC;IAEF,cAAc,CACZ,sBAAsB,CACpB,EAAE;SACC,OAAO,CAAC,QAAQ,CAAC;SACjB,OAAO,CAAC,sCAAsC,CAAC;SAC/C,WAAW,CACV,6FAA6F,CAC9F;SACA,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC;SAC/E,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CACF,CAAC,MAAM,CACN,YAAY,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACtG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAC3B,CACF,CAAC;IAEF,sBAAsB,CACpB,EAAE;SACC,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CACV,oFAAoF;QAClF,wFAAwF,CAC3F;SACA,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC,CACnF,CAAC,MAAM,CACN,YAAY,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAC5F,CAAC;IAEF,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,EAAW;IACxC,6EAA6E;IAC7E,kEAAkE;IAClE,qBAAqB,CACnB,EAAE;SACC,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,0DAA0D,CAAC;SACnE,WAAW,CACV,iFAAiF;QAC/E,sFAAsF;QACtF,mDAAmD,CACtD;SACA,MAAM,CAAC,uBAAuB,EAAE,+CAA+C,EAAE,gBAAgB,EAAE,EAAE,CAAC;SACtG,MAAM,CACL,4BAA4B,EAC5B,oDAAoD,EACpD,gBAAgB,EAChB,EAAE,CACH;SACA,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1F,cAAc,CACZ,qBAAqB,CACnB,EAAE;SACC,OAAO,CAAC,mBAAmB,CAAC;SAC5B,OAAO,CAAC,+CAA+C,CAAC;SACxD,WAAW,CACV,0FAA0F;QACxF,+CAA+C,CAClD;SACA,MAAM,CAAC,4BAA4B,EAAE,8CAA8C,CAAC;SACpF,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CACF,CAAC,MAAM,CACN,WAAW,CACT,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EACpF,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CACxD,CACF,CAAC;IAEF,cAAc,CACZ,qBAAqB,CACnB,EAAE;SACC,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,iDAAiD,CAAC;SAC1D,WAAW,CACV,oFAAoF;QAClF,mDAAmD,CACtD;SACA,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC;SAC/E,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAChE,CACF,CAAC,MAAM,CACN,WAAW,CACT,CAAC,IAAI,EAAE,EAAE,CACP,qBAAqB,CAAC,IAAI,EAAE;QAC1B,kBAAkB,EAAE,IAAI;QACxB,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,IAAI;KACjB,CAAC,EACJ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CACnD,CACF,CAAC;IAEF,qBAAqB,CACnB,EAAE;SACC,OAAO,CAAC,gBAAgB,CAAC;SACzB,OAAO,CAAC,8CAA8C,CAAC;SACvD,WAAW,CACV,gFAAgF;QAC9E,qGAAqG,CACxG;SACA,MAAM,CAAC,4BAA4B,EAAE,yCAAyC,CAAC,CACnF,CAAC,MAAM,CACN,WAAW,CACT,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EACnE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CACrD,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Shared option registration + request building for the four travel-demand
3
+ * TREND (time-series) commands (JIN-1471, renamed from "evolution" by JIN-1529):
4
+ *
5
+ * trend — deep dive over explicit origin×destination pairs
6
+ * destination-trend — top-N destinations, one series each
7
+ * market-trend — top-N source markets (destination required)
8
+ * audience-trend — per traveler-type segment (destination required)
9
+ *
10
+ * Trend shares the demand filter vocabulary but drops `analysis` (a series is
11
+ * always a series — never snapshot/trend) and `snapshot_window_days`. The single
12
+ * window is `trend_window`, counted in the chosen granularity's own unit
13
+ * (day 2-60, week 2-52, month 2-12; default 12); the series spans the last N
14
+ * complete buckets, excluding the in-progress one. Granularity defaults to week.
15
+ * The reusable validators live in ./demand-shared.ts to avoid duplicating the
16
+ * rules.
17
+ */
18
+ import type { Command } from 'commander';
19
+ import { type DemandTrendQuery, type JinkoClient } from '@gojinko/api-client';
20
+ /** Raw option bag as parsed by Commander (camelCased flags). */
21
+ export interface TrendCliOpts {
22
+ origin?: string[];
23
+ destination?: string | string[];
24
+ originMarket?: string;
25
+ level?: string;
26
+ limit?: string;
27
+ travelPeriod?: string;
28
+ departureDateFrom?: string;
29
+ departureDateTo?: string;
30
+ travelerType?: string;
31
+ tripType?: string;
32
+ tripDurationMin?: string;
33
+ tripDurationMax?: string;
34
+ searchWindowMin?: string;
35
+ searchWindowMax?: string;
36
+ trendWindow?: string;
37
+ granularity?: string;
38
+ }
39
+ export interface TrendBuildOpts {
40
+ /** Ranked commands where --destination must be supplied (market / audience). */
41
+ requireDestination?: boolean;
42
+ /** Whether --traveler-type is a valid filter (false for the audience endpoint, which buckets by it). */
43
+ allowTravelerType?: boolean;
44
+ /** Whether --level (ranked-output granularity) is valid (destination/market trend, not audience). */
45
+ allowLevel?: boolean;
46
+ }
47
+ /**
48
+ * Commander collector for the repeatable, comma-splittable `--origin` /
49
+ * `--destination` flags on the pairs command: `--origin A --origin B` and
50
+ * `--origin A,B` both accumulate into the same array.
51
+ */
52
+ export declare function collectLocations(value: string, previous?: string[]): string[];
53
+ /**
54
+ * Build the query for the `trend` deep-dive (explicit pairs). v1 requires at
55
+ * least one origin and one destination, caps each list, and allows a list on only
56
+ * one side (the other must be a single location). The wire forwards
57
+ * comma-separated strings — the BFF splits them.
58
+ */
59
+ export declare function buildPairsTrendQuery(opts: TrendCliOpts): DemandTrendQuery;
60
+ /** Build the query for a ranked trend command (destination / market / audience). */
61
+ export declare function buildRankedTrendQuery(opts: TrendCliOpts, build: TrendBuildOpts): DemandTrendQuery;
62
+ /**
63
+ * Build a Commander action for a trend command. Same ordering contract as
64
+ * the snapshot ranking commands: validate input FIRST (UsageError -> exit 3), THEN
65
+ * construct the client (AuthError -> exit 2), THEN call the API.
66
+ */
67
+ export declare function trendAction(buildQuery: (opts: TrendCliOpts) => DemandTrendQuery, call: (client: JinkoClient, query: DemandTrendQuery) => Promise<unknown>): (this: Command, ...args: unknown[]) => Promise<void>;
68
+ /** Register the filter options shared by all four trend commands. */
69
+ export declare function addCommonTrendOptions(cmd: Command): Command;
70
+ /** Register the options common to the three RANKED trend commands (origin-market + top-N limit). */
71
+ export declare function addRankedTrendOptions(cmd: Command): Command;
72
+ //# sourceMappingURL=trend-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trend-shared.d.ts","sourceRoot":"","sources":["../../../src/commands/travel-demand/trend-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AA+B7B,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAE3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEhC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wGAAwG;IACxG,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qGAAqG;IACrG,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAOjF;AA0FD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAoCzE;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,cAAc,GACpB,gBAAgB,CAqBlB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,gBAAgB,EACpD,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,IAEjD,MAAM,OAAO,EAAE,GAAG,MAAM,OAAO,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAiBzE;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA4B3D;AAED,oGAAoG;AACpG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAI3D"}
@@ -0,0 +1,206 @@
1
+ import { createJinkoClient, } from '@gojinko/api-client';
2
+ import { getGlobalOptions } from '../../config/config.js';
3
+ import { exitWithError, output, resolveCommandPath, UsageError } from '../shared.js';
4
+ import { checkDate, checkEnum, checkLocation, checkNonNegInt, checkRangeInt, LEVEL_VALUES, TRAVEL_PERIODS, TRAVELER_TYPES, TRIP_TYPES, } from './demand-shared.js';
5
+ const GRANULARITIES = ['day', 'week', 'month'];
6
+ /** Default series bucket size when --granularity is omitted (mirrors trend.go). */
7
+ const DEFAULT_GRANULARITY = 'week';
8
+ /**
9
+ * Per-granularity maximum for --trend-window, in that granularity's own unit
10
+ * (minimum 2). Mirrors trend.go maxTrendWindow(): day <= 60, week <= 52,
11
+ * month <= 12 — a static numeric cap cannot express this, so the window is
12
+ * range-checked AFTER the granularity is resolved.
13
+ */
14
+ const MAX_TREND_WINDOW = { day: 60, week: 52, month: 12 };
15
+ /** v1 caps the pairs deep-dive to a handful of locations per side to avoid an explosion of series. */
16
+ const MAX_PAIR_LOCATIONS = 10;
17
+ /**
18
+ * Commander collector for the repeatable, comma-splittable `--origin` /
19
+ * `--destination` flags on the pairs command: `--origin A --origin B` and
20
+ * `--origin A,B` both accumulate into the same array.
21
+ */
22
+ export function collectLocations(value, previous = []) {
23
+ return previous.concat(value
24
+ .split(',')
25
+ .map((s) => s.trim())
26
+ .filter((s) => s.length > 0));
27
+ }
28
+ function checkTrendLimit(value) {
29
+ if (value === undefined)
30
+ return undefined;
31
+ const n = Number(value);
32
+ if (!Number.isInteger(n) || n < 1 || n > 50) {
33
+ throw new UsageError(`--limit must be an integer between 1 and 50 (got "${value}")`);
34
+ }
35
+ return n;
36
+ }
37
+ /** Validate the filters shared by all four trend commands and build the common query slice. */
38
+ function buildCommonTrend(opts, build) {
39
+ const travelPeriod = checkEnum(opts.travelPeriod, TRAVEL_PERIODS, '--travel-period');
40
+ const from = checkDate(opts.departureDateFrom, '--departure-date-from');
41
+ const to = checkDate(opts.departureDateTo, '--departure-date-to');
42
+ if (travelPeriod === 'Custom') {
43
+ if (!from || !to) {
44
+ throw new UsageError('--travel-period Custom requires both --departure-date-from and --departure-date-to');
45
+ }
46
+ if (to < from) {
47
+ throw new UsageError('--departure-date-to must be on or after --departure-date-from');
48
+ }
49
+ }
50
+ else if (from || to) {
51
+ throw new UsageError('--departure-date-from/--departure-date-to are only valid with --travel-period Custom');
52
+ }
53
+ const travelerType = build.allowTravelerType
54
+ ? checkEnum(opts.travelerType, TRAVELER_TYPES, '--traveler-type')
55
+ : undefined;
56
+ const tripType = checkEnum(opts.tripType, TRIP_TYPES, '--trip-type');
57
+ const tripDurationMin = checkNonNegInt(opts.tripDurationMin, '--trip-duration-min');
58
+ const tripDurationMax = checkNonNegInt(opts.tripDurationMax, '--trip-duration-max');
59
+ if (tripDurationMin !== undefined &&
60
+ tripDurationMax !== undefined &&
61
+ tripDurationMax < tripDurationMin) {
62
+ throw new UsageError('--trip-duration-max must be >= --trip-duration-min');
63
+ }
64
+ const searchWindowMin = checkNonNegInt(opts.searchWindowMin, '--search-window-min');
65
+ const searchWindowMax = checkNonNegInt(opts.searchWindowMax, '--search-window-max');
66
+ if (searchWindowMin !== undefined &&
67
+ searchWindowMax !== undefined &&
68
+ searchWindowMax < searchWindowMin) {
69
+ throw new UsageError('--search-window-max must be >= --search-window-min');
70
+ }
71
+ // Granularity is resolved FIRST (default week) because the --trend-window cap
72
+ // is per-granularity (mirrors trend.go, which validates granularity before the
73
+ // window range check).
74
+ const granularity = checkEnum(opts.granularity, GRANULARITIES, '--granularity') ?? DEFAULT_GRANULARITY;
75
+ // --trend-window is the number of buckets N in the chosen granularity's own
76
+ // unit. It ends on the last COMPLETE bucket (the in-progress one is excluded),
77
+ // so a single bucket is not a series — 2 is the minimum, and the maximum
78
+ // depends on the granularity (day 60, week 52, month 12).
79
+ const trendWindow = checkRangeInt(opts.trendWindow, '--trend-window', 2, MAX_TREND_WINDOW[granularity], 'a trend series needs at least 2 buckets');
80
+ const query = {};
81
+ if (travelPeriod)
82
+ query.travel_period = travelPeriod;
83
+ if (from)
84
+ query.departure_date_from = from;
85
+ if (to)
86
+ query.departure_date_to = to;
87
+ if (travelerType)
88
+ query.traveler_type = travelerType;
89
+ if (tripType)
90
+ query.trip_type = tripType;
91
+ if (tripDurationMin !== undefined)
92
+ query.trip_duration_min = tripDurationMin;
93
+ if (tripDurationMax !== undefined)
94
+ query.trip_duration_max = tripDurationMax;
95
+ if (searchWindowMin !== undefined)
96
+ query.search_window_min = searchWindowMin;
97
+ if (searchWindowMax !== undefined)
98
+ query.search_window_max = searchWindowMax;
99
+ if (trendWindow !== undefined)
100
+ query.trend_window = trendWindow;
101
+ query.granularity = granularity;
102
+ return query;
103
+ }
104
+ /**
105
+ * Build the query for the `trend` deep-dive (explicit pairs). v1 requires at
106
+ * least one origin and one destination, caps each list, and allows a list on only
107
+ * one side (the other must be a single location). The wire forwards
108
+ * comma-separated strings — the BFF splits them.
109
+ */
110
+ export function buildPairsTrendQuery(opts) {
111
+ const query = buildCommonTrend(opts, { allowTravelerType: true });
112
+ const origins = Array.isArray(opts.origin) ? opts.origin : opts.origin ? [opts.origin] : [];
113
+ const destinations = Array.isArray(opts.destination)
114
+ ? opts.destination
115
+ : opts.destination
116
+ ? [opts.destination]
117
+ : [];
118
+ if (origins.length === 0) {
119
+ throw new UsageError('--origin is required (at least one), e.g. --origin Country:US');
120
+ }
121
+ if (destinations.length === 0) {
122
+ throw new UsageError('--destination is required (at least one), e.g. --destination Country:FR');
123
+ }
124
+ origins.forEach((o) => checkLocation(o, '--origin'));
125
+ destinations.forEach((d) => checkLocation(d, '--destination'));
126
+ if (origins.length > MAX_PAIR_LOCATIONS) {
127
+ throw new UsageError(`--origin accepts at most ${MAX_PAIR_LOCATIONS} locations (got ${origins.length})`);
128
+ }
129
+ if (destinations.length > MAX_PAIR_LOCATIONS) {
130
+ throw new UsageError(`--destination accepts at most ${MAX_PAIR_LOCATIONS} locations (got ${destinations.length})`);
131
+ }
132
+ if (origins.length > 1 && destinations.length > 1) {
133
+ throw new UsageError('v1: at most one of --origin / --destination may have more than one value — keep the other side a single location');
134
+ }
135
+ query.origins = origins.join(',');
136
+ query.destinations = destinations.join(',');
137
+ return query;
138
+ }
139
+ /** Build the query for a ranked trend command (destination / market / audience). */
140
+ export function buildRankedTrendQuery(opts, build) {
141
+ const query = buildCommonTrend(opts, build);
142
+ const destination = checkLocation(Array.isArray(opts.destination) ? opts.destination[0] : opts.destination, '--destination');
143
+ if (build.requireDestination && !destination) {
144
+ throw new UsageError('--destination is required for this command (e.g. --destination Country:TH)');
145
+ }
146
+ const originMarket = checkLocation(opts.originMarket, '--origin-market');
147
+ const level = build.allowLevel
148
+ ? checkEnum(opts.level, LEVEL_VALUES, '--level')
149
+ : undefined;
150
+ const limit = checkTrendLimit(opts.limit);
151
+ if (destination)
152
+ query.destination = destination;
153
+ if (originMarket)
154
+ query.origin_market = originMarket;
155
+ if (level)
156
+ query.level = level;
157
+ if (limit !== undefined)
158
+ query.limit = limit;
159
+ return query;
160
+ }
161
+ /**
162
+ * Build a Commander action for a trend command. Same ordering contract as
163
+ * the snapshot ranking commands: validate input FIRST (UsageError -> exit 3), THEN
164
+ * construct the client (AuthError -> exit 2), THEN call the API.
165
+ */
166
+ export function trendAction(buildQuery, call) {
167
+ return async function (...args) {
168
+ const command = args[args.length - 1];
169
+ const opts = args[args.length - 2] ?? {};
170
+ const globals = getGlobalOptions(command);
171
+ try {
172
+ const query = buildQuery(opts);
173
+ const client = await createJinkoClient({
174
+ apiKey: globals.apiKey,
175
+ environment: globals.environment,
176
+ originSource: 'cli',
177
+ originAction: resolveCommandPath(command),
178
+ });
179
+ output(await call(client, query), { format: globals.format });
180
+ }
181
+ catch (err) {
182
+ exitWithError(err, globals);
183
+ }
184
+ };
185
+ }
186
+ /** Register the filter options shared by all four trend commands. */
187
+ export function addCommonTrendOptions(cmd) {
188
+ return cmd
189
+ .option('--travel-period <period>', 'Summer|Winter|Christmas|Easter|Next30Days|Next90Days|Custom (default Next90Days)')
190
+ .option('--departure-date-from <YYYY-MM-DD>', 'start of departure window (requires --travel-period Custom)')
191
+ .option('--departure-date-to <YYYY-MM-DD>', 'end of departure window (requires --travel-period Custom)')
192
+ .option('--trip-type <type>', 'One-Way|Round-Trip')
193
+ .option('--trip-duration-min <n>', 'minimum trip length in nights (round-trips only, >= 0)')
194
+ .option('--trip-duration-max <n>', 'maximum trip length in nights (>= --trip-duration-min)')
195
+ .option('--search-window-min <n>', 'minimum advance-purchase window in days before departure (>= 0)')
196
+ .option('--search-window-max <n>', 'maximum advance-purchase window in days (>= --search-window-min)')
197
+ .option('--trend-window <n>', 'number of buckets the series spans, in the granularity unit (day 2-60 | week 2-52 | month 2-12, default 12)')
198
+ .option('--granularity <bucket>', 'series bucket size: week (default) | day | month', DEFAULT_GRANULARITY);
199
+ }
200
+ /** Register the options common to the three RANKED trend commands (origin-market + top-N limit). */
201
+ export function addRankedTrendOptions(cmd) {
202
+ return addCommonTrendOptions(cmd)
203
+ .option('--origin-market <level:code>', 'origin market filter/scope, e.g. Country:US or City:NYC')
204
+ .option('--limit <n>', 'max number of series (top-N), 1-50 (default 10)');
205
+ }
206
+ //# sourceMappingURL=trend-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trend-shared.js","sourceRoot":"","sources":["../../../src/commands/travel-demand/trend-shared.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,iBAAiB,GAIlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,MAAM,aAAa,GAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvE,mFAAmF;AACnF,MAAM,mBAAmB,GAAgB,MAAM,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,gBAAgB,GAAgC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAEvF,sGAAsG;AACtG,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAmC9B;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,WAAqB,EAAE;IACrE,OAAO,QAAQ,CAAC,MAAM,CACpB,KAAK;SACF,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,UAAU,CAAC,qDAAqD,KAAK,IAAI,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,+FAA+F;AAC/F,SAAS,gBAAgB,CAAC,IAAkB,EAAE,KAAqB;IACjE,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IAElE,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,UAAU,CAClB,oFAAoF,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,UAAU,CAAC,+DAA+D,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAClB,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB;QAC1C,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IACpF,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IACpF,IACE,eAAe,KAAK,SAAS;QAC7B,eAAe,KAAK,SAAS;QAC7B,eAAe,GAAG,eAAe,EACjC,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IACpF,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IACpF,IACE,eAAe,KAAK,SAAS;QAC7B,eAAe,KAAK,SAAS;QAC7B,eAAe,GAAG,eAAe,EACjC,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,uBAAuB;IACvB,MAAM,WAAW,GACf,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,mBAAmB,CAAC;IAErF,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,0DAA0D;IAC1D,MAAM,WAAW,GAAG,aAAa,CAC/B,IAAI,CAAC,WAAW,EAChB,gBAAgB,EAChB,CAAC,EACD,gBAAgB,CAAC,WAAW,CAAC,EAC7B,yCAAyC,CAC1C,CAAC;IAEF,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,YAAY;QAAE,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IACrD,IAAI,IAAI;QAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAC3C,IAAI,EAAE;QAAE,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACrC,IAAI,YAAY;QAAE,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IACrD,IAAI,QAAQ;QAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IACzC,IAAI,eAAe,KAAK,SAAS;QAAE,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7E,IAAI,eAAe,KAAK,SAAS;QAAE,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7E,IAAI,eAAe,KAAK,SAAS;QAAE,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7E,IAAI,eAAe,KAAK,SAAS;QAAE,KAAK,CAAC,iBAAiB,GAAG,eAAe,CAAC;IAC7E,IAAI,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,YAAY,GAAG,WAAW,CAAC;IAChE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAkB;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;QAClD,CAAC,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,CAAC,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,+DAA+D,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CAAC,yEAAyE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAAC,4BAA4B,kBAAkB,mBAAmB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAClB,iCAAiC,kBAAkB,mBAAmB,YAAY,CAAC,MAAM,GAAG,CAC7F,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAClB,kHAAkH,CACnH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CACnC,IAAkB,EAClB,KAAqB;IAErB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,aAAa,CAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EACxE,eAAe,CAChB,CAAC;IACF,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAAC,4EAA4E,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU;QAC5B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,WAAW;QAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IACjD,IAAI,YAAY;QAAE,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IACrD,IAAI,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,UAAoD,EACpD,IAAwE;IAExE,OAAO,KAAK,WAA0B,GAAG,IAAe;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAY,CAAC;QACjD,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,IAAI,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;gBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC;aAC1C,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,GAAG;SACP,MAAM,CACL,0BAA0B,EAC1B,kFAAkF,CACnF;SACA,MAAM,CAAC,oCAAoC,EAAE,6DAA6D,CAAC;SAC3G,MAAM,CAAC,kCAAkC,EAAE,2DAA2D,CAAC;SACvG,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;SAClD,MAAM,CAAC,yBAAyB,EAAE,wDAAwD,CAAC;SAC3F,MAAM,CAAC,yBAAyB,EAAE,wDAAwD,CAAC;SAC3F,MAAM,CACL,yBAAyB,EACzB,iEAAiE,CAClE;SACA,MAAM,CACL,yBAAyB,EACzB,kEAAkE,CACnE;SACA,MAAM,CACL,oBAAoB,EACpB,6GAA6G,CAC9G;SACA,MAAM,CACL,wBAAwB,EACxB,kDAAkD,EAClD,mBAAmB,CACpB,CAAC;AACN,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,qBAAqB,CAAC,GAAG,CAAC;SAC9B,MAAM,CAAC,8BAA8B,EAAE,yDAAyD,CAAC;SACjG,MAAM,CAAC,aAAa,EAAE,iDAAiD,CAAC,CAAC;AAC9E,CAAC"}
@@ -23,9 +23,9 @@ function outputTable(data) {
23
23
  const entries = Object.entries(data);
24
24
  const arrayEntry = entries.find(([, v]) => Array.isArray(v));
25
25
  if (arrayEntry) {
26
- // Object wrapping a list (e.g. { analysis_type, rows }): show the scalar
27
- // fields, then tabulate the rows — instead of collapsing the array into a
28
- // single key/value cell. Used by the travel-demand responses.
26
+ // Object wrapping a list (e.g. { granularity, from, to, series }): show the
27
+ // scalar fields, then tabulate the rows — instead of collapsing the array
28
+ // into a single key/value cell. Used by the travel-demand responses.
29
29
  const scalars = entries.filter(([, v]) => !Array.isArray(v) && (v === null || typeof v !== 'object'));
30
30
  for (const [key, value] of scalars) {
31
31
  console.log(`${chalk.bold(key)}: ${formatCell(value)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/output/formatter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gojinko/cli",
3
- "version": "2.19.1",
3
+ "version": "2.21.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "jinko": "./dist/bin/jinko.js"
@@ -17,7 +17,7 @@
17
17
  "docs:gen": "tsx scripts/gen-cli-docs.ts"
18
18
  },
19
19
  "dependencies": {
20
- "@gojinko/api-client": "2.19.1",
20
+ "@gojinko/api-client": "2.21.0",
21
21
  "commander": "^12.1.0",
22
22
  "chalk": "^5.4.1",
23
23
  "open": "^10.0.0"