@insightsentry/mcp 1.4.1 → 1.4.3

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/dist/cli.js CHANGED
@@ -1,7 +1,13 @@
1
- import jsonata from "jsonata";
1
+ import { stdin as input, stdout as output } from "node:process";
2
+ import { createInterface } from "node:readline/promises";
2
3
  import { ApiClient } from "./api-client.js";
4
+ import { coerceArgs, getZodEnumValues, getZodTypeName, isOptionalZodType } from "./arg-coercion.js";
5
+ import { deleteConfig, getConfigLocation, resolveApiKey, saveConfig } from "./config.js";
6
+ import { downloadHistory } from "./history.js";
3
7
  import { toolDefinitions } from "./tool-definitions.js";
4
- import { saveConfig, deleteConfig, resolveApiKey, getConfigLocation } from "./config.js";
8
+ import { runApiTool } from "./tool-runner.js";
9
+ export { coerceArgs } from "./arg-coercion.js";
10
+ const DOWNLOAD_HISTORY_COMMAND = "download_history";
5
11
  export function parseArgs(argv) {
6
12
  const args = {};
7
13
  let toolName = null;
@@ -37,56 +43,6 @@ export function parseArgs(argv) {
37
43
  }
38
44
  return { toolName, args, help };
39
45
  }
40
- export function coerceArgs(args, schema) {
41
- const result = {};
42
- for (const [key, value] of Object.entries(args)) {
43
- const zodType = schema[key];
44
- if (!zodType) {
45
- result[key] = value;
46
- continue;
47
- }
48
- const typeName = getZodTypeName(zodType);
49
- if (typeName === "number") {
50
- result[key] = Number(value);
51
- }
52
- else if (typeName === "boolean") {
53
- result[key] = value === "true";
54
- }
55
- else if (typeName === "array") {
56
- if (value.startsWith("[")) {
57
- try {
58
- result[key] = JSON.parse(value);
59
- continue;
60
- }
61
- catch { /* fall through to comma split */ }
62
- }
63
- result[key] = value.split(",").map((s) => s.trim());
64
- }
65
- else {
66
- result[key] = value;
67
- }
68
- }
69
- return result;
70
- }
71
- /** Unwrap optional/default wrappers and return the base Zod def (works across Zod v3 and v4) */
72
- function resolveZodDef(t) {
73
- const def = t._zod?.def ?? t._def ?? {};
74
- const type = def.type ?? def.typeName ?? "";
75
- if ((type === "optional" || type === "default") && def.innerType) {
76
- return resolveZodDef(def.innerType);
77
- }
78
- return { type, def };
79
- }
80
- function getZodTypeName(t) {
81
- return resolveZodDef(t).type;
82
- }
83
- function getZodEnumValues(t) {
84
- const { type, def } = resolveZodDef(t);
85
- if (type === "enum" && def.entries) {
86
- return Object.values(def.entries);
87
- }
88
- return [];
89
- }
90
46
  export function buildHelp() {
91
47
  const lines = [
92
48
  "insight — CLI for the InsightSentry financial data API",
@@ -99,13 +55,15 @@ export function buildHelp() {
99
55
  const desc = tool.description.split(".")[0]; // first sentence
100
56
  lines.push(` ${tool.name.padEnd(32)} ${desc}`);
101
57
  }
58
+ lines.push(` ${DOWNLOAD_HISTORY_COMMAND.padEnd(32)} Download historical ranges to JSON/CSV files with concurrency and progress`);
102
59
  lines.push("");
103
60
  lines.push("Quick Start:");
104
61
  lines.push(' insight search_symbols --query "apple"');
105
62
  lines.push(' insight get_quotes --codes "NASDAQ:AAPL,NASDAQ:MSFT"');
106
63
  lines.push(' insight get_symbol_series --symbol "NASDAQ:AAPL" --bar_type day --dp 30');
64
+ lines.push(' insight download_history --symbol "NASDAQ:AAPL" --bar_type minute --from 2024-01 --to 2024-03 --output_dir ./data --format csv');
107
65
  lines.push(' insight screen_stocks --fields "close,volume,market_cap" --exchanges "NYSE,NASDAQ" --sortBy market_cap --sortOrder desc');
108
- lines.push(' insight get_earnings --c US');
66
+ lines.push(" insight get_earnings --c US");
109
67
  lines.push(' insight list_options --code "NASDAQ:AAPL" --type call --range 10');
110
68
  lines.push("");
111
69
  lines.push("All tools support --filter <jsonata> to transform the response.");
@@ -119,6 +77,36 @@ export function buildHelp() {
119
77
  lines.push(" Get your API key from https://insightsentry.com/dashboard");
120
78
  return lines.join("\n");
121
79
  }
80
+ export function buildDownloadHistoryHelp() {
81
+ return [
82
+ `insight ${DOWNLOAD_HISTORY_COMMAND}`,
83
+ "",
84
+ "Download historical data for a date range and save files locally. second/minute/hour use /history. day/week/month use /series. Continuous futures ending in 1! or 2! are expanded through the contracts endpoint into specific contract codes for second/minute/hour.",
85
+ "",
86
+ "Parameters:",
87
+ " --symbol string Required. Symbol code, e.g. NASDAQ:AAPL or CME_MINI:NQ1!",
88
+ " --bar_type enum(second|minute|hour|day|week|month) Required. second uses daily /history requests; minute/hour use monthly /history requests; day/week/month use /series.",
89
+ " --from string Required. Start date, YYYY-MM or YYYY-MM-DD.",
90
+ " --to string Required. End date, YYYY-MM or YYYY-MM-DD.",
91
+ " --output_dir string Required. Directory where files will be written.",
92
+ " --format enum(json|csv|both) [optional] Default: csv.",
93
+ " --merge boolean [optional] Write one merged CSV when format is csv or both. Default: true.",
94
+ " --keep_chunks boolean [optional] Keep per-request CSV chunk files after merge. Default: false.",
95
+ " --concurrency number [optional] Concurrent history requests, 1-10. Default: 5.",
96
+ " --bar_interval number [optional] Bar interval, 1-1440. Default: 1.",
97
+ " --contract_lookback_months number [optional] Futures contract months ending at settlement. Default: 6.",
98
+ " --overwrite boolean [optional] Replace existing output files. Default: false.",
99
+ " --extended boolean [optional] Pass through to the request.",
100
+ " --dadj boolean [optional] Pass through to the request.",
101
+ " --badj boolean [optional] Pass through to the request.",
102
+ " --settlement boolean [optional] Pass through to the request.",
103
+ "",
104
+ "Examples:",
105
+ ' insight download_history --symbol "NASDAQ:AAPL" --bar_type minute --from 2024-01 --to 2024-06 --output_dir ./history --format csv --merge',
106
+ ' insight download_history --symbol "NASDAQ:AAPL" --bar_type second --from 2024-06-01 --to 2024-06-14 --output_dir ./history --concurrency 5',
107
+ ' insight download_history --symbol "CME_MINI:NQ1!" --bar_type hour --from 2025-01 --to 2025-12 --output_dir ./futures --format both',
108
+ ].join("\n");
109
+ }
122
110
  const toolExamples = {
123
111
  search_symbols: [
124
112
  'insight search_symbols --query "tesla"',
@@ -139,18 +127,14 @@ const toolExamples = {
139
127
  'insight get_symbol_history --symbol "NASDAQ:AAPL" --bar_type minute --start_date "2025-01"',
140
128
  'insight get_symbol_history --symbol "NASDAQ:AAPL" --bar_type hour --start_date "2025-06" --bar_interval 4',
141
129
  ],
142
- get_symbol_contracts: [
143
- 'insight get_symbol_contracts --symbol "CME_MINI:NQ1!"',
144
- ],
130
+ get_symbol_contracts: ['insight get_symbol_contracts --symbol "CME_MINI:NQ1!"'],
145
131
  get_symbol_info: [
146
132
  'insight get_symbol_info --symbol "NASDAQ:AAPL"',
147
133
  `insight get_symbol_info --symbol "NASDAQ:AAPL" --filter '{ "sector": sector, "market_cap": market_cap, "pe": price_earnings_ttm }'`,
148
134
  ],
149
- get_symbol_session: [
150
- 'insight get_symbol_session --symbol "NASDAQ:AAPL"',
151
- ],
135
+ get_symbol_session: ['insight get_symbol_session --symbol "NASDAQ:AAPL"'],
152
136
  get_symbol_fundamentals: [
153
- 'insight get_symbol_fundamentals --symbol "NASDAQ:AAPL" --filter \'$distinct(data.category)\'',
137
+ "insight get_symbol_fundamentals --symbol \"NASDAQ:AAPL\" --filter '$distinct(data.category)'",
154
138
  `insight get_symbol_fundamentals --symbol "NASDAQ:AAPL" --filter 'data[category="Valuation"].{ "id": id, "name": name, "value": value }'`,
155
139
  ],
156
140
  get_fundamentals_series: [
@@ -173,21 +157,12 @@ const toolExamples = {
173
157
  'insight get_options_strike --code "NASDAQ:AAPL" --range 5 --sortBy delta --sort desc',
174
158
  ],
175
159
  get_dividends: [
176
- 'insight get_dividends --c US',
160
+ "insight get_dividends --c US",
177
161
  'insight get_dividends --code "NASDAQ:AAPL" --w 4',
178
162
  ],
179
- get_earnings: [
180
- 'insight get_earnings --c US',
181
- 'insight get_earnings --code "NASDAQ:AAPL"',
182
- ],
183
- get_ipos: [
184
- 'insight get_ipos --c US',
185
- 'insight get_ipos --w 4',
186
- ],
187
- get_events: [
188
- 'insight get_events --c US',
189
- 'insight get_events --w 2',
190
- ],
163
+ get_earnings: ["insight get_earnings --c US", 'insight get_earnings --code "NASDAQ:AAPL"'],
164
+ get_ipos: ["insight get_ipos --c US", "insight get_ipos --w 4"],
165
+ get_events: ["insight get_events --c US", "insight get_events --w 2"],
191
166
  get_newsfeed: [
192
167
  'insight get_newsfeed --keywords "tesla,apple" --limit 10',
193
168
  `insight get_newsfeed --keywords "bitcoin" --filter 'data[[0..4]].{ "title": title, "published_at": published_at }'`,
@@ -206,25 +181,17 @@ const toolExamples = {
206
181
  'insight screen_crypto --fields "close,volume,market_cap" --sortBy market_cap --sortOrder desc',
207
182
  ],
208
183
  get_stock_screener_params: [
209
- 'insight get_stock_screener_params',
184
+ "insight get_stock_screener_params",
210
185
  `insight get_stock_screener_params --filter 'available_fields[$contains($, "volume")]'`,
211
186
  ],
212
- get_etf_screener_params: [
213
- 'insight get_etf_screener_params',
214
- ],
215
- get_bond_screener_params: [
216
- 'insight get_bond_screener_params',
217
- ],
218
- get_crypto_screener_params: [
219
- 'insight get_crypto_screener_params',
220
- ],
187
+ get_etf_screener_params: ["insight get_etf_screener_params"],
188
+ get_bond_screener_params: ["insight get_bond_screener_params"],
189
+ get_crypto_screener_params: ["insight get_crypto_screener_params"],
221
190
  get_documents: [
222
191
  'insight get_documents --code "NASDAQ:AAPL"',
223
192
  `insight get_documents --code "NASDAQ:AAPL" --filter '$[form="10-K" or form="10-Q"].{ "id": id, "title": title, "form": form }'`,
224
193
  ],
225
- get_document: [
226
- 'insight get_document --id "transcripts:2133670" --code "NASDAQ:AAPL" --text',
227
- ],
194
+ get_document: ['insight get_document --id "transcripts:2133670" --code "NASDAQ:AAPL" --text'],
228
195
  };
229
196
  export function buildToolHelp(tool) {
230
197
  const lines = [
@@ -235,13 +202,16 @@ export function buildToolHelp(tool) {
235
202
  "Parameters:",
236
203
  ];
237
204
  for (const [key, zodType] of Object.entries(tool.schema)) {
238
- const optional = zodType.isOptional() ? " [optional]" : "";
205
+ const optional = isOptionalZodType(zodType) ? " [optional]" : "";
239
206
  const desc = getZodDescription(zodType);
240
207
  const typeName = formatTypeName(zodType);
241
208
  lines.push(` --${key.padEnd(24)} ${typeName}${optional} ${desc}`);
242
209
  }
243
210
  // filter is always available
244
211
  lines.push(` --${"filter".padEnd(24)} string [optional] JSONata expression to transform the response`);
212
+ lines.push(` --${"store".padEnd(24)} enum(none|json|csv) [optional] Store the response instead of printing it. Default is none. csv is only for get_symbol_series.`);
213
+ lines.push(` --${"output_file".padEnd(24)} string [optional] File path for stored response.`);
214
+ lines.push(` --${"output_dir".padEnd(24)} string [optional] Directory for stored response when output_file is not set.`);
245
215
  const examples = toolExamples[tool.name];
246
216
  if (examples?.length) {
247
217
  lines.push("");
@@ -268,6 +238,7 @@ function formatTypeName(t) {
268
238
  }
269
239
  return name || "string";
270
240
  }
241
+ const REQUIRED_DOWNLOAD_HISTORY_ARGS = ["symbol", "bar_type", "from", "to", "output_dir"];
271
242
  export async function runCli(argv, io) {
272
243
  const { toolName, args, help } = parseArgs(argv);
273
244
  if (!toolName) {
@@ -277,7 +248,7 @@ export async function runCli(argv, io) {
277
248
  }
278
249
  // Built-in commands
279
250
  if (toolName === "login") {
280
- const key = args.key;
251
+ const key = await resolveLoginKey(args, io);
281
252
  if (!key) {
282
253
  io.write("Usage: insight login --key <your-api-key>\n\nGet your API key from https://insightsentry.com/dashboard");
283
254
  io.exit(1);
@@ -294,6 +265,41 @@ export async function runCli(argv, io) {
294
265
  io.exit(0);
295
266
  return;
296
267
  }
268
+ if (toolName === DOWNLOAD_HISTORY_COMMAND) {
269
+ if (help) {
270
+ io.write(buildDownloadHistoryHelp());
271
+ io.exit(0);
272
+ return;
273
+ }
274
+ const request = resolveRequest(io);
275
+ if (!request) {
276
+ io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
277
+ io.exit(1);
278
+ return;
279
+ }
280
+ try {
281
+ const historyArgs = await resolveDownloadHistoryArgs(args, io);
282
+ if (!historyArgs) {
283
+ io.write(`Error: Missing required options for download_history: ${missingDownloadHistoryArgs(args).join(", ")}\n\nRun: insight download_history --help`);
284
+ io.exit(1);
285
+ return;
286
+ }
287
+ const result = await downloadHistory(parseDownloadHistoryArgs(historyArgs), {
288
+ request,
289
+ onProgress: (event) => {
290
+ const target = event.files.length ? ` -> ${event.files.join(", ")}` : "";
291
+ const error = event.error ? ` (${event.error})` : "";
292
+ io.progress?.(`[${event.completed}/${event.total}] ${event.status} ${event.symbol} ${event.start_date}${target}${error}`);
293
+ },
294
+ });
295
+ io.write(JSON.stringify(result, null, 2));
296
+ }
297
+ catch (error) {
298
+ io.write(`Error: ${error.message}\n`);
299
+ io.exit(1);
300
+ }
301
+ return;
302
+ }
297
303
  // Find tool
298
304
  const tool = toolDefinitions.find((t) => t.name === toolName);
299
305
  if (!tool) {
@@ -308,28 +314,27 @@ export async function runCli(argv, io) {
308
314
  return;
309
315
  }
310
316
  // Resolve request function
311
- let request;
312
- if (io.request) {
313
- request = io.request;
317
+ const request = resolveRequest(io);
318
+ if (!request) {
319
+ io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
320
+ io.exit(1);
321
+ return;
314
322
  }
315
- else {
316
- const apiKey = resolveApiKey();
317
- if (!apiKey) {
318
- io.write("Error: No API key found.\n\nSet it with: insight login --key <your-api-key>\nOr export: export INSIGHTSENTRY_API_KEY=your-api-key\n\nGet your API key from https://insightsentry.com/dashboard");
319
- io.exit(1);
320
- return;
321
- }
322
- const client = new ApiClient(apiKey);
323
- request = (method, path, params) => client.request(method, path, params);
323
+ const resolvedArgs = await resolveToolArgs(args, tool, io);
324
+ if (!resolvedArgs) {
325
+ io.write(`Error: Missing required options for ${tool.name}: ${missingToolArgs(args, tool).join(", ")}\n\nRun: insight ${tool.name} --help`);
326
+ io.exit(1);
327
+ return;
324
328
  }
325
- const { filter: filterExpr, ...apiArgs } = coerceArgs(args, tool.schema);
326
329
  try {
327
- let result = await request(tool.method, tool.pathTemplate, apiArgs);
328
- if (filterExpr && typeof filterExpr === "string") {
329
- const expr = jsonata(filterExpr);
330
- result = await expr.evaluate(result);
331
- }
332
- const output = typeof result === "string" ? result : JSON.stringify(result, null, 2);
330
+ const outputValue = await runApiTool({
331
+ toolName: tool.name,
332
+ method: tool.method,
333
+ pathTemplate: tool.pathTemplate,
334
+ args: coerceArgs(resolvedArgs, tool.schema),
335
+ request,
336
+ });
337
+ const output = typeof outputValue === "string" ? outputValue : JSON.stringify(outputValue, null, 2);
333
338
  io.write(output);
334
339
  }
335
340
  catch (error) {
@@ -337,10 +342,132 @@ export async function runCli(argv, io) {
337
342
  io.exit(1);
338
343
  }
339
344
  }
345
+ async function resolveLoginKey(args, io) {
346
+ if (args.key?.trim())
347
+ return args.key.trim();
348
+ if (io.isInteractive !== true || !io.prompt)
349
+ return null;
350
+ const answer = (await io.prompt("API key: ")).trim();
351
+ return answer || null;
352
+ }
353
+ function resolveRequest(io) {
354
+ if (io.request)
355
+ return io.request;
356
+ const apiKey = resolveApiKey();
357
+ if (!apiKey)
358
+ return null;
359
+ const client = new ApiClient(apiKey);
360
+ return (method, path, params) => client.request(method, path, params);
361
+ }
362
+ function missingToolArgs(args, tool) {
363
+ return Object.entries(tool.schema)
364
+ .filter(([_key, zodType]) => !isOptionalZodType(zodType))
365
+ .map(([key]) => key)
366
+ .filter((key) => !args[key]);
367
+ }
368
+ async function resolveToolArgs(args, tool, io) {
369
+ const resolved = { ...args };
370
+ const missing = missingToolArgs(resolved, tool);
371
+ if (missing.length > 0) {
372
+ if (io.isInteractive !== true || !io.prompt)
373
+ return null;
374
+ for (const key of missing) {
375
+ const answer = (await io.prompt(`${toolPromptLabel(key)}: `)).trim();
376
+ if (answer)
377
+ resolved[key] = answer;
378
+ }
379
+ if (missingToolArgs(resolved, tool).length > 0)
380
+ return null;
381
+ }
382
+ if (io.isInteractive === true &&
383
+ io.prompt &&
384
+ isStoreEnabled(resolved.store) &&
385
+ !resolved.output_file &&
386
+ !resolved.output_dir) {
387
+ const answer = (await io.prompt("Output file: ")).trim();
388
+ if (answer)
389
+ resolved.output_file = answer;
390
+ }
391
+ return resolved;
392
+ }
393
+ function isStoreEnabled(value) {
394
+ return value === "json" || value === "csv";
395
+ }
396
+ function toolPromptLabel(key) {
397
+ return key
398
+ .split("_")
399
+ .filter(Boolean)
400
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
401
+ .join(" ");
402
+ }
403
+ function missingDownloadHistoryArgs(args) {
404
+ return REQUIRED_DOWNLOAD_HISTORY_ARGS.filter((key) => !args[key]);
405
+ }
406
+ async function resolveDownloadHistoryArgs(args, io) {
407
+ const missing = missingDownloadHistoryArgs(args);
408
+ if (missing.length === 0)
409
+ return args;
410
+ if (io.isInteractive !== true || !io.prompt)
411
+ return null;
412
+ const resolved = { ...args };
413
+ for (const key of missing) {
414
+ const answer = (await io.prompt(`${downloadHistoryPromptLabel(key)}: `)).trim();
415
+ if (answer)
416
+ resolved[key] = answer;
417
+ }
418
+ return missingDownloadHistoryArgs(resolved).length === 0 ? resolved : null;
419
+ }
420
+ function downloadHistoryPromptLabel(key) {
421
+ switch (key) {
422
+ case "symbol":
423
+ return "Symbol";
424
+ case "bar_type":
425
+ return "Bar type (second/minute/hour/day/week/month)";
426
+ case "from":
427
+ return "From";
428
+ case "to":
429
+ return "To";
430
+ case "output_dir":
431
+ return "Output directory";
432
+ }
433
+ }
434
+ function parseDownloadHistoryArgs(args) {
435
+ const options = {
436
+ symbol: args.symbol,
437
+ from: args.from,
438
+ to: args.to,
439
+ bar_type: args.bar_type,
440
+ output_dir: args.output_dir,
441
+ };
442
+ for (const key of ["bar_interval", "concurrency", "contract_lookback_months"]) {
443
+ if (args[key] !== undefined)
444
+ options[key] = Number(args[key]);
445
+ }
446
+ for (const key of [
447
+ "overwrite",
448
+ "merge",
449
+ "keep_chunks",
450
+ "extended",
451
+ "dadj",
452
+ "badj",
453
+ "settlement",
454
+ ]) {
455
+ if (args[key] !== undefined)
456
+ options[key] = args[key] === "true";
457
+ }
458
+ if (args.format !== undefined) {
459
+ options.format = args.format;
460
+ }
461
+ return options;
462
+ }
340
463
  export function main() {
464
+ const rl = createInterface({ input, output });
341
465
  runCli(process.argv.slice(2), {
342
- write: (s) => process.stdout.write(s + "\n"),
466
+ write: (s) => process.stdout.write(`${s}\n`),
467
+ progress: (s) => process.stderr.write(`${s}\n`),
468
+ prompt: (question) => rl.question(question),
469
+ isInteractive: process.stdin.isTTY && process.stdout.isTTY && process.env.CI !== "true",
343
470
  exit: (code) => process.exit(code),
344
- });
471
+ }).finally(() => rl.close());
345
472
  }
346
473
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAuB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQzF,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,sCAAsC;IACtC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBACnB,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACjB,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAA4B,EAC5B,MAAoC;IAEpC,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC;QACjC,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChC,SAAS;gBACX,CAAC;gBAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gGAAgG;AAChG,SAAS,aAAa,CAAC,CAAe;IACpC,MAAM,GAAG,GAAI,CAAS,CAAC,IAAI,EAAE,GAAG,IAAK,CAAS,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1D,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACjE,OAAO,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,CAAe;IACrC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAe;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAa,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG;QACZ,wDAAwD;QACxD,EAAE;QACF,2CAA2C;QAC3C,EAAE;QACF,QAAQ;KACT,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC9D,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,2HAA2H,CAAC,CAAC;IACxI,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;IACnG,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,YAAY,GAA6B;IAC7C,cAAc,EAAE;QACd,wCAAwC;QACxC,wDAAwD;QACxD,oEAAoE;KACrE;IACD,UAAU,EAAE;QACV,sDAAsD;QACtD,8CAA8C;QAC9C,uHAAuH;KACxH;IACD,iBAAiB,EAAE;QACjB,yEAAyE;QACzE,8FAA8F;QAC9F,2JAA2J;KAC5J;IACD,kBAAkB,EAAE;QAClB,4FAA4F;QAC5F,2GAA2G;KAC5G;IACD,oBAAoB,EAAE;QACpB,uDAAuD;KACxD;IACD,eAAe,EAAE;QACf,gDAAgD;QAChD,oIAAoI;KACrI;IACD,kBAAkB,EAAE;QAClB,mDAAmD;KACpD;IACD,uBAAuB,EAAE;QACvB,8FAA8F;QAC9F,yIAAyI;KAC1I;IACD,uBAAuB,EAAE;QACvB,yFAAyF;KAC1F;IACD,qBAAqB,EAAE;QACrB,mEAAmE;QACnE,oHAAoH;KACrH;IACD,YAAY,EAAE;QACZ,kEAAkE;QAClE,uGAAuG;KACxG;IACD,sBAAsB,EAAE;QACtB,2FAA2F;QAC3F,sGAAsG;KACvG;IACD,kBAAkB,EAAE;QAClB,0EAA0E;QAC1E,sFAAsF;KACvF;IACD,aAAa,EAAE;QACb,8BAA8B;QAC9B,kDAAkD;KACnD;IACD,YAAY,EAAE;QACZ,6BAA6B;QAC7B,2CAA2C;KAC5C;IACD,QAAQ,EAAE;QACR,yBAAyB;QACzB,wBAAwB;KACzB;IACD,UAAU,EAAE;QACV,2BAA2B;QAC3B,0BAA0B;KAC3B;IACD,YAAY,EAAE;QACZ,0DAA0D;QAC1D,oHAAoH;KACrH;IACD,aAAa,EAAE;QACb,yHAAyH;QACzH,yNAAyN;KAC1N;IACD,WAAW,EAAE;QACX,yGAAyG;KAC1G;IACD,YAAY,EAAE;QACZ,qIAAqI;KACtI;IACD,aAAa,EAAE;QACb,+FAA+F;KAChG;IACD,yBAAyB,EAAE;QACzB,mCAAmC;QACnC,uFAAuF;KACxF;IACD,uBAAuB,EAAE;QACvB,iCAAiC;KAClC;IACD,wBAAwB,EAAE;QACxB,kCAAkC;KACnC;IACD,0BAA0B,EAAE;QAC1B,oCAAoC;KACrC;IACD,aAAa,EAAE;QACb,4CAA4C;QAC5C,gIAAgI;KACjI;IACD,YAAY,EAAE;QACZ,6EAA6E;KAC9E;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,MAAM,KAAK,GAAG;QACZ,WAAW,IAAI,CAAC,IAAI,EAAE;QACtB,EAAE;QACF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACrC,EAAE;QACF,aAAa;KACd,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,GAAG,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,kEAAkE,CAAC,CAAC;IAEzG,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAe;IACxC,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC,WAAW,CAAC;IACxC,MAAM,GAAG,GAAI,CAAS,CAAC,IAAI,EAAE,GAAG,IAAK,CAAS,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1D,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,CAAe;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,IAAI,QAAQ,CAAC;AAC1B,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,EAAS;IACpD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,EAAE,CAAC,KAAK,CAAC,wGAAwG,CAAC,CAAC;YACnH,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,KAAK,CAAC,oBAAoB,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,YAAY,EAAE,CAAC;QACf,EAAE,CAAC,KAAK,CAAC,wBAAwB,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,YAAY;IACZ,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,EAAE,CAAC,KAAK,CAAC,wBAAwB,QAAQ,8CAA8C,CAAC,CAAC;QACzF,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,YAAY;IACZ,IAAI,IAAI,EAAE,CAAC;QACT,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAkB,CAAC;IACvB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,KAAK,CAAC,oMAAoM,CAAC,CAAC;YAC/M,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEpE,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrF,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5C,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KACnC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,6 +1,6 @@
1
- import { homedir, platform } from "os";
2
- import { join } from "path";
3
- import { readFileSync, writeFileSync, mkdirSync, unlinkSync } from "fs";
1
+ import { mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
2
+ import { homedir, platform } from "node:os";
3
+ import { join } from "node:path";
4
4
  function getConfigDir() {
5
5
  const p = platform();
6
6
  if (p === "win32") {
@@ -26,7 +26,7 @@ export function loadConfig() {
26
26
  export function saveConfig(config) {
27
27
  const dir = getConfigDir();
28
28
  mkdirSync(dir, { recursive: true });
29
- writeFileSync(getConfigPath(), JSON.stringify(config, null, 2) + "\n", { mode: 0o600 });
29
+ writeFileSync(getConfigPath(), `${JSON.stringify(config, null, 2)}\n`, { mode: 0o600 });
30
30
  }
31
31
  export function deleteConfig() {
32
32
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAMxE,SAAS,YAAY;IACnB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAC5E,CAAC;IACD,+CAA+C;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC,SAAS,YAAY;IACnB,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IACrB,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAC5E,CAAC;IACD,+CAA+C;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,aAAa,CAAC,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,63 @@
1
+ export type HistoryBarType = "second" | "minute" | "hour" | "day" | "week" | "month";
2
+ export type HistoryOutputFormat = "json" | "csv" | "both";
3
+ export type RequestFn = (method: string, pathTemplate: string, params: Record<string, any>) => Promise<any>;
4
+ export interface DownloadHistoryOptions {
5
+ symbol: string;
6
+ from: string;
7
+ to: string;
8
+ bar_type: HistoryBarType;
9
+ output_dir: string;
10
+ bar_interval?: number;
11
+ format?: HistoryOutputFormat;
12
+ merge?: boolean;
13
+ keep_chunks?: boolean;
14
+ concurrency?: number;
15
+ contract_lookback_months?: number;
16
+ overwrite?: boolean;
17
+ extended?: boolean;
18
+ dadj?: boolean;
19
+ badj?: boolean;
20
+ settlement?: boolean;
21
+ }
22
+ export interface HistoryProgressEvent {
23
+ completed: number;
24
+ total: number;
25
+ status: "saved" | "skipped" | "failed";
26
+ symbol: string;
27
+ start_date: string;
28
+ files: string[];
29
+ error?: string;
30
+ }
31
+ export interface DownloadHistoryDeps {
32
+ request: RequestFn;
33
+ onProgress?: (event: HistoryProgressEvent) => void;
34
+ }
35
+ export interface PlannedHistoryRequest {
36
+ method: "history" | "series";
37
+ params: Record<string, any>;
38
+ outputBasePath: string;
39
+ }
40
+ export interface HistoryPlan {
41
+ mode: "regular" | "futures";
42
+ requests: PlannedHistoryRequest[];
43
+ }
44
+ export interface DownloadHistoryResult {
45
+ mode: "regular" | "futures";
46
+ total: number;
47
+ completed: number;
48
+ skipped: number;
49
+ failed: number;
50
+ concurrency: number;
51
+ output_dir: string;
52
+ files: string[];
53
+ merged_file?: string;
54
+ errors: Array<{
55
+ symbol: string;
56
+ start_date: string;
57
+ message: string;
58
+ }>;
59
+ }
60
+ export declare function planHistoryRequests(options: DownloadHistoryOptions, deps: Pick<DownloadHistoryDeps, "request">): Promise<HistoryPlan>;
61
+ export declare function downloadHistory(options: DownloadHistoryOptions, deps: DownloadHistoryDeps): Promise<DownloadHistoryResult>;
62
+ export declare function responseToCsv(response: any): string;
63
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"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"}