@tronsfey/openapi2cli 1.0.10 → 1.0.12

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.
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.createRuntimeClient = createRuntimeClient;
40
+ const axios_1 = __importDefault(require("axios"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const http = __importStar(require("http"));
43
+ const https = __importStar(require("https"));
44
+ const stream_1 = require("eventsource-parser/stream");
45
+ // Status codes that warrant a retry
46
+ const RETRYABLE_STATUS = new Set([429, 500, 502, 503, 504]);
47
+ // Node.js error codes that warrant a retry
48
+ const RETRYABLE_CODES = new Set([
49
+ 'ECONNREFUSED', 'ETIMEDOUT', 'ENOTFOUND', 'ECONNRESET', 'EPIPE',
50
+ ]);
51
+ function sleep(ms) {
52
+ return new Promise((r) => setTimeout(r, ms));
53
+ }
54
+ async function withRetry(fn, maxRetries) {
55
+ for (let attempt = 0;; attempt++) {
56
+ try {
57
+ return await fn();
58
+ }
59
+ catch (err) {
60
+ const axErr = err;
61
+ const status = axErr.response?.status;
62
+ const code = axErr.code;
63
+ const isRetryable = (status !== undefined && RETRYABLE_STATUS.has(status)) ||
64
+ (code !== undefined && RETRYABLE_CODES.has(code));
65
+ if (!isRetryable || attempt >= maxRetries)
66
+ throw err;
67
+ // Exponential backoff: 500 ms, 1 000 ms, 2 000 ms, …
68
+ await sleep(500 * Math.pow(2, attempt));
69
+ }
70
+ }
71
+ }
72
+ function buildAuthHeaders(auth) {
73
+ const headers = {};
74
+ if (auth.bearer) {
75
+ headers['Authorization'] = `Bearer ${auth.bearer}`;
76
+ }
77
+ else if (auth.apiKey) {
78
+ headers[auth.apiKeyHeader ?? 'X-Api-Key'] = auth.apiKey;
79
+ }
80
+ else if (auth.basic) {
81
+ headers['Authorization'] = `Basic ${Buffer.from(auth.basic).toString('base64')}`;
82
+ }
83
+ for (const [k, v] of Object.entries(auth.extraHeaders ?? {})) {
84
+ headers[k] = v;
85
+ }
86
+ return headers;
87
+ }
88
+ function buildUrl(pathTemplate, pathParams) {
89
+ return pathTemplate.replace(/\{(\w+)\}/g, (_, key) => {
90
+ const val = pathParams[key];
91
+ if (val === undefined)
92
+ throw new Error(`Missing required path parameter: ${key}`);
93
+ return encodeURIComponent(val);
94
+ });
95
+ }
96
+ function parseLinkNext(linkHeader) {
97
+ if (!linkHeader)
98
+ return null;
99
+ for (const part of linkHeader.split(',')) {
100
+ const match = part.match(/<([^>]+)>;\s*rel="next"/);
101
+ if (match)
102
+ return match[1];
103
+ }
104
+ return null;
105
+ }
106
+ // Shared keep-alive agents so connections are reused across paginated requests.
107
+ const sharedHttpAgent = new http.Agent({ keepAlive: true });
108
+ const sharedHttpsAgent = new https.Agent({ keepAlive: true });
109
+ function createRuntimeClient(baseURL, auth, options = {}) {
110
+ const timeout = options.timeout ?? 30000;
111
+ const maxRetries = options.maxRetries ?? 3;
112
+ const instance = axios_1.default.create({
113
+ baseURL,
114
+ proxy: false,
115
+ timeout,
116
+ httpAgent: sharedHttpAgent,
117
+ httpsAgent: sharedHttpsAgent,
118
+ });
119
+ return {
120
+ async request({ method, path, pathParams, queryParams, body, verbose, allPages, }) {
121
+ const url = buildUrl(path, pathParams);
122
+ const authHeaders = buildAuthHeaders(auth);
123
+ const config = {
124
+ method,
125
+ url,
126
+ params: Object.keys(queryParams).length ? queryParams : undefined,
127
+ data: body,
128
+ headers: authHeaders,
129
+ };
130
+ if (verbose) {
131
+ console.error(chalk_1.default.dim('→'), chalk_1.default.bold(method.toUpperCase()), baseURL + url);
132
+ if (body !== undefined)
133
+ console.error(chalk_1.default.dim(' body:'), JSON.stringify(body));
134
+ }
135
+ if (allPages) {
136
+ const results = [];
137
+ let nextUrl = url;
138
+ let isFirst = true;
139
+ while (nextUrl) {
140
+ const pageConfig = isFirst
141
+ ? { ...config }
142
+ : { method, url: nextUrl, headers: authHeaders };
143
+ isFirst = false;
144
+ const response = await withRetry(() => instance.request(pageConfig), maxRetries);
145
+ if (verbose)
146
+ console.error(chalk_1.default.dim('←'), chalk_1.default.bold(String(response.status)), response.statusText);
147
+ const data = response.data;
148
+ if (Array.isArray(data))
149
+ results.push(...data);
150
+ else
151
+ results.push(data);
152
+ nextUrl = parseLinkNext(response.headers['link']);
153
+ }
154
+ return results;
155
+ }
156
+ const response = await withRetry(() => instance.request(config), maxRetries);
157
+ if (verbose)
158
+ console.error(chalk_1.default.dim('←'), chalk_1.default.bold(String(response.status)), response.statusText);
159
+ return response.data;
160
+ },
161
+ async *requestStream({ method, path, pathParams, queryParams, body, verbose, }) {
162
+ const url = buildUrl(path, pathParams);
163
+ const qs = new URLSearchParams(queryParams).toString();
164
+ const fullUrl = baseURL + url + (qs ? `?${qs}` : '');
165
+ const authHeaders = buildAuthHeaders(auth);
166
+ if (verbose)
167
+ console.error(chalk_1.default.dim('→ SSE'), chalk_1.default.bold(method.toUpperCase()), fullUrl);
168
+ const controller = new AbortController();
169
+ const timer = setTimeout(() => controller.abort(), timeout);
170
+ let response;
171
+ try {
172
+ response = await fetch(fullUrl, {
173
+ method,
174
+ headers: { Accept: 'text/event-stream', 'Cache-Control': 'no-cache', ...authHeaders },
175
+ body: body !== undefined ? JSON.stringify(body) : undefined,
176
+ signal: controller.signal,
177
+ });
178
+ }
179
+ finally {
180
+ clearTimeout(timer);
181
+ }
182
+ if (!response.ok)
183
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
184
+ if (!response.body)
185
+ return;
186
+ if (verbose)
187
+ console.error(chalk_1.default.dim('← SSE'), chalk_1.default.bold(String(response.status)), response.statusText);
188
+ const eventStream = response.body
189
+ .pipeThrough(new TextDecoderStream())
190
+ .pipeThrough(new stream_1.EventSourceParserStream());
191
+ for await (const event of eventStream) {
192
+ if (event.data && event.data !== '[DONE]') {
193
+ yield event.data;
194
+ }
195
+ }
196
+ },
197
+ };
198
+ }
199
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/runner/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function formatOutput(data: unknown, format: string, query?: string): void;
2
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/runner/output.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA0BhF"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatOutput = formatOutput;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const yaml_1 = require("yaml");
9
+ const jmespath_1 = __importDefault(require("jmespath"));
10
+ function formatOutput(data, format, query) {
11
+ let result = data;
12
+ if (query) {
13
+ try {
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ result = jmespath_1.default.search(data, query);
16
+ }
17
+ catch (e) {
18
+ console.error(chalk_1.default.red('JMESPath error:'), e.message);
19
+ process.exit(1);
20
+ }
21
+ }
22
+ if (format === 'yaml') {
23
+ console.log((0, yaml_1.stringify)(result));
24
+ }
25
+ else if (format === 'table') {
26
+ if (Array.isArray(result) && result.length > 0 && typeof result[0] === 'object') {
27
+ console.table(result);
28
+ }
29
+ else if (typeof result === 'object' && result !== null) {
30
+ console.table(result);
31
+ }
32
+ else {
33
+ console.log(String(result));
34
+ }
35
+ }
36
+ else {
37
+ console.log(JSON.stringify(result, null, 2));
38
+ }
39
+ }
40
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/runner/output.ts"],"names":[],"mappings":";;;;;AAIA,oCA0BC;AA9BD,kDAA0B;AAC1B,+BAAkD;AAClD,wDAAgC;AAEhC,SAAgB,YAAY,CAAC,IAAa,EAAE,MAAc,EAAE,KAAc;IACxE,IAAI,MAAM,GAAY,IAAI,CAAC;IAE3B,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAM,GAAG,kBAAQ,CAAC,MAAM,CAAC,IAAW,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAa,EAAC,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface ProxyOpts {
2
+ oas: string;
3
+ bearer?: string;
4
+ apiKey?: string;
5
+ apiKeyHeader?: string;
6
+ basic?: string;
7
+ header?: string[];
8
+ endpoint?: string;
9
+ timeout?: number;
10
+ retries?: number;
11
+ noCache?: boolean;
12
+ cacheTtl?: number;
13
+ }
14
+ export declare function proxyRun(proxyOpts: ProxyOpts, remainingArgs: string[]): Promise<void>;
15
+ //# sourceMappingURL=proxy-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-runner.d.ts","sourceRoot":"","sources":["../../src/runner/proxy-runner.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmPD,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.proxyRun = proxyRun;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const lodash_1 = __importDefault(require("lodash"));
43
+ const fse = __importStar(require("fs-extra"));
44
+ const path = __importStar(require("path"));
45
+ const cache_1 = require("../cache");
46
+ const schema_analyzer_1 = require("../analyzer/schema-analyzer");
47
+ const http_client_1 = require("./http-client");
48
+ const output_1 = require("./output");
49
+ // Parse "Name: Value" strings into a header map.
50
+ function parseExtraHeaders(headers) {
51
+ const result = {};
52
+ for (const h of headers ?? []) {
53
+ const idx = h.indexOf(':');
54
+ if (idx === -1)
55
+ continue;
56
+ result[h.slice(0, idx).trim()] = h.slice(idx + 1).trim();
57
+ }
58
+ return result;
59
+ }
60
+ // Commander stores option values with camelCase keys derived from the flag name.
61
+ // e.g., --per-page → opts.perPage, --owner → opts.owner
62
+ function optsKey(flagName) {
63
+ return lodash_1.default.camelCase(flagName);
64
+ }
65
+ // Format an HTTP or network error with contextual hints.
66
+ function formatHttpError(err, method, fullUrl) {
67
+ const axErr = err;
68
+ if (axErr.response) {
69
+ const { status, statusText, data } = axErr.response;
70
+ console.error(chalk_1.default.red(`[HTTP ${status} ${statusText}]`), chalk_1.default.dim(`${method.toUpperCase()} ${fullUrl}`));
71
+ if (status === 401 || status === 403) {
72
+ console.error(chalk_1.default.yellow(' → Check your --bearer / --api-key / --basic credentials'));
73
+ }
74
+ else if (status === 404) {
75
+ console.error(chalk_1.default.yellow(' → Endpoint not found — verify the operation name and path params'));
76
+ }
77
+ else if (status >= 500) {
78
+ console.error(chalk_1.default.yellow(' → Server error — the API returned a 5xx response'));
79
+ }
80
+ if (data) {
81
+ console.error(chalk_1.default.dim(JSON.stringify(data, null, 2)));
82
+ }
83
+ }
84
+ else if (axErr.name === 'AbortError' || axErr.code === 'ETIMEDOUT') {
85
+ console.error(chalk_1.default.red('[Timeout]'), chalk_1.default.dim(`${method.toUpperCase()} ${fullUrl}`));
86
+ console.error(chalk_1.default.yellow(' → Request timed out — use --timeout <ms> to increase the limit'));
87
+ }
88
+ else if (axErr.code === 'ECONNREFUSED') {
89
+ console.error(chalk_1.default.red('[Connection Refused]'), chalk_1.default.dim(`${method.toUpperCase()} ${fullUrl}`));
90
+ console.error(chalk_1.default.yellow(' → Is the API server running and reachable?'));
91
+ }
92
+ else if (axErr.code === 'ENOTFOUND') {
93
+ console.error(chalk_1.default.red('[DNS Error]'), chalk_1.default.dim(`${method.toUpperCase()} ${fullUrl}`));
94
+ console.error(chalk_1.default.yellow(' → Hostname not found — check the --endpoint URL or spec server URL'));
95
+ }
96
+ else {
97
+ console.error(chalk_1.default.red('[Error]'), axErr.message ?? String(err));
98
+ }
99
+ }
100
+ // Build and execute the HTTP call for a matched operation.
101
+ async function executeOperation(sub, opts, client, baseURL) {
102
+ const verbose = opts['verbose'] ?? false;
103
+ const format = opts['format'] ?? 'json';
104
+ const query = opts['query'];
105
+ const allPages = opts['allPages'] ?? false;
106
+ const pathParams = {};
107
+ const queryParams = {};
108
+ for (const param of sub.parameters) {
109
+ const key = optsKey(lodash_1.default.kebabCase(param.name));
110
+ const val = opts[key];
111
+ if (val === undefined || val === null)
112
+ continue;
113
+ if (param.in === 'path') {
114
+ pathParams[param.name] = String(val);
115
+ }
116
+ else if (param.in === 'query') {
117
+ queryParams[param.name] = String(val);
118
+ }
119
+ }
120
+ // Build the full URL for error messages (best effort)
121
+ const resolvedPath = sub.path.replace(/\{(\w+)\}/g, (_, k) => pathParams[k] ?? `{${k}}`);
122
+ const fullUrl = baseURL.replace(/\/$/, '') + resolvedPath;
123
+ // --data raw override: short-circuit individual body field options
124
+ if (opts['data'] !== undefined) {
125
+ const rawData = opts['data'];
126
+ let body;
127
+ if (rawData.startsWith('@')) {
128
+ const filePath = path.resolve(process.cwd(), rawData.slice(1));
129
+ body = JSON.parse(await fse.readFile(filePath, 'utf-8'));
130
+ }
131
+ else {
132
+ body = JSON.parse(rawData);
133
+ }
134
+ if (sub.streaming === 'sse') {
135
+ for await (const event of client.requestStream({ method: sub.method, path: sub.path, pathParams, queryParams, body, verbose })) {
136
+ console.log(event);
137
+ }
138
+ }
139
+ else {
140
+ (0, output_1.formatOutput)(await client.request({ method: sub.method, path: sub.path, pathParams, queryParams, body, verbose, allPages }), format, query);
141
+ }
142
+ return;
143
+ }
144
+ // Build body from individual field options
145
+ const bodyObj = {};
146
+ if (sub.requestBody) {
147
+ for (const field of sub.requestBody.fields) {
148
+ const val = opts[field.optKey];
149
+ if (val !== undefined)
150
+ bodyObj[field.name] = val;
151
+ }
152
+ }
153
+ const body = Object.keys(bodyObj).length > 0 ? bodyObj : undefined;
154
+ if (sub.streaming === 'sse') {
155
+ for await (const event of client.requestStream({ method: sub.method, path: sub.path, pathParams, queryParams, body, verbose })) {
156
+ console.log(event);
157
+ }
158
+ }
159
+ else {
160
+ (0, output_1.formatOutput)(await client.request({ method: sub.method, path: sub.path, pathParams, queryParams, body, verbose, allPages }), format, query);
161
+ }
162
+ return;
163
+ void fullUrl; // used in catch handler below — suppress unused warning if needed
164
+ }
165
+ // Register one operation as a Commander subcommand on `parent`.
166
+ function registerOperation(parent, sub, client, baseURL) {
167
+ const cmd = new commander_1.Command(sub.name).description(sub.description);
168
+ for (const alias of sub.aliases ?? []) {
169
+ cmd.alias(alias);
170
+ }
171
+ // Operation-specific options (parameters + body fields + --data)
172
+ for (const opt of sub.options) {
173
+ const flag = opt.type === 'boolean'
174
+ ? `--${opt.name}`
175
+ : `--${opt.name} <value>`;
176
+ const co = new commander_1.Option(flag, opt.description);
177
+ if (opt.enum)
178
+ co.choices(opt.enum);
179
+ if (opt.defaultValue !== undefined)
180
+ co.default(opt.defaultValue);
181
+ cmd.addOption(co);
182
+ }
183
+ // Per-call output options (match generated CLI behaviour)
184
+ cmd.option('--format <format>', 'Output format: json, yaml, table', 'json');
185
+ cmd.option('--verbose', 'Log HTTP method and URL to stderr', false);
186
+ cmd.option('--query <expr>', 'JMESPath expression to filter the response');
187
+ cmd.option('--all-pages', 'Auto-paginate via Link rel="next" headers', false);
188
+ cmd.action(async (opts) => {
189
+ // Reconstruct the full URL for error reporting
190
+ const pathParams = {};
191
+ for (const param of sub.parameters.filter(p => p.in === 'path')) {
192
+ const key = optsKey(lodash_1.default.kebabCase(param.name));
193
+ const val = opts[key];
194
+ if (val !== undefined && val !== null)
195
+ pathParams[param.name] = String(val);
196
+ }
197
+ const resolvedPath = sub.path.replace(/\{(\w+)\}/g, (_, k) => pathParams[k] ?? `{${k}}`);
198
+ const fullUrl = baseURL.replace(/\/$/, '') + resolvedPath;
199
+ try {
200
+ await executeOperation(sub, opts, client, baseURL);
201
+ }
202
+ catch (err) {
203
+ formatHttpError(err, sub.method, fullUrl);
204
+ process.exit(1);
205
+ }
206
+ });
207
+ parent.addCommand(cmd);
208
+ }
209
+ // Build a Commander program with all operations from the analyzed structure.
210
+ function buildOperationsProgram(structure, client, baseURL) {
211
+ const prog = new commander_1.Command()
212
+ .name('run')
213
+ .description(structure.description || `API proxy for OpenAPI spec`);
214
+ // Suppress Commander's default error exit so we can handle unknown commands gracefully
215
+ prog.exitOverride();
216
+ for (const group of structure.groups) {
217
+ const groupCmd = new commander_1.Command(group.name)
218
+ .description(group.description)
219
+ .exitOverride();
220
+ for (const sub of group.subcommands) {
221
+ registerOperation(groupCmd, sub, client, baseURL);
222
+ }
223
+ prog.addCommand(groupCmd);
224
+ }
225
+ for (const sub of structure.flatCommands) {
226
+ registerOperation(prog, sub, client, baseURL);
227
+ }
228
+ return prog;
229
+ }
230
+ // Print a compact listing of all available operations.
231
+ function listOperations(structure) {
232
+ const title = structure.description || structure.name;
233
+ console.log(chalk_1.default.bold(title));
234
+ console.log('');
235
+ if (structure.groups.length === 0 && structure.flatCommands.length === 0) {
236
+ console.log(chalk_1.default.dim(' (no operations found in this spec)'));
237
+ return;
238
+ }
239
+ for (const group of structure.groups) {
240
+ console.log(chalk_1.default.cyan(` ${group.name}`) + chalk_1.default.dim(` — ${group.description}`));
241
+ for (const sub of group.subcommands) {
242
+ const method = chalk_1.default.dim(`[${sub.method.toUpperCase()}]`);
243
+ console.log(` ${chalk_1.default.bold(sub.name)} ${method} ${sub.description}`);
244
+ }
245
+ console.log('');
246
+ }
247
+ for (const sub of structure.flatCommands) {
248
+ const method = chalk_1.default.dim(`[${sub.method.toUpperCase()}]`);
249
+ console.log(` ${chalk_1.default.bold(sub.name)} ${method} ${sub.description}`);
250
+ }
251
+ }
252
+ // Entry point called from the `run` subcommand in src/index.ts.
253
+ async function proxyRun(proxyOpts, remainingArgs) {
254
+ // Load and analyse the spec (name is irrelevant in proxy mode)
255
+ let api;
256
+ try {
257
+ api = await (0, cache_1.parseOASWithCache)(proxyOpts.oas, {
258
+ noCache: proxyOpts.noCache,
259
+ ttlMs: (proxyOpts.cacheTtl ?? 3600) * 1000,
260
+ });
261
+ }
262
+ catch (err) {
263
+ const msg = err.message;
264
+ console.error(chalk_1.default.red('Failed to load spec:'), msg);
265
+ if (/ENOTFOUND|ECONNREFUSED/.test(msg)) {
266
+ console.error(chalk_1.default.yellow(' → Is the spec URL reachable? Try --no-cache to force a fresh fetch.'));
267
+ }
268
+ process.exit(1);
269
+ }
270
+ const structure = (0, schema_analyzer_1.analyzeSchema)(api, '_proxy_');
271
+ const baseURL = proxyOpts.endpoint ?? structure.baseUrl;
272
+ const auth = {
273
+ bearer: proxyOpts.bearer,
274
+ apiKey: proxyOpts.apiKey,
275
+ apiKeyHeader: proxyOpts.apiKeyHeader,
276
+ basic: proxyOpts.basic,
277
+ extraHeaders: parseExtraHeaders(proxyOpts.header),
278
+ };
279
+ const clientOpts = {
280
+ timeout: proxyOpts.timeout ?? 30000,
281
+ maxRetries: proxyOpts.retries ?? 3,
282
+ };
283
+ const client = (0, http_client_1.createRuntimeClient)(baseURL, auth, clientOpts);
284
+ // No operation given → show available commands
285
+ if (remainingArgs.length === 0) {
286
+ listOperations(structure);
287
+ return;
288
+ }
289
+ const prog = buildOperationsProgram(structure, client, baseURL);
290
+ try {
291
+ await prog.parseAsync(['node', 'run', ...remainingArgs]);
292
+ }
293
+ catch (err) {
294
+ // exitOverride turns Commander errors into thrown exceptions
295
+ const cmdErr = err;
296
+ if (cmdErr.code === 'commander.unknownCommand') {
297
+ console.error(chalk_1.default.red('Unknown command:'), remainingArgs.join(' '));
298
+ console.error('Run without an operation to list available commands.');
299
+ process.exit(1);
300
+ }
301
+ if (cmdErr.code?.startsWith('commander.')) {
302
+ // Help display etc. — already printed by Commander
303
+ process.exit(0);
304
+ }
305
+ throw err;
306
+ }
307
+ }
308
+ //# sourceMappingURL=proxy-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-runner.js","sourceRoot":"","sources":["../../src/runner/proxy-runner.ts"],"names":[],"mappings":"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"}