@qodalis/cli-wget 2.0.0-beta.11 → 2.0.0-beta.13

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-wget",
3
- "version": "2.0.0-beta.11",
3
+ "version": "2.0.0-beta.13",
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.11"
21
+ "@qodalis/cli-core": "2.0.0-beta.13"
22
22
  },
23
23
  "sideEffects": false,
24
24
  "main": "./public-api.js",
package/public-api.d.mts CHANGED
@@ -22,7 +22,7 @@ declare class CliWgetCommandCommandProcessor implements ICliCommandProcessor {
22
22
  private _formatBytes;
23
23
  }
24
24
 
25
- declare const LIBRARY_VERSION = "2.0.0-beta.11";
25
+ declare const LIBRARY_VERSION = "2.0.0-beta.13";
26
26
  declare const API_VERSION = 2;
27
27
 
28
28
  declare const wgetModule: ICliModule;
package/public-api.d.ts CHANGED
@@ -22,7 +22,7 @@ declare class CliWgetCommandCommandProcessor implements ICliCommandProcessor {
22
22
  private _formatBytes;
23
23
  }
24
24
 
25
- declare const LIBRARY_VERSION = "2.0.0-beta.11";
25
+ declare const LIBRARY_VERSION = "2.0.0-beta.13";
26
26
  declare const API_VERSION = 2;
27
27
 
28
28
  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.11";
8
+ var LIBRARY_VERSION = "2.0.0-beta.13";
9
9
  var API_VERSION = 2;
10
10
 
11
11
  // src/lib/processors/cli-wget-command-processor.ts
@@ -81,15 +81,13 @@ var CliWgetCommandCommandProcessor = class {
81
81
  const showProgress = !command.args["no-progress"];
82
82
  const saveToBrowser = !!command.args["save"];
83
83
  const fileTransfer = this._getFileTransferService(context);
84
- const abortController = new AbortController();
85
- const abortSub = context.onAbort.subscribe(() => abortController.abort());
86
84
  try {
87
85
  if (showProgress) {
88
86
  context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);
89
87
  }
90
- const response = await fetch(url, {
91
- headers,
92
- signal: abortController.signal
88
+ context.notifier.info(`Connecting to ${parsedUrl.hostname}`);
89
+ const response = await context.http.fetch(url, {
90
+ headers
93
91
  });
94
92
  if (!response.ok) {
95
93
  context.spinner?.hide();
@@ -100,6 +98,7 @@ var CliWgetCommandCommandProcessor = class {
100
98
  const contentLength = parseInt(response.headers.get("content-length") || "0", 10);
101
99
  const contentType = response.headers.get("content-type") || "";
102
100
  context.spinner?.hide();
101
+ context.notifier.info(`Downloading ${outputName}`);
103
102
  if (showProgress && contentLength > 0) {
104
103
  context.progressBar.show(`Downloading ${outputName}`);
105
104
  } else if (showProgress) {
@@ -130,8 +129,10 @@ var CliWgetCommandCommandProcessor = class {
130
129
  context.progressBar.setText(
131
130
  `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`
132
131
  );
132
+ context.notifier.info(`Downloading ${outputName}: ${Math.round(progress * 100)}%`);
133
133
  } else if (showProgress) {
134
134
  context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);
135
+ context.notifier.info(`Downloading ${outputName}: ${this._formatBytes(receivedBytes)}`);
135
136
  }
136
137
  }
137
138
  const combined = new Uint8Array(receivedBytes);
@@ -168,8 +169,6 @@ var CliWgetCommandCommandProcessor = class {
168
169
  context.writer.writeError(`Download failed: ${err.message}`);
169
170
  }
170
171
  context.process.exit(1);
171
- } finally {
172
- abortSub.unsubscribe();
173
172
  }
174
173
  }
175
174
  writeDescription(context) {
@@ -177,7 +176,7 @@ var CliWgetCommandCommandProcessor = class {
177
176
  }
178
177
  _getFileTransferService(context) {
179
178
  try {
180
- return context.services.get(cliCore.ICliFileTransferService_TOKEN);
179
+ return context.services.getRequired(cliCore.ICliFileTransferService_TOKEN);
181
180
  } catch {
182
181
  return new cliCore.BrowserFileTransferService();
183
182
  }
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.11';\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 module: 'file management',\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.13';\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 module: 'file management',\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 try {\n if (showProgress) {\n context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);\n }\n context.notifier.info(`Connecting to ${parsedUrl.hostname}`);\n\n const response = await context.http.fetch(url, {\n headers,\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 context.notifier.info(`Downloading ${outputName}`);\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 context.notifier.info(`Downloading ${outputName}: ${Math.round(progress * 100)}%`);\n } else if (showProgress) {\n context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);\n context.notifier.info(`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 }\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.getRequired<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.11";
6
+ var LIBRARY_VERSION = "2.0.0-beta.13";
7
7
  var API_VERSION = 2;
8
8
 
9
9
  // src/lib/processors/cli-wget-command-processor.ts
@@ -79,15 +79,13 @@ var CliWgetCommandCommandProcessor = class {
79
79
  const showProgress = !command.args["no-progress"];
80
80
  const saveToBrowser = !!command.args["save"];
81
81
  const fileTransfer = this._getFileTransferService(context);
82
- const abortController = new AbortController();
83
- const abortSub = context.onAbort.subscribe(() => abortController.abort());
84
82
  try {
85
83
  if (showProgress) {
86
84
  context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);
87
85
  }
88
- const response = await fetch(url, {
89
- headers,
90
- signal: abortController.signal
86
+ context.notifier.info(`Connecting to ${parsedUrl.hostname}`);
87
+ const response = await context.http.fetch(url, {
88
+ headers
91
89
  });
92
90
  if (!response.ok) {
93
91
  context.spinner?.hide();
@@ -98,6 +96,7 @@ var CliWgetCommandCommandProcessor = class {
98
96
  const contentLength = parseInt(response.headers.get("content-length") || "0", 10);
99
97
  const contentType = response.headers.get("content-type") || "";
100
98
  context.spinner?.hide();
99
+ context.notifier.info(`Downloading ${outputName}`);
101
100
  if (showProgress && contentLength > 0) {
102
101
  context.progressBar.show(`Downloading ${outputName}`);
103
102
  } else if (showProgress) {
@@ -128,8 +127,10 @@ var CliWgetCommandCommandProcessor = class {
128
127
  context.progressBar.setText(
129
128
  `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`
130
129
  );
130
+ context.notifier.info(`Downloading ${outputName}: ${Math.round(progress * 100)}%`);
131
131
  } else if (showProgress) {
132
132
  context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);
133
+ context.notifier.info(`Downloading ${outputName}: ${this._formatBytes(receivedBytes)}`);
133
134
  }
134
135
  }
135
136
  const combined = new Uint8Array(receivedBytes);
@@ -166,8 +167,6 @@ var CliWgetCommandCommandProcessor = class {
166
167
  context.writer.writeError(`Download failed: ${err.message}`);
167
168
  }
168
169
  context.process.exit(1);
169
- } finally {
170
- abortSub.unsubscribe();
171
170
  }
172
171
  }
173
172
  writeDescription(context) {
@@ -175,7 +174,7 @@ var CliWgetCommandCommandProcessor = class {
175
174
  }
176
175
  _getFileTransferService(context) {
177
176
  try {
178
- return context.services.get(ICliFileTransferService_TOKEN);
177
+ return context.services.getRequired(ICliFileTransferService_TOKEN);
179
178
  } catch {
180
179
  return new BrowserFileTransferService();
181
180
  }
@@ -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.11';\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 module: 'file management',\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.13';\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 module: 'file management',\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 try {\n if (showProgress) {\n context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);\n }\n context.notifier.info(`Connecting to ${parsedUrl.hostname}`);\n\n const response = await context.http.fetch(url, {\n headers,\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 context.notifier.info(`Downloading ${outputName}`);\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 context.notifier.info(`Downloading ${outputName}: ${Math.round(progress * 100)}%`);\n } else if (showProgress) {\n context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);\n context.notifier.info(`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 }\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.getRequired<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"]}
@@ -1822,6 +1822,10 @@ var wget = (() => {
1822
1822
  }
1823
1823
  });
1824
1824
  var ICliFileTransferService_TOKEN = "cli-file-transfer-service";
1825
+ function resolveHeaders(provider) {
1826
+ if (!provider) return {};
1827
+ return typeof provider === "function" ? provider() : provider;
1828
+ }
1825
1829
  var DefaultLibraryAuthor = {
1826
1830
  name: "Nicolae Lupei",
1827
1831
  email: "nicolae.lupei@qodalis.com"
@@ -1848,9 +1852,12 @@ var wget = (() => {
1848
1852
  * Returns the negotiated API version and the base path for all subsequent calls,
1849
1853
  * or null if the server is unreachable or incompatible.
1850
1854
  */
1851
- static async discover(baseUrl) {
1855
+ static async discover(baseUrl, headers) {
1852
1856
  try {
1853
- const response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`);
1857
+ const resolved = resolveHeaders(headers);
1858
+ const response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`, {
1859
+ headers: Object.keys(resolved).length > 0 ? resolved : void 0
1860
+ });
1854
1861
  if (!response.ok) return null;
1855
1862
  const info = await response.json();
1856
1863
  const version = this.negotiate(info);
@@ -2743,7 +2750,7 @@ var wget = (() => {
2743
2750
  };
2744
2751
 
2745
2752
  // src/lib/version.ts
2746
- var LIBRARY_VERSION = "2.0.0-beta.11";
2753
+ var LIBRARY_VERSION = "2.0.0-beta.13";
2747
2754
  var API_VERSION2 = 2;
2748
2755
 
2749
2756
  // src/lib/processors/cli-wget-command-processor.ts
@@ -2819,15 +2826,13 @@ var wget = (() => {
2819
2826
  const showProgress = !command.args["no-progress"];
2820
2827
  const saveToBrowser = !!command.args["save"];
2821
2828
  const fileTransfer = this._getFileTransferService(context);
2822
- const abortController = new AbortController();
2823
- const abortSub = context.onAbort.subscribe(() => abortController.abort());
2824
2829
  try {
2825
2830
  if (showProgress) {
2826
2831
  context.spinner?.show(`Connecting to ${parsedUrl.hostname}...`);
2827
2832
  }
2828
- const response = await fetch(url, {
2829
- headers,
2830
- signal: abortController.signal
2833
+ context.notifier.info(`Connecting to ${parsedUrl.hostname}`);
2834
+ const response = await context.http.fetch(url, {
2835
+ headers
2831
2836
  });
2832
2837
  if (!response.ok) {
2833
2838
  context.spinner?.hide();
@@ -2838,6 +2843,7 @@ var wget = (() => {
2838
2843
  const contentLength = parseInt(response.headers.get("content-length") || "0", 10);
2839
2844
  const contentType = response.headers.get("content-type") || "";
2840
2845
  context.spinner?.hide();
2846
+ context.notifier.info(`Downloading ${outputName}`);
2841
2847
  if (showProgress && contentLength > 0) {
2842
2848
  context.progressBar.show(`Downloading ${outputName}`);
2843
2849
  } else if (showProgress) {
@@ -2868,8 +2874,10 @@ var wget = (() => {
2868
2874
  context.progressBar.setText(
2869
2875
  `${outputName} (${this._formatBytes(receivedBytes)}/${this._formatBytes(contentLength)})`
2870
2876
  );
2877
+ context.notifier.info(`Downloading ${outputName}: ${Math.round(progress * 100)}%`);
2871
2878
  } else if (showProgress) {
2872
2879
  context.spinner?.setText(`Downloading ${outputName}... ${this._formatBytes(receivedBytes)}`);
2880
+ context.notifier.info(`Downloading ${outputName}: ${this._formatBytes(receivedBytes)}`);
2873
2881
  }
2874
2882
  }
2875
2883
  const combined = new Uint8Array(receivedBytes);
@@ -2906,8 +2914,6 @@ var wget = (() => {
2906
2914
  context.writer.writeError(`Download failed: ${err.message}`);
2907
2915
  }
2908
2916
  context.process.exit(1);
2909
- } finally {
2910
- abortSub.unsubscribe();
2911
2917
  }
2912
2918
  }
2913
2919
  writeDescription(context) {
@@ -2915,7 +2921,7 @@ var wget = (() => {
2915
2921
  }
2916
2922
  _getFileTransferService(context) {
2917
2923
  try {
2918
- return context.services.get(ICliFileTransferService_TOKEN);
2924
+ return context.services.getRequired(ICliFileTransferService_TOKEN);
2919
2925
  } catch {
2920
2926
  return new BrowserFileTransferService();
2921
2927
  }