@qodalis/cli-wget 2.0.0-beta.2 → 2.0.0-beta.3
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 +2 -2
- package/public-api.d.mts +1 -1
- package/public-api.d.ts +1 -1
- package/public-api.js +1 -1
- package/public-api.js.map +1 -1
- package/public-api.mjs +1 -1
- package/public-api.mjs.map +1 -1
- package/umd/index.global.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qodalis/cli-wget",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.3",
|
|
4
4
|
"description": "Download files from any HTTP/HTTPS URL",
|
|
5
5
|
"author": "Qodalis Solutions",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"umd": "./umd/index.global.js",
|
|
19
19
|
"unpkg": "./umd/index.global.js",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@qodalis/cli-core": "2.0.0-beta.
|
|
21
|
+
"@qodalis/cli-core": "2.0.0-beta.3"
|
|
22
22
|
},
|
|
23
23
|
"sideEffects": false,
|
|
24
24
|
"main": "./public-api.js",
|
package/public-api.d.mts
CHANGED
|
@@ -21,7 +21,7 @@ declare class CliWgetCommandCommandProcessor implements ICliCommandProcessor {
|
|
|
21
21
|
private _formatBytes;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
declare const LIBRARY_VERSION = "2.0.0-beta.
|
|
24
|
+
declare const LIBRARY_VERSION = "2.0.0-beta.3";
|
|
25
25
|
declare const API_VERSION = 2;
|
|
26
26
|
|
|
27
27
|
declare const wgetModule: ICliModule;
|
package/public-api.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ declare class CliWgetCommandCommandProcessor implements ICliCommandProcessor {
|
|
|
21
21
|
private _formatBytes;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
declare const LIBRARY_VERSION = "2.0.0-beta.
|
|
24
|
+
declare const LIBRARY_VERSION = "2.0.0-beta.3";
|
|
25
25
|
declare const API_VERSION = 2;
|
|
26
26
|
|
|
27
27
|
declare const wgetModule: ICliModule;
|
package/public-api.js
CHANGED
|
@@ -5,7 +5,7 @@ var cliCore = require('@qodalis/cli-core');
|
|
|
5
5
|
// src/lib/processors/cli-wget-command-processor.ts
|
|
6
6
|
|
|
7
7
|
// src/lib/version.ts
|
|
8
|
-
var LIBRARY_VERSION = "2.0.0-beta.
|
|
8
|
+
var LIBRARY_VERSION = "2.0.0-beta.3";
|
|
9
9
|
var API_VERSION = 2;
|
|
10
10
|
|
|
11
11
|
// src/lib/processors/cli-wget-command-processor.ts
|
package/public-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/plugins/wget/src/lib/version.ts","../../packages/plugins/wget/src/lib/processors/cli-wget-command-processor.ts","../../packages/plugins/wget/src/public-api.ts"],"names":["DefaultLibraryAuthor","ICliFileTransferService_TOKEN","BrowserFileTransferService"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.2';\nexport const API_VERSION = 2;\n ","import {\n CliProcessCommand,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n ICliFileTransferService,\n ICliFileTransferService_TOKEN,\n BrowserFileTransferService,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nexport class CliWgetCommandCommandProcessor implements ICliCommandProcessor {\n command = 'wget';\n\n description = 'Download files from any HTTP/HTTPS URL';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n acceptsRawInput = true;\n\n valueRequired = true;\n\n metadata = {\n icon: '⬇',\n };\n\n parameters: ICliCommandParameterDescriptor[] = [\n {\n name: 'output',\n aliases: ['o'],\n type: 'string',\n description: 'Output filename (default: derived from URL)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Custom HTTP header (can be repeated)',\n required: false,\n },\n {\n name: 'no-progress',\n type: 'boolean',\n description: 'Suppress progress bar',\n required: false,\n },\n {\n name: 'save',\n type: 'boolean',\n description: 'Save to browser downloads instead of virtual filesystem',\n required: false,\n },\n ];\n\n processors: ICliCommandProcessor[] = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value?.trim();\n if (!url) {\n context.writer.writeError('Usage: wget <url> [-o filename] [--header \"Name: Value\"]');\n context.process.exit(1);\n return;\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(url);\n } catch {\n context.writer.writeError(`Invalid URL: ${url}`);\n context.process.exit(1);\n return;\n }\n\n const outputName = command.args['output'] || command.args['o']\n || this._filenameFromUrl(parsedUrl);\n\n const headers: Record<string, string> = {};\n const rawHeaders = command.args['header'] || command.args['H'];\n if (rawHeaders) {\n const headerList = Array.isArray(rawHeaders) ? rawHeaders : [rawHeaders];\n for (const h of headerList) {\n const colonIdx = h.indexOf(':');\n if (colonIdx > 0) {\n headers[h.slice(0, colonIdx).trim()] = h.slice(colonIdx + 1).trim();\n }\n }\n }\n\n const showProgress = !command.args['no-progress'];\n const saveToBrowser = !!command.args['save'];\n\n const fileTransfer = this._getFileTransferService(context);\n\n const abortController = new AbortController();\n const abortSub = context.onAbort.subscribe(() => abortController.abort());\n\n try {\n if (showProgress) {\n context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);\n }\n\n const response = await fetch(url, {\n headers,\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n context.spinner?.hide();\n context.writer.writeError(`HTTP ${response.status}: ${response.statusText}`);\n context.process.exit(1);\n return;\n }\n\n const contentLength = parseInt(response.headers.get('content-length') || '0', 10);\n const contentType = response.headers.get('content-type') || '';\n\n context.spinner?.hide();\n\n if (showProgress && contentLength > 0) {\n context.progressBar.show(`Downloading ${outputName}`);\n } else if (showProgress) {\n context.spinner?.show(`Downloading ${outputName}...`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n const text = await response.text();\n if (saveToBrowser) {\n fileTransfer.downloadToBrowser(outputName, text);\n } else {\n await fileTransfer.writeFile(outputName, text);\n }\n context.spinner?.hide();\n context.writer.writeSuccess(`Saved: ${outputName}`);\n return;\n }\n\n const chunks: Uint8Array[] = [];\n let receivedBytes = 0;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n chunks.push(value);\n receivedBytes += value.length;\n\n if (showProgress && contentLength > 0) {\n const progress = receivedBytes / contentLength;\n context.progressBar.update(progress);\n context.progressBar.setText(\n `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`,\n );\n } else if (showProgress) {\n context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);\n }\n }\n\n const combined = new Uint8Array(receivedBytes);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n\n if (showProgress && contentLength > 0) {\n context.progressBar.complete();\n context.progressBar.hide();\n } else {\n context.spinner?.hide();\n }\n\n const isText = contentType.includes('text') || contentType.includes('json') || contentType.includes('xml');\n\n if (saveToBrowser) {\n const blob = new Blob([combined]);\n fileTransfer.downloadToBrowser(outputName, blob);\n } else if (isText) {\n const text = new TextDecoder().decode(combined);\n await fileTransfer.writeFile(outputName, text);\n } else {\n // Binary file — encode as base64 and save to virtual filesystem\n const base64 = this._uint8ArrayToBase64(combined);\n const dataUri = `data:${contentType || 'application/octet-stream'};base64,${base64}`;\n await fileTransfer.writeFile(outputName, dataUri);\n }\n\n context.writer.writeSuccess(`Downloaded: ${outputName} (${this._formatBytes(receivedBytes)})`);\n } catch (err: any) {\n context.spinner?.hide();\n context.progressBar.hide();\n\n if (err.name === 'AbortError') {\n context.writer.writeWarning('Download cancelled.');\n } else {\n context.writer.writeError(`Download failed: ${err.message}`);\n }\n context.process.exit(1);\n } finally {\n abortSub.unsubscribe();\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n }\n\n private _getFileTransferService(context: ICliExecutionContext): ICliFileTransferService {\n try {\n return context.services.get<ICliFileTransferService>(ICliFileTransferService_TOKEN);\n } catch {\n return new BrowserFileTransferService();\n }\n }\n\n private _filenameFromUrl(url: URL): string {\n const pathname = url.pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 0 ? segments[segments.length - 1] : 'download';\n }\n\n private _uint8ArrayToBase64(bytes: Uint8Array): string {\n let binary = '';\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n }\n\n private _formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n }\n}\n","/*\n * Public API Surface of wget\n */\n\nexport * from './lib/processors/cli-wget-command-processor';\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliWgetCommandCommandProcessor } from './lib/processors/cli-wget-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const wgetModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-wget',\n processors: [new CliWgetCommandCommandProcessor()],\n translations: {\n es: { 'cli.wget.description': 'Descargar archivos desde cualquier URL HTTP/HTTPS' },\n fr: { 'cli.wget.description': 'Télécharger des fichiers depuis une URL HTTP/HTTPS' },\n de: { 'cli.wget.description': 'Dateien von beliebigen HTTP/HTTPS-URLs herunterladen' },\n pt: { 'cli.wget.description': 'Baixar arquivos de qualquer URL HTTP/HTTPS' },\n it: { 'cli.wget.description': 'Scaricare file da qualsiasi URL HTTP/HTTPS' },\n ja: { 'cli.wget.description': 'HTTP/HTTPS URLからファイルをダウンロード' },\n ko: { 'cli.wget.description': 'HTTP/HTTPS URL에서 파일 다운로드' },\n zh: { 'cli.wget.description': '从任意 HTTP/HTTPS URL 下载文件' },\n ru: { 'cli.wget.description': 'Скачивание файлов по HTTP/HTTPS' },\n ro: { 'cli.wget.description': 'Descarcă fișiere de la orice URL HTTP/HTTPS' },\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../packages/plugins/wget/src/lib/version.ts","../../packages/plugins/wget/src/lib/processors/cli-wget-command-processor.ts","../../packages/plugins/wget/src/public-api.ts"],"names":["DefaultLibraryAuthor","ICliFileTransferService_TOKEN","BrowserFileTransferService"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.3';\nexport const API_VERSION = 2;\n ","import {\n CliProcessCommand,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n ICliFileTransferService,\n ICliFileTransferService_TOKEN,\n BrowserFileTransferService,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nexport class CliWgetCommandCommandProcessor implements ICliCommandProcessor {\n command = 'wget';\n\n description = 'Download files from any HTTP/HTTPS URL';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n acceptsRawInput = true;\n\n valueRequired = true;\n\n metadata = {\n icon: '⬇',\n };\n\n parameters: ICliCommandParameterDescriptor[] = [\n {\n name: 'output',\n aliases: ['o'],\n type: 'string',\n description: 'Output filename (default: derived from URL)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Custom HTTP header (can be repeated)',\n required: false,\n },\n {\n name: 'no-progress',\n type: 'boolean',\n description: 'Suppress progress bar',\n required: false,\n },\n {\n name: 'save',\n type: 'boolean',\n description: 'Save to browser downloads instead of virtual filesystem',\n required: false,\n },\n ];\n\n processors: ICliCommandProcessor[] = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value?.trim();\n if (!url) {\n context.writer.writeError('Usage: wget <url> [-o filename] [--header \"Name: Value\"]');\n context.process.exit(1);\n return;\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(url);\n } catch {\n context.writer.writeError(`Invalid URL: ${url}`);\n context.process.exit(1);\n return;\n }\n\n const outputName = command.args['output'] || command.args['o']\n || this._filenameFromUrl(parsedUrl);\n\n const headers: Record<string, string> = {};\n const rawHeaders = command.args['header'] || command.args['H'];\n if (rawHeaders) {\n const headerList = Array.isArray(rawHeaders) ? rawHeaders : [rawHeaders];\n for (const h of headerList) {\n const colonIdx = h.indexOf(':');\n if (colonIdx > 0) {\n headers[h.slice(0, colonIdx).trim()] = h.slice(colonIdx + 1).trim();\n }\n }\n }\n\n const showProgress = !command.args['no-progress'];\n const saveToBrowser = !!command.args['save'];\n\n const fileTransfer = this._getFileTransferService(context);\n\n const abortController = new AbortController();\n const abortSub = context.onAbort.subscribe(() => abortController.abort());\n\n try {\n if (showProgress) {\n context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);\n }\n\n const response = await fetch(url, {\n headers,\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n context.spinner?.hide();\n context.writer.writeError(`HTTP ${response.status}: ${response.statusText}`);\n context.process.exit(1);\n return;\n }\n\n const contentLength = parseInt(response.headers.get('content-length') || '0', 10);\n const contentType = response.headers.get('content-type') || '';\n\n context.spinner?.hide();\n\n if (showProgress && contentLength > 0) {\n context.progressBar.show(`Downloading ${outputName}`);\n } else if (showProgress) {\n context.spinner?.show(`Downloading ${outputName}...`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n const text = await response.text();\n if (saveToBrowser) {\n fileTransfer.downloadToBrowser(outputName, text);\n } else {\n await fileTransfer.writeFile(outputName, text);\n }\n context.spinner?.hide();\n context.writer.writeSuccess(`Saved: ${outputName}`);\n return;\n }\n\n const chunks: Uint8Array[] = [];\n let receivedBytes = 0;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n chunks.push(value);\n receivedBytes += value.length;\n\n if (showProgress && contentLength > 0) {\n const progress = receivedBytes / contentLength;\n context.progressBar.update(progress);\n context.progressBar.setText(\n `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`,\n );\n } else if (showProgress) {\n context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);\n }\n }\n\n const combined = new Uint8Array(receivedBytes);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n\n if (showProgress && contentLength > 0) {\n context.progressBar.complete();\n context.progressBar.hide();\n } else {\n context.spinner?.hide();\n }\n\n const isText = contentType.includes('text') || contentType.includes('json') || contentType.includes('xml');\n\n if (saveToBrowser) {\n const blob = new Blob([combined]);\n fileTransfer.downloadToBrowser(outputName, blob);\n } else if (isText) {\n const text = new TextDecoder().decode(combined);\n await fileTransfer.writeFile(outputName, text);\n } else {\n // Binary file — encode as base64 and save to virtual filesystem\n const base64 = this._uint8ArrayToBase64(combined);\n const dataUri = `data:${contentType || 'application/octet-stream'};base64,${base64}`;\n await fileTransfer.writeFile(outputName, dataUri);\n }\n\n context.writer.writeSuccess(`Downloaded: ${outputName} (${this._formatBytes(receivedBytes)})`);\n } catch (err: any) {\n context.spinner?.hide();\n context.progressBar.hide();\n\n if (err.name === 'AbortError') {\n context.writer.writeWarning('Download cancelled.');\n } else {\n context.writer.writeError(`Download failed: ${err.message}`);\n }\n context.process.exit(1);\n } finally {\n abortSub.unsubscribe();\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n }\n\n private _getFileTransferService(context: ICliExecutionContext): ICliFileTransferService {\n try {\n return context.services.get<ICliFileTransferService>(ICliFileTransferService_TOKEN);\n } catch {\n return new BrowserFileTransferService();\n }\n }\n\n private _filenameFromUrl(url: URL): string {\n const pathname = url.pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 0 ? segments[segments.length - 1] : 'download';\n }\n\n private _uint8ArrayToBase64(bytes: Uint8Array): string {\n let binary = '';\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n }\n\n private _formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n }\n}\n","/*\n * Public API Surface of wget\n */\n\nexport * from './lib/processors/cli-wget-command-processor';\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliWgetCommandCommandProcessor } from './lib/processors/cli-wget-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const wgetModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-wget',\n processors: [new CliWgetCommandCommandProcessor()],\n translations: {\n es: { 'cli.wget.description': 'Descargar archivos desde cualquier URL HTTP/HTTPS' },\n fr: { 'cli.wget.description': 'Télécharger des fichiers depuis une URL HTTP/HTTPS' },\n de: { 'cli.wget.description': 'Dateien von beliebigen HTTP/HTTPS-URLs herunterladen' },\n pt: { 'cli.wget.description': 'Baixar arquivos de qualquer URL HTTP/HTTPS' },\n it: { 'cli.wget.description': 'Scaricare file da qualsiasi URL HTTP/HTTPS' },\n ja: { 'cli.wget.description': 'HTTP/HTTPS URLからファイルをダウンロード' },\n ko: { 'cli.wget.description': 'HTTP/HTTPS URL에서 파일 다운로드' },\n zh: { 'cli.wget.description': '从任意 HTTP/HTTPS URL 下载文件' },\n ru: { 'cli.wget.description': 'Скачивание файлов по HTTP/HTTPS' },\n ro: { 'cli.wget.description': 'Descarcă fișiere de la orice URL HTTP/HTTPS' },\n },\n};\n"]}
|
package/public-api.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { DefaultLibraryAuthor, ICliFileTransferService_TOKEN, BrowserFileTransfe
|
|
|
3
3
|
// src/lib/processors/cli-wget-command-processor.ts
|
|
4
4
|
|
|
5
5
|
// src/lib/version.ts
|
|
6
|
-
var LIBRARY_VERSION = "2.0.0-beta.
|
|
6
|
+
var LIBRARY_VERSION = "2.0.0-beta.3";
|
|
7
7
|
var API_VERSION = 2;
|
|
8
8
|
|
|
9
9
|
// src/lib/processors/cli-wget-command-processor.ts
|
package/public-api.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/plugins/wget/src/lib/version.ts","../../packages/plugins/wget/src/lib/processors/cli-wget-command-processor.ts","../../packages/plugins/wget/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.2';\nexport const API_VERSION = 2;\n ","import {\n CliProcessCommand,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n ICliFileTransferService,\n ICliFileTransferService_TOKEN,\n BrowserFileTransferService,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nexport class CliWgetCommandCommandProcessor implements ICliCommandProcessor {\n command = 'wget';\n\n description = 'Download files from any HTTP/HTTPS URL';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n acceptsRawInput = true;\n\n valueRequired = true;\n\n metadata = {\n icon: '⬇',\n };\n\n parameters: ICliCommandParameterDescriptor[] = [\n {\n name: 'output',\n aliases: ['o'],\n type: 'string',\n description: 'Output filename (default: derived from URL)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Custom HTTP header (can be repeated)',\n required: false,\n },\n {\n name: 'no-progress',\n type: 'boolean',\n description: 'Suppress progress bar',\n required: false,\n },\n {\n name: 'save',\n type: 'boolean',\n description: 'Save to browser downloads instead of virtual filesystem',\n required: false,\n },\n ];\n\n processors: ICliCommandProcessor[] = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value?.trim();\n if (!url) {\n context.writer.writeError('Usage: wget <url> [-o filename] [--header \"Name: Value\"]');\n context.process.exit(1);\n return;\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(url);\n } catch {\n context.writer.writeError(`Invalid URL: ${url}`);\n context.process.exit(1);\n return;\n }\n\n const outputName = command.args['output'] || command.args['o']\n || this._filenameFromUrl(parsedUrl);\n\n const headers: Record<string, string> = {};\n const rawHeaders = command.args['header'] || command.args['H'];\n if (rawHeaders) {\n const headerList = Array.isArray(rawHeaders) ? rawHeaders : [rawHeaders];\n for (const h of headerList) {\n const colonIdx = h.indexOf(':');\n if (colonIdx > 0) {\n headers[h.slice(0, colonIdx).trim()] = h.slice(colonIdx + 1).trim();\n }\n }\n }\n\n const showProgress = !command.args['no-progress'];\n const saveToBrowser = !!command.args['save'];\n\n const fileTransfer = this._getFileTransferService(context);\n\n const abortController = new AbortController();\n const abortSub = context.onAbort.subscribe(() => abortController.abort());\n\n try {\n if (showProgress) {\n context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);\n }\n\n const response = await fetch(url, {\n headers,\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n context.spinner?.hide();\n context.writer.writeError(`HTTP ${response.status}: ${response.statusText}`);\n context.process.exit(1);\n return;\n }\n\n const contentLength = parseInt(response.headers.get('content-length') || '0', 10);\n const contentType = response.headers.get('content-type') || '';\n\n context.spinner?.hide();\n\n if (showProgress && contentLength > 0) {\n context.progressBar.show(`Downloading ${outputName}`);\n } else if (showProgress) {\n context.spinner?.show(`Downloading ${outputName}...`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n const text = await response.text();\n if (saveToBrowser) {\n fileTransfer.downloadToBrowser(outputName, text);\n } else {\n await fileTransfer.writeFile(outputName, text);\n }\n context.spinner?.hide();\n context.writer.writeSuccess(`Saved: ${outputName}`);\n return;\n }\n\n const chunks: Uint8Array[] = [];\n let receivedBytes = 0;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n chunks.push(value);\n receivedBytes += value.length;\n\n if (showProgress && contentLength > 0) {\n const progress = receivedBytes / contentLength;\n context.progressBar.update(progress);\n context.progressBar.setText(\n `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`,\n );\n } else if (showProgress) {\n context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);\n }\n }\n\n const combined = new Uint8Array(receivedBytes);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n\n if (showProgress && contentLength > 0) {\n context.progressBar.complete();\n context.progressBar.hide();\n } else {\n context.spinner?.hide();\n }\n\n const isText = contentType.includes('text') || contentType.includes('json') || contentType.includes('xml');\n\n if (saveToBrowser) {\n const blob = new Blob([combined]);\n fileTransfer.downloadToBrowser(outputName, blob);\n } else if (isText) {\n const text = new TextDecoder().decode(combined);\n await fileTransfer.writeFile(outputName, text);\n } else {\n // Binary file — encode as base64 and save to virtual filesystem\n const base64 = this._uint8ArrayToBase64(combined);\n const dataUri = `data:${contentType || 'application/octet-stream'};base64,${base64}`;\n await fileTransfer.writeFile(outputName, dataUri);\n }\n\n context.writer.writeSuccess(`Downloaded: ${outputName} (${this._formatBytes(receivedBytes)})`);\n } catch (err: any) {\n context.spinner?.hide();\n context.progressBar.hide();\n\n if (err.name === 'AbortError') {\n context.writer.writeWarning('Download cancelled.');\n } else {\n context.writer.writeError(`Download failed: ${err.message}`);\n }\n context.process.exit(1);\n } finally {\n abortSub.unsubscribe();\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n }\n\n private _getFileTransferService(context: ICliExecutionContext): ICliFileTransferService {\n try {\n return context.services.get<ICliFileTransferService>(ICliFileTransferService_TOKEN);\n } catch {\n return new BrowserFileTransferService();\n }\n }\n\n private _filenameFromUrl(url: URL): string {\n const pathname = url.pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 0 ? segments[segments.length - 1] : 'download';\n }\n\n private _uint8ArrayToBase64(bytes: Uint8Array): string {\n let binary = '';\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n }\n\n private _formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n }\n}\n","/*\n * Public API Surface of wget\n */\n\nexport * from './lib/processors/cli-wget-command-processor';\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliWgetCommandCommandProcessor } from './lib/processors/cli-wget-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const wgetModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-wget',\n processors: [new CliWgetCommandCommandProcessor()],\n translations: {\n es: { 'cli.wget.description': 'Descargar archivos desde cualquier URL HTTP/HTTPS' },\n fr: { 'cli.wget.description': 'Télécharger des fichiers depuis une URL HTTP/HTTPS' },\n de: { 'cli.wget.description': 'Dateien von beliebigen HTTP/HTTPS-URLs herunterladen' },\n pt: { 'cli.wget.description': 'Baixar arquivos de qualquer URL HTTP/HTTPS' },\n it: { 'cli.wget.description': 'Scaricare file da qualsiasi URL HTTP/HTTPS' },\n ja: { 'cli.wget.description': 'HTTP/HTTPS URLからファイルをダウンロード' },\n ko: { 'cli.wget.description': 'HTTP/HTTPS URL에서 파일 다운로드' },\n zh: { 'cli.wget.description': '从任意 HTTP/HTTPS URL 下载文件' },\n ru: { 'cli.wget.description': 'Скачивание файлов по HTTP/HTTPS' },\n ro: { 'cli.wget.description': 'Descarcă fișiere de la orice URL HTTP/HTTPS' },\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../packages/plugins/wget/src/lib/version.ts","../../packages/plugins/wget/src/lib/processors/cli-wget-command-processor.ts","../../packages/plugins/wget/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.0.0-beta.3';\nexport const API_VERSION = 2;\n ","import {\n CliProcessCommand,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliCommandParameterDescriptor,\n ICliExecutionContext,\n ICliFileTransferService,\n ICliFileTransferService_TOKEN,\n BrowserFileTransferService,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nexport class CliWgetCommandCommandProcessor implements ICliCommandProcessor {\n command = 'wget';\n\n description = 'Download files from any HTTP/HTTPS URL';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n acceptsRawInput = true;\n\n valueRequired = true;\n\n metadata = {\n icon: '⬇',\n };\n\n parameters: ICliCommandParameterDescriptor[] = [\n {\n name: 'output',\n aliases: ['o'],\n type: 'string',\n description: 'Output filename (default: derived from URL)',\n required: false,\n },\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Custom HTTP header (can be repeated)',\n required: false,\n },\n {\n name: 'no-progress',\n type: 'boolean',\n description: 'Suppress progress bar',\n required: false,\n },\n {\n name: 'save',\n type: 'boolean',\n description: 'Save to browser downloads instead of virtual filesystem',\n required: false,\n },\n ];\n\n processors: ICliCommandProcessor[] = [];\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value?.trim();\n if (!url) {\n context.writer.writeError('Usage: wget <url> [-o filename] [--header \"Name: Value\"]');\n context.process.exit(1);\n return;\n }\n\n let parsedUrl: URL;\n try {\n parsedUrl = new URL(url);\n } catch {\n context.writer.writeError(`Invalid URL: ${url}`);\n context.process.exit(1);\n return;\n }\n\n const outputName = command.args['output'] || command.args['o']\n || this._filenameFromUrl(parsedUrl);\n\n const headers: Record<string, string> = {};\n const rawHeaders = command.args['header'] || command.args['H'];\n if (rawHeaders) {\n const headerList = Array.isArray(rawHeaders) ? rawHeaders : [rawHeaders];\n for (const h of headerList) {\n const colonIdx = h.indexOf(':');\n if (colonIdx > 0) {\n headers[h.slice(0, colonIdx).trim()] = h.slice(colonIdx + 1).trim();\n }\n }\n }\n\n const showProgress = !command.args['no-progress'];\n const saveToBrowser = !!command.args['save'];\n\n const fileTransfer = this._getFileTransferService(context);\n\n const abortController = new AbortController();\n const abortSub = context.onAbort.subscribe(() => abortController.abort());\n\n try {\n if (showProgress) {\n context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);\n }\n\n const response = await fetch(url, {\n headers,\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n context.spinner?.hide();\n context.writer.writeError(`HTTP ${response.status}: ${response.statusText}`);\n context.process.exit(1);\n return;\n }\n\n const contentLength = parseInt(response.headers.get('content-length') || '0', 10);\n const contentType = response.headers.get('content-type') || '';\n\n context.spinner?.hide();\n\n if (showProgress && contentLength > 0) {\n context.progressBar.show(`Downloading ${outputName}`);\n } else if (showProgress) {\n context.spinner?.show(`Downloading ${outputName}...`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n const text = await response.text();\n if (saveToBrowser) {\n fileTransfer.downloadToBrowser(outputName, text);\n } else {\n await fileTransfer.writeFile(outputName, text);\n }\n context.spinner?.hide();\n context.writer.writeSuccess(`Saved: ${outputName}`);\n return;\n }\n\n const chunks: Uint8Array[] = [];\n let receivedBytes = 0;\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n\n chunks.push(value);\n receivedBytes += value.length;\n\n if (showProgress && contentLength > 0) {\n const progress = receivedBytes / contentLength;\n context.progressBar.update(progress);\n context.progressBar.setText(\n `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`,\n );\n } else if (showProgress) {\n context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);\n }\n }\n\n const combined = new Uint8Array(receivedBytes);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n\n if (showProgress && contentLength > 0) {\n context.progressBar.complete();\n context.progressBar.hide();\n } else {\n context.spinner?.hide();\n }\n\n const isText = contentType.includes('text') || contentType.includes('json') || contentType.includes('xml');\n\n if (saveToBrowser) {\n const blob = new Blob([combined]);\n fileTransfer.downloadToBrowser(outputName, blob);\n } else if (isText) {\n const text = new TextDecoder().decode(combined);\n await fileTransfer.writeFile(outputName, text);\n } else {\n // Binary file — encode as base64 and save to virtual filesystem\n const base64 = this._uint8ArrayToBase64(combined);\n const dataUri = `data:${contentType || 'application/octet-stream'};base64,${base64}`;\n await fileTransfer.writeFile(outputName, dataUri);\n }\n\n context.writer.writeSuccess(`Downloaded: ${outputName} (${this._formatBytes(receivedBytes)})`);\n } catch (err: any) {\n context.spinner?.hide();\n context.progressBar.hide();\n\n if (err.name === 'AbortError') {\n context.writer.writeWarning('Download cancelled.');\n } else {\n context.writer.writeError(`Download failed: ${err.message}`);\n }\n context.process.exit(1);\n } finally {\n abortSub.unsubscribe();\n }\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n }\n\n private _getFileTransferService(context: ICliExecutionContext): ICliFileTransferService {\n try {\n return context.services.get<ICliFileTransferService>(ICliFileTransferService_TOKEN);\n } catch {\n return new BrowserFileTransferService();\n }\n }\n\n private _filenameFromUrl(url: URL): string {\n const pathname = url.pathname;\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 0 ? segments[segments.length - 1] : 'download';\n }\n\n private _uint8ArrayToBase64(bytes: Uint8Array): string {\n let binary = '';\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n }\n\n private _formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n }\n}\n","/*\n * Public API Surface of wget\n */\n\nexport * from './lib/processors/cli-wget-command-processor';\nexport * from './lib/version';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliWgetCommandCommandProcessor } from './lib/processors/cli-wget-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const wgetModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-wget',\n processors: [new CliWgetCommandCommandProcessor()],\n translations: {\n es: { 'cli.wget.description': 'Descargar archivos desde cualquier URL HTTP/HTTPS' },\n fr: { 'cli.wget.description': 'Télécharger des fichiers depuis une URL HTTP/HTTPS' },\n de: { 'cli.wget.description': 'Dateien von beliebigen HTTP/HTTPS-URLs herunterladen' },\n pt: { 'cli.wget.description': 'Baixar arquivos de qualquer URL HTTP/HTTPS' },\n it: { 'cli.wget.description': 'Scaricare file da qualsiasi URL HTTP/HTTPS' },\n ja: { 'cli.wget.description': 'HTTP/HTTPS URLからファイルをダウンロード' },\n ko: { 'cli.wget.description': 'HTTP/HTTPS URL에서 파일 다운로드' },\n zh: { 'cli.wget.description': '从任意 HTTP/HTTPS URL 下载文件' },\n ru: { 'cli.wget.description': 'Скачивание файлов по HTTP/HTTPS' },\n ro: { 'cli.wget.description': 'Descarcă fișiere de la orice URL HTTP/HTTPS' },\n },\n};\n"]}
|
package/umd/index.global.js
CHANGED
|
@@ -1848,14 +1848,14 @@ var wget = (() => {
|
|
|
1848
1848
|
*/
|
|
1849
1849
|
static async discover(baseUrl) {
|
|
1850
1850
|
try {
|
|
1851
|
-
const response = await fetch(`${baseUrl}/api/
|
|
1851
|
+
const response = await fetch(`${baseUrl}/api/qcli/versions`);
|
|
1852
1852
|
if (!response.ok) return null;
|
|
1853
1853
|
const info = await response.json();
|
|
1854
1854
|
const version = this.negotiate(info);
|
|
1855
1855
|
if (version === null) return null;
|
|
1856
1856
|
return {
|
|
1857
1857
|
apiVersion: version,
|
|
1858
|
-
basePath: `${baseUrl}/api/v${version}/
|
|
1858
|
+
basePath: `${baseUrl}/api/v${version}/qcli`
|
|
1859
1859
|
};
|
|
1860
1860
|
} catch {
|
|
1861
1861
|
return null;
|
|
@@ -2733,7 +2733,7 @@ var wget = (() => {
|
|
|
2733
2733
|
};
|
|
2734
2734
|
|
|
2735
2735
|
// src/lib/version.ts
|
|
2736
|
-
var LIBRARY_VERSION = "2.0.0-beta.
|
|
2736
|
+
var LIBRARY_VERSION = "2.0.0-beta.3";
|
|
2737
2737
|
var API_VERSION = 2;
|
|
2738
2738
|
|
|
2739
2739
|
// src/lib/processors/cli-wget-command-processor.ts
|