@qodalis/cli-curl 2.0.0-beta.7 → 2.0.0-beta.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-curl",
3
- "version": "2.0.0-beta.7",
3
+ "version": "2.0.0-beta.9",
4
4
  "description": "@qodalis/cli extension for making HTTP requests via a curl-like interface.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
@@ -21,7 +21,7 @@
21
21
  "umd": "./umd/index.global.js",
22
22
  "unpkg": "./umd/index.global.js",
23
23
  "dependencies": {
24
- "@qodalis/cli-core": "2.0.0-beta.7"
24
+ "@qodalis/cli-core": "2.0.0-beta.9"
25
25
  },
26
26
  "sideEffects": false,
27
27
  "main": "./public-api.js",
package/public-api.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _qodalis_cli_core from '@qodalis/cli-core';
2
- import { ICliCommandProcessor, CliProcessorMetadata, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
2
+ import { ICliCommandProcessor, CliProcessorMetadata, ICliConfigurationOption, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
3
3
 
4
4
  interface CurlRequestOptions {
5
5
  method: string;
@@ -33,6 +33,7 @@ declare class CliCurlCommandProcessor implements ICliCommandProcessor {
33
33
  version: string;
34
34
  valueRequired: boolean;
35
35
  metadata?: CliProcessorMetadata;
36
+ configurationOptions?: ICliConfigurationOption[];
36
37
  parameters: ({
37
38
  name: string;
38
39
  aliases: string[];
package/public-api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _qodalis_cli_core from '@qodalis/cli-core';
2
- import { ICliCommandProcessor, CliProcessorMetadata, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
2
+ import { ICliCommandProcessor, CliProcessorMetadata, ICliConfigurationOption, CliProcessCommand, ICliExecutionContext, ICliModule } from '@qodalis/cli-core';
3
3
 
4
4
  interface CurlRequestOptions {
5
5
  method: string;
@@ -33,6 +33,7 @@ declare class CliCurlCommandProcessor implements ICliCommandProcessor {
33
33
  version: string;
34
34
  valueRequired: boolean;
35
35
  metadata?: CliProcessorMetadata;
36
+ configurationOptions?: ICliConfigurationOption[];
36
37
  parameters: ({
37
38
  name: string;
38
39
  aliases: string[];
package/public-api.js CHANGED
@@ -103,7 +103,7 @@ function extractResponseHeaders(response) {
103
103
  }
104
104
 
105
105
  // src/lib/version.ts
106
- var LIBRARY_VERSION = "2.0.0-beta.7";
106
+ var LIBRARY_VERSION = "2.0.0-beta.9";
107
107
  var API_VERSION = 2;
108
108
 
109
109
  // src/lib/processors/cli-curl-command-processor.ts
@@ -119,6 +119,33 @@ var CliCurlCommandProcessor = class {
119
119
  requiredCoreVersion: ">=2.0.0 <3.0.0",
120
120
  requiredCliVersion: ">=2.0.0 <3.0.0"
121
121
  };
122
+ this.configurationOptions = [
123
+ {
124
+ key: "defaultTimeout",
125
+ label: "Default Timeout",
126
+ description: "Default request timeout in milliseconds",
127
+ type: "number",
128
+ defaultValue: 3e4,
129
+ validator: (v) => ({
130
+ valid: typeof v === "number" && v >= 1e3 && v <= 3e5,
131
+ message: "Must be between 1000 and 300000 ms"
132
+ })
133
+ },
134
+ {
135
+ key: "prettyPrint",
136
+ label: "Pretty-Print JSON",
137
+ description: "Pretty-print JSON responses by default",
138
+ type: "boolean",
139
+ defaultValue: false
140
+ },
141
+ {
142
+ key: "verbose",
143
+ label: "Verbose Output",
144
+ description: "Show request/response headers by default",
145
+ type: "boolean",
146
+ defaultValue: false
147
+ }
148
+ ];
122
149
  this.parameters = [
123
150
  {
124
151
  name: "request",
@@ -197,15 +224,18 @@ var CliCurlCommandProcessor = class {
197
224
  return;
198
225
  }
199
226
  const args = command.args;
227
+ const cfgTimeout = cliCore.getPluginConfigValue(context, "curl", "defaultTimeout", 3e4);
228
+ const cfgPretty = cliCore.getPluginConfigValue(context, "curl", "prettyPrint", false);
229
+ const cfgVerbose = cliCore.getPluginConfigValue(context, "curl", "verbose", false);
200
230
  const explicitMethod = args["request"] || args["X"];
201
231
  const data = args["data"] || args["d"];
202
232
  const dataRaw = args["data-raw"];
203
233
  const hasBody = data != null || dataRaw != null;
204
- const verbose = !!args["verbose"] || !!args["v"];
205
- const pretty = !!args["pretty"];
234
+ const verbose = args["verbose"] != null || args["v"] != null ? !!args["verbose"] || !!args["v"] : cfgVerbose;
235
+ const pretty = args["pretty"] != null ? !!args["pretty"] : cfgPretty;
206
236
  const silent = !!args["silent"] || !!args["s"];
207
237
  const useProxy = !!args["proxy"];
208
- const timeout = parseInt(args["timeout"] || "30000", 10);
238
+ const timeout = parseInt(args["timeout"] || String(cfgTimeout), 10);
209
239
  const followRedirects = args["location"] !== false && args["L"] !== false;
210
240
  let method;
211
241
  try {
package/public-api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/curl/src/lib/utilities/index.ts","../../packages/plugins/curl/src/lib/version.ts","../../packages/plugins/curl/src/lib/processors/cli-curl-command-processor.ts","../../packages/plugins/curl/src/public-api.ts"],"names":["DefaultLibraryAuthor","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["export interface CurlRequestOptions {\n method: string;\n headers: Record<string, string>;\n body?: string;\n followRedirects: boolean;\n}\n\nexport interface CurlResponse {\n status: number;\n statusText: string;\n headers: Record<string, string>;\n body: string;\n timing: number;\n url: string;\n redirected: boolean;\n}\n\nconst VALID_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];\n\nexport function inferMethod(explicitMethod?: string, hasBody?: boolean): string {\n if (explicitMethod) {\n const upper = explicitMethod.toUpperCase();\n if (!VALID_METHODS.includes(upper)) {\n throw new Error(`Invalid HTTP method: ${explicitMethod}. Valid methods: ${VALID_METHODS.join(', ')}`);\n }\n return upper;\n }\n return hasBody ? 'POST' : 'GET';\n}\n\nexport function parseHeaders(headerArgs: string | string[] | undefined): Record<string, string> {\n if (!headerArgs) return {};\n const arr = Array.isArray(headerArgs) ? headerArgs : [headerArgs];\n const result: Record<string, string> = {};\n for (const header of arr) {\n const colonIndex = header.indexOf(':');\n if (colonIndex === -1) continue;\n const key = header.substring(0, colonIndex).trim();\n const value = header.substring(colonIndex + 1).trim();\n if (key) result[key] = value;\n }\n return result;\n}\n\nexport function resolveBody(data?: string, dataRaw?: string): string | undefined {\n if (dataRaw != null) return dataRaw;\n if (data == null) return undefined;\n try {\n return JSON.stringify(JSON.parse(data));\n } catch {\n return data;\n }\n}\n\nexport function isJsonBody(body?: string): boolean {\n if (!body) return false;\n try {\n JSON.parse(body);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function buildFetchOptions(options: CurlRequestOptions): RequestInit {\n const headers = { ...options.headers };\n\n if (options.body && !headers['Content-Type'] && isJsonBody(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n\n const init: RequestInit = {\n method: options.method,\n headers,\n };\n\n if (options.body && options.method !== 'GET' && options.method !== 'HEAD') {\n init.body = options.body;\n }\n\n if (!options.followRedirects) {\n init.redirect = 'manual';\n }\n\n return init;\n}\n\nexport function formatResponseBody(body: string, pretty: boolean): string {\n if (!pretty) return body;\n try {\n return JSON.stringify(JSON.parse(body), null, 2);\n } catch {\n return body;\n }\n}\n\nexport function rewriteUrlToProxy(originalUrl: string): string {\n const match = originalUrl.match(/^(https?):\\/\\/([^\\/]+)(\\/.*)?$/i);\n if (!match) {\n throw new Error(`Invalid URL: ${originalUrl}`);\n }\n const scheme = match[1];\n const domain = match[2];\n const path = match[3] || '/';\n return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;\n}\n\nexport function buildCurlEquivalent(\n url: string,\n method: string,\n headers: Record<string, string>,\n body?: string,\n): string {\n const parts = ['curl'];\n if (method !== 'GET') {\n parts.push(`-X ${method}`);\n }\n for (const [key, value] of Object.entries(headers)) {\n parts.push(`-H '${key}: ${value}'`);\n }\n if (body) {\n parts.push(`-d '${body}'`);\n }\n parts.push(`'${url}'`);\n return parts.join(' ');\n}\n\nexport function extractResponseHeaders(response: Response): Record<string, string> {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return headers;\n}\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.7';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\nimport {\n CurlResponse,\n buildCurlEquivalent,\n buildFetchOptions,\n extractResponseHeaders,\n formatResponseBody,\n inferMethod,\n parseHeaders,\n resolveBody,\n rewriteUrlToProxy,\n} from '../utilities';\n\nexport class CliCurlCommandProcessor implements ICliCommandProcessor {\n command = 'curl';\n\n description = 'Make HTTP requests from the terminal. Supports all HTTP methods, custom headers, request bodies, timeouts, and more.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n valueRequired = true;\n\n metadata?: CliProcessorMetadata = {\n icon: '🌐',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n parameters = [\n {\n name: 'request',\n aliases: ['X'],\n type: 'string' as const,\n description: 'HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array' as const,\n description: 'Add header, e.g. -H \\'Content-Type: application/json\\' (repeatable)',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string' as const,\n description: 'Request body (auto-detects JSON, sets method to POST if -X not given)',\n required: false,\n },\n {\n name: 'data-raw',\n type: 'string' as const,\n description: 'Request body sent as-is without JSON parsing',\n required: false,\n },\n {\n name: 'verbose',\n aliases: ['v'],\n type: 'boolean' as const,\n description: 'Show request/response headers and timing',\n required: false,\n },\n {\n name: 'pretty',\n type: 'boolean' as const,\n description: 'Pretty-print JSON response body',\n required: false,\n },\n {\n name: 'timeout',\n type: 'number' as const,\n description: 'Request timeout in milliseconds (default: 30000)',\n required: false,\n defaultValue: '30000',\n },\n {\n name: 'location',\n aliases: ['L'],\n type: 'boolean' as const,\n description: 'Follow redirects (default: true)',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean' as const,\n description: 'Route request through proxy.qodalis.com (bypasses CORS)',\n required: false,\n },\n {\n name: 'silent',\n aliases: ['s'],\n type: 'boolean' as const,\n description: 'Only output response body (no status line)',\n required: false,\n },\n ];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value;\n\n if (!url) {\n context.writer.writeError('URL is required. Usage: curl <url> [options]');\n context.process.exit(1);\n return;\n }\n\n const args = command.args;\n const explicitMethod = args['request'] || args['X'];\n const data = args['data'] || args['d'];\n const dataRaw = args['data-raw'];\n const hasBody = data != null || dataRaw != null;\n const verbose = !!args['verbose'] || !!args['v'];\n const pretty = !!args['pretty'];\n const silent = !!args['silent'] || !!args['s'];\n const useProxy = !!args['proxy'];\n const timeout = parseInt(args['timeout'] || '30000', 10);\n const followRedirects = args['location'] !== false && args['L'] !== false;\n\n let method: string;\n try {\n method = inferMethod(explicitMethod, hasBody);\n } catch (e: any) {\n context.writer.writeError(e.message);\n context.process.exit(1);\n return;\n }\n\n const headers = parseHeaders(args['header'] || args['H']);\n const body = resolveBody(data, dataRaw);\n const requestUrl = useProxy ? rewriteUrlToProxy(url) : url;\n\n const fetchOptions = buildFetchOptions({\n method,\n headers,\n body,\n followRedirects,\n });\n\n if (verbose) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${method} ${url}`, CliForegroundColor.Cyan)}`,\n );\n for (const [key, value] of Object.entries(headers)) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n if (body) {\n context.writer.writeln(`> Body: ${body}`);\n }\n context.writer.writeln();\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n fetchOptions.signal = controller.signal;\n\n const startTime = performance.now();\n\n try {\n const response = await fetch(requestUrl, fetchOptions);\n const elapsed = Math.round(performance.now() - startTime);\n const responseText = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n const curlResponse: CurlResponse = {\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n body: responseText,\n timing: elapsed,\n url: response.url,\n redirected: response.redirected,\n };\n\n if (!silent) {\n const statusColor = response.ok ? CliForegroundColor.Green : CliForegroundColor.Red;\n context.writer.writeln(\n context.writer.wrapInColor(\n `HTTP ${response.status} ${response.statusText}`,\n statusColor,\n ),\n );\n }\n\n if (verbose) {\n context.writer.writeln();\n for (const [key, value] of Object.entries(responseHeaders)) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Time: ${elapsed}ms`, CliForegroundColor.Magenta)}`,\n );\n if (response.redirected) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Redirected to: ${response.url}`, CliForegroundColor.Cyan)}`,\n );\n }\n context.writer.writeln();\n }\n\n const formattedBody = formatResponseBody(responseText, pretty);\n if (formattedBody) {\n context.writer.writeln(formattedBody);\n }\n\n if (verbose) {\n context.writer.writeln();\n context.writer.writeInfo('Equivalent curl command:');\n context.writer.writeln(buildCurlEquivalent(url, method, headers, body));\n }\n\n context.process.output(curlResponse);\n } catch (error: any) {\n if (error.name === 'AbortError') {\n context.writer.writeError(`Request timed out after ${timeout}ms`);\n } else {\n context.writer.writeError(`Request failed: ${error.message}`);\n }\n context.process.exit(1);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n\n writer.writeln(this.description!);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Usage:', CliForegroundColor.Yellow));\n writer.writeln(` curl <url> [options]`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Options:', CliForegroundColor.Yellow));\n writer.writeln(` ${writer.wrapInColor('-X, --request <METHOD>', CliForegroundColor.Cyan)} HTTP method (default: GET, or POST if -d given)`);\n writer.writeln(` ${writer.wrapInColor('-H, --header <header>', CliForegroundColor.Cyan)} Add header (repeatable)`);\n writer.writeln(` ${writer.wrapInColor('-d, --data <body>', CliForegroundColor.Cyan)} Request body (auto-detects JSON)`);\n writer.writeln(` ${writer.wrapInColor('--data-raw <body>', CliForegroundColor.Cyan)} Request body as-is`);\n writer.writeln(` ${writer.wrapInColor('-v, --verbose', CliForegroundColor.Cyan)} Show headers and timing`);\n writer.writeln(` ${writer.wrapInColor('--pretty', CliForegroundColor.Cyan)} Pretty-print JSON response`);\n writer.writeln(` ${writer.wrapInColor('--timeout <ms>', CliForegroundColor.Cyan)} Timeout in ms (default: 30000)`);\n writer.writeln(` ${writer.wrapInColor('-L, --location', CliForegroundColor.Cyan)} Follow redirects (default: true)`);\n writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Cyan)} Route through CORS proxy`);\n writer.writeln(` ${writer.wrapInColor('-s, --silent', CliForegroundColor.Cyan)} Only output body`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Examples:', CliForegroundColor.Yellow));\n writer.writeln(` curl https://api.example.com/users`);\n writer.writeln(` curl https://api.example.com/users -X POST -d '{\"name\":\"John\"}' -H 'Content-Type: application/json'`);\n writer.writeln(` curl https://api.example.com/users -v --pretty`);\n writer.writeln(` curl https://api.example.com/status -X HEAD`);\n writer.writeln(` curl https://api.example.com/data --proxy --timeout 5000`);\n writer.writeln();\n\n writer.writeWarning('The server must allow CORS for this tool to work. Use --proxy to bypass CORS restrictions.');\n }\n\n async initialize(_context: ICliExecutionContext): Promise<void> {}\n}\n","/*\n * Public API Surface of curl\n */\n\nexport * from './lib/utilities';\nexport * from './lib/processors/cli-curl-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliCurlCommandProcessor } from './lib/processors/cli-curl-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const curlModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-curl',\n processors: [new CliCurlCommandProcessor()],\n translations: {\n es: { 'cli.curl.description': 'Realizar solicitudes HTTP desde la terminal' },\n fr: { 'cli.curl.description': 'Effectuer des requêtes HTTP depuis le terminal' },\n de: { 'cli.curl.description': 'HTTP-Anfragen vom Terminal ausführen' },\n pt: { 'cli.curl.description': 'Fazer requisições HTTP pelo terminal' },\n it: { 'cli.curl.description': 'Eseguire richieste HTTP dal terminale' },\n ja: { 'cli.curl.description': 'ターミナルからHTTPリクエストを実行' },\n ko: { 'cli.curl.description': '터미널에서 HTTP 요청 수행' },\n zh: { 'cli.curl.description': '从终端发送 HTTP 请求' },\n ru: { 'cli.curl.description': 'Выполнение HTTP-запросов из терминала' },\n ro: { 'cli.curl.description': 'Efectuează cereri HTTP din terminal' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/curl/src/lib/utilities/index.ts","../../packages/plugins/curl/src/lib/version.ts","../../packages/plugins/curl/src/lib/processors/cli-curl-command-processor.ts","../../packages/plugins/curl/src/public-api.ts"],"names":["DefaultLibraryAuthor","getPluginConfigValue","CliForegroundColor"],"mappings":";;;;;AAiBA,IAAM,aAAA,GAAgB,CAAC,KAAA,EAAO,MAAA,EAAQ,OAAO,OAAA,EAAS,QAAA,EAAU,QAAQ,SAAS,CAAA;AAE1E,SAAS,WAAA,CAAY,gBAAyB,OAAA,EAA2B;AAC5E,EAAA,IAAI,cAAA,EAAgB;AAChB,IAAA,MAAM,KAAA,GAAQ,eAAe,WAAA,EAAY;AACzC,IAAA,IAAI,CAAC,aAAA,CAAc,QAAA,CAAS,KAAK,CAAA,EAAG;AAChC,MAAA,MAAM,IAAI,MAAM,CAAA,qBAAA,EAAwB,cAAc,oBAAoB,aAAA,CAAc,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,IACxG;AACA,IAAA,OAAO,KAAA;AAAA,EACX;AACA,EAAA,OAAO,UAAU,MAAA,GAAS,KAAA;AAC9B;AAEO,SAAS,aAAa,UAAA,EAAmE;AAC5F,EAAA,IAAI,CAAC,UAAA,EAAY,OAAO,EAAC;AACzB,EAAA,MAAM,MAAM,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,GAAI,UAAA,GAAa,CAAC,UAAU,CAAA;AAChE,EAAA,MAAM,SAAiC,EAAC;AACxC,EAAA,KAAA,MAAW,UAAU,GAAA,EAAK;AACtB,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA;AACrC,IAAA,IAAI,eAAe,EAAA,EAAI;AACvB,IAAA,MAAM,MAAM,MAAA,CAAO,SAAA,CAAU,CAAA,EAAG,UAAU,EAAE,IAAA,EAAK;AACjD,IAAA,MAAM,QAAQ,MAAA,CAAO,SAAA,CAAU,UAAA,GAAa,CAAC,EAAE,IAAA,EAAK;AACpD,IAAA,IAAI,GAAA,EAAK,MAAA,CAAO,GAAG,CAAA,GAAI,KAAA;AAAA,EAC3B;AACA,EAAA,OAAO,MAAA;AACX;AAEO,SAAS,WAAA,CAAY,MAAe,OAAA,EAAsC;AAC7E,EAAA,IAAI,OAAA,IAAW,MAAM,OAAO,OAAA;AAC5B,EAAA,IAAI,IAAA,IAAQ,MAAM,OAAO,MAAA;AACzB,EAAA,IAAI;AACA,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA,EAC1C,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,IAAA;AAAA,EACX;AACJ;AAEO,SAAS,WAAW,IAAA,EAAwB;AAC/C,EAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAClB,EAAA,IAAI;AACA,IAAA,IAAA,CAAK,MAAM,IAAI,CAAA;AACf,IAAA,OAAO,IAAA;AAAA,EACX,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AAAA,EACX;AACJ;AAEO,SAAS,kBAAkB,OAAA,EAA0C;AACxE,EAAA,MAAM,OAAA,GAAU,EAAE,GAAG,OAAA,CAAQ,OAAA,EAAQ;AAErC,EAAA,IAAI,OAAA,CAAQ,QAAQ,CAAC,OAAA,CAAQ,cAAc,CAAA,IAAK,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAA,EAAG;AACtE,IAAA,OAAA,CAAQ,cAAc,CAAA,GAAI,kBAAA;AAAA,EAC9B;AAEA,EAAA,MAAM,IAAA,GAAoB;AAAA,IACtB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB;AAAA,GACJ;AAEA,EAAA,IAAI,QAAQ,IAAA,IAAQ,OAAA,CAAQ,WAAW,KAAA,IAAS,OAAA,CAAQ,WAAW,MAAA,EAAQ;AACvE,IAAA,IAAA,CAAK,OAAO,OAAA,CAAQ,IAAA;AAAA,EACxB;AAEA,EAAA,IAAI,CAAC,QAAQ,eAAA,EAAiB;AAC1B,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAAA,EACpB;AAEA,EAAA,OAAO,IAAA;AACX;AAEO,SAAS,kBAAA,CAAmB,MAAc,MAAA,EAAyB;AACtE,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,IAAI;AACA,IAAA,OAAO,KAAK,SAAA,CAAU,IAAA,CAAK,MAAM,IAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAAA,EACnD,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,IAAA;AAAA,EACX;AACJ;AAEO,SAAS,kBAAkB,WAAA,EAA6B;AAC3D,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,KAAA,CAAM,iCAAiC,CAAA;AACjE,EAAA,IAAI,CAAC,KAAA,EAAO;AACR,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAE,CAAA;AAAA,EACjD;AACA,EAAA,MAAM,MAAA,GAAS,MAAM,CAAC,CAAA;AACtB,EAAA,MAAM,MAAA,GAAS,MAAM,CAAC,CAAA;AACtB,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,CAAC,CAAA,IAAK,GAAA;AACzB,EAAA,OAAO,CAAA,gCAAA,EAAmC,MAAM,CAAA,CAAA,EAAI,MAAM,GAAG,IAAI,CAAA,CAAA;AACrE;AAEO,SAAS,mBAAA,CACZ,GAAA,EACA,MAAA,EACA,OAAA,EACA,IAAA,EACM;AACN,EAAA,MAAM,KAAA,GAAQ,CAAC,MAAM,CAAA;AACrB,EAAA,IAAI,WAAW,KAAA,EAAO;AAClB,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,GAAA,EAAM,MAAM,CAAA,CAAE,CAAA;AAAA,EAC7B;AACA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AAChD,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,IAAA,EAAO,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,CAAG,CAAA;AAAA,EACtC;AACA,EAAA,IAAI,IAAA,EAAM;AACN,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,IAAA,EAAO,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,EAC7B;AACA,EAAA,KAAA,CAAM,IAAA,CAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAG,CAAA;AACrB,EAAA,OAAO,KAAA,CAAM,KAAK,GAAG,CAAA;AACzB;AAEO,SAAS,uBAAuB,QAAA,EAA4C;AAC/E,EAAA,MAAM,UAAkC,EAAC;AACzC,EAAA,QAAA,CAAS,OAAA,CAAQ,OAAA,CAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AACrC,IAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,KAAA;AAAA,EACnB,CAAC,CAAA;AACD,EAAA,OAAO,OAAA;AACX;;;ACnIO,IAAM,eAAA,GAAkB,cAAA;AACxB,IAAM,WAAA,GAAc,CAAA;;;ACoBpB,IAAM,0BAAN,MAA8D;AAAA,EAA9D,WAAA,GAAA;AACH,IAAA,IAAA,CAAA,OAAA,GAAU,MAAA;AAEV,IAAA,IAAA,CAAA,WAAA,GAAc,sHAAA;AAEd,IAAA,IAAA,CAAA,MAAA,GAASA,4BAAA;AAET,IAAA,IAAA,CAAA,OAAA,GAAU,eAAA;AAEV,IAAA,IAAA,CAAA,aAAA,GAAgB,IAAA;AAEhB,IAAA,IAAA,CAAA,QAAA,GAAkC;AAAA,MAC9B,IAAA,EAAM,WAAA;AAAA,MACN,mBAAA,EAAqB,gBAAA;AAAA,MACrB,kBAAA,EAAoB;AAAA,KACxB;AAEA,IAAA,IAAA,CAAA,oBAAA,GAAmD;AAAA,MAC/C;AAAA,QACI,GAAA,EAAK,gBAAA;AAAA,QACL,KAAA,EAAO,iBAAA;AAAA,QACP,WAAA,EAAa,yCAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,YAAA,EAAc,GAAA;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,MAAO;AAAA,UACf,OAAO,OAAO,CAAA,KAAM,QAAA,IAAY,CAAA,IAAK,OAAQ,CAAA,IAAK,GAAA;AAAA,UAClD,OAAA,EAAS;AAAA,SACb;AAAA,OACJ;AAAA,MACA;AAAA,QACI,GAAA,EAAK,aAAA;AAAA,QACL,KAAA,EAAO,mBAAA;AAAA,QACP,WAAA,EAAa,wCAAA;AAAA,QACb,IAAA,EAAM,SAAA;AAAA,QACN,YAAA,EAAc;AAAA,OAClB;AAAA,MACA;AAAA,QACI,GAAA,EAAK,SAAA;AAAA,QACL,KAAA,EAAO,gBAAA;AAAA,QACP,WAAA,EAAa,0CAAA;AAAA,QACb,IAAA,EAAM,SAAA;AAAA,QACN,YAAA,EAAc;AAAA;AAClB,KACJ;AAEA,IAAA,IAAA,CAAA,UAAA,GAAa;AAAA,MACT;AAAA,QACI,IAAA,EAAM,SAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAG,CAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa,4DAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAG,CAAA;AAAA,QACb,IAAA,EAAM,OAAA;AAAA,QACN,WAAA,EAAa,mEAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAG,CAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa,uEAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,UAAA;AAAA,QACN,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa,8CAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,SAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAG,CAAA;AAAA,QACb,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,0CAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,QAAA;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,iCAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,SAAA;AAAA,QACN,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa,kDAAA;AAAA,QACb,QAAA,EAAU,KAAA;AAAA,QACV,YAAA,EAAc;AAAA,OAClB;AAAA,MACA;AAAA,QACI,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAG,CAAA;AAAA,QACb,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,kCAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,OAAA;AAAA,QACN,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,yDAAA;AAAA,QACb,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAG,CAAA;AAAA,QACb,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,4CAAA;AAAA,QACb,QAAA,EAAU;AAAA;AACd,KACJ;AAAA,EAAA;AAAA,EAEA,MAAM,cAAA,CACF,OAAA,EACA,OAAA,EACa;AACb,IAAA,MAAM,MAAM,OAAA,CAAQ,KAAA;AAEpB,IAAA,IAAI,CAAC,GAAA,EAAK;AACN,MAAA,OAAA,CAAQ,MAAA,CAAO,WAAW,8CAA8C,CAAA;AACxE,MAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,CAAA;AACtB,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,OAAO,OAAA,CAAQ,IAAA;AACrB,IAAA,MAAM,UAAA,GAAaC,4BAAA,CAAqB,OAAA,EAAS,MAAA,EAAQ,kBAAkB,GAAK,CAAA;AAChF,IAAA,MAAM,SAAA,GAAYA,4BAAA,CAAqB,OAAA,EAAS,MAAA,EAAQ,eAAe,KAAK,CAAA;AAC5E,IAAA,MAAM,UAAA,GAAaA,4BAAA,CAAqB,OAAA,EAAS,MAAA,EAAQ,WAAW,KAAK,CAAA;AAEzE,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,SAAS,CAAA,IAAK,KAAK,GAAG,CAAA;AAClD,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,MAAM,CAAA,IAAK,KAAK,GAAG,CAAA;AACrC,IAAA,MAAM,OAAA,GAAU,KAAK,UAAU,CAAA;AAC/B,IAAA,MAAM,OAAA,GAAU,IAAA,IAAQ,IAAA,IAAQ,OAAA,IAAW,IAAA;AAC3C,IAAA,MAAM,UAAU,IAAA,CAAK,SAAS,KAAK,IAAA,IAAQ,IAAA,CAAK,GAAG,CAAA,IAAK,IAAA,GAAQ,CAAC,CAAC,KAAK,SAAS,CAAA,IAAK,CAAC,CAAC,IAAA,CAAK,GAAG,CAAA,GAAK,UAAA;AACpG,IAAA,MAAM,MAAA,GAAS,KAAK,QAAQ,CAAA,IAAK,OAAO,CAAC,CAAC,IAAA,CAAK,QAAQ,CAAA,GAAI,SAAA;AAC3D,IAAA,MAAM,MAAA,GAAS,CAAC,CAAC,IAAA,CAAK,QAAQ,CAAA,IAAK,CAAC,CAAC,IAAA,CAAK,GAAG,CAAA;AAC7C,IAAA,MAAM,QAAA,GAAW,CAAC,CAAC,IAAA,CAAK,OAAO,CAAA;AAC/B,IAAA,MAAM,OAAA,GAAU,SAAS,IAAA,CAAK,SAAS,KAAK,MAAA,CAAO,UAAU,GAAG,EAAE,CAAA;AAClE,IAAA,MAAM,kBAAkB,IAAA,CAAK,UAAU,MAAM,KAAA,IAAS,IAAA,CAAK,GAAG,CAAA,KAAM,KAAA;AAEpE,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI;AACA,MAAA,MAAA,GAAS,WAAA,CAAY,gBAAgB,OAAO,CAAA;AAAA,IAChD,SAAS,CAAA,EAAQ;AACb,MAAA,OAAA,CAAQ,MAAA,CAAO,UAAA,CAAW,CAAA,CAAE,OAAO,CAAA;AACnC,MAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,CAAA;AACtB,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,UAAU,YAAA,CAAa,IAAA,CAAK,QAAQ,CAAA,IAAK,IAAA,CAAK,GAAG,CAAC,CAAA;AACxD,IAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,EAAM,OAAO,CAAA;AACtC,IAAA,MAAM,UAAA,GAAa,QAAA,GAAW,iBAAA,CAAkB,GAAG,CAAA,GAAI,GAAA;AAEvD,IAAA,MAAM,eAAe,iBAAA,CAAkB;AAAA,MACnC,MAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACH,CAAA;AAED,IAAA,IAAI,OAAA,EAAS;AACT,MAAA,OAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,QACX,CAAA,EAAA,EAAK,OAAA,CAAQ,MAAA,CAAO,WAAA,CAAY,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAIC,0BAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,OAChF;AACA,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AAChD,QAAA,OAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,UACX,CAAA,EAAA,EAAK,OAAA,CAAQ,MAAA,CAAO,WAAA,CAAY,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,EAAIA,0BAAA,CAAmB,MAAM,CAAC,CAAA;AAAA,SAClF;AAAA,MACJ;AACA,MAAA,IAAI,IAAA,EAAM;AACN,QAAA,OAAA,CAAQ,MAAA,CAAO,OAAA,CAAQ,CAAA,QAAA,EAAW,IAAI,CAAA,CAAE,CAAA;AAAA,MAC5C;AACA,MAAA,OAAA,CAAQ,OAAO,OAAA,EAAQ;AAAA,IAC3B;AAEA,IAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,IAAA,MAAM,YAAY,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,IAAS,OAAO,CAAA;AAC9D,IAAA,YAAA,CAAa,SAAS,UAAA,CAAW,MAAA;AAEjC,IAAA,MAAM,SAAA,GAAY,YAAY,GAAA,EAAI;AAElC,IAAA,IAAI;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,UAAA,EAAY,YAAY,CAAA;AACrD,MAAA,MAAM,UAAU,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,GAAA,KAAQ,SAAS,CAAA;AACxD,MAAA,MAAM,YAAA,GAAe,MAAM,QAAA,CAAS,IAAA,EAAK;AACzC,MAAA,MAAM,eAAA,GAAkB,uBAAuB,QAAQ,CAAA;AAEvD,MAAA,MAAM,YAAA,GAA6B;AAAA,QAC/B,QAAQ,QAAA,CAAS,MAAA;AAAA,QACjB,YAAY,QAAA,CAAS,UAAA;AAAA,QACrB,OAAA,EAAS,eAAA;AAAA,QACT,IAAA,EAAM,YAAA;AAAA,QACN,MAAA,EAAQ,OAAA;AAAA,QACR,KAAK,QAAA,CAAS,GAAA;AAAA,QACd,YAAY,QAAA,CAAS;AAAA,OACzB;AAEA,MAAA,IAAI,CAAC,MAAA,EAAQ;AACT,QAAA,MAAM,WAAA,GAAc,QAAA,CAAS,EAAA,GAAKA,0BAAA,CAAmB,QAAQA,0BAAA,CAAmB,GAAA;AAChF,QAAA,OAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,UACX,QAAQ,MAAA,CAAO,WAAA;AAAA,YACX,CAAA,KAAA,EAAQ,QAAA,CAAS,MAAM,CAAA,CAAA,EAAI,SAAS,UAAU,CAAA,CAAA;AAAA,YAC9C;AAAA;AACJ,SACJ;AAAA,MACJ;AAEA,MAAA,IAAI,OAAA,EAAS;AACT,QAAA,OAAA,CAAQ,OAAO,OAAA,EAAQ;AACvB,QAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,eAAe,CAAA,EAAG;AACxD,UAAA,OAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,YACX,CAAA,EAAA,EAAK,OAAA,CAAQ,MAAA,CAAO,WAAA,CAAY,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,EAAIA,0BAAA,CAAmB,MAAM,CAAC,CAAA;AAAA,WAClF;AAAA,QACJ;AACA,QAAA,OAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,UACX,CAAA,EAAA,EAAK,QAAQ,MAAA,CAAO,WAAA,CAAY,SAAS,OAAO,CAAA,EAAA,CAAA,EAAMA,0BAAA,CAAmB,OAAO,CAAC,CAAA;AAAA,SACrF;AACA,QAAA,IAAI,SAAS,UAAA,EAAY;AACrB,UAAA,OAAA,CAAQ,MAAA,CAAO,OAAA;AAAA,YACX,CAAA,EAAA,EAAK,OAAA,CAAQ,MAAA,CAAO,WAAA,CAAY,CAAA,eAAA,EAAkB,SAAS,GAAG,CAAA,CAAA,EAAIA,0BAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,WAC9F;AAAA,QACJ;AACA,QAAA,OAAA,CAAQ,OAAO,OAAA,EAAQ;AAAA,MAC3B;AAEA,MAAA,MAAM,aAAA,GAAgB,kBAAA,CAAmB,YAAA,EAAc,MAAM,CAAA;AAC7D,MAAA,IAAI,aAAA,EAAe;AACf,QAAA,OAAA,CAAQ,MAAA,CAAO,QAAQ,aAAa,CAAA;AAAA,MACxC;AAEA,MAAA,IAAI,OAAA,EAAS;AACT,QAAA,OAAA,CAAQ,OAAO,OAAA,EAAQ;AACvB,QAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,0BAA0B,CAAA;AACnD,QAAA,OAAA,CAAQ,OAAO,OAAA,CAAQ,mBAAA,CAAoB,KAAK,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAC,CAAA;AAAA,MAC1E;AAEA,MAAA,OAAA,CAAQ,OAAA,CAAQ,OAAO,YAAY,CAAA;AAAA,IACvC,SAAS,KAAA,EAAY;AACjB,MAAA,IAAI,KAAA,CAAM,SAAS,YAAA,EAAc;AAC7B,QAAA,OAAA,CAAQ,MAAA,CAAO,UAAA,CAAW,CAAA,wBAAA,EAA2B,OAAO,CAAA,EAAA,CAAI,CAAA;AAAA,MACpE,CAAA,MAAO;AACH,QAAA,OAAA,CAAQ,MAAA,CAAO,UAAA,CAAW,CAAA,gBAAA,EAAmB,KAAA,CAAM,OAAO,CAAA,CAAE,CAAA;AAAA,MAChE;AACA,MAAA,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAC1B,CAAA,SAAE;AACE,MAAA,YAAA,CAAa,SAAS,CAAA;AAAA,IAC1B;AAAA,EACJ;AAAA,EAEA,iBAAiB,OAAA,EAAqC;AAClD,IAAA,MAAM,EAAE,QAAO,GAAI,OAAA;AAEnB,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,WAAY,CAAA;AAChC,IAAA,MAAA,CAAO,OAAA,EAAQ;AAEf,IAAA,MAAA,CAAO,QAAQ,MAAA,CAAO,WAAA,CAAY,QAAA,EAAUA,0BAAA,CAAmB,MAAM,CAAC,CAAA;AACtE,IAAA,MAAA,CAAO,QAAQ,CAAA,sBAAA,CAAwB,CAAA;AACvC,IAAA,MAAA,CAAO,OAAA,EAAQ;AAEf,IAAA,MAAA,CAAO,QAAQ,MAAA,CAAO,WAAA,CAAY,UAAA,EAAYA,0BAAA,CAAmB,MAAM,CAAC,CAAA;AACxE,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,0BAA0BA,0BAAA,CAAmB,IAAI,CAAC,CAAA,kDAAA,CAAoD,CAAA;AAC7I,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,yBAAyBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,2BAAA,CAA6B,CAAA;AACrH,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,qBAAqBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,wCAAA,CAA0C,CAAA;AAC9H,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,qBAAqBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,0BAAA,CAA4B,CAAA;AAChH,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,iBAAiBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,mCAAA,CAAqC,CAAA;AACrH,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,YAAYA,0BAAA,CAAmB,IAAI,CAAC,CAAA,2CAAA,CAA6C,CAAA;AACxH,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,kBAAkBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,yCAAA,CAA2C,CAAA;AAC5H,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,kBAAkBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,2CAAA,CAA6C,CAAA;AAC9H,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,WAAWA,0BAAA,CAAmB,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAA;AACtH,IAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,MAAA,CAAO,WAAA,CAAY,gBAAgBA,0BAAA,CAAmB,IAAI,CAAC,CAAA,6BAAA,CAA+B,CAAA;AAC9G,IAAA,MAAA,CAAO,OAAA,EAAQ;AAEf,IAAA,MAAA,CAAO,QAAQ,MAAA,CAAO,WAAA,CAAY,WAAA,EAAaA,0BAAA,CAAmB,MAAM,CAAC,CAAA;AACzE,IAAA,MAAA,CAAO,QAAQ,CAAA,oCAAA,CAAsC,CAAA;AACrD,IAAA,MAAA,CAAO,QAAQ,CAAA,qGAAA,CAAuG,CAAA;AACtH,IAAA,MAAA,CAAO,QAAQ,CAAA,gDAAA,CAAkD,CAAA;AACjE,IAAA,MAAA,CAAO,QAAQ,CAAA,6CAAA,CAA+C,CAAA;AAC9D,IAAA,MAAA,CAAO,QAAQ,CAAA,0DAAA,CAA4D,CAAA;AAC3E,IAAA,MAAA,CAAO,OAAA,EAAQ;AAEf,IAAA,MAAA,CAAO,aAAa,4FAA4F,CAAA;AAAA,EACpH;AAAA,EAEA,MAAM,WAAW,QAAA,EAA+C;AAAA,EAAC;AACrE;;;AC3SO,IAAM,UAAA,GAAyB;AAAA,EAClC,UAAA,EAAY,WAAA;AAAA,EACZ,IAAA,EAAM,mBAAA;AAAA,EACN,UAAA,EAAY,CAAC,IAAI,uBAAA,EAAyB,CAAA;AAAA,EAC1C,YAAA,EAAc;AAAA,IACV,EAAA,EAAI,EAAE,sBAAA,EAAwB,6CAAA,EAA8C;AAAA,IAC5E,EAAA,EAAI,EAAE,sBAAA,EAAwB,mDAAA,EAAiD;AAAA,IAC/E,EAAA,EAAI,EAAE,sBAAA,EAAwB,yCAAA,EAAuC;AAAA,IACrE,EAAA,EAAI,EAAE,sBAAA,EAAwB,4CAAA,EAAuC;AAAA,IACrE,EAAA,EAAI,EAAE,sBAAA,EAAwB,uCAAA,EAAwC;AAAA,IACtE,EAAA,EAAI,EAAE,sBAAA,EAAwB,gGAAA,EAAsB;AAAA,IACpD,EAAA,EAAI,EAAE,sBAAA,EAAwB,+DAAA,EAAmB;AAAA,IACjD,EAAA,EAAI,EAAE,sBAAA,EAAwB,kDAAA,EAAgB;AAAA,IAC9C,EAAA,EAAI,EAAE,sBAAA,EAAwB,wLAAA,EAAwC;AAAA,IACtE,EAAA,EAAI,EAAE,sBAAA,EAAwB,0CAAA;AAAsC;AAE5E","file":"public-api.js","sourcesContent":["export interface CurlRequestOptions {\n method: string;\n headers: Record<string, string>;\n body?: string;\n followRedirects: boolean;\n}\n\nexport interface CurlResponse {\n status: number;\n statusText: string;\n headers: Record<string, string>;\n body: string;\n timing: number;\n url: string;\n redirected: boolean;\n}\n\nconst VALID_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];\n\nexport function inferMethod(explicitMethod?: string, hasBody?: boolean): string {\n if (explicitMethod) {\n const upper = explicitMethod.toUpperCase();\n if (!VALID_METHODS.includes(upper)) {\n throw new Error(`Invalid HTTP method: ${explicitMethod}. Valid methods: ${VALID_METHODS.join(', ')}`);\n }\n return upper;\n }\n return hasBody ? 'POST' : 'GET';\n}\n\nexport function parseHeaders(headerArgs: string | string[] | undefined): Record<string, string> {\n if (!headerArgs) return {};\n const arr = Array.isArray(headerArgs) ? headerArgs : [headerArgs];\n const result: Record<string, string> = {};\n for (const header of arr) {\n const colonIndex = header.indexOf(':');\n if (colonIndex === -1) continue;\n const key = header.substring(0, colonIndex).trim();\n const value = header.substring(colonIndex + 1).trim();\n if (key) result[key] = value;\n }\n return result;\n}\n\nexport function resolveBody(data?: string, dataRaw?: string): string | undefined {\n if (dataRaw != null) return dataRaw;\n if (data == null) return undefined;\n try {\n return JSON.stringify(JSON.parse(data));\n } catch {\n return data;\n }\n}\n\nexport function isJsonBody(body?: string): boolean {\n if (!body) return false;\n try {\n JSON.parse(body);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function buildFetchOptions(options: CurlRequestOptions): RequestInit {\n const headers = { ...options.headers };\n\n if (options.body && !headers['Content-Type'] && isJsonBody(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n\n const init: RequestInit = {\n method: options.method,\n headers,\n };\n\n if (options.body && options.method !== 'GET' && options.method !== 'HEAD') {\n init.body = options.body;\n }\n\n if (!options.followRedirects) {\n init.redirect = 'manual';\n }\n\n return init;\n}\n\nexport function formatResponseBody(body: string, pretty: boolean): string {\n if (!pretty) return body;\n try {\n return JSON.stringify(JSON.parse(body), null, 2);\n } catch {\n return body;\n }\n}\n\nexport function rewriteUrlToProxy(originalUrl: string): string {\n const match = originalUrl.match(/^(https?):\\/\\/([^\\/]+)(\\/.*)?$/i);\n if (!match) {\n throw new Error(`Invalid URL: ${originalUrl}`);\n }\n const scheme = match[1];\n const domain = match[2];\n const path = match[3] || '/';\n return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;\n}\n\nexport function buildCurlEquivalent(\n url: string,\n method: string,\n headers: Record<string, string>,\n body?: string,\n): string {\n const parts = ['curl'];\n if (method !== 'GET') {\n parts.push(`-X ${method}`);\n }\n for (const [key, value] of Object.entries(headers)) {\n parts.push(`-H '${key}: ${value}'`);\n }\n if (body) {\n parts.push(`-d '${body}'`);\n }\n parts.push(`'${url}'`);\n return parts.join(' ');\n}\n\nexport function extractResponseHeaders(response: Response): Record<string, string> {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return headers;\n}\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.9';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\nimport {\n CurlResponse,\n buildCurlEquivalent,\n buildFetchOptions,\n extractResponseHeaders,\n formatResponseBody,\n inferMethod,\n parseHeaders,\n resolveBody,\n rewriteUrlToProxy,\n} from '../utilities';\n\nexport class CliCurlCommandProcessor implements ICliCommandProcessor {\n command = 'curl';\n\n description = 'Make HTTP requests from the terminal. Supports all HTTP methods, custom headers, request bodies, timeouts, and more.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n valueRequired = true;\n\n metadata?: CliProcessorMetadata = {\n icon: '🌐',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultTimeout',\n label: 'Default Timeout',\n description: 'Default request timeout in milliseconds',\n type: 'number',\n defaultValue: 30000,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 1000 && v <= 300000,\n message: 'Must be between 1000 and 300000 ms',\n }),\n },\n {\n key: 'prettyPrint',\n label: 'Pretty-Print JSON',\n description: 'Pretty-print JSON responses by default',\n type: 'boolean',\n defaultValue: false,\n },\n {\n key: 'verbose',\n label: 'Verbose Output',\n description: 'Show request/response headers by default',\n type: 'boolean',\n defaultValue: false,\n },\n ];\n\n parameters = [\n {\n name: 'request',\n aliases: ['X'],\n type: 'string' as const,\n description: 'HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array' as const,\n description: 'Add header, e.g. -H \\'Content-Type: application/json\\' (repeatable)',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string' as const,\n description: 'Request body (auto-detects JSON, sets method to POST if -X not given)',\n required: false,\n },\n {\n name: 'data-raw',\n type: 'string' as const,\n description: 'Request body sent as-is without JSON parsing',\n required: false,\n },\n {\n name: 'verbose',\n aliases: ['v'],\n type: 'boolean' as const,\n description: 'Show request/response headers and timing',\n required: false,\n },\n {\n name: 'pretty',\n type: 'boolean' as const,\n description: 'Pretty-print JSON response body',\n required: false,\n },\n {\n name: 'timeout',\n type: 'number' as const,\n description: 'Request timeout in milliseconds (default: 30000)',\n required: false,\n defaultValue: '30000',\n },\n {\n name: 'location',\n aliases: ['L'],\n type: 'boolean' as const,\n description: 'Follow redirects (default: true)',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean' as const,\n description: 'Route request through proxy.qodalis.com (bypasses CORS)',\n required: false,\n },\n {\n name: 'silent',\n aliases: ['s'],\n type: 'boolean' as const,\n description: 'Only output response body (no status line)',\n required: false,\n },\n ];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value;\n\n if (!url) {\n context.writer.writeError('URL is required. Usage: curl <url> [options]');\n context.process.exit(1);\n return;\n }\n\n const args = command.args;\n const cfgTimeout = getPluginConfigValue(context, 'curl', 'defaultTimeout', 30000);\n const cfgPretty = getPluginConfigValue(context, 'curl', 'prettyPrint', false);\n const cfgVerbose = getPluginConfigValue(context, 'curl', 'verbose', false);\n\n const explicitMethod = args['request'] || args['X'];\n const data = args['data'] || args['d'];\n const dataRaw = args['data-raw'];\n const hasBody = data != null || dataRaw != null;\n const verbose = args['verbose'] != null || args['v'] != null ? (!!args['verbose'] || !!args['v']) : cfgVerbose;\n const pretty = args['pretty'] != null ? !!args['pretty'] : cfgPretty;\n const silent = !!args['silent'] || !!args['s'];\n const useProxy = !!args['proxy'];\n const timeout = parseInt(args['timeout'] || String(cfgTimeout), 10);\n const followRedirects = args['location'] !== false && args['L'] !== false;\n\n let method: string;\n try {\n method = inferMethod(explicitMethod, hasBody);\n } catch (e: any) {\n context.writer.writeError(e.message);\n context.process.exit(1);\n return;\n }\n\n const headers = parseHeaders(args['header'] || args['H']);\n const body = resolveBody(data, dataRaw);\n const requestUrl = useProxy ? rewriteUrlToProxy(url) : url;\n\n const fetchOptions = buildFetchOptions({\n method,\n headers,\n body,\n followRedirects,\n });\n\n if (verbose) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${method} ${url}`, CliForegroundColor.Cyan)}`,\n );\n for (const [key, value] of Object.entries(headers)) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n if (body) {\n context.writer.writeln(`> Body: ${body}`);\n }\n context.writer.writeln();\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n fetchOptions.signal = controller.signal;\n\n const startTime = performance.now();\n\n try {\n const response = await fetch(requestUrl, fetchOptions);\n const elapsed = Math.round(performance.now() - startTime);\n const responseText = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n const curlResponse: CurlResponse = {\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n body: responseText,\n timing: elapsed,\n url: response.url,\n redirected: response.redirected,\n };\n\n if (!silent) {\n const statusColor = response.ok ? CliForegroundColor.Green : CliForegroundColor.Red;\n context.writer.writeln(\n context.writer.wrapInColor(\n `HTTP ${response.status} ${response.statusText}`,\n statusColor,\n ),\n );\n }\n\n if (verbose) {\n context.writer.writeln();\n for (const [key, value] of Object.entries(responseHeaders)) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Time: ${elapsed}ms`, CliForegroundColor.Magenta)}`,\n );\n if (response.redirected) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Redirected to: ${response.url}`, CliForegroundColor.Cyan)}`,\n );\n }\n context.writer.writeln();\n }\n\n const formattedBody = formatResponseBody(responseText, pretty);\n if (formattedBody) {\n context.writer.writeln(formattedBody);\n }\n\n if (verbose) {\n context.writer.writeln();\n context.writer.writeInfo('Equivalent curl command:');\n context.writer.writeln(buildCurlEquivalent(url, method, headers, body));\n }\n\n context.process.output(curlResponse);\n } catch (error: any) {\n if (error.name === 'AbortError') {\n context.writer.writeError(`Request timed out after ${timeout}ms`);\n } else {\n context.writer.writeError(`Request failed: ${error.message}`);\n }\n context.process.exit(1);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n\n writer.writeln(this.description!);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Usage:', CliForegroundColor.Yellow));\n writer.writeln(` curl <url> [options]`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Options:', CliForegroundColor.Yellow));\n writer.writeln(` ${writer.wrapInColor('-X, --request <METHOD>', CliForegroundColor.Cyan)} HTTP method (default: GET, or POST if -d given)`);\n writer.writeln(` ${writer.wrapInColor('-H, --header <header>', CliForegroundColor.Cyan)} Add header (repeatable)`);\n writer.writeln(` ${writer.wrapInColor('-d, --data <body>', CliForegroundColor.Cyan)} Request body (auto-detects JSON)`);\n writer.writeln(` ${writer.wrapInColor('--data-raw <body>', CliForegroundColor.Cyan)} Request body as-is`);\n writer.writeln(` ${writer.wrapInColor('-v, --verbose', CliForegroundColor.Cyan)} Show headers and timing`);\n writer.writeln(` ${writer.wrapInColor('--pretty', CliForegroundColor.Cyan)} Pretty-print JSON response`);\n writer.writeln(` ${writer.wrapInColor('--timeout <ms>', CliForegroundColor.Cyan)} Timeout in ms (default: 30000)`);\n writer.writeln(` ${writer.wrapInColor('-L, --location', CliForegroundColor.Cyan)} Follow redirects (default: true)`);\n writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Cyan)} Route through CORS proxy`);\n writer.writeln(` ${writer.wrapInColor('-s, --silent', CliForegroundColor.Cyan)} Only output body`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Examples:', CliForegroundColor.Yellow));\n writer.writeln(` curl https://api.example.com/users`);\n writer.writeln(` curl https://api.example.com/users -X POST -d '{\"name\":\"John\"}' -H 'Content-Type: application/json'`);\n writer.writeln(` curl https://api.example.com/users -v --pretty`);\n writer.writeln(` curl https://api.example.com/status -X HEAD`);\n writer.writeln(` curl https://api.example.com/data --proxy --timeout 5000`);\n writer.writeln();\n\n writer.writeWarning('The server must allow CORS for this tool to work. Use --proxy to bypass CORS restrictions.');\n }\n\n async initialize(_context: ICliExecutionContext): Promise<void> {}\n}\n","/*\n * Public API Surface of curl\n */\n\nexport * from './lib/utilities';\nexport * from './lib/processors/cli-curl-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliCurlCommandProcessor } from './lib/processors/cli-curl-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const curlModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-curl',\n processors: [new CliCurlCommandProcessor()],\n translations: {\n es: { 'cli.curl.description': 'Realizar solicitudes HTTP desde la terminal' },\n fr: { 'cli.curl.description': 'Effectuer des requêtes HTTP depuis le terminal' },\n de: { 'cli.curl.description': 'HTTP-Anfragen vom Terminal ausführen' },\n pt: { 'cli.curl.description': 'Fazer requisições HTTP pelo terminal' },\n it: { 'cli.curl.description': 'Eseguire richieste HTTP dal terminale' },\n ja: { 'cli.curl.description': 'ターミナルからHTTPリクエストを実行' },\n ko: { 'cli.curl.description': '터미널에서 HTTP 요청 수행' },\n zh: { 'cli.curl.description': '从终端发送 HTTP 请求' },\n ru: { 'cli.curl.description': 'Выполнение HTTP-запросов из терминала' },\n ro: { 'cli.curl.description': 'Efectuează cereri HTTP din terminal' },\n },\n};\n"]}
package/public-api.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { DefaultLibraryAuthor, CliForegroundColor } from '@qodalis/cli-core';
1
+ import { DefaultLibraryAuthor, getPluginConfigValue, CliForegroundColor } from '@qodalis/cli-core';
2
2
 
3
3
  // src/lib/utilities/index.ts
4
4
  var VALID_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"];
@@ -101,7 +101,7 @@ function extractResponseHeaders(response) {
101
101
  }
102
102
 
103
103
  // src/lib/version.ts
104
- var LIBRARY_VERSION = "2.0.0-beta.7";
104
+ var LIBRARY_VERSION = "2.0.0-beta.9";
105
105
  var API_VERSION = 2;
106
106
 
107
107
  // src/lib/processors/cli-curl-command-processor.ts
@@ -117,6 +117,33 @@ var CliCurlCommandProcessor = class {
117
117
  requiredCoreVersion: ">=2.0.0 <3.0.0",
118
118
  requiredCliVersion: ">=2.0.0 <3.0.0"
119
119
  };
120
+ this.configurationOptions = [
121
+ {
122
+ key: "defaultTimeout",
123
+ label: "Default Timeout",
124
+ description: "Default request timeout in milliseconds",
125
+ type: "number",
126
+ defaultValue: 3e4,
127
+ validator: (v) => ({
128
+ valid: typeof v === "number" && v >= 1e3 && v <= 3e5,
129
+ message: "Must be between 1000 and 300000 ms"
130
+ })
131
+ },
132
+ {
133
+ key: "prettyPrint",
134
+ label: "Pretty-Print JSON",
135
+ description: "Pretty-print JSON responses by default",
136
+ type: "boolean",
137
+ defaultValue: false
138
+ },
139
+ {
140
+ key: "verbose",
141
+ label: "Verbose Output",
142
+ description: "Show request/response headers by default",
143
+ type: "boolean",
144
+ defaultValue: false
145
+ }
146
+ ];
120
147
  this.parameters = [
121
148
  {
122
149
  name: "request",
@@ -195,15 +222,18 @@ var CliCurlCommandProcessor = class {
195
222
  return;
196
223
  }
197
224
  const args = command.args;
225
+ const cfgTimeout = getPluginConfigValue(context, "curl", "defaultTimeout", 3e4);
226
+ const cfgPretty = getPluginConfigValue(context, "curl", "prettyPrint", false);
227
+ const cfgVerbose = getPluginConfigValue(context, "curl", "verbose", false);
198
228
  const explicitMethod = args["request"] || args["X"];
199
229
  const data = args["data"] || args["d"];
200
230
  const dataRaw = args["data-raw"];
201
231
  const hasBody = data != null || dataRaw != null;
202
- const verbose = !!args["verbose"] || !!args["v"];
203
- const pretty = !!args["pretty"];
232
+ const verbose = args["verbose"] != null || args["v"] != null ? !!args["verbose"] || !!args["v"] : cfgVerbose;
233
+ const pretty = args["pretty"] != null ? !!args["pretty"] : cfgPretty;
204
234
  const silent = !!args["silent"] || !!args["s"];
205
235
  const useProxy = !!args["proxy"];
206
- const timeout = parseInt(args["timeout"] || "30000", 10);
236
+ const timeout = parseInt(args["timeout"] || String(cfgTimeout), 10);
207
237
  const followRedirects = args["location"] !== false && args["L"] !== false;
208
238
  let method;
209
239
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/curl/src/lib/utilities/index.ts","../../packages/plugins/curl/src/lib/version.ts","../../packages/plugins/curl/src/lib/processors/cli-curl-command-processor.ts","../../packages/plugins/curl/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["export interface CurlRequestOptions {\n method: string;\n headers: Record<string, string>;\n body?: string;\n followRedirects: boolean;\n}\n\nexport interface CurlResponse {\n status: number;\n statusText: string;\n headers: Record<string, string>;\n body: string;\n timing: number;\n url: string;\n redirected: boolean;\n}\n\nconst VALID_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];\n\nexport function inferMethod(explicitMethod?: string, hasBody?: boolean): string {\n if (explicitMethod) {\n const upper = explicitMethod.toUpperCase();\n if (!VALID_METHODS.includes(upper)) {\n throw new Error(`Invalid HTTP method: ${explicitMethod}. Valid methods: ${VALID_METHODS.join(', ')}`);\n }\n return upper;\n }\n return hasBody ? 'POST' : 'GET';\n}\n\nexport function parseHeaders(headerArgs: string | string[] | undefined): Record<string, string> {\n if (!headerArgs) return {};\n const arr = Array.isArray(headerArgs) ? headerArgs : [headerArgs];\n const result: Record<string, string> = {};\n for (const header of arr) {\n const colonIndex = header.indexOf(':');\n if (colonIndex === -1) continue;\n const key = header.substring(0, colonIndex).trim();\n const value = header.substring(colonIndex + 1).trim();\n if (key) result[key] = value;\n }\n return result;\n}\n\nexport function resolveBody(data?: string, dataRaw?: string): string | undefined {\n if (dataRaw != null) return dataRaw;\n if (data == null) return undefined;\n try {\n return JSON.stringify(JSON.parse(data));\n } catch {\n return data;\n }\n}\n\nexport function isJsonBody(body?: string): boolean {\n if (!body) return false;\n try {\n JSON.parse(body);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function buildFetchOptions(options: CurlRequestOptions): RequestInit {\n const headers = { ...options.headers };\n\n if (options.body && !headers['Content-Type'] && isJsonBody(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n\n const init: RequestInit = {\n method: options.method,\n headers,\n };\n\n if (options.body && options.method !== 'GET' && options.method !== 'HEAD') {\n init.body = options.body;\n }\n\n if (!options.followRedirects) {\n init.redirect = 'manual';\n }\n\n return init;\n}\n\nexport function formatResponseBody(body: string, pretty: boolean): string {\n if (!pretty) return body;\n try {\n return JSON.stringify(JSON.parse(body), null, 2);\n } catch {\n return body;\n }\n}\n\nexport function rewriteUrlToProxy(originalUrl: string): string {\n const match = originalUrl.match(/^(https?):\\/\\/([^\\/]+)(\\/.*)?$/i);\n if (!match) {\n throw new Error(`Invalid URL: ${originalUrl}`);\n }\n const scheme = match[1];\n const domain = match[2];\n const path = match[3] || '/';\n return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;\n}\n\nexport function buildCurlEquivalent(\n url: string,\n method: string,\n headers: Record<string, string>,\n body?: string,\n): string {\n const parts = ['curl'];\n if (method !== 'GET') {\n parts.push(`-X ${method}`);\n }\n for (const [key, value] of Object.entries(headers)) {\n parts.push(`-H '${key}: ${value}'`);\n }\n if (body) {\n parts.push(`-d '${body}'`);\n }\n parts.push(`'${url}'`);\n return parts.join(' ');\n}\n\nexport function extractResponseHeaders(response: Response): Record<string, string> {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return headers;\n}\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.7';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\nimport {\n CurlResponse,\n buildCurlEquivalent,\n buildFetchOptions,\n extractResponseHeaders,\n formatResponseBody,\n inferMethod,\n parseHeaders,\n resolveBody,\n rewriteUrlToProxy,\n} from '../utilities';\n\nexport class CliCurlCommandProcessor implements ICliCommandProcessor {\n command = 'curl';\n\n description = 'Make HTTP requests from the terminal. Supports all HTTP methods, custom headers, request bodies, timeouts, and more.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n valueRequired = true;\n\n metadata?: CliProcessorMetadata = {\n icon: '🌐',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n parameters = [\n {\n name: 'request',\n aliases: ['X'],\n type: 'string' as const,\n description: 'HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array' as const,\n description: 'Add header, e.g. -H \\'Content-Type: application/json\\' (repeatable)',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string' as const,\n description: 'Request body (auto-detects JSON, sets method to POST if -X not given)',\n required: false,\n },\n {\n name: 'data-raw',\n type: 'string' as const,\n description: 'Request body sent as-is without JSON parsing',\n required: false,\n },\n {\n name: 'verbose',\n aliases: ['v'],\n type: 'boolean' as const,\n description: 'Show request/response headers and timing',\n required: false,\n },\n {\n name: 'pretty',\n type: 'boolean' as const,\n description: 'Pretty-print JSON response body',\n required: false,\n },\n {\n name: 'timeout',\n type: 'number' as const,\n description: 'Request timeout in milliseconds (default: 30000)',\n required: false,\n defaultValue: '30000',\n },\n {\n name: 'location',\n aliases: ['L'],\n type: 'boolean' as const,\n description: 'Follow redirects (default: true)',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean' as const,\n description: 'Route request through proxy.qodalis.com (bypasses CORS)',\n required: false,\n },\n {\n name: 'silent',\n aliases: ['s'],\n type: 'boolean' as const,\n description: 'Only output response body (no status line)',\n required: false,\n },\n ];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value;\n\n if (!url) {\n context.writer.writeError('URL is required. Usage: curl <url> [options]');\n context.process.exit(1);\n return;\n }\n\n const args = command.args;\n const explicitMethod = args['request'] || args['X'];\n const data = args['data'] || args['d'];\n const dataRaw = args['data-raw'];\n const hasBody = data != null || dataRaw != null;\n const verbose = !!args['verbose'] || !!args['v'];\n const pretty = !!args['pretty'];\n const silent = !!args['silent'] || !!args['s'];\n const useProxy = !!args['proxy'];\n const timeout = parseInt(args['timeout'] || '30000', 10);\n const followRedirects = args['location'] !== false && args['L'] !== false;\n\n let method: string;\n try {\n method = inferMethod(explicitMethod, hasBody);\n } catch (e: any) {\n context.writer.writeError(e.message);\n context.process.exit(1);\n return;\n }\n\n const headers = parseHeaders(args['header'] || args['H']);\n const body = resolveBody(data, dataRaw);\n const requestUrl = useProxy ? rewriteUrlToProxy(url) : url;\n\n const fetchOptions = buildFetchOptions({\n method,\n headers,\n body,\n followRedirects,\n });\n\n if (verbose) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${method} ${url}`, CliForegroundColor.Cyan)}`,\n );\n for (const [key, value] of Object.entries(headers)) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n if (body) {\n context.writer.writeln(`> Body: ${body}`);\n }\n context.writer.writeln();\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n fetchOptions.signal = controller.signal;\n\n const startTime = performance.now();\n\n try {\n const response = await fetch(requestUrl, fetchOptions);\n const elapsed = Math.round(performance.now() - startTime);\n const responseText = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n const curlResponse: CurlResponse = {\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n body: responseText,\n timing: elapsed,\n url: response.url,\n redirected: response.redirected,\n };\n\n if (!silent) {\n const statusColor = response.ok ? CliForegroundColor.Green : CliForegroundColor.Red;\n context.writer.writeln(\n context.writer.wrapInColor(\n `HTTP ${response.status} ${response.statusText}`,\n statusColor,\n ),\n );\n }\n\n if (verbose) {\n context.writer.writeln();\n for (const [key, value] of Object.entries(responseHeaders)) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Time: ${elapsed}ms`, CliForegroundColor.Magenta)}`,\n );\n if (response.redirected) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Redirected to: ${response.url}`, CliForegroundColor.Cyan)}`,\n );\n }\n context.writer.writeln();\n }\n\n const formattedBody = formatResponseBody(responseText, pretty);\n if (formattedBody) {\n context.writer.writeln(formattedBody);\n }\n\n if (verbose) {\n context.writer.writeln();\n context.writer.writeInfo('Equivalent curl command:');\n context.writer.writeln(buildCurlEquivalent(url, method, headers, body));\n }\n\n context.process.output(curlResponse);\n } catch (error: any) {\n if (error.name === 'AbortError') {\n context.writer.writeError(`Request timed out after ${timeout}ms`);\n } else {\n context.writer.writeError(`Request failed: ${error.message}`);\n }\n context.process.exit(1);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n\n writer.writeln(this.description!);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Usage:', CliForegroundColor.Yellow));\n writer.writeln(` curl <url> [options]`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Options:', CliForegroundColor.Yellow));\n writer.writeln(` ${writer.wrapInColor('-X, --request <METHOD>', CliForegroundColor.Cyan)} HTTP method (default: GET, or POST if -d given)`);\n writer.writeln(` ${writer.wrapInColor('-H, --header <header>', CliForegroundColor.Cyan)} Add header (repeatable)`);\n writer.writeln(` ${writer.wrapInColor('-d, --data <body>', CliForegroundColor.Cyan)} Request body (auto-detects JSON)`);\n writer.writeln(` ${writer.wrapInColor('--data-raw <body>', CliForegroundColor.Cyan)} Request body as-is`);\n writer.writeln(` ${writer.wrapInColor('-v, --verbose', CliForegroundColor.Cyan)} Show headers and timing`);\n writer.writeln(` ${writer.wrapInColor('--pretty', CliForegroundColor.Cyan)} Pretty-print JSON response`);\n writer.writeln(` ${writer.wrapInColor('--timeout <ms>', CliForegroundColor.Cyan)} Timeout in ms (default: 30000)`);\n writer.writeln(` ${writer.wrapInColor('-L, --location', CliForegroundColor.Cyan)} Follow redirects (default: true)`);\n writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Cyan)} Route through CORS proxy`);\n writer.writeln(` ${writer.wrapInColor('-s, --silent', CliForegroundColor.Cyan)} Only output body`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Examples:', CliForegroundColor.Yellow));\n writer.writeln(` curl https://api.example.com/users`);\n writer.writeln(` curl https://api.example.com/users -X POST -d '{\"name\":\"John\"}' -H 'Content-Type: application/json'`);\n writer.writeln(` curl https://api.example.com/users -v --pretty`);\n writer.writeln(` curl https://api.example.com/status -X HEAD`);\n writer.writeln(` curl https://api.example.com/data --proxy --timeout 5000`);\n writer.writeln();\n\n writer.writeWarning('The server must allow CORS for this tool to work. Use --proxy to bypass CORS restrictions.');\n }\n\n async initialize(_context: ICliExecutionContext): Promise<void> {}\n}\n","/*\n * Public API Surface of curl\n */\n\nexport * from './lib/utilities';\nexport * from './lib/processors/cli-curl-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliCurlCommandProcessor } from './lib/processors/cli-curl-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const curlModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-curl',\n processors: [new CliCurlCommandProcessor()],\n translations: {\n es: { 'cli.curl.description': 'Realizar solicitudes HTTP desde la terminal' },\n fr: { 'cli.curl.description': 'Effectuer des requêtes HTTP depuis le terminal' },\n de: { 'cli.curl.description': 'HTTP-Anfragen vom Terminal ausführen' },\n pt: { 'cli.curl.description': 'Fazer requisições HTTP pelo terminal' },\n it: { 'cli.curl.description': 'Eseguire richieste HTTP dal terminale' },\n ja: { 'cli.curl.description': 'ターミナルからHTTPリクエストを実行' },\n ko: { 'cli.curl.description': '터미널에서 HTTP 요청 수행' },\n zh: { 'cli.curl.description': '从终端发送 HTTP 请求' },\n ru: { 'cli.curl.description': 'Выполнение HTTP-запросов из терминала' },\n ro: { 'cli.curl.description': 'Efectuează cereri HTTP din terminal' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/curl/src/lib/utilities/index.ts","../../packages/plugins/curl/src/lib/version.ts","../../packages/plugins/curl/src/lib/processors/cli-curl-command-processor.ts","../../packages/plugins/curl/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["export interface CurlRequestOptions {\n method: string;\n headers: Record<string, string>;\n body?: string;\n followRedirects: boolean;\n}\n\nexport interface CurlResponse {\n status: number;\n statusText: string;\n headers: Record<string, string>;\n body: string;\n timing: number;\n url: string;\n redirected: boolean;\n}\n\nconst VALID_METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];\n\nexport function inferMethod(explicitMethod?: string, hasBody?: boolean): string {\n if (explicitMethod) {\n const upper = explicitMethod.toUpperCase();\n if (!VALID_METHODS.includes(upper)) {\n throw new Error(`Invalid HTTP method: ${explicitMethod}. Valid methods: ${VALID_METHODS.join(', ')}`);\n }\n return upper;\n }\n return hasBody ? 'POST' : 'GET';\n}\n\nexport function parseHeaders(headerArgs: string | string[] | undefined): Record<string, string> {\n if (!headerArgs) return {};\n const arr = Array.isArray(headerArgs) ? headerArgs : [headerArgs];\n const result: Record<string, string> = {};\n for (const header of arr) {\n const colonIndex = header.indexOf(':');\n if (colonIndex === -1) continue;\n const key = header.substring(0, colonIndex).trim();\n const value = header.substring(colonIndex + 1).trim();\n if (key) result[key] = value;\n }\n return result;\n}\n\nexport function resolveBody(data?: string, dataRaw?: string): string | undefined {\n if (dataRaw != null) return dataRaw;\n if (data == null) return undefined;\n try {\n return JSON.stringify(JSON.parse(data));\n } catch {\n return data;\n }\n}\n\nexport function isJsonBody(body?: string): boolean {\n if (!body) return false;\n try {\n JSON.parse(body);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function buildFetchOptions(options: CurlRequestOptions): RequestInit {\n const headers = { ...options.headers };\n\n if (options.body && !headers['Content-Type'] && isJsonBody(options.body)) {\n headers['Content-Type'] = 'application/json';\n }\n\n const init: RequestInit = {\n method: options.method,\n headers,\n };\n\n if (options.body && options.method !== 'GET' && options.method !== 'HEAD') {\n init.body = options.body;\n }\n\n if (!options.followRedirects) {\n init.redirect = 'manual';\n }\n\n return init;\n}\n\nexport function formatResponseBody(body: string, pretty: boolean): string {\n if (!pretty) return body;\n try {\n return JSON.stringify(JSON.parse(body), null, 2);\n } catch {\n return body;\n }\n}\n\nexport function rewriteUrlToProxy(originalUrl: string): string {\n const match = originalUrl.match(/^(https?):\\/\\/([^\\/]+)(\\/.*)?$/i);\n if (!match) {\n throw new Error(`Invalid URL: ${originalUrl}`);\n }\n const scheme = match[1];\n const domain = match[2];\n const path = match[3] || '/';\n return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;\n}\n\nexport function buildCurlEquivalent(\n url: string,\n method: string,\n headers: Record<string, string>,\n body?: string,\n): string {\n const parts = ['curl'];\n if (method !== 'GET') {\n parts.push(`-X ${method}`);\n }\n for (const [key, value] of Object.entries(headers)) {\n parts.push(`-H '${key}: ${value}'`);\n }\n if (body) {\n parts.push(`-d '${body}'`);\n }\n parts.push(`'${url}'`);\n return parts.join(' ');\n}\n\nexport function extractResponseHeaders(response: Response): Record<string, string> {\n const headers: Record<string, string> = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return headers;\n}\n","\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.9';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\nimport {\n CurlResponse,\n buildCurlEquivalent,\n buildFetchOptions,\n extractResponseHeaders,\n formatResponseBody,\n inferMethod,\n parseHeaders,\n resolveBody,\n rewriteUrlToProxy,\n} from '../utilities';\n\nexport class CliCurlCommandProcessor implements ICliCommandProcessor {\n command = 'curl';\n\n description = 'Make HTTP requests from the terminal. Supports all HTTP methods, custom headers, request bodies, timeouts, and more.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n valueRequired = true;\n\n metadata?: CliProcessorMetadata = {\n icon: '🌐',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultTimeout',\n label: 'Default Timeout',\n description: 'Default request timeout in milliseconds',\n type: 'number',\n defaultValue: 30000,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 1000 && v <= 300000,\n message: 'Must be between 1000 and 300000 ms',\n }),\n },\n {\n key: 'prettyPrint',\n label: 'Pretty-Print JSON',\n description: 'Pretty-print JSON responses by default',\n type: 'boolean',\n defaultValue: false,\n },\n {\n key: 'verbose',\n label: 'Verbose Output',\n description: 'Show request/response headers by default',\n type: 'boolean',\n defaultValue: false,\n },\n ];\n\n parameters = [\n {\n name: 'request',\n aliases: ['X'],\n type: 'string' as const,\n description: 'HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array' as const,\n description: 'Add header, e.g. -H \\'Content-Type: application/json\\' (repeatable)',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string' as const,\n description: 'Request body (auto-detects JSON, sets method to POST if -X not given)',\n required: false,\n },\n {\n name: 'data-raw',\n type: 'string' as const,\n description: 'Request body sent as-is without JSON parsing',\n required: false,\n },\n {\n name: 'verbose',\n aliases: ['v'],\n type: 'boolean' as const,\n description: 'Show request/response headers and timing',\n required: false,\n },\n {\n name: 'pretty',\n type: 'boolean' as const,\n description: 'Pretty-print JSON response body',\n required: false,\n },\n {\n name: 'timeout',\n type: 'number' as const,\n description: 'Request timeout in milliseconds (default: 30000)',\n required: false,\n defaultValue: '30000',\n },\n {\n name: 'location',\n aliases: ['L'],\n type: 'boolean' as const,\n description: 'Follow redirects (default: true)',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean' as const,\n description: 'Route request through proxy.qodalis.com (bypasses CORS)',\n required: false,\n },\n {\n name: 'silent',\n aliases: ['s'],\n type: 'boolean' as const,\n description: 'Only output response body (no status line)',\n required: false,\n },\n ];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value;\n\n if (!url) {\n context.writer.writeError('URL is required. Usage: curl <url> [options]');\n context.process.exit(1);\n return;\n }\n\n const args = command.args;\n const cfgTimeout = getPluginConfigValue(context, 'curl', 'defaultTimeout', 30000);\n const cfgPretty = getPluginConfigValue(context, 'curl', 'prettyPrint', false);\n const cfgVerbose = getPluginConfigValue(context, 'curl', 'verbose', false);\n\n const explicitMethod = args['request'] || args['X'];\n const data = args['data'] || args['d'];\n const dataRaw = args['data-raw'];\n const hasBody = data != null || dataRaw != null;\n const verbose = args['verbose'] != null || args['v'] != null ? (!!args['verbose'] || !!args['v']) : cfgVerbose;\n const pretty = args['pretty'] != null ? !!args['pretty'] : cfgPretty;\n const silent = !!args['silent'] || !!args['s'];\n const useProxy = !!args['proxy'];\n const timeout = parseInt(args['timeout'] || String(cfgTimeout), 10);\n const followRedirects = args['location'] !== false && args['L'] !== false;\n\n let method: string;\n try {\n method = inferMethod(explicitMethod, hasBody);\n } catch (e: any) {\n context.writer.writeError(e.message);\n context.process.exit(1);\n return;\n }\n\n const headers = parseHeaders(args['header'] || args['H']);\n const body = resolveBody(data, dataRaw);\n const requestUrl = useProxy ? rewriteUrlToProxy(url) : url;\n\n const fetchOptions = buildFetchOptions({\n method,\n headers,\n body,\n followRedirects,\n });\n\n if (verbose) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${method} ${url}`, CliForegroundColor.Cyan)}`,\n );\n for (const [key, value] of Object.entries(headers)) {\n context.writer.writeln(\n `> ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n if (body) {\n context.writer.writeln(`> Body: ${body}`);\n }\n context.writer.writeln();\n }\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n fetchOptions.signal = controller.signal;\n\n const startTime = performance.now();\n\n try {\n const response = await fetch(requestUrl, fetchOptions);\n const elapsed = Math.round(performance.now() - startTime);\n const responseText = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n const curlResponse: CurlResponse = {\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n body: responseText,\n timing: elapsed,\n url: response.url,\n redirected: response.redirected,\n };\n\n if (!silent) {\n const statusColor = response.ok ? CliForegroundColor.Green : CliForegroundColor.Red;\n context.writer.writeln(\n context.writer.wrapInColor(\n `HTTP ${response.status} ${response.statusText}`,\n statusColor,\n ),\n );\n }\n\n if (verbose) {\n context.writer.writeln();\n for (const [key, value] of Object.entries(responseHeaders)) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`${key}: ${value}`, CliForegroundColor.Yellow)}`,\n );\n }\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Time: ${elapsed}ms`, CliForegroundColor.Magenta)}`,\n );\n if (response.redirected) {\n context.writer.writeln(\n `< ${context.writer.wrapInColor(`Redirected to: ${response.url}`, CliForegroundColor.Cyan)}`,\n );\n }\n context.writer.writeln();\n }\n\n const formattedBody = formatResponseBody(responseText, pretty);\n if (formattedBody) {\n context.writer.writeln(formattedBody);\n }\n\n if (verbose) {\n context.writer.writeln();\n context.writer.writeInfo('Equivalent curl command:');\n context.writer.writeln(buildCurlEquivalent(url, method, headers, body));\n }\n\n context.process.output(curlResponse);\n } catch (error: any) {\n if (error.name === 'AbortError') {\n context.writer.writeError(`Request timed out after ${timeout}ms`);\n } else {\n context.writer.writeError(`Request failed: ${error.message}`);\n }\n context.process.exit(1);\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n\n writer.writeln(this.description!);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Usage:', CliForegroundColor.Yellow));\n writer.writeln(` curl <url> [options]`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Options:', CliForegroundColor.Yellow));\n writer.writeln(` ${writer.wrapInColor('-X, --request <METHOD>', CliForegroundColor.Cyan)} HTTP method (default: GET, or POST if -d given)`);\n writer.writeln(` ${writer.wrapInColor('-H, --header <header>', CliForegroundColor.Cyan)} Add header (repeatable)`);\n writer.writeln(` ${writer.wrapInColor('-d, --data <body>', CliForegroundColor.Cyan)} Request body (auto-detects JSON)`);\n writer.writeln(` ${writer.wrapInColor('--data-raw <body>', CliForegroundColor.Cyan)} Request body as-is`);\n writer.writeln(` ${writer.wrapInColor('-v, --verbose', CliForegroundColor.Cyan)} Show headers and timing`);\n writer.writeln(` ${writer.wrapInColor('--pretty', CliForegroundColor.Cyan)} Pretty-print JSON response`);\n writer.writeln(` ${writer.wrapInColor('--timeout <ms>', CliForegroundColor.Cyan)} Timeout in ms (default: 30000)`);\n writer.writeln(` ${writer.wrapInColor('-L, --location', CliForegroundColor.Cyan)} Follow redirects (default: true)`);\n writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Cyan)} Route through CORS proxy`);\n writer.writeln(` ${writer.wrapInColor('-s, --silent', CliForegroundColor.Cyan)} Only output body`);\n writer.writeln();\n\n writer.writeln(writer.wrapInColor('Examples:', CliForegroundColor.Yellow));\n writer.writeln(` curl https://api.example.com/users`);\n writer.writeln(` curl https://api.example.com/users -X POST -d '{\"name\":\"John\"}' -H 'Content-Type: application/json'`);\n writer.writeln(` curl https://api.example.com/users -v --pretty`);\n writer.writeln(` curl https://api.example.com/status -X HEAD`);\n writer.writeln(` curl https://api.example.com/data --proxy --timeout 5000`);\n writer.writeln();\n\n writer.writeWarning('The server must allow CORS for this tool to work. Use --proxy to bypass CORS restrictions.');\n }\n\n async initialize(_context: ICliExecutionContext): Promise<void> {}\n}\n","/*\n * Public API Surface of curl\n */\n\nexport * from './lib/utilities';\nexport * from './lib/processors/cli-curl-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliCurlCommandProcessor } from './lib/processors/cli-curl-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const curlModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-curl',\n processors: [new CliCurlCommandProcessor()],\n translations: {\n es: { 'cli.curl.description': 'Realizar solicitudes HTTP desde la terminal' },\n fr: { 'cli.curl.description': 'Effectuer des requêtes HTTP depuis le terminal' },\n de: { 'cli.curl.description': 'HTTP-Anfragen vom Terminal ausführen' },\n pt: { 'cli.curl.description': 'Fazer requisições HTTP pelo terminal' },\n it: { 'cli.curl.description': 'Eseguire richieste HTTP dal terminale' },\n ja: { 'cli.curl.description': 'ターミナルからHTTPリクエストを実行' },\n ko: { 'cli.curl.description': '터미널에서 HTTP 요청 수행' },\n zh: { 'cli.curl.description': '从终端发送 HTTP 请求' },\n ru: { 'cli.curl.description': 'Выполнение HTTP-запросов из терминала' },\n ro: { 'cli.curl.description': 'Efectuează cereri HTTP din terminal' },\n },\n};\n"]}
@@ -1837,10 +1837,37 @@ var curl = (() => {
1837
1837
  name: "Nicolae Lupei",
1838
1838
  email: "nicolae.lupei@qodalis.com"
1839
1839
  };
1840
+ var CLI_CONFIGURE_STORE_NAME = "configure";
1841
+ function getConfigValue(state, category, key, defaultValue) {
1842
+ try {
1843
+ const s = state.getState();
1844
+ const bucket = category === "system" ? s?.["system"] : s?.["plugins"]?.[category];
1845
+ if (bucket && key in bucket) {
1846
+ return bucket[key];
1847
+ }
1848
+ } catch {
1849
+ }
1850
+ return defaultValue;
1851
+ }
1852
+ function getPluginConfigValue(context, category, key, defaultValue) {
1853
+ try {
1854
+ const storeManager = context.services.get(
1855
+ "cli-state-store-manager"
1856
+ );
1857
+ if (!storeManager) return defaultValue;
1858
+ const store = storeManager.getStateStore(CLI_CONFIGURE_STORE_NAME);
1859
+ if (!store) return defaultValue;
1860
+ return getConfigValue(store, category, key, defaultValue);
1861
+ } catch {
1862
+ return defaultValue;
1863
+ }
1864
+ }
1840
1865
  var semver = __toESM(require_semver2());
1866
+ var API_VERSION = 2;
1867
+ var VERSIONS_ENDPOINT = "/api/qcli/versions";
1841
1868
  var ServerVersionNegotiator = class {
1842
1869
  static {
1843
- this.CLIENT_SUPPORTED_VERSIONS = [2];
1870
+ this.CLIENT_SUPPORTED_VERSIONS = [API_VERSION];
1844
1871
  }
1845
1872
  /**
1846
1873
  * Given a server's version info, pick the highest mutually compatible version.
@@ -1859,7 +1886,7 @@ var curl = (() => {
1859
1886
  */
1860
1887
  static async discover(baseUrl) {
1861
1888
  try {
1862
- const response = await fetch(`${baseUrl}/api/qcli/versions`);
1889
+ const response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`);
1863
1890
  if (!response.ok) return null;
1864
1891
  const info = await response.json();
1865
1892
  const version = this.negotiate(info);
@@ -2691,8 +2718,8 @@ var curl = (() => {
2691
2718
  };
2692
2719
 
2693
2720
  // src/lib/version.ts
2694
- var LIBRARY_VERSION = "2.0.0-beta.7";
2695
- var API_VERSION = 2;
2721
+ var LIBRARY_VERSION = "2.0.0-beta.9";
2722
+ var API_VERSION2 = 2;
2696
2723
 
2697
2724
  // src/lib/utilities/index.ts
2698
2725
  var VALID_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"];
@@ -2807,6 +2834,33 @@ var curl = (() => {
2807
2834
  requiredCoreVersion: ">=2.0.0 <3.0.0",
2808
2835
  requiredCliVersion: ">=2.0.0 <3.0.0"
2809
2836
  };
2837
+ this.configurationOptions = [
2838
+ {
2839
+ key: "defaultTimeout",
2840
+ label: "Default Timeout",
2841
+ description: "Default request timeout in milliseconds",
2842
+ type: "number",
2843
+ defaultValue: 3e4,
2844
+ validator: (v) => ({
2845
+ valid: typeof v === "number" && v >= 1e3 && v <= 3e5,
2846
+ message: "Must be between 1000 and 300000 ms"
2847
+ })
2848
+ },
2849
+ {
2850
+ key: "prettyPrint",
2851
+ label: "Pretty-Print JSON",
2852
+ description: "Pretty-print JSON responses by default",
2853
+ type: "boolean",
2854
+ defaultValue: false
2855
+ },
2856
+ {
2857
+ key: "verbose",
2858
+ label: "Verbose Output",
2859
+ description: "Show request/response headers by default",
2860
+ type: "boolean",
2861
+ defaultValue: false
2862
+ }
2863
+ ];
2810
2864
  this.parameters = [
2811
2865
  {
2812
2866
  name: "request",
@@ -2885,15 +2939,18 @@ var curl = (() => {
2885
2939
  return;
2886
2940
  }
2887
2941
  const args = command.args;
2942
+ const cfgTimeout = getPluginConfigValue(context, "curl", "defaultTimeout", 3e4);
2943
+ const cfgPretty = getPluginConfigValue(context, "curl", "prettyPrint", false);
2944
+ const cfgVerbose = getPluginConfigValue(context, "curl", "verbose", false);
2888
2945
  const explicitMethod = args["request"] || args["X"];
2889
2946
  const data = args["data"] || args["d"];
2890
2947
  const dataRaw = args["data-raw"];
2891
2948
  const hasBody = data != null || dataRaw != null;
2892
- const verbose = !!args["verbose"] || !!args["v"];
2893
- const pretty = !!args["pretty"];
2949
+ const verbose = args["verbose"] != null || args["v"] != null ? !!args["verbose"] || !!args["v"] : cfgVerbose;
2950
+ const pretty = args["pretty"] != null ? !!args["pretty"] : cfgPretty;
2894
2951
  const silent = !!args["silent"] || !!args["s"];
2895
2952
  const useProxy = !!args["proxy"];
2896
- const timeout = parseInt(args["timeout"] || "30000", 10);
2953
+ const timeout = parseInt(args["timeout"] || String(cfgTimeout), 10);
2897
2954
  const followRedirects = args["location"] !== false && args["L"] !== false;
2898
2955
  let method;
2899
2956
  try {
@@ -3025,7 +3082,7 @@ var curl = (() => {
3025
3082
 
3026
3083
  // src/cli-entrypoint.ts
3027
3084
  var module = {
3028
- apiVersion: API_VERSION,
3085
+ apiVersion: API_VERSION2,
3029
3086
  name: "@qodalis/cli-curl",
3030
3087
  processors: [new CliCurlCommandProcessor()]
3031
3088
  };