@jetstart/cli 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/cli.js +18 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/android-emulator.d.ts +8 -0
  4. package/dist/commands/android-emulator.d.ts.map +1 -0
  5. package/dist/commands/android-emulator.js +280 -0
  6. package/dist/commands/android-emulator.js.map +1 -0
  7. package/dist/commands/create.d.ts +1 -6
  8. package/dist/commands/create.d.ts.map +1 -1
  9. package/dist/commands/create.js +119 -0
  10. package/dist/commands/create.js.map +1 -1
  11. package/dist/commands/dev.d.ts +1 -7
  12. package/dist/commands/dev.d.ts.map +1 -1
  13. package/dist/commands/dev.js +69 -10
  14. package/dist/commands/dev.js.map +1 -1
  15. package/dist/commands/index.d.ts +2 -0
  16. package/dist/commands/index.d.ts.map +1 -1
  17. package/dist/commands/index.js +5 -1
  18. package/dist/commands/index.js.map +1 -1
  19. package/dist/commands/install-audit.d.ts +9 -0
  20. package/dist/commands/install-audit.d.ts.map +1 -0
  21. package/dist/commands/install-audit.js +185 -0
  22. package/dist/commands/install-audit.js.map +1 -0
  23. package/dist/types/index.d.ts +22 -0
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/index.js +8 -0
  26. package/dist/types/index.js.map +1 -1
  27. package/dist/utils/android-sdk.d.ts +81 -0
  28. package/dist/utils/android-sdk.d.ts.map +1 -0
  29. package/dist/utils/android-sdk.js +432 -0
  30. package/dist/utils/android-sdk.js.map +1 -0
  31. package/dist/utils/downloader.d.ts +35 -0
  32. package/dist/utils/downloader.d.ts.map +1 -0
  33. package/dist/utils/downloader.js +214 -0
  34. package/dist/utils/downloader.js.map +1 -0
  35. package/dist/utils/emulator-deployer.d.ts +29 -0
  36. package/dist/utils/emulator-deployer.d.ts.map +1 -0
  37. package/dist/utils/emulator-deployer.js +224 -0
  38. package/dist/utils/emulator-deployer.js.map +1 -0
  39. package/dist/utils/emulator.d.ts +101 -0
  40. package/dist/utils/emulator.d.ts.map +1 -0
  41. package/dist/utils/emulator.js +410 -0
  42. package/dist/utils/emulator.js.map +1 -0
  43. package/dist/utils/java.d.ts +25 -0
  44. package/dist/utils/java.d.ts.map +1 -0
  45. package/dist/utils/java.js +363 -0
  46. package/dist/utils/java.js.map +1 -0
  47. package/dist/utils/system-tools.d.ts +93 -0
  48. package/dist/utils/system-tools.d.ts.map +1 -0
  49. package/dist/utils/system-tools.js +599 -0
  50. package/dist/utils/system-tools.js.map +1 -0
  51. package/dist/utils/template.d.ts.map +1 -1
  52. package/dist/utils/template.js +777 -748
  53. package/dist/utils/template.js.map +1 -1
  54. package/package.json +7 -3
  55. package/src/cli.ts +20 -2
  56. package/src/commands/android-emulator.ts +304 -0
  57. package/src/commands/create.ts +128 -5
  58. package/src/commands/dev.ts +71 -18
  59. package/src/commands/index.ts +3 -1
  60. package/src/commands/install-audit.ts +227 -0
  61. package/src/types/index.ts +30 -0
  62. package/src/utils/android-sdk.ts +478 -0
  63. package/src/utils/downloader.ts +201 -0
  64. package/src/utils/emulator-deployer.ts +210 -0
  65. package/src/utils/emulator.ts +463 -0
  66. package/src/utils/java.ts +369 -0
  67. package/src/utils/system-tools.ts +648 -0
  68. package/src/utils/template.ts +875 -867
@@ -0,0 +1,432 @@
1
+ "use strict";
2
+ /**
3
+ * Android SDK Manager wrapper
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AndroidSDKManager = exports.REQUIRED_SDK_COMPONENTS = void 0;
40
+ exports.createSDKManager = createSDKManager;
41
+ const child_process_1 = require("child_process");
42
+ const fs = __importStar(require("fs-extra"));
43
+ const path = __importStar(require("path"));
44
+ const os = __importStar(require("os"));
45
+ const downloader_1 = require("./downloader");
46
+ const system_tools_1 = require("./system-tools");
47
+ const spinner_1 = require("./spinner");
48
+ const logger_1 = require("./logger");
49
+ /**
50
+ * Required SDK components for JetStart
51
+ */
52
+ exports.REQUIRED_SDK_COMPONENTS = [
53
+ 'platform-tools', // adb, fastboot
54
+ 'platforms;android-34', // Target API
55
+ 'platforms;android-24', // Minimum API
56
+ 'build-tools;34.0.0', // Latest build tools
57
+ 'emulator', // Android Emulator
58
+ 'system-images;android-34;google_apis;x86_64', // For AVD
59
+ ];
60
+ /**
61
+ * Android cmdline-tools download URLs
62
+ */
63
+ const CMDLINE_TOOLS_URLS = {
64
+ win32: 'https://dl.google.com/android/repository/commandlinetools-win-11076708_latest.zip',
65
+ darwin: 'https://dl.google.com/android/repository/commandlinetools-mac-11076708_latest.zip',
66
+ linux: 'https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip',
67
+ };
68
+ /**
69
+ * Android SDK Manager class
70
+ */
71
+ class AndroidSDKManager {
72
+ sdkRoot;
73
+ constructor(sdkRoot) {
74
+ this.sdkRoot = sdkRoot || '';
75
+ }
76
+ /**
77
+ * Initialize SDK root, detecting or creating as needed
78
+ */
79
+ async ensureSDKRoot() {
80
+ if (this.sdkRoot && await fs.pathExists(this.sdkRoot)) {
81
+ return this.sdkRoot;
82
+ }
83
+ // Try to find existing SDK
84
+ const existingSDK = await (0, system_tools_1.findAndroidSDK)();
85
+ if (existingSDK) {
86
+ this.sdkRoot = existingSDK;
87
+ return this.sdkRoot;
88
+ }
89
+ // Create new SDK at default location
90
+ this.sdkRoot = (0, system_tools_1.getDefaultSDKPath)();
91
+ await fs.ensureDir(this.sdkRoot);
92
+ (0, logger_1.info)(`Creating Android SDK at: ${this.sdkRoot}`);
93
+ return this.sdkRoot;
94
+ }
95
+ /**
96
+ * Install Android cmdline-tools
97
+ */
98
+ async installCmdlineTools() {
99
+ const sdkRoot = await this.ensureSDKRoot();
100
+ const platform = os.platform();
101
+ const url = CMDLINE_TOOLS_URLS[platform];
102
+ if (!url) {
103
+ throw new Error(`Unsupported platform: ${platform}`);
104
+ }
105
+ const extractPath = path.join(sdkRoot, 'cmdline-tools');
106
+ const latestPath = path.join(extractPath, 'latest');
107
+ // Check if already installed
108
+ if (await fs.pathExists(latestPath)) {
109
+ (0, logger_1.success)('Android cmdline-tools already installed');
110
+ return;
111
+ }
112
+ // Download and extract
113
+ await (0, downloader_1.downloadAndExtract)(url, extractPath, 'Downloading Android cmdline-tools');
114
+ // The extracted folder is named 'cmdline-tools', need to move it to 'latest'
115
+ const extractedPath = path.join(extractPath, 'cmdline-tools');
116
+ if (await fs.pathExists(extractedPath)) {
117
+ await fs.move(extractedPath, latestPath);
118
+ }
119
+ // Set environment variables for this process
120
+ process.env.ANDROID_HOME = sdkRoot;
121
+ process.env.ANDROID_SDK_ROOT = sdkRoot;
122
+ (0, logger_1.success)('Android cmdline-tools installed');
123
+ }
124
+ /**
125
+ * Get path to sdkmanager executable
126
+ */
127
+ getSDKManagerPath() {
128
+ const sdkmanagerName = os.platform() === 'win32' ? 'sdkmanager.bat' : 'sdkmanager';
129
+ return path.join(this.sdkRoot, 'cmdline-tools', 'latest', 'bin', sdkmanagerName);
130
+ }
131
+ /**
132
+ * Get path to avdmanager executable
133
+ */
134
+ getAVDManagerPath() {
135
+ const avdmanagerName = os.platform() === 'win32' ? 'avdmanager.bat' : 'avdmanager';
136
+ return path.join(this.sdkRoot, 'cmdline-tools', 'latest', 'bin', avdmanagerName);
137
+ }
138
+ /**
139
+ * Run sdkmanager command
140
+ */
141
+ async runSDKManager(args, onProgress) {
142
+ const sdkmanagerPath = this.getSDKManagerPath();
143
+ if (!(await fs.pathExists(sdkmanagerPath))) {
144
+ throw new Error('sdkmanager not found. Install cmdline-tools first.');
145
+ }
146
+ return new Promise((resolve, reject) => {
147
+ const proc = (0, child_process_1.spawn)(sdkmanagerPath, args, {
148
+ env: {
149
+ ...process.env,
150
+ ANDROID_HOME: this.sdkRoot,
151
+ ANDROID_SDK_ROOT: this.sdkRoot,
152
+ // Accept licenses automatically
153
+ JAVA_OPTS: '-Dcom.android.sdkmanager.toolsdir=' +
154
+ path.join(this.sdkRoot, 'cmdline-tools', 'latest'),
155
+ },
156
+ shell: true,
157
+ });
158
+ let output = '';
159
+ let errorOutput = '';
160
+ proc.stdout?.on('data', (data) => {
161
+ output += data.toString();
162
+ });
163
+ // Parse stderr for progress updates
164
+ proc.stderr?.on('data', (data) => {
165
+ const text = data.toString();
166
+ errorOutput += text;
167
+ if (onProgress) {
168
+ // Parse progress percentage: "10% ▋...................."
169
+ const progressMatch = text.match(/(\d+)%/);
170
+ if (progressMatch) {
171
+ const percent = parseInt(progressMatch[1], 10);
172
+ // Extract current operation
173
+ const lines = text.split('\n');
174
+ const currentOp = lines.find((l) => l.includes('Downloading') ||
175
+ l.includes('Installing') ||
176
+ l.includes('Extracting') ||
177
+ l.includes('Unzipping')) || 'Processing...';
178
+ onProgress(percent, currentOp.trim());
179
+ }
180
+ }
181
+ });
182
+ proc.on('close', (code) => {
183
+ if (code === 0) {
184
+ resolve(output);
185
+ }
186
+ else {
187
+ reject(new Error(`sdkmanager exited with code ${code}: ${errorOutput}`));
188
+ }
189
+ });
190
+ proc.on('error', (err) => {
191
+ reject(err);
192
+ });
193
+ });
194
+ }
195
+ /**
196
+ * Accept all SDK licenses
197
+ */
198
+ async acceptLicenses() {
199
+ const spinner = (0, spinner_1.startSpinner)('Accepting SDK licenses...');
200
+ try {
201
+ const sdkmanagerPath = this.getSDKManagerPath();
202
+ // Add path validation (like runSDKManager does)
203
+ if (!(await fs.pathExists(sdkmanagerPath))) {
204
+ throw new Error('sdkmanager not found. Install cmdline-tools first.');
205
+ }
206
+ await new Promise((resolve, reject) => {
207
+ const proc = (0, child_process_1.spawn)(sdkmanagerPath, ['--licenses'], {
208
+ env: {
209
+ ...process.env,
210
+ ANDROID_HOME: this.sdkRoot,
211
+ ANDROID_SDK_ROOT: this.sdkRoot,
212
+ // ADD MISSING JAVA_OPTS (critical fix)
213
+ JAVA_OPTS: '-Dcom.android.sdkmanager.toolsdir=' +
214
+ path.join(this.sdkRoot, 'cmdline-tools', 'latest'),
215
+ },
216
+ // ADD explicit stdio configuration
217
+ stdio: ['pipe', 'pipe', 'pipe'],
218
+ shell: true,
219
+ });
220
+ // Check if stdin is writable before writing
221
+ if (proc.stdin) {
222
+ const success = proc.stdin.write('y\n'.repeat(100));
223
+ if (!success) {
224
+ // Handle backpressure - wait for drain
225
+ proc.stdin.once('drain', () => {
226
+ proc.stdin?.end();
227
+ });
228
+ }
229
+ else {
230
+ proc.stdin.end();
231
+ }
232
+ }
233
+ else {
234
+ reject(new Error('stdin not available'));
235
+ return;
236
+ }
237
+ // Collect stderr for debugging
238
+ let errorOutput = '';
239
+ proc.stderr?.on('data', (data) => {
240
+ errorOutput += data.toString();
241
+ });
242
+ proc.on('close', (code) => {
243
+ if (code === 0 || code === null) {
244
+ resolve();
245
+ }
246
+ else {
247
+ reject(new Error(`Failed to accept licenses: exit code ${code}\n${errorOutput}`));
248
+ }
249
+ });
250
+ proc.on('error', (err) => {
251
+ reject(err);
252
+ });
253
+ });
254
+ (0, spinner_1.stopSpinner)(spinner, true, 'SDK licenses accepted');
255
+ }
256
+ catch (error) {
257
+ (0, spinner_1.stopSpinner)(spinner, false, 'Failed to accept licenses');
258
+ throw error;
259
+ }
260
+ }
261
+ /**
262
+ * Install an SDK component
263
+ */
264
+ async installComponent(component, progressLabel) {
265
+ const label = progressLabel || `Installing ${component}`;
266
+ const spinner = (0, spinner_1.startSpinner)(label);
267
+ try {
268
+ // Accept licenses first
269
+ await this.acceptLicenses();
270
+ // Install component with progress updates
271
+ await this.runSDKManager(['--install', component], (percent, message) => {
272
+ // Update spinner text with progress
273
+ spinner.text = `${label} (${percent}%) - ${message}`;
274
+ });
275
+ (0, spinner_1.stopSpinner)(spinner, true, `${component} installed`);
276
+ }
277
+ catch (error) {
278
+ (0, spinner_1.stopSpinner)(spinner, false, `Failed to install ${component}`);
279
+ throw error;
280
+ }
281
+ }
282
+ /**
283
+ * List installed SDK components
284
+ */
285
+ async listInstalled() {
286
+ try {
287
+ const output = await this.runSDKManager(['--list_installed']);
288
+ return this.parseSDKList(output);
289
+ }
290
+ catch (error) {
291
+ return [];
292
+ }
293
+ }
294
+ /**
295
+ * Parse sdkmanager list output
296
+ */
297
+ parseSDKList(output) {
298
+ const components = [];
299
+ const lines = output.split('\n');
300
+ for (const line of lines) {
301
+ // Example: "build-tools;34.0.0 | 34.0.0 | Android SDK Build-Tools 34"
302
+ const match = line.match(/^([^|]+)\|([^|]+)\|(.+)$/);
303
+ if (match) {
304
+ const name = match[1].trim();
305
+ const version = match[2].trim();
306
+ components.push({
307
+ name,
308
+ version,
309
+ path: path.join(this.sdkRoot, name.replace(/;/g, path.sep)),
310
+ installed: true,
311
+ });
312
+ }
313
+ }
314
+ return components;
315
+ }
316
+ /**
317
+ * Update all installed components
318
+ */
319
+ async updateAll() {
320
+ const spinner = (0, spinner_1.startSpinner)('Updating SDK components...');
321
+ try {
322
+ await this.runSDKManager(['--update']);
323
+ (0, spinner_1.stopSpinner)(spinner, true, 'SDK components updated');
324
+ }
325
+ catch (error) {
326
+ (0, spinner_1.stopSpinner)(spinner, false, 'Failed to update components');
327
+ throw error;
328
+ }
329
+ }
330
+ /**
331
+ * Check if a component is installed
332
+ */
333
+ async isComponentInstalled(component) {
334
+ const installed = await this.listInstalled();
335
+ return installed.some((c) => c.name === component);
336
+ }
337
+ /**
338
+ * Install all required components for JetStart
339
+ */
340
+ async installRequiredComponents() {
341
+ (0, logger_1.info)('Installing required Android SDK components...');
342
+ console.log();
343
+ for (let i = 0; i < exports.REQUIRED_SDK_COMPONENTS.length; i++) {
344
+ const component = exports.REQUIRED_SDK_COMPONENTS[i];
345
+ const overallProgress = `[${i + 1}/${exports.REQUIRED_SDK_COMPONENTS.length}]`;
346
+ try {
347
+ await this.installComponent(component, `${overallProgress} Installing ${component}`);
348
+ }
349
+ catch (error) {
350
+ (0, logger_1.warning)(`Failed to install ${component}: ${error.message}`);
351
+ }
352
+ }
353
+ console.log();
354
+ (0, logger_1.success)('All required SDK components installed');
355
+ }
356
+ /**
357
+ * Detect missing required components
358
+ */
359
+ async detectMissingComponents() {
360
+ const installed = await this.listInstalled();
361
+ const installedNames = installed.map((c) => c.name);
362
+ return exports.REQUIRED_SDK_COMPONENTS.filter((c) => !installedNames.includes(c));
363
+ }
364
+ /**
365
+ * Create local.properties file with SDK path
366
+ */
367
+ async createLocalProperties(projectPath) {
368
+ const localPropertiesPath = path.join(projectPath, 'local.properties');
369
+ // Check if already exists
370
+ if (await fs.pathExists(localPropertiesPath)) {
371
+ return;
372
+ }
373
+ const sdkRoot = await this.ensureSDKRoot();
374
+ // Escape backslashes for Windows paths
375
+ const sdkPathEscaped = sdkRoot.replace(/\\/g, '\\\\');
376
+ const content = `# Automatically generated by JetStart
377
+ sdk.dir=${sdkPathEscaped}
378
+ `;
379
+ await fs.writeFile(localPropertiesPath, content, 'utf8');
380
+ (0, logger_1.info)(`Created local.properties with SDK path`);
381
+ }
382
+ }
383
+ exports.AndroidSDKManager = AndroidSDKManager;
384
+ /**
385
+ * Create an SDK manager instance
386
+ */
387
+ function createSDKManager(sdkRoot) {
388
+ // Check for mock mode (for testing)
389
+ if (process.env.JETSTART_MOCK_SDK === 'true') {
390
+ return new MockAndroidSDKManager();
391
+ }
392
+ return new AndroidSDKManager(sdkRoot);
393
+ }
394
+ /**
395
+ * Mock SDK manager for testing
396
+ */
397
+ class MockAndroidSDKManager {
398
+ async ensureSDKRoot() {
399
+ return '/mock/android/sdk';
400
+ }
401
+ async installCmdlineTools() {
402
+ (0, logger_1.info)('[MOCK] Installing cmdline-tools');
403
+ }
404
+ async acceptLicenses() {
405
+ (0, logger_1.info)('[MOCK] Accepting licenses');
406
+ }
407
+ async installComponent(component) {
408
+ (0, logger_1.info)(`[MOCK] Installing ${component}`);
409
+ }
410
+ async listInstalled() {
411
+ return [
412
+ { name: 'platforms;android-34', version: '1', path: '/mock/platforms/android-34', installed: true },
413
+ { name: 'build-tools;34.0.0', version: '34.0.0', path: '/mock/build-tools/34.0.0', installed: true },
414
+ ];
415
+ }
416
+ async updateAll() {
417
+ (0, logger_1.info)('[MOCK] Updating all components');
418
+ }
419
+ async isComponentInstalled(component) {
420
+ return true;
421
+ }
422
+ async installRequiredComponents() {
423
+ (0, logger_1.info)('[MOCK] Installing required components');
424
+ }
425
+ async detectMissingComponents() {
426
+ return [];
427
+ }
428
+ async createLocalProperties(projectPath) {
429
+ (0, logger_1.info)(`[MOCK] Creating local.properties at ${projectPath}`);
430
+ }
431
+ }
432
+ //# sourceMappingURL=android-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-sdk.js","sourceRoot":"","sources":["../../src/utils/android-sdk.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoaH,4CAOC;AAzaD,iDAAoD;AACpD,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AACzB,6CAAkD;AAClD,iDAAmE;AACnE,uCAAqE;AACrE,qCAAqE;AASrE;;GAEG;AACU,QAAA,uBAAuB,GAAG;IACrC,gBAAgB,EAA+B,gBAAgB;IAC/D,sBAAsB,EAAyB,aAAa;IAC5D,sBAAsB,EAAyB,cAAc;IAC7D,oBAAoB,EAA0B,qBAAqB;IACnE,UAAU,EAAqC,mBAAmB;IAClE,6CAA6C,EAAE,UAAU;CAC1D,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,KAAK,EAAE,mFAAmF;IAC1F,MAAM,EAAE,mFAAmF;IAC3F,KAAK,EAAE,qFAAqF;CAC7F,CAAC;AAEF;;GAEG;AACH,MAAa,iBAAiB;IACpB,OAAO,CAAS;IAExB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAAG,MAAM,IAAA,6BAAc,GAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;YAC3B,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAA,gCAAiB,GAAE,CAAC;QACnC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAA,aAAI,EAAC,4BAA4B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAkC,CAAC;QAE/D,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,IAAA,gBAAO,EAAC,yCAAyC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAA,+BAAkB,EAAC,GAAG,EAAE,WAAW,EAAE,mCAAmC,CAAC,CAAC;QAEhF,6EAA6E;QAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAEvC,IAAA,gBAAO,EAAC,iCAAiC,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;QACnF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;QACnF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,IAAc,EACd,UAAwD;QAExD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEhD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,cAAc,EAAE,IAAI,EAAE;gBACvC,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,gBAAgB,EAAE,IAAI,CAAC,OAAO;oBAC9B,gCAAgC;oBAChC,SAAS,EACP,oCAAoC;wBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;iBACrD;gBACD,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,oCAAoC;YACpC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,WAAW,IAAI,IAAI,CAAC;gBAEpB,IAAI,UAAU,EAAE,CAAC;oBACf,yDAAyD;oBACzD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC3C,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAE/C,4BAA4B;wBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC/B,MAAM,SAAS,GACb,KAAK,CAAC,IAAI,CACR,CAAC,CAAS,EAAE,EAAE,CACZ,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;4BACzB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;4BACxB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;4BACxB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1B,IAAI,eAAe,CAAC;wBAEvB,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,2BAA2B,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEhD,gDAAgD;YAChD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE;oBACjD,GAAG,EAAE;wBACH,GAAG,OAAO,CAAC,GAAG;wBACd,YAAY,EAAE,IAAI,CAAC,OAAO;wBAC1B,gBAAgB,EAAE,IAAI,CAAC,OAAO;wBAC9B,uCAAuC;wBACvC,SAAS,EACP,oCAAoC;4BACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;qBACrD;oBACD,mCAAmC;oBACnC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;oBAC/B,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBAEH,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,uCAAuC;wBACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;4BAC5B,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;wBACpB,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC/B,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAChC,OAAO,EAAE,CAAC;oBACZ,CAAC;yBAAM,CAAC;wBACN,MAAM,CACJ,IAAI,KAAK,CAAC,wCAAwC,IAAI,KAAK,WAAW,EAAE,CAAC,CAC1E,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAA,qBAAW,EAAC,OAAO,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,qBAAW,EAAC,OAAO,EAAE,KAAK,EAAE,2BAA2B,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,aAAsB;QAC9D,MAAM,KAAK,GAAG,aAAa,IAAI,cAAc,SAAS,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,0CAA0C;YAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBACtE,oCAAoC;gBACpC,OAAO,CAAC,IAAI,GAAG,GAAG,KAAK,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,IAAA,qBAAW,EAAC,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,YAAY,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,qBAAW,EAAC,OAAO,EAAE,KAAK,EAAE,qBAAqB,SAAS,EAAE,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,MAAc;QACjC,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,sEAAsE;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACrD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEhC,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI;oBACJ,OAAO;oBACP,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3D,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,4BAA4B,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACvC,IAAA,qBAAW,EAAC,OAAO,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,qBAAW,EAAC,OAAO,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB;QAC7B,IAAA,aAAI,EAAC,+CAA+C,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,+BAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,+BAAuB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,+BAAuB,CAAC,MAAM,GAAG,CAAC;YAEvE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,eAAe,eAAe,SAAS,EAAE,CAAC,CAAC;YACvF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,gBAAO,EAAC,qBAAqB,SAAS,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAA,gBAAO,EAAC,uCAAuC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEpD,OAAO,+BAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAC7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAEvE,0BAA0B;QAC1B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3C,uCAAuC;QACvC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG;UACV,cAAc;CACvB,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,IAAA,aAAI,EAAC,wCAAwC,CAAC,CAAC;IACjD,CAAC;CACF;AArXD,8CAqXC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,oCAAoC;IACpC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC7C,OAAO,IAAI,qBAAqB,EAAS,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,qBAAqB;IACzB,KAAK,CAAC,aAAa;QACjB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,IAAA,aAAI,EAAC,iCAAiC,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAA,aAAI,EAAC,2BAA2B,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,IAAA,aAAI,EAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO;YACL,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAAE;YACnG,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,IAAI,EAAE;SACrG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAA,aAAI,EAAC,gCAAgC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,IAAA,aAAI,EAAC,uCAAuC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QAC7C,IAAA,aAAI,EAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Download utilities with progress tracking
3
+ */
4
+ export interface DownloadOptions {
5
+ url: string;
6
+ destination: string;
7
+ progressLabel?: string;
8
+ expectedSize?: number;
9
+ timeout?: number;
10
+ }
11
+ /**
12
+ * Format bytes into human-readable format
13
+ */
14
+ export declare function formatBytes(bytes: number): string;
15
+ /**
16
+ * Download a file with progress tracking
17
+ */
18
+ export declare function downloadWithProgress(options: DownloadOptions): Promise<void>;
19
+ /**
20
+ * Download a file with retry logic and exponential backoff
21
+ */
22
+ export declare function downloadWithRetry(options: DownloadOptions, maxRetries?: number): Promise<void>;
23
+ /**
24
+ * Download and extract a ZIP file
25
+ */
26
+ export declare function downloadAndExtract(url: string, extractPath: string, progressLabel?: string): Promise<void>;
27
+ /**
28
+ * Check if a URL is accessible
29
+ */
30
+ export declare function checkUrlAccessible(url: string): Promise<boolean>;
31
+ /**
32
+ * Get file size from URL without downloading
33
+ */
34
+ export declare function getRemoteFileSize(url: string): Promise<number | null>;
35
+ //# sourceMappingURL=downloader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../../src/utils/downloader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DlF;AASD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,EACxB,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYtE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAa3E"}