@invinite-org/invinite-data-cli 2.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +341 -374
- package/claude-plugin/.claude-plugin/plugin.json +1 -1
- package/claude-plugin/agents/invinite-data.md +59 -28
- package/claude-plugin/commands/analyze-earnings-call.md +15 -14
- package/claude-plugin/commands/analyze-filing.md +8 -7
- package/claude-plugin/commands/compare-companies.md +5 -5
- package/claude-plugin/commands/financial-research.md +9 -9
- package/claude-plugin/commands/ownership-review.md +6 -6
- package/claude-plugin/skills/invinite-data-cli/SKILL.md +466 -570
- package/dist/bin/invd.js +11 -2
- package/dist/bin/invd.js.map +1 -1
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +48 -29
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client/api-client.d.ts +24 -24
- package/dist/src/client/api-client.js +52 -70
- package/dist/src/client/api-client.js.map +1 -1
- package/dist/src/client/pagination.d.ts +12 -11
- package/dist/src/client/pagination.js +47 -56
- package/dist/src/client/pagination.js.map +1 -1
- package/dist/src/commands/agent-setup.d.ts +21 -0
- package/dist/src/commands/agent-setup.js +112 -0
- package/dist/src/commands/agent-setup.js.map +1 -0
- package/dist/src/commands/api.d.ts +27 -0
- package/dist/src/commands/api.js +180 -0
- package/dist/src/commands/api.js.map +1 -0
- package/dist/src/commands/auth.d.ts +37 -0
- package/dist/src/commands/auth.js +336 -0
- package/dist/src/commands/auth.js.map +1 -0
- package/dist/src/commands/completion.d.ts +7 -0
- package/dist/src/commands/completion.js +115 -0
- package/dist/src/commands/completion.js.map +1 -0
- package/dist/src/commands/config.d.ts +4 -0
- package/dist/src/commands/config.js +85 -48
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/plugin.d.ts +8 -0
- package/dist/src/commands/plugin.js +8 -10
- package/dist/src/commands/plugin.js.map +1 -1
- package/dist/src/config/auth.d.ts +17 -1
- package/dist/src/config/auth.js +50 -36
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config-manager.d.ts +56 -4
- package/dist/src/config/config-manager.js +173 -29
- package/dist/src/config/config-manager.js.map +1 -1
- package/dist/src/config/toml.d.ts +7 -0
- package/dist/src/config/toml.js +79 -0
- package/dist/src/config/toml.js.map +1 -0
- package/dist/src/examples.d.ts +22 -0
- package/dist/src/examples.js +56 -0
- package/dist/src/examples.js.map +1 -0
- package/dist/src/generated/cli-manifest.json +5583 -4916
- package/dist/src/hand-written-commands.d.ts +11 -41
- package/dist/src/hand-written-commands.js +7 -17
- package/dist/src/hand-written-commands.js.map +1 -1
- package/dist/src/output/jq.d.ts +15 -0
- package/dist/src/output/jq.js +234 -0
- package/dist/src/output/jq.js.map +1 -0
- package/dist/src/output/options.d.ts +29 -0
- package/dist/src/output/options.js +72 -0
- package/dist/src/output/options.js.map +1 -0
- package/dist/src/output/render.d.ts +54 -0
- package/dist/src/output/render.js +160 -0
- package/dist/src/output/render.js.map +1 -0
- package/dist/src/shared/errors.d.ts +59 -15
- package/dist/src/shared/errors.js +126 -38
- package/dist/src/shared/errors.js.map +1 -1
- package/dist/src/shared/prompt.d.ts +10 -0
- package/dist/src/shared/prompt.js +24 -0
- package/dist/src/shared/prompt.js.map +1 -0
- package/dist/src/shared/spinner.js +2 -1
- package/dist/src/shared/spinner.js.map +1 -1
- package/dist/src/spec-commands.d.ts +14 -6
- package/dist/src/spec-commands.js +454 -174
- package/dist/src/spec-commands.js.map +1 -1
- package/dist/src/spec-flags.d.ts +11 -6
- package/dist/src/spec-flags.js +14 -7
- package/dist/src/spec-flags.js.map +1 -1
- package/dist/src/spec-manifest.d.ts +416 -116
- package/dist/src/spec-manifest.js +44 -13
- package/dist/src/spec-manifest.js.map +1 -1
- package/dist/src/update-notifier.d.ts +9 -0
- package/dist/src/update-notifier.js +63 -0
- package/dist/src/update-notifier.js.map +1 -0
- package/package.json +2 -3
- package/dist/src/client/earnings-live.d.ts +0 -194
- package/dist/src/client/earnings-live.js +0 -300
- package/dist/src/client/earnings-live.js.map +0 -1
- package/dist/src/client/news-live.d.ts +0 -72
- package/dist/src/client/news-live.js +0 -120
- package/dist/src/client/news-live.js.map +0 -1
- package/dist/src/client/pdf.d.ts +0 -15
- package/dist/src/client/pdf.js +0 -15
- package/dist/src/client/pdf.js.map +0 -1
- package/dist/src/client/websocket-client.d.ts +0 -19
- package/dist/src/client/websocket-client.js +0 -174
- package/dist/src/client/websocket-client.js.map +0 -1
- package/dist/src/commands/earnings.d.ts +0 -16
- package/dist/src/commands/earnings.js +0 -464
- package/dist/src/commands/earnings.js.map +0 -1
- package/dist/src/commands/login.d.ts +0 -15
- package/dist/src/commands/login.js +0 -249
- package/dist/src/commands/login.js.map +0 -1
- package/dist/src/commands/news.d.ts +0 -2
- package/dist/src/commands/news.js +0 -69
- package/dist/src/commands/news.js.map +0 -1
- package/dist/src/commands/sec.d.ts +0 -47
- package/dist/src/commands/sec.js +0 -191
- package/dist/src/commands/sec.js.map +0 -1
- package/dist/src/commands/ws.d.ts +0 -33
- package/dist/src/commands/ws.js +0 -116
- package/dist/src/commands/ws.js.map +0 -1
- package/dist/src/formatters/json-formatter.d.ts +0 -1
- package/dist/src/formatters/json-formatter.js +0 -4
- package/dist/src/formatters/json-formatter.js.map +0 -1
- package/dist/src/formatters/table-formatter.d.ts +0 -4
- package/dist/src/formatters/table-formatter.js +0 -73
- package/dist/src/formatters/table-formatter.js.map +0 -1
- package/dist/src/formatters/time.d.ts +0 -2
- package/dist/src/formatters/time.js +0 -14
- package/dist/src/formatters/time.js.map +0 -1
- package/dist/src/shared/output.d.ts +0 -3
- package/dist/src/shared/output.js +0 -13
- package/dist/src/shared/output.js.map +0 -1
- package/dist/src/shared/readiness.d.ts +0 -4
- package/dist/src/shared/readiness.js +0 -60
- package/dist/src/shared/readiness.js.map +0 -1
- package/dist/src/shared/types.d.ts +0 -11
- package/dist/src/shared/types.js +0 -2
- package/dist/src/shared/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,12 @@ export declare const RUNTIMES: Record<Runtime, RuntimeConfig>;
|
|
|
10
10
|
export declare const INSTALLED_PATHS: Record<Runtime, string[]>;
|
|
11
11
|
/** Removes the runtime's installed files from `targetDir`; returns how many were removed. */
|
|
12
12
|
export declare function uninstallRuntime(runtime: Runtime, targetDir: string): number;
|
|
13
|
+
/** The bundled `claude-plugin/`: two levels above this file under tsx (`src/commands/`), three in the build. */
|
|
14
|
+
export declare function getSourceDir(): string;
|
|
13
15
|
export declare function registerPluginCommands(program: Command): void;
|
|
16
|
+
export declare function resolveRuntimes(opts: Record<string, boolean>): Runtime[] | null;
|
|
17
|
+
export declare function resolveScope(opts: Record<string, boolean>): 'global' | 'local' | null;
|
|
18
|
+
export declare function promptInteractive(runtimes: Runtime[] | null, scope: 'global' | 'local' | null): Promise<{
|
|
19
|
+
runtimes: Runtime[];
|
|
20
|
+
scope: 'global' | 'local';
|
|
21
|
+
}>;
|
|
@@ -182,13 +182,11 @@ function removeFile(filePath) {
|
|
|
182
182
|
return false;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
function getSourceDir() {
|
|
191
|
-
return path.join(getPackageRoot(), 'claude-plugin');
|
|
185
|
+
/** The bundled `claude-plugin/`: two levels above this file under tsx (`src/commands/`), three in the build. */
|
|
186
|
+
export function getSourceDir() {
|
|
187
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
188
|
+
const candidates = [path.resolve(here, '..', '..', '..', 'claude-plugin'), path.resolve(here, '..', '..', 'claude-plugin')];
|
|
189
|
+
return candidates.find(candidate => fs.existsSync(path.join(candidate, '.claude-plugin'))) ?? candidates[0];
|
|
192
190
|
}
|
|
193
191
|
// --- Command registration ---
|
|
194
192
|
export function registerPluginCommands(program) {
|
|
@@ -269,20 +267,20 @@ export function registerPluginCommands(program) {
|
|
|
269
267
|
});
|
|
270
268
|
}
|
|
271
269
|
// --- Helpers ---
|
|
272
|
-
function resolveRuntimes(opts) {
|
|
270
|
+
export function resolveRuntimes(opts) {
|
|
273
271
|
if (opts.all)
|
|
274
272
|
return Object.keys(RUNTIMES);
|
|
275
273
|
const selected = Object.keys(RUNTIMES).filter((r) => opts[r]);
|
|
276
274
|
return selected.length > 0 ? selected : null;
|
|
277
275
|
}
|
|
278
|
-
function resolveScope(opts) {
|
|
276
|
+
export function resolveScope(opts) {
|
|
279
277
|
if (opts.global)
|
|
280
278
|
return 'global';
|
|
281
279
|
if (opts.local)
|
|
282
280
|
return 'local';
|
|
283
281
|
return null;
|
|
284
282
|
}
|
|
285
|
-
async function promptInteractive(runtimes, scope) {
|
|
283
|
+
export async function promptInteractive(runtimes, scope) {
|
|
286
284
|
const { default: Enquirer } = await import('enquirer');
|
|
287
285
|
const enquirer = new Enquirer();
|
|
288
286
|
if (!runtimes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/commands/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,24 @@ export type ApiKeySource = 'environment' | 'dotenv' | 'keychain' | 'config';
|
|
|
2
2
|
export interface ResolvedApiKey {
|
|
3
3
|
key: string;
|
|
4
4
|
source: ApiKeySource;
|
|
5
|
+
/** The variable (environment / `.env`) or store the key came from, for `invd auth status`. */
|
|
6
|
+
origin: string;
|
|
5
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* The key variables, in precedence order. `INVD_API_KEY` is 4.0's name; `INVINITE_DATA_API_KEY` (3.x, the plugin,
|
|
10
|
+
* the MCP agent) is still read after it.
|
|
11
|
+
*/
|
|
12
|
+
export declare const KEY_VARIABLES: readonly ["INVD_API_KEY", "INVINITE_DATA_API_KEY"];
|
|
13
|
+
/** The first key variable a `.env` file in the current directory sets. */
|
|
14
|
+
export declare function readDotEnvKey(cwd?: string): {
|
|
15
|
+
key: string;
|
|
16
|
+
variable: string;
|
|
17
|
+
} | undefined;
|
|
18
|
+
/** `INVD_API_KEY` (then `INVINITE_DATA_API_KEY`) > `./.env` > the OS keychain > the config file. */
|
|
6
19
|
export declare function resolveApiKey(): Promise<ResolvedApiKey>;
|
|
7
20
|
export declare function getApiKey(): Promise<string>;
|
|
8
|
-
|
|
21
|
+
/** Stores a key in the keychain, else in the global config file. Returns where it went. */
|
|
22
|
+
export declare function setApiKey(key: string): Promise<'keychain' | 'config'>;
|
|
9
23
|
export declare function clearApiKey(): Promise<void>;
|
|
24
|
+
/** `sk_live_…abcd`: enough to recognise a key, never enough to use it. */
|
|
25
|
+
export declare const keyHint: (key: string) => string;
|
package/dist/src/config/auth.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { AuthRequiredError } from '../shared/errors.js';
|
|
3
4
|
import { deleteStoredApiKey, getStoredApiKey, setStoredApiKey } from './config-manager.js';
|
|
5
|
+
/**
|
|
6
|
+
* The key variables, in precedence order. `INVD_API_KEY` is 4.0's name; `INVINITE_DATA_API_KEY` (3.x, the plugin,
|
|
7
|
+
* the MCP agent) is still read after it.
|
|
8
|
+
*/
|
|
9
|
+
export const KEY_VARIABLES = ['INVD_API_KEY', 'INVINITE_DATA_API_KEY'];
|
|
4
10
|
async function tryKeytar() {
|
|
5
11
|
try {
|
|
6
|
-
//
|
|
12
|
+
// keytar is optional: a dynamic import an absent package turns into `null`.
|
|
7
13
|
const mod = await Function('return import("keytar")')();
|
|
8
14
|
return mod;
|
|
9
15
|
}
|
|
@@ -11,75 +17,83 @@ async function tryKeytar() {
|
|
|
11
17
|
return null;
|
|
12
18
|
}
|
|
13
19
|
}
|
|
14
|
-
|
|
20
|
+
/** The first key variable a `.env` file in the current directory sets. */
|
|
21
|
+
export function readDotEnvKey(cwd = process.cwd()) {
|
|
22
|
+
let content;
|
|
15
23
|
try {
|
|
16
|
-
|
|
17
|
-
for (const line of content.split('\n')) {
|
|
18
|
-
const trimmed = line.trim();
|
|
19
|
-
if (trimmed.startsWith('#') || !trimmed)
|
|
20
|
-
continue;
|
|
21
|
-
const match = trimmed.match(/^INVINITE_DATA_API_KEY\s*=\s*(.+)$/);
|
|
22
|
-
if (match) {
|
|
23
|
-
let value = match[1].trim();
|
|
24
|
-
// Strip surrounding quotes
|
|
25
|
-
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
26
|
-
value = value.slice(1, -1);
|
|
27
|
-
}
|
|
28
|
-
return value;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
24
|
+
content = readFileSync(join(cwd, '.env'), 'utf-8');
|
|
31
25
|
}
|
|
32
26
|
catch {
|
|
33
|
-
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const found = new Map();
|
|
30
|
+
for (const line of content.split('\n')) {
|
|
31
|
+
const trimmed = line.trim();
|
|
32
|
+
if (trimmed.startsWith('#') || !trimmed)
|
|
33
|
+
continue;
|
|
34
|
+
const match = /^(?:export\s+)?([A-Z_]+)\s*=\s*(.+)$/.exec(trimmed);
|
|
35
|
+
if (!match?.[1] || match[2] === undefined)
|
|
36
|
+
continue;
|
|
37
|
+
let value = match[2].trim();
|
|
38
|
+
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
39
|
+
value = value.slice(1, -1);
|
|
40
|
+
}
|
|
41
|
+
found.set(match[1], value);
|
|
42
|
+
}
|
|
43
|
+
for (const variable of KEY_VARIABLES) {
|
|
44
|
+
const key = found.get(variable);
|
|
45
|
+
if (key)
|
|
46
|
+
return { key, variable };
|
|
34
47
|
}
|
|
35
48
|
return undefined;
|
|
36
49
|
}
|
|
37
50
|
const SERVICE = 'invinite-data-cli';
|
|
38
51
|
const ACCOUNT = 'api-key';
|
|
52
|
+
/** `INVD_API_KEY` (then `INVINITE_DATA_API_KEY`) > `./.env` > the OS keychain > the config file. */
|
|
39
53
|
export async function resolveApiKey() {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
if (
|
|
47
|
-
return { key:
|
|
48
|
-
// 3. OS keychain via keytar
|
|
54
|
+
for (const variable of KEY_VARIABLES) {
|
|
55
|
+
const key = process.env[variable];
|
|
56
|
+
if (key)
|
|
57
|
+
return { key, source: 'environment', origin: variable };
|
|
58
|
+
}
|
|
59
|
+
const dotEnv = readDotEnvKey();
|
|
60
|
+
if (dotEnv)
|
|
61
|
+
return { key: dotEnv.key, source: 'dotenv', origin: `.env ${dotEnv.variable}` };
|
|
49
62
|
const keytar = await tryKeytar();
|
|
50
63
|
if (keytar) {
|
|
51
64
|
const keychainKey = await keytar.getPassword(SERVICE, ACCOUNT);
|
|
52
65
|
if (keychainKey)
|
|
53
|
-
return { key: keychainKey, source: 'keychain' };
|
|
66
|
+
return { key: keychainKey, source: 'keychain', origin: 'OS keychain' };
|
|
54
67
|
}
|
|
55
|
-
// 4. Conf fallback
|
|
56
68
|
const storedKey = getStoredApiKey();
|
|
57
69
|
if (storedKey)
|
|
58
|
-
return { key: storedKey, source: 'config' };
|
|
59
|
-
throw new
|
|
70
|
+
return { key: storedKey, source: 'config', origin: 'config.toml api_key' };
|
|
71
|
+
throw new AuthRequiredError();
|
|
60
72
|
}
|
|
61
73
|
export async function getApiKey() {
|
|
62
74
|
const resolved = await resolveApiKey();
|
|
63
75
|
return resolved.key;
|
|
64
76
|
}
|
|
77
|
+
/** Stores a key in the keychain, else in the global config file. Returns where it went. */
|
|
65
78
|
export async function setApiKey(key) {
|
|
66
79
|
const keytar = await tryKeytar();
|
|
67
80
|
if (keytar) {
|
|
68
81
|
await keytar.setPassword(SERVICE, ACCOUNT, key);
|
|
82
|
+
return 'keychain';
|
|
69
83
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
84
|
+
setStoredApiKey(key);
|
|
85
|
+
return 'config';
|
|
73
86
|
}
|
|
74
87
|
export async function clearApiKey() {
|
|
75
88
|
const keytar = await tryKeytar();
|
|
76
89
|
try {
|
|
77
|
-
if (keytar)
|
|
90
|
+
if (keytar)
|
|
78
91
|
await keytar.deletePassword(SERVICE, ACCOUNT);
|
|
79
|
-
}
|
|
80
92
|
}
|
|
81
93
|
finally {
|
|
82
94
|
deleteStoredApiKey();
|
|
83
95
|
}
|
|
84
96
|
}
|
|
97
|
+
/** `sk_live_…abcd`: enough to recognise a key, never enough to use it. */
|
|
98
|
+
export const keyHint = (key) => (key.length <= 8 ? '…' : `${key.slice(0, 4)}…${key.slice(-4)}`);
|
|
85
99
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,69 @@
|
|
|
1
1
|
/** The Invinite Data app (keys, usage, plan, docs) — the APP origin, never the API's. */
|
|
2
2
|
export declare const DASHBOARD_URL = "https://data.invinite.com";
|
|
3
|
-
/** The Data API's public origin (REST,
|
|
3
|
+
/** The Data API's public origin (REST, MCP). */
|
|
4
4
|
export declare const DEFAULT_BASE_URL = "https://api.data.invinite.com";
|
|
5
5
|
/**
|
|
6
|
-
* Retired API origins.
|
|
7
|
-
*
|
|
8
|
-
* themselves (`invd config set-url`) is never touched.
|
|
6
|
+
* Retired API origins: an install that persisted one (3.x wrote its defaults into its config file) is moved to
|
|
7
|
+
* `DEFAULT_BASE_URL` once by `getBaseUrl()`. A host the person set themselves is never touched.
|
|
9
8
|
*/
|
|
10
9
|
export declare const LEGACY_BASE_URLS: readonly string[];
|
|
10
|
+
/**
|
|
11
|
+
* The settings `invd config` knows, each with its environment variable. Precedence: flags > env > `./.invd.toml`
|
|
12
|
+
* > `$XDG_CONFIG_HOME/invd/config.toml` (`INVD_CONFIG_DIR` replaces the directory) > the default.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SETTINGS: {
|
|
15
|
+
readonly base_url: {
|
|
16
|
+
readonly env: "INVD_BASE_URL";
|
|
17
|
+
readonly default: "https://api.data.invinite.com";
|
|
18
|
+
readonly description: "API origin";
|
|
19
|
+
};
|
|
20
|
+
readonly output: {
|
|
21
|
+
readonly env: "INVD_OUTPUT";
|
|
22
|
+
readonly default: "";
|
|
23
|
+
readonly description: "default output: table, plain, json, jsonl, csv";
|
|
24
|
+
};
|
|
25
|
+
readonly confirm_credits: {
|
|
26
|
+
readonly env: "INVD_CONFIRM_CREDITS";
|
|
27
|
+
readonly default: "10";
|
|
28
|
+
readonly description: "--all asks first when one page costs at least this many credits";
|
|
29
|
+
};
|
|
30
|
+
readonly pager: {
|
|
31
|
+
readonly env: "INVD_PAGER";
|
|
32
|
+
readonly default: "";
|
|
33
|
+
readonly description: "pager for long human output (else $PAGER; empty = none)";
|
|
34
|
+
};
|
|
35
|
+
readonly api_key: {
|
|
36
|
+
readonly env: "INVD_API_KEY";
|
|
37
|
+
readonly default: "";
|
|
38
|
+
readonly description: "API key fallback when no keychain is available (global file only)";
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export type SettingKey = keyof typeof SETTINGS;
|
|
42
|
+
export type SettingSource = 'env' | 'local' | 'global' | 'default';
|
|
43
|
+
export declare const isSettingKey: (key: string) => key is SettingKey;
|
|
44
|
+
/** `$INVD_CONFIG_DIR`, else `$XDG_CONFIG_HOME/invd`, else `~/.config/invd` (`%APPDATA%\invd` on Windows). */
|
|
45
|
+
export declare function configDir(): string;
|
|
46
|
+
export declare const globalConfigPath: () => string;
|
|
47
|
+
export declare const localConfigPath: () => string;
|
|
48
|
+
/** Where 3.x's `conf` package kept its JSON (`invinite-data-cli-nodejs`), per platform. */
|
|
49
|
+
export declare function legacyConfPaths(): string[];
|
|
50
|
+
/** `http://localhost:4000`, `http://127.0.0.1:…`, `http://[::1]:…`: a host on this machine. */
|
|
51
|
+
export declare function isLoopbackUrl(value: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* One setting's effective value and where it came from. `api_key` is never read from a project file, and a project
|
|
54
|
+
* file's `base_url` only for a loopback host.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getSetting(key: SettingKey): {
|
|
57
|
+
value: string;
|
|
58
|
+
source: SettingSource;
|
|
59
|
+
};
|
|
60
|
+
export declare function setSetting(key: SettingKey, value: string, scope?: 'global' | 'local'): string;
|
|
61
|
+
export declare function unsetSetting(key: SettingKey, scope?: 'global' | 'local'): string;
|
|
11
62
|
export declare function getBaseUrl(): string;
|
|
12
63
|
export declare function setBaseUrl(url: string): void;
|
|
13
64
|
export declare function getStoredApiKey(): string | undefined;
|
|
14
65
|
export declare function setStoredApiKey(key: string): void;
|
|
15
66
|
export declare function deleteStoredApiKey(): void;
|
|
67
|
+
/** Removes the global config file (the keychain entry is `invd auth logout`'s). */
|
|
16
68
|
export declare function resetConfig(): void;
|
|
17
69
|
export declare function showConfig(): Record<string, unknown>;
|
|
@@ -1,53 +1,197 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { parseToml, stringifyToml } from './toml.js';
|
|
2
5
|
/** The Invinite Data app (keys, usage, plan, docs) — the APP origin, never the API's. */
|
|
3
6
|
export const DASHBOARD_URL = 'https://data.invinite.com';
|
|
4
|
-
/** The Data API's public origin (REST,
|
|
7
|
+
/** The Data API's public origin (REST, MCP). */
|
|
5
8
|
export const DEFAULT_BASE_URL = 'https://api.data.invinite.com';
|
|
6
9
|
/**
|
|
7
|
-
* Retired API origins.
|
|
8
|
-
*
|
|
9
|
-
* themselves (`invd config set-url`) is never touched.
|
|
10
|
+
* Retired API origins: an install that persisted one (3.x wrote its defaults into its config file) is moved to
|
|
11
|
+
* `DEFAULT_BASE_URL` once by `getBaseUrl()`. A host the person set themselves is never touched.
|
|
10
12
|
*/
|
|
11
13
|
export const LEGACY_BASE_URLS = ['https://data.invinite.com'];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
default: '',
|
|
24
|
-
},
|
|
14
|
+
/**
|
|
15
|
+
* The settings `invd config` knows, each with its environment variable. Precedence: flags > env > `./.invd.toml`
|
|
16
|
+
* > `$XDG_CONFIG_HOME/invd/config.toml` (`INVD_CONFIG_DIR` replaces the directory) > the default.
|
|
17
|
+
*/
|
|
18
|
+
export const SETTINGS = {
|
|
19
|
+
base_url: { env: 'INVD_BASE_URL', default: DEFAULT_BASE_URL, description: 'API origin' },
|
|
20
|
+
output: { env: 'INVD_OUTPUT', default: '', description: 'default output: table, plain, json, jsonl, csv' },
|
|
21
|
+
confirm_credits: {
|
|
22
|
+
env: 'INVD_CONFIRM_CREDITS',
|
|
23
|
+
default: '10',
|
|
24
|
+
description: '--all asks first when one page costs at least this many credits',
|
|
25
25
|
},
|
|
26
|
-
}
|
|
26
|
+
pager: { env: 'INVD_PAGER', default: '', description: 'pager for long human output (else $PAGER; empty = none)' },
|
|
27
|
+
api_key: { env: 'INVD_API_KEY', default: '', description: 'API key fallback when no keychain is available (global file only)' },
|
|
28
|
+
};
|
|
29
|
+
export const isSettingKey = (key) => Object.hasOwn(SETTINGS, key);
|
|
30
|
+
/** `$INVD_CONFIG_DIR`, else `$XDG_CONFIG_HOME/invd`, else `~/.config/invd` (`%APPDATA%\invd` on Windows). */
|
|
31
|
+
export function configDir() {
|
|
32
|
+
if (process.env.INVD_CONFIG_DIR)
|
|
33
|
+
return process.env.INVD_CONFIG_DIR;
|
|
34
|
+
if (process.env.XDG_CONFIG_HOME)
|
|
35
|
+
return join(process.env.XDG_CONFIG_HOME, 'invd');
|
|
36
|
+
if (process.platform === 'win32' && process.env.APPDATA)
|
|
37
|
+
return join(process.env.APPDATA, 'invd');
|
|
38
|
+
return join(homedir(), '.config', 'invd');
|
|
39
|
+
}
|
|
40
|
+
export const globalConfigPath = () => join(configDir(), 'config.toml');
|
|
41
|
+
export const localConfigPath = () => join(process.cwd(), '.invd.toml');
|
|
42
|
+
/** Where 3.x's `conf` package kept its JSON (`invinite-data-cli-nodejs`), per platform. */
|
|
43
|
+
export function legacyConfPaths() {
|
|
44
|
+
if (process.env.INVD_CONFIG_DIR)
|
|
45
|
+
return [join(process.env.INVD_CONFIG_DIR, 'config.json')];
|
|
46
|
+
const home = homedir();
|
|
47
|
+
if (process.platform === 'darwin')
|
|
48
|
+
return [join(home, 'Library/Preferences/invinite-data-cli-nodejs/config.json')];
|
|
49
|
+
if (process.platform === 'win32') {
|
|
50
|
+
return [join(process.env.APPDATA ?? join(home, 'AppData/Roaming'), 'invinite-data-cli-nodejs/Config/config.json')];
|
|
51
|
+
}
|
|
52
|
+
return [join(process.env.XDG_CONFIG_HOME ?? join(home, '.config'), 'invinite-data-cli-nodejs/config.json')];
|
|
53
|
+
}
|
|
54
|
+
function readFile(path) {
|
|
55
|
+
if (!existsSync(path))
|
|
56
|
+
return {};
|
|
57
|
+
try {
|
|
58
|
+
return parseToml(readFileSync(path, 'utf8'));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw new Error(`${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function writeFile(path, values) {
|
|
65
|
+
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
66
|
+
writeFileSync(path, stringifyToml(values, 'invd configuration (invd config set <key> <value>)'), { mode: 0o600 });
|
|
67
|
+
try {
|
|
68
|
+
chmodSync(path, 0o600); // the file may hold api_key
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// a filesystem without modes
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
let imported = false;
|
|
75
|
+
/**
|
|
76
|
+
* The 3.x settings (base URL, the config-stored key) carried into `config.toml` once, the first time 4.x reads a
|
|
77
|
+
* config while no `config.toml` exists. The old file is left in place (3.x may still be installed elsewhere).
|
|
78
|
+
*/
|
|
79
|
+
function importLegacyOnce() {
|
|
80
|
+
if (imported)
|
|
81
|
+
return;
|
|
82
|
+
imported = true;
|
|
83
|
+
const target = globalConfigPath();
|
|
84
|
+
if (existsSync(target))
|
|
85
|
+
return;
|
|
86
|
+
for (const path of legacyConfPaths()) {
|
|
87
|
+
if (!existsSync(path))
|
|
88
|
+
continue;
|
|
89
|
+
try {
|
|
90
|
+
const legacy = JSON.parse(readFileSync(path, 'utf8'));
|
|
91
|
+
const values = {};
|
|
92
|
+
if (typeof legacy.baseUrl === 'string' && legacy.baseUrl && legacy.baseUrl !== DEFAULT_BASE_URL
|
|
93
|
+
&& !LEGACY_BASE_URLS.includes(legacy.baseUrl.replace(/\/+$/, '')))
|
|
94
|
+
values.base_url = legacy.baseUrl;
|
|
95
|
+
if (typeof legacy.apiKey === 'string' && legacy.apiKey)
|
|
96
|
+
values.api_key = legacy.apiKey;
|
|
97
|
+
if (Object.keys(values).length > 0)
|
|
98
|
+
writeFile(target, values);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// unreadable: nothing to carry over
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const globalValues = () => {
|
|
107
|
+
importLegacyOnce();
|
|
108
|
+
return readFile(globalConfigPath());
|
|
109
|
+
};
|
|
110
|
+
const LOOPBACK_HOSTS = ['localhost', '127.0.0.1', '[::1]'];
|
|
111
|
+
/** `http://localhost:4000`, `http://127.0.0.1:…`, `http://[::1]:…`: a host on this machine. */
|
|
112
|
+
export function isLoopbackUrl(value) {
|
|
113
|
+
try {
|
|
114
|
+
return LOOPBACK_HOSTS.includes(new URL(value).hostname);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* A project file (`./.invd.toml`, e.g. in a cloned repository) never decides where the key goes: its `base_url` may
|
|
122
|
+
* only name a loopback host (local development); any other host is refused, not followed.
|
|
123
|
+
*/
|
|
124
|
+
function checkProjectBaseUrl(value, path) {
|
|
125
|
+
if (isLoopbackUrl(value))
|
|
126
|
+
return;
|
|
127
|
+
throw new Error(`${path}: base_url ${value} refused — a project file may only point invd at localhost (it would `
|
|
128
|
+
+ 'receive your API key); set INVD_BASE_URL or `invd config set base_url` (global) instead');
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* One setting's effective value and where it came from. `api_key` is never read from a project file, and a project
|
|
132
|
+
* file's `base_url` only for a loopback host.
|
|
133
|
+
*/
|
|
134
|
+
export function getSetting(key) {
|
|
135
|
+
const env = process.env[SETTINGS[key].env];
|
|
136
|
+
if (env)
|
|
137
|
+
return { value: env, source: 'env' };
|
|
138
|
+
if (key !== 'api_key') {
|
|
139
|
+
const local = readFile(localConfigPath())[key];
|
|
140
|
+
if (key === 'base_url' && local !== undefined)
|
|
141
|
+
checkProjectBaseUrl(String(local), localConfigPath());
|
|
142
|
+
if (local !== undefined)
|
|
143
|
+
return { value: String(local), source: 'local' };
|
|
144
|
+
}
|
|
145
|
+
const global = globalValues()[key];
|
|
146
|
+
if (global !== undefined)
|
|
147
|
+
return { value: String(global), source: 'global' };
|
|
148
|
+
return { value: SETTINGS[key].default, source: 'default' };
|
|
149
|
+
}
|
|
150
|
+
export function setSetting(key, value, scope = 'global') {
|
|
151
|
+
if (key === 'api_key' && scope === 'local') {
|
|
152
|
+
throw new Error('api_key is never written to a project file (use invd auth login, or INVD_API_KEY)');
|
|
153
|
+
}
|
|
154
|
+
if (key === 'base_url' && scope === 'local')
|
|
155
|
+
checkProjectBaseUrl(value, localConfigPath());
|
|
156
|
+
const path = scope === 'local' ? localConfigPath() : globalConfigPath();
|
|
157
|
+
const values = scope === 'local' ? readFile(path) : globalValues();
|
|
158
|
+
writeFile(path, { ...values, [key]: key === 'confirm_credits' ? Number(value) : value });
|
|
159
|
+
return path;
|
|
160
|
+
}
|
|
161
|
+
export function unsetSetting(key, scope = 'global') {
|
|
162
|
+
const path = scope === 'local' ? localConfigPath() : globalConfigPath();
|
|
163
|
+
const values = scope === 'local' ? readFile(path) : globalValues();
|
|
164
|
+
delete values[key];
|
|
165
|
+
writeFile(path, values);
|
|
166
|
+
return path;
|
|
167
|
+
}
|
|
27
168
|
export function getBaseUrl() {
|
|
28
|
-
const
|
|
29
|
-
if (!LEGACY_BASE_URLS.includes(
|
|
30
|
-
return
|
|
31
|
-
|
|
169
|
+
const { value, source } = getSetting('base_url');
|
|
170
|
+
if (source !== 'global' || !LEGACY_BASE_URLS.includes(value.replace(/\/+$/, '')))
|
|
171
|
+
return value;
|
|
172
|
+
unsetSetting('base_url');
|
|
32
173
|
// stderr: `getBaseUrl()` runs inside `--json` commands, whose stdout is machine output.
|
|
33
174
|
console.error(`Updated API host to ${DEFAULT_BASE_URL}`);
|
|
34
175
|
return DEFAULT_BASE_URL;
|
|
35
176
|
}
|
|
36
177
|
export function setBaseUrl(url) {
|
|
37
|
-
|
|
178
|
+
setSetting('base_url', url);
|
|
38
179
|
}
|
|
39
180
|
export function getStoredApiKey() {
|
|
40
|
-
const key =
|
|
41
|
-
return key
|
|
181
|
+
const key = globalValues().api_key;
|
|
182
|
+
return typeof key === 'string' && key ? key : undefined;
|
|
42
183
|
}
|
|
43
184
|
export function setStoredApiKey(key) {
|
|
44
|
-
|
|
185
|
+
setSetting('api_key', key);
|
|
45
186
|
}
|
|
46
187
|
export function deleteStoredApiKey() {
|
|
47
|
-
|
|
188
|
+
if (existsSync(globalConfigPath()))
|
|
189
|
+
unsetSetting('api_key');
|
|
48
190
|
}
|
|
191
|
+
/** Removes the global config file (the keychain entry is `invd auth logout`'s). */
|
|
49
192
|
export function resetConfig() {
|
|
50
|
-
|
|
193
|
+
rmSync(globalConfigPath(), { force: true });
|
|
194
|
+
imported = true;
|
|
51
195
|
}
|
|
52
196
|
export function showConfig() {
|
|
53
197
|
return {
|