@unstoppabledomains/ud-cli 0.1.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.
Files changed (79) hide show
  1. package/README.md +344 -0
  2. package/dist/commands/api-commands.d.ts +9 -0
  3. package/dist/commands/api-commands.d.ts.map +1 -0
  4. package/dist/commands/api-commands.js +303 -0
  5. package/dist/commands/api-commands.js.map +1 -0
  6. package/dist/commands/auth.d.ts +3 -0
  7. package/dist/commands/auth.d.ts.map +1 -0
  8. package/dist/commands/auth.js +97 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/cart.d.ts +10 -0
  11. package/dist/commands/cart.d.ts.map +1 -0
  12. package/dist/commands/cart.js +125 -0
  13. package/dist/commands/cart.js.map +1 -0
  14. package/dist/commands/config.d.ts +3 -0
  15. package/dist/commands/config.d.ts.map +1 -0
  16. package/dist/commands/config.js +90 -0
  17. package/dist/commands/config.js.map +1 -0
  18. package/dist/commands/env.d.ts +3 -0
  19. package/dist/commands/env.d.ts.map +1 -0
  20. package/dist/commands/env.js +29 -0
  21. package/dist/commands/env.js.map +1 -0
  22. package/dist/generated/openapi-spec.json +5903 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/lib/api.d.ts +7 -0
  28. package/dist/lib/api.d.ts.map +1 -0
  29. package/dist/lib/api.js +162 -0
  30. package/dist/lib/api.js.map +1 -0
  31. package/dist/lib/command-hooks.d.ts +49 -0
  32. package/dist/lib/command-hooks.d.ts.map +1 -0
  33. package/dist/lib/command-hooks.js +150 -0
  34. package/dist/lib/command-hooks.js.map +1 -0
  35. package/dist/lib/command-registry.d.ts +30 -0
  36. package/dist/lib/command-registry.d.ts.map +1 -0
  37. package/dist/lib/command-registry.js +322 -0
  38. package/dist/lib/command-registry.js.map +1 -0
  39. package/dist/lib/config.d.ts +19 -0
  40. package/dist/lib/config.d.ts.map +1 -0
  41. package/dist/lib/config.js +95 -0
  42. package/dist/lib/config.js.map +1 -0
  43. package/dist/lib/credentials.d.ts +16 -0
  44. package/dist/lib/credentials.d.ts.map +1 -0
  45. package/dist/lib/credentials.js +126 -0
  46. package/dist/lib/credentials.js.map +1 -0
  47. package/dist/lib/formatter.d.ts +34 -0
  48. package/dist/lib/formatter.d.ts.map +1 -0
  49. package/dist/lib/formatter.js +691 -0
  50. package/dist/lib/formatter.js.map +1 -0
  51. package/dist/lib/oauth.d.ts +8 -0
  52. package/dist/lib/oauth.d.ts.map +1 -0
  53. package/dist/lib/oauth.js +212 -0
  54. package/dist/lib/oauth.js.map +1 -0
  55. package/dist/lib/param-builder.d.ts +28 -0
  56. package/dist/lib/param-builder.d.ts.map +1 -0
  57. package/dist/lib/param-builder.js +178 -0
  58. package/dist/lib/param-builder.js.map +1 -0
  59. package/dist/lib/prompt.d.ts +17 -0
  60. package/dist/lib/prompt.d.ts.map +1 -0
  61. package/dist/lib/prompt.js +53 -0
  62. package/dist/lib/prompt.js.map +1 -0
  63. package/dist/lib/spec-parser.d.ts +76 -0
  64. package/dist/lib/spec-parser.d.ts.map +1 -0
  65. package/dist/lib/spec-parser.js +201 -0
  66. package/dist/lib/spec-parser.js.map +1 -0
  67. package/dist/lib/spinner.d.ts +16 -0
  68. package/dist/lib/spinner.d.ts.map +1 -0
  69. package/dist/lib/spinner.js +23 -0
  70. package/dist/lib/spinner.js.map +1 -0
  71. package/dist/lib/types.d.ts +63 -0
  72. package/dist/lib/types.d.ts.map +1 -0
  73. package/dist/lib/types.js +11 -0
  74. package/dist/lib/types.js.map +1 -0
  75. package/dist/program.d.ts +3 -0
  76. package/dist/program.d.ts.map +1 -0
  77. package/dist/program.js +47 -0
  78. package/dist/program.js.map +1 -0
  79. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/lib/formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { OAuthServerMetadata, OAuthTokenResponse, OAuthClientRegistration, TokenData } from './types.js';
2
+ export declare function discoverMetadata(baseUrl?: string): Promise<OAuthServerMetadata>;
3
+ export declare function registerClient(registrationEndpoint: string, redirectUri: string): Promise<OAuthClientRegistration>;
4
+ export declare function exchangeCode(tokenEndpoint: string, code: string, redirectUri: string, clientId: string, codeVerifier: string): Promise<OAuthTokenResponse>;
5
+ export declare function refreshAccessToken(tokenEndpoint: string, refreshToken: string, clientId: string): Promise<OAuthTokenResponse>;
6
+ export declare function revokeToken(revocationEndpoint: string, token: string, clientId: string): Promise<void>;
7
+ export declare function performOAuthLogin(): Promise<TokenData>;
8
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAuB9G,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAOrF;AAED,wBAAsB,cAAc,CAClC,oBAAoB,EAAE,MAAM,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CAelC;AAID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AAED,wBAAsB,WAAW,CAC/B,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAWf;AAID,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC,CA4E5D"}
@@ -0,0 +1,212 @@
1
+ import * as crypto from 'node:crypto';
2
+ import * as http from 'node:http';
3
+ import { apiBaseUrl, getEnvConfig, setEnvConfig } from './config.js';
4
+ import { saveTokens } from './credentials.js';
5
+ const TIMEOUT_MS = 120_000;
6
+ // --- PKCE ---
7
+ function generateCodeVerifier() {
8
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
9
+ const bytes = crypto.randomBytes(64);
10
+ let verifier = '';
11
+ for (const b of bytes) {
12
+ verifier += chars[b % chars.length];
13
+ }
14
+ return verifier.slice(0, 64);
15
+ }
16
+ function generateCodeChallenge(verifier) {
17
+ const hash = crypto.createHash('sha256').update(verifier).digest();
18
+ return hash.toString('base64url');
19
+ }
20
+ // --- Discovery & Registration ---
21
+ export async function discoverMetadata(baseUrl) {
22
+ const url = `${baseUrl ?? apiBaseUrl()}/.well-known/oauth-authorization-server`;
23
+ const res = await fetch(url);
24
+ if (!res.ok) {
25
+ throw new Error(`OAuth metadata discovery failed: ${res.status} ${res.statusText}`);
26
+ }
27
+ return (await res.json());
28
+ }
29
+ export async function registerClient(registrationEndpoint, redirectUri) {
30
+ const res = await fetch(registrationEndpoint, {
31
+ method: 'POST',
32
+ headers: { 'Content-Type': 'application/json' },
33
+ body: JSON.stringify({
34
+ client_name: 'ud-cli',
35
+ redirect_uris: [redirectUri],
36
+ token_endpoint_auth_method: 'none',
37
+ }),
38
+ });
39
+ if (!res.ok) {
40
+ const body = await res.text();
41
+ throw new Error(`Client registration failed: ${res.status} ${body}`);
42
+ }
43
+ return (await res.json());
44
+ }
45
+ // --- Token operations ---
46
+ export async function exchangeCode(tokenEndpoint, code, redirectUri, clientId, codeVerifier) {
47
+ const res = await fetch(tokenEndpoint, {
48
+ method: 'POST',
49
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
50
+ body: new URLSearchParams({
51
+ grant_type: 'authorization_code',
52
+ code,
53
+ redirect_uri: redirectUri,
54
+ client_id: clientId,
55
+ code_verifier: codeVerifier,
56
+ }),
57
+ });
58
+ if (!res.ok) {
59
+ const body = await res.text();
60
+ throw new Error(`Token exchange failed: ${res.status} ${body}`);
61
+ }
62
+ return (await res.json());
63
+ }
64
+ export async function refreshAccessToken(tokenEndpoint, refreshToken, clientId) {
65
+ const res = await fetch(tokenEndpoint, {
66
+ method: 'POST',
67
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
68
+ body: new URLSearchParams({
69
+ grant_type: 'refresh_token',
70
+ refresh_token: refreshToken,
71
+ client_id: clientId,
72
+ }),
73
+ });
74
+ if (!res.ok) {
75
+ const body = await res.text();
76
+ throw new Error(`Token refresh failed: ${res.status} ${body}`);
77
+ }
78
+ return (await res.json());
79
+ }
80
+ export async function revokeToken(revocationEndpoint, token, clientId) {
81
+ await fetch(revocationEndpoint, {
82
+ method: 'POST',
83
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
84
+ body: new URLSearchParams({
85
+ token,
86
+ client_id: clientId,
87
+ }),
88
+ }).catch(() => {
89
+ // Best-effort revocation — don't fail logout
90
+ });
91
+ }
92
+ // --- Full PKCE login flow ---
93
+ export async function performOAuthLogin() {
94
+ // 1. Discover OAuth endpoints
95
+ const metadata = await discoverMetadata();
96
+ if (!metadata.registration_endpoint) {
97
+ throw new Error('OAuth server does not support dynamic client registration');
98
+ }
99
+ // 2. Start local callback server to get a port
100
+ const { server, port, waitForCallback } = await createCallbackServer();
101
+ const redirectUri = `http://127.0.0.1:${port}/callback`;
102
+ try {
103
+ // 3. Register client (or reuse existing)
104
+ const envConfig = getEnvConfig();
105
+ let clientId = envConfig.oauth?.clientId;
106
+ if (!clientId) {
107
+ const registration = await registerClient(metadata.registration_endpoint, redirectUri);
108
+ clientId = registration.client_id;
109
+ setEnvConfig({
110
+ oauth: {
111
+ ...envConfig.oauth,
112
+ clientId,
113
+ },
114
+ });
115
+ }
116
+ // 4. Generate PKCE pair
117
+ const codeVerifier = generateCodeVerifier();
118
+ const codeChallenge = generateCodeChallenge(codeVerifier);
119
+ const state = crypto.randomBytes(16).toString('hex');
120
+ // 5. Open browser
121
+ const authorizeUrl = new URL(metadata.authorization_endpoint);
122
+ authorizeUrl.searchParams.set('client_id', clientId);
123
+ authorizeUrl.searchParams.set('redirect_uri', redirectUri);
124
+ authorizeUrl.searchParams.set('response_type', 'code');
125
+ authorizeUrl.searchParams.set('code_challenge', codeChallenge);
126
+ authorizeUrl.searchParams.set('code_challenge_method', 'S256');
127
+ authorizeUrl.searchParams.set('state', state);
128
+ const open = (await import('open')).default;
129
+ await open(authorizeUrl.toString());
130
+ // 6. Wait for callback
131
+ const { code, returnedState } = await waitForCallback();
132
+ if (returnedState !== state) {
133
+ throw new Error('OAuth state mismatch — possible CSRF attack');
134
+ }
135
+ // 7. Exchange code for tokens
136
+ const tokenResponse = await exchangeCode(metadata.token_endpoint, code, redirectUri, clientId, codeVerifier);
137
+ const tokens = {
138
+ accessToken: tokenResponse.access_token,
139
+ refreshToken: tokenResponse.refresh_token,
140
+ expiresAt: Date.now() + tokenResponse.expires_in * 1000,
141
+ scope: tokenResponse.scope,
142
+ };
143
+ // 8. Store tokens
144
+ await saveTokens(tokens);
145
+ return tokens;
146
+ }
147
+ finally {
148
+ server.close();
149
+ }
150
+ }
151
+ // --- Local callback server ---
152
+ async function createCallbackServer() {
153
+ let resolveCallback;
154
+ let rejectCallback;
155
+ const callbackPromise = new Promise((resolve, reject) => {
156
+ resolveCallback = resolve;
157
+ rejectCallback = reject;
158
+ });
159
+ const server = http.createServer((req, res) => {
160
+ const url = new URL(req.url ?? '/', 'http://127.0.0.1');
161
+ if (url.pathname === '/callback') {
162
+ const code = url.searchParams.get('code');
163
+ const returnedState = url.searchParams.get('state');
164
+ const error = url.searchParams.get('error');
165
+ if (error) {
166
+ const desc = url.searchParams.get('error_description') ?? error;
167
+ res.writeHead(200, { 'Content-Type': 'text/html' });
168
+ res.end('<html><body><h2>Authorization denied</h2><p>You can close this tab.</p></body></html>');
169
+ rejectCallback(new Error(`OAuth authorization failed: ${desc}`));
170
+ return;
171
+ }
172
+ if (!code || !returnedState) {
173
+ res.writeHead(400, { 'Content-Type': 'text/html' });
174
+ res.end('<html><body><h2>Missing parameters</h2></body></html>');
175
+ rejectCallback(new Error('Missing code or state in OAuth callback'));
176
+ return;
177
+ }
178
+ res.writeHead(200, { 'Content-Type': 'text/html' });
179
+ res.end('<html><body><h2>Login successful!</h2><p>You can close this tab and return to the terminal.</p></body></html>');
180
+ resolveCallback({ code, returnedState });
181
+ }
182
+ else {
183
+ res.writeHead(404);
184
+ res.end();
185
+ }
186
+ });
187
+ const address = await new Promise((resolve, reject) => {
188
+ server.once('error', reject);
189
+ server.listen(0, '127.0.0.1', () => {
190
+ const addr = server.address();
191
+ if (!addr || typeof addr === 'string') {
192
+ reject(new Error('Failed to obtain callback server address'));
193
+ return;
194
+ }
195
+ resolve(addr);
196
+ });
197
+ });
198
+ const timeout = setTimeout(() => {
199
+ rejectCallback(new Error('OAuth login timed out after 120 seconds'));
200
+ server.close();
201
+ }, TIMEOUT_MS);
202
+ const waitForCallback = async () => {
203
+ try {
204
+ return await callbackPromise;
205
+ }
206
+ finally {
207
+ clearTimeout(timeout);
208
+ }
209
+ };
210
+ return { server, port: address.port, waitForCallback };
211
+ }
212
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Translates CLI positional args and flags into API request body objects.
3
+ */
4
+ import type { CommandRoute } from './command-registry.js';
5
+ import type { ParamSpec } from './spec-parser.js';
6
+ /**
7
+ * Build the API request body from CLI inputs.
8
+ *
9
+ * Priority (highest first):
10
+ * 1. --data <json> — raw JSON override
11
+ * 2. --file <path> — read JSON file as body
12
+ * 3. Positional args + flags assembled from spec
13
+ */
14
+ export declare function buildParams(route: CommandRoute, specParams: ParamSpec[], positionalValues: Record<string, string | string[]>, flags: Record<string, unknown>): Record<string, unknown>;
15
+ /**
16
+ * Derive the wrapping key for array-of-objects positional args.
17
+ * Uses the first required string property from the spec, falling back to "name".
18
+ */
19
+ export declare function deriveWrapKey(spec: ParamSpec): string;
20
+ /**
21
+ * Generate Commander option flags for a spec param.
22
+ * Returns the flag string and description.
23
+ */
24
+ export declare function specParamToOption(spec: ParamSpec, skipNames: Set<string>): {
25
+ flags: string;
26
+ description: string;
27
+ } | null;
28
+ //# sourceMappingURL=param-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-builder.d.ts","sourceRoot":"","sources":["../../src/lib/param-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,SAAS,EAAE,EACvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqGzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAMrD;AAmCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqB/C"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Translates CLI positional args and flags into API request body objects.
3
+ */
4
+ import { readFileSync } from 'node:fs';
5
+ /**
6
+ * Build the API request body from CLI inputs.
7
+ *
8
+ * Priority (highest first):
9
+ * 1. --data <json> — raw JSON override
10
+ * 2. --file <path> — read JSON file as body
11
+ * 3. Positional args + flags assembled from spec
12
+ */
13
+ export function buildParams(route, specParams, positionalValues, flags) {
14
+ // --data takes absolute priority
15
+ if (flags.data) {
16
+ try {
17
+ return JSON.parse(flags.data);
18
+ }
19
+ catch {
20
+ throw new Error(`Invalid JSON in --data: ${flags.data}`);
21
+ }
22
+ }
23
+ // --file reads a JSON file.
24
+ // Security note: this is a local CLI tool run by the authenticated user, so path traversal
25
+ // and file size are not concerns here (the user already has filesystem access). If this
26
+ // ever runs in a shared/server context, add path validation and size limits.
27
+ if (flags.file) {
28
+ try {
29
+ const content = readFileSync(flags.file, 'utf-8');
30
+ return JSON.parse(content);
31
+ }
32
+ catch (err) {
33
+ throw new Error(`Failed to read --file: ${err instanceof Error ? err.message : String(err)}`);
34
+ }
35
+ }
36
+ const body = {};
37
+ // Map positional args into the body — only when the spec has a matching top-level param.
38
+ // Positional args like "domain" for dns record add are consumed by the single-item
39
+ // shorthand logic below, not mapped directly.
40
+ for (const arg of route.positionalArgs) {
41
+ const value = positionalValues[arg.name];
42
+ if (value === undefined)
43
+ continue;
44
+ const specParam = specParams.find((p) => p.name === arg.name);
45
+ if (!specParam) {
46
+ // No matching top-level spec param — skip (will be consumed by shorthand)
47
+ continue;
48
+ }
49
+ // Determine how to map the positional value
50
+ if (specParam.type === 'array') {
51
+ const values = Array.isArray(value) ? value : [value];
52
+ if (specParam.items?.type === 'object') {
53
+ // Array of objects — wrap each value using the primary key from the spec
54
+ const wrapKey = deriveWrapKey(specParam);
55
+ body[arg.name] = values.map((v) => ({ [wrapKey]: v }));
56
+ }
57
+ else {
58
+ body[arg.name] = values;
59
+ }
60
+ }
61
+ else {
62
+ // Scalar positional
63
+ body[arg.name] = Array.isArray(value) ? value[0] : value;
64
+ }
65
+ }
66
+ // Map flags into the body with type coercion
67
+ for (const spec of specParams) {
68
+ // Skip params already set by positional args
69
+ if (body[spec.name] !== undefined)
70
+ continue;
71
+ const flagName = specParamToFlagName(spec.name);
72
+ const rawValue = flags[flagName] ?? flags[spec.name];
73
+ if (rawValue === undefined)
74
+ continue;
75
+ body[spec.name] = coerceValue(rawValue, spec);
76
+ }
77
+ // Handle single-item shorthand for array-of-objects params.
78
+ // If a param expects records: [{domain, type, values}] but the user
79
+ // passed --type A --values 1.2.3.4 along with a positional domain,
80
+ // wrap the loose flags into the first array element.
81
+ for (const spec of specParams) {
82
+ if (spec.type === 'array' && spec.items?.type === 'object' && spec.items.properties) {
83
+ if (body[spec.name] !== undefined)
84
+ continue;
85
+ const itemProps = spec.items.properties;
86
+ const item = {};
87
+ let hasAny = false;
88
+ for (const prop of itemProps) {
89
+ const flagName = specParamToFlagName(prop.name);
90
+ const rawValue = flags[flagName] ?? flags[prop.name];
91
+ if (rawValue !== undefined) {
92
+ item[prop.name] = coerceValue(rawValue, prop);
93
+ hasAny = true;
94
+ }
95
+ }
96
+ // Also pull in any positional domain value for the record
97
+ if (item.domain === undefined && positionalValues.domain) {
98
+ const domVal = positionalValues.domain;
99
+ item.domain = Array.isArray(domVal) ? domVal[0] : domVal;
100
+ hasAny = true;
101
+ }
102
+ if (hasAny) {
103
+ body[spec.name] = [item];
104
+ }
105
+ }
106
+ }
107
+ return body;
108
+ }
109
+ /**
110
+ * Derive the wrapping key for array-of-objects positional args.
111
+ * Uses the first required string property from the spec, falling back to "name".
112
+ */
113
+ export function deriveWrapKey(spec) {
114
+ if (spec.items?.properties) {
115
+ const reqStr = spec.items.properties.find((p) => p.required && p.type === 'string');
116
+ if (reqStr)
117
+ return reqStr.name;
118
+ }
119
+ return 'name';
120
+ }
121
+ /**
122
+ * Coerce a CLI flag value to the type expected by the spec.
123
+ */
124
+ function coerceValue(value, spec) {
125
+ if (value === undefined || value === null)
126
+ return value;
127
+ switch (spec.type) {
128
+ case 'number':
129
+ return Number(value);
130
+ case 'boolean':
131
+ if (value === 'false' || value === '0')
132
+ return false;
133
+ if (value === 'true' || value === '1')
134
+ return true;
135
+ return Boolean(value);
136
+ case 'array': {
137
+ // Handle comma-separated values: "x,crypto" → ["x", "crypto"]
138
+ if (typeof value === 'string') {
139
+ return value.split(',').map((v) => v.trim());
140
+ }
141
+ return Array.isArray(value) ? value : [value];
142
+ }
143
+ default:
144
+ return value;
145
+ }
146
+ }
147
+ /**
148
+ * Convert a camelCase spec param name to kebab-case flag name.
149
+ * e.g. "pageSize" → "page-size", "discountCode" → "discount-code"
150
+ */
151
+ function specParamToFlagName(name) {
152
+ return name.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());
153
+ }
154
+ /**
155
+ * Generate Commander option flags for a spec param.
156
+ * Returns the flag string and description.
157
+ */
158
+ export function specParamToOption(spec, skipNames) {
159
+ if (skipNames.has(spec.name))
160
+ return null;
161
+ // Skip complex nested objects that should use --data
162
+ if (spec.type === 'object' && spec.properties && spec.properties.length > 0)
163
+ return null;
164
+ // Skip array-of-objects (handled by single-item shorthand or --data)
165
+ if (spec.type === 'array' && spec.items?.type === 'object')
166
+ return null;
167
+ const flagName = specParamToFlagName(spec.name);
168
+ const flags = spec.type === 'boolean' ? `--${flagName}` : `--${flagName} <${spec.name}>`;
169
+ let description = spec.description ?? '';
170
+ if (spec.enum) {
171
+ description += ` (${spec.enum.join(', ')})`;
172
+ }
173
+ if (spec.default !== undefined) {
174
+ description += ` [default: ${spec.default}]`;
175
+ }
176
+ return { flags, description };
177
+ }
178
+ //# sourceMappingURL=param-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-builder.js","sourceRoot":"","sources":["../../src/lib/param-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Readline-based interactive prompt utilities.
3
+ * Used for OTP prompts and destructive-action confirmations.
4
+ */
5
+ /**
6
+ * Prompt the user for text input.
7
+ * Returns empty string in non-TTY environments (piped input).
8
+ */
9
+ export declare function promptInput(message: string, opts?: {
10
+ validate?: RegExp;
11
+ }): Promise<string>;
12
+ /**
13
+ * Prompt the user for a yes/no confirmation.
14
+ * Returns false in non-TTY environments.
15
+ */
16
+ export declare function promptConfirm(message: string): Promise<boolean>;
17
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrE"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Readline-based interactive prompt utilities.
3
+ * Used for OTP prompts and destructive-action confirmations.
4
+ */
5
+ import { createInterface } from 'node:readline/promises';
6
+ /**
7
+ * Prompt the user for text input.
8
+ * Returns empty string in non-TTY environments (piped input).
9
+ */
10
+ export async function promptInput(message, opts) {
11
+ if (!process.stdin.isTTY)
12
+ return '';
13
+ const maxAttempts = 3;
14
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
15
+ try {
16
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
17
+ const rawAnswer = await rl.question(message);
18
+ const answer = rawAnswer.trim();
19
+ if (opts?.validate && !opts.validate.test(answer)) {
20
+ const remaining = maxAttempts - attempt;
21
+ if (remaining > 0) {
22
+ console.error(`Invalid input: expected format ${opts.validate} (${remaining} attempt${remaining > 1 ? 's' : ''} remaining)`);
23
+ }
24
+ else {
25
+ console.error(`Invalid input: expected format ${opts.validate}`);
26
+ }
27
+ continue;
28
+ }
29
+ return answer;
30
+ }
31
+ return '';
32
+ }
33
+ finally {
34
+ rl.close();
35
+ }
36
+ }
37
+ /**
38
+ * Prompt the user for a yes/no confirmation.
39
+ * Returns false in non-TTY environments.
40
+ */
41
+ export async function promptConfirm(message) {
42
+ if (!process.stdin.isTTY)
43
+ return false;
44
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
45
+ try {
46
+ const answer = await rl.question(`${message} [y/N] `);
47
+ return /^y(es)?$/i.test(answer.trim());
48
+ }
49
+ finally {
50
+ rl.close();
51
+ }
52
+ }
53
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,IAA4B;IAE5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,IAAI,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;gBACxC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,KAAK,SAAS,WAAW,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBAC/H,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,CAAC;gBACD,SAAS;YACX,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}