@disclosure-api/cli 0.0.1

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/index.js ADDED
@@ -0,0 +1,304 @@
1
+ #!/usr/bin/env node
2
+ import { CLI_NAME, CLI_VERSION, COMMANDS, commandName, findCommand } from './catalog.js';
3
+ import { ApiRequestError, DisclosureApiClient } from './client.js';
4
+ import { commandHelp, helpCatalogJson, rootHelp } from './help.js';
5
+ class CliError extends Error {
6
+ code;
7
+ details;
8
+ exitCode;
9
+ constructor(code, message, details, exitCode = 2) {
10
+ super(message);
11
+ this.name = 'CliError';
12
+ this.code = code;
13
+ this.details = details;
14
+ this.exitCode = exitCode;
15
+ }
16
+ }
17
+ await main(process.argv.slice(2));
18
+ async function main(argv) {
19
+ try {
20
+ await run(argv);
21
+ }
22
+ catch (error) {
23
+ writeError(error);
24
+ process.exitCode = error instanceof CliError ? error.exitCode : 1;
25
+ }
26
+ }
27
+ async function run(argv) {
28
+ if (argv.length === 0 || isRootHelp(argv)) {
29
+ writeText(rootHelp());
30
+ return;
31
+ }
32
+ if (argv.length === 1 && (argv[0] === '--version' || argv[0] === '-v')) {
33
+ writeText(`${CLI_VERSION}\n`);
34
+ return;
35
+ }
36
+ if (argv[0] === 'help') {
37
+ handleHelp(argv.slice(1));
38
+ return;
39
+ }
40
+ const match = findCommand(argv);
41
+ if (!match) {
42
+ throw new CliError('unknown_command', `Unknown command: ${argv.join(' ')}`, {
43
+ available_commands: COMMANDS.map(commandName),
44
+ help: `${CLI_NAME} --help`
45
+ });
46
+ }
47
+ if (match.rest.includes('--help') || match.rest.includes('-h')) {
48
+ writeText(commandHelp(match.command));
49
+ return;
50
+ }
51
+ const invocation = parseInvocation(match.command, match.rest);
52
+ const client = new DisclosureApiClient();
53
+ const result = match.command.list && invocation.all
54
+ ? await client.getAllPages(invocation.path, invocation.query, match.command.authRequired)
55
+ : await client.getJson(invocation.path, invocation.query, match.command.authRequired);
56
+ writeResult(result, invocation.format, match.command.list);
57
+ }
58
+ function handleHelp(argv) {
59
+ if (argv.length === 0 || isRootHelp(argv)) {
60
+ writeText(rootHelp());
61
+ return;
62
+ }
63
+ if (argv.length === 1 && argv[0] === '--json') {
64
+ writeJson(helpCatalogJson());
65
+ return;
66
+ }
67
+ const tokens = argv.filter((value) => value !== '--json');
68
+ const match = findCommand(tokens);
69
+ if (!match || match.rest.length > 0) {
70
+ throw new CliError('unknown_help_topic', `Unknown help topic: ${tokens.join(' ')}`, {
71
+ available_commands: COMMANDS.map(commandName)
72
+ });
73
+ }
74
+ if (argv.includes('--json')) {
75
+ const catalog = helpCatalogJson();
76
+ const command = catalog.commands.find((item) => item.command === commandName(match.command));
77
+ writeJson(command);
78
+ return;
79
+ }
80
+ writeText(commandHelp(match.command));
81
+ }
82
+ function parseInvocation(command, tokens) {
83
+ const positionals = [];
84
+ const values = {};
85
+ let format = 'json';
86
+ let all = false;
87
+ const flags = new Map(command.flags?.map((flag) => [flag.name, flag]));
88
+ for (let index = 0; index < tokens.length; index += 1) {
89
+ const token = tokens[index];
90
+ if (!token.startsWith('--')) {
91
+ if (token === '-h') {
92
+ throw new CliError('invalid_flag_position', 'Use --help before executing a command.');
93
+ }
94
+ positionals.push(token);
95
+ continue;
96
+ }
97
+ const parsed = splitFlagToken(token);
98
+ if (parsed.name === 'format') {
99
+ const { value, nextIndex } = readRequiredValue(parsed, tokens, index);
100
+ format = parseFormat(command, value);
101
+ index = nextIndex;
102
+ continue;
103
+ }
104
+ if (parsed.name === 'all') {
105
+ if (!command.list) {
106
+ throw new CliError('unsupported_flag', `--all is only supported on list commands.`);
107
+ }
108
+ all = readLocalBoolean(parsed);
109
+ continue;
110
+ }
111
+ const flag = flags.get(parsed.name);
112
+ if (!flag) {
113
+ throw new CliError('unknown_flag', `Unknown flag for ${commandName(command)}: --${parsed.name}`, {
114
+ command: commandName(command),
115
+ flag: `--${parsed.name}`,
116
+ help: `${CLI_NAME} help ${commandName(command)}`
117
+ });
118
+ }
119
+ if (Object.prototype.hasOwnProperty.call(values, flag.apiName)) {
120
+ throw new CliError('duplicate_flag', `Duplicate flag: --${flag.name}`);
121
+ }
122
+ const { value, nextIndex } = readFlagValue(flag, parsed, tokens, index);
123
+ validateNumberFlag(flag, value);
124
+ values[flag.apiName] = value;
125
+ index = nextIndex;
126
+ }
127
+ const query = { ...values };
128
+ const pathValues = {};
129
+ const specs = command.positionals ?? [];
130
+ for (let index = 0; index < specs.length; index += 1) {
131
+ const spec = specs[index];
132
+ const value = positionals[index];
133
+ if (!value) {
134
+ if (spec.required) {
135
+ throw new CliError('missing_argument', `Missing required argument ${spec.label}.`, {
136
+ command: commandName(command),
137
+ argument: spec.name,
138
+ help: `${CLI_NAME} help ${commandName(command)}`
139
+ });
140
+ }
141
+ continue;
142
+ }
143
+ if (spec.pathParam)
144
+ pathValues[spec.pathParam] = value;
145
+ if (spec.queryParam) {
146
+ if (Object.prototype.hasOwnProperty.call(query, spec.queryParam)) {
147
+ throw new CliError('duplicate_query', `Provide ${spec.label} either as an argument or --${spec.queryParam.replaceAll('_', '-')}, not both.`);
148
+ }
149
+ query[spec.queryParam] = value;
150
+ }
151
+ }
152
+ if (positionals.length > specs.length) {
153
+ throw new CliError('unexpected_argument', `Unexpected argument: ${positionals[specs.length]}`, {
154
+ command: commandName(command),
155
+ help: `${CLI_NAME} help ${commandName(command)}`
156
+ });
157
+ }
158
+ return {
159
+ path: fillPath(command.endpoint, pathValues),
160
+ query,
161
+ format,
162
+ all
163
+ };
164
+ }
165
+ function splitFlagToken(token) {
166
+ const valueStart = token.indexOf('=');
167
+ if (valueStart === -1) {
168
+ return { name: token.slice(2), value: undefined };
169
+ }
170
+ return {
171
+ name: token.slice(2, valueStart),
172
+ value: token.slice(valueStart + 1)
173
+ };
174
+ }
175
+ function readRequiredValue(parsed, tokens, index) {
176
+ if (parsed.value !== undefined)
177
+ return { value: parsed.value, nextIndex: index };
178
+ const value = tokens[index + 1];
179
+ if (!value || value.startsWith('--')) {
180
+ throw new CliError('missing_flag_value', `Missing value for --${parsed.name}.`);
181
+ }
182
+ return { value, nextIndex: index + 1 };
183
+ }
184
+ function readLocalBoolean(parsed) {
185
+ if (parsed.value === undefined)
186
+ return true;
187
+ if (parsed.value === 'true')
188
+ return true;
189
+ if (parsed.value === 'false')
190
+ return false;
191
+ throw new CliError('invalid_flag_value', `--${parsed.name} must be true or false when a value is provided.`);
192
+ }
193
+ function readFlagValue(flag, parsed, tokens, index) {
194
+ if (flag.kind === 'boolean-string') {
195
+ if (parsed.value !== undefined) {
196
+ if (parsed.value !== 'true' && parsed.value !== 'false') {
197
+ throw new CliError('invalid_flag_value', `--${flag.name} must be true or false.`);
198
+ }
199
+ return { value: parsed.value, nextIndex: index };
200
+ }
201
+ const next = tokens[index + 1];
202
+ if (next === 'true' || next === 'false') {
203
+ return { value: next, nextIndex: index + 1 };
204
+ }
205
+ return { value: 'true', nextIndex: index };
206
+ }
207
+ const { value, nextIndex } = readRequiredValue(parsed, tokens, index);
208
+ if (flag.kind === 'number') {
209
+ const number = Number(value);
210
+ if (!Number.isFinite(number)) {
211
+ throw new CliError('invalid_flag_value', `--${flag.name} must be a finite number.`);
212
+ }
213
+ return { value: number, nextIndex };
214
+ }
215
+ return { value, nextIndex };
216
+ }
217
+ function validateNumberFlag(flag, value) {
218
+ if (flag.name === 'limit') {
219
+ if (typeof value !== 'number' || !Number.isInteger(value) || value < 1) {
220
+ throw new CliError('invalid_flag_value', '--limit must be a positive integer.');
221
+ }
222
+ }
223
+ if (flag.name === 'offset') {
224
+ if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {
225
+ throw new CliError('invalid_flag_value', '--offset must be a non-negative integer.');
226
+ }
227
+ }
228
+ }
229
+ function parseFormat(command, value) {
230
+ if (value === 'json')
231
+ return 'json';
232
+ if (value === 'jsonl' && command.list)
233
+ return 'jsonl';
234
+ if (value === 'jsonl') {
235
+ throw new CliError('unsupported_format', '--format jsonl is only supported on list commands.');
236
+ }
237
+ throw new CliError('unsupported_format', '--format must be json or jsonl.');
238
+ }
239
+ function fillPath(template, values) {
240
+ return template.replace(/\{([^}]+)\}/g, (full, name) => {
241
+ const value = values[name];
242
+ if (!value) {
243
+ throw new CliError('missing_path_value', `Missing value for path parameter ${name}.`);
244
+ }
245
+ return encodeURIComponent(value);
246
+ });
247
+ }
248
+ function writeResult(result, format, list) {
249
+ if (format === 'json') {
250
+ writeJson(result);
251
+ return;
252
+ }
253
+ if (!list) {
254
+ throw new CliError('unsupported_format', '--format jsonl is only supported on list commands.');
255
+ }
256
+ const rows = isRecord(result) && Array.isArray(result.data) ? result.data : [result];
257
+ for (const row of rows) {
258
+ process.stdout.write(`${JSON.stringify(row)}\n`);
259
+ }
260
+ }
261
+ function writeError(error) {
262
+ if (error instanceof ApiRequestError) {
263
+ const body = {
264
+ error: {
265
+ code: error.code,
266
+ message: error.message,
267
+ ...(error.status ? { status: error.status } : {}),
268
+ ...(error.details !== undefined ? { details: error.details } : {}),
269
+ ...(error.rateLimit ? { rate_limit: error.rateLimit } : {})
270
+ }
271
+ };
272
+ process.stderr.write(`${JSON.stringify(body)}\n`);
273
+ return;
274
+ }
275
+ if (error instanceof CliError) {
276
+ process.stderr.write(`${JSON.stringify({
277
+ error: {
278
+ code: error.code,
279
+ message: error.message,
280
+ ...(error.details !== undefined ? { details: error.details } : {})
281
+ }
282
+ })}\n`);
283
+ return;
284
+ }
285
+ process.stderr.write(`${JSON.stringify({
286
+ error: {
287
+ code: 'internal_error',
288
+ message: error instanceof Error ? error.message : 'Unexpected CLI failure'
289
+ }
290
+ })}\n`);
291
+ }
292
+ function isRootHelp(argv) {
293
+ return argv.length === 1 && (argv[0] === '--help' || argv[0] === '-h');
294
+ }
295
+ function writeJson(value) {
296
+ process.stdout.write(`${JSON.stringify(value, null, 2)}\n`);
297
+ }
298
+ function writeText(value) {
299
+ process.stdout.write(value);
300
+ }
301
+ function isRecord(value) {
302
+ return typeof value === 'object' && value !== null;
303
+ }
304
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@disclosure-api/cli",
3
+ "version": "0.0.1",
4
+ "description": "Agent-friendly command line client for the Disclosure API.",
5
+ "type": "module",
6
+ "bin": {
7
+ "disclosure": "./dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md"
12
+ ],
13
+ "engines": {
14
+ "node": ">=22.12"
15
+ },
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^22",
21
+ "typescript": "^6.0.2"
22
+ }
23
+ }