@qodalis/cli-curl 0.0.2 → 0.0.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.
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { DefaultLibraryAuthor, } from '@qodalis/cli-core';
2
+ import { CliForegroundColor, DefaultLibraryAuthor, } from '@qodalis/cli-core';
3
3
  import { LIBRARY_VERSION } from '../version';
4
4
  import * as i0 from "@angular/core";
5
5
  export class CliCurlCommandProcessor {
@@ -190,21 +190,24 @@ export class CliCurlCommandProcessor {
190
190
  return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
191
191
  }
192
192
  writeDescription(context) {
193
- context.writer.writeln(this.description);
194
- context.writer.writeln();
195
- context.writer.writeln('Usage:');
196
- context.writer.writeln(' curl <method> <url> [options]');
197
- context.writer.writeln();
198
- context.writer.writeln('Options:');
199
- context.writer.writeln(' -H, --header Add custom headers (e.g., -H="Authorization: Bearer <token>")');
200
- context.writer.writeln(' -d, --data Add request body');
201
- context.writer.writeln(' --verbose Print detailed response');
202
- context.writer.writeln();
203
- context.writer.writeln('Examples:');
204
- context.writer.writeln(' curl get https://api.example.com/users');
205
- context.writer.writeln(' curl post https://api.example.com/users -d=\'{"name":"John"}\' -H="Content-Type: application/json"');
206
- context.writer.writeln();
207
- context.writer.writeWarning('Note: The server must allow CORS for this tool to work.');
193
+ const { writer } = context;
194
+ writer.writeln(this.description);
195
+ writer.writeln();
196
+ writer.writeln('📋 Usage:');
197
+ writer.writeln(` ${writer.wrapInColor('curl <method> <url> [options]', CliForegroundColor.Cyan)}`);
198
+ writer.writeln();
199
+ writer.writeln('⚙️ Options:');
200
+ writer.writeln(` ${writer.wrapInColor('-H, --header', CliForegroundColor.Yellow)} Add custom headers`);
201
+ writer.writeln(` ${writer.wrapInColor('-d, --data', CliForegroundColor.Yellow)} Add request body (JSON)`);
202
+ writer.writeln(` ${writer.wrapInColor('--verbose', CliForegroundColor.Yellow)} Print detailed response (status, headers)`);
203
+ writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Yellow)} Route request through proxy`);
204
+ writer.writeln();
205
+ writer.writeln('📝 Examples:');
206
+ writer.writeln(` curl get https://api.example.com/users`);
207
+ writer.writeln(` curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json"`);
208
+ writer.writeln(` curl delete https://api.example.com/users/1 --proxy`);
209
+ writer.writeln();
210
+ writer.writeWarning('⚠️ The server must allow CORS for this tool to work');
208
211
  }
209
212
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
210
213
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor }); }
@@ -212,4 +215,4 @@ export class CliCurlCommandProcessor {
212
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, decorators: [{
213
216
  type: Injectable
214
217
  }], ctorParameters: function () { return []; } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWN1cmwtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXJsL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktY3VybC1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHSCxvQkFBb0IsR0FHdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUc3QyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JoQztRQWZBLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFFakIsZ0JBQVcsR0FDUCx1SEFBdUgsQ0FBQztRQUU1SCxXQUFNLEdBQUcsb0JBQW9CLENBQUM7UUFFOUIsWUFBTyxHQUFHLGVBQWUsQ0FBQztRQUUxQixlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUVyRCxhQUFRLEdBQXNDO1lBQzFDLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUdFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBNkIsSUFBa0IsQ0FBQztJQUV6RCxxQkFBcUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNkO2dCQUNJLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixVQUFVLEVBQUU7b0JBQ1I7d0JBQ0ksSUFBSSxFQUFFLFFBQVE7d0JBQ2QsT0FBTyxFQUFFLENBQUMs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QXNHLENBQ3pHLENBQUM7UUFDRixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUN2Qix5REFBeUQsQ0FDNUQsQ0FBQztJQUNOLENBQUM7K0dBNVBRLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBDbGlQcm9jZXNzb3JNZXRhZGF0YSxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IHsgTElCUkFSWV9WRVJTSU9OIH0gZnJvbSAnLi4vdmVyc2lvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGlDdXJsQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ2N1cmwnO1xuXG4gICAgZGVzY3JpcHRpb24gPVxuICAgICAgICAnQSBjb21tYW5kLWxpbmUgdG9vbCB0byBleGVjdXRlIEhUVFAgcmVxdWVzdHMgb24geW91ciBzZXJ2ZXIuIFN1cHBvcnRzIEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGhlYWRlcnMsIGFuZCBib2R5IGRhdGEuJztcblxuICAgIGF1dGhvciA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgdmVyc2lvbiA9IExJQlJBUllfVkVSU0lPTjtcblxuICAgIHByb2Nlc3NvcnM/OiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdIHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhIHwgdW5kZWZpbmVkID0ge1xuICAgICAgICBpY29uOiAn8J+MkCcsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3ViUHJvY2Vzc29ycygpO1xuICAgIH1cblxuICAgIGFzeW5jIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnRleHQuZXhlY3V0b3Iuc2hvd0hlbHAoY29tbWFuZCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdGlhbGl6ZShjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2dldCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQZXJmb3JtIGFuIEhUVFAgR0VUIHJlcXVlc3QnLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnSCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZGQgY3VzdG9tIGhlYWRlcnMuIEFjY2VwdCBtdWx0aXBsZSBoZWFkZXJzLicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnR0VUJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3Bvc3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIFBPU1QgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BPU1QnLCBjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncHV0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BlcmZvcm0gYW4gSFRUUCBQVVQgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BVVCcsIGNvbW1hbmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIERFTEVURSByZXF1ZXN0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ0gnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBjdXN0b20gaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnREVMRVRFJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdChcbiAgICAgICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gY29tbWFuZC52YWx1ZTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGNvbW1hbmQuYXJnc1snaGVhZGVyJ10gfHwgY29tbWFuZC5hcmdzWydIJ10gfHwgW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjb21tYW5kLmFyZ3NbJ2RhdGEnXSB8fCBjb21tYW5kLmFyZ3NbJ2QnXTtcbiAgICAgICAgY29uc3QgdmVyYm9zZSA9ICEhY29tbWFuZC5hcmdzWyd2ZXJib3NlJ107XG4gICAgICAgIGNvbnN0IHVzZVByb3h5ID0gISFjb21tYW5kLmFyZ3NbJ3Byb3h5J107XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJ1VSTCBpcyByZXF1aXJlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgaGVhZGVyc1xuICAgICAgICBjb25zdCBoZWFkZXJzT2JqZWN0ID0gaGVhZGVycy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBoZWFkZXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGhlYWRlci5zcGxpdCgnOicpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ICYmIHZhbHVlKSBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0IG9wdGlvbnNcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0LFxuICAgICAgICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZGF0YSkpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gdXNlUHJveHkgPyB0aGlzLnJld3JpdGVVcmxUb1Byb3h5KHVybCkgOiB1cmw7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdFVybCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ1JlcXVlc3Qgc3VjY2Vzc2Z1bDonKTtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihgU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICBgSGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5oZWFkZXJzLCBudWxsLCAyKX1gLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHRleHQpO1xuXG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHRleHQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihgUmVxdWVzdCBmYWlsZWQ6ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUluZm8oJ0VxdWl2YWxlbnQgY3VybCBjb21tYW5kOicpO1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ3VybENvbW1hbmQodXJsLCBtZXRob2QsIGhlYWRlcnMsIGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVDdXJsQ29tbWFuZChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxuICAgICAgICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgICAgICAgZGF0YT86IHN0cmluZyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWFkZXJTdHJpbmcgPSBoZWFkZXJzLm1hcCgoaCkgPT4gYC1IIFwiJHtofVwiYCkuam9pbignICcpO1xuICAgICAgICBjb25zdCBkYXRhU3RyaW5nID0gZGF0YSA/IGAtZCAnJHtkYXRhfSdgIDogJyc7XG4gICAgICAgIHJldHVybiBgY3VybCAtWCAke21ldGhvZH0gJHtoZWFkZXJTdHJpbmd9ICR7ZGF0YVN0cmluZ30gXCIke3VybH1cImA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXdyaXRlVXJsVG9Qcm94eShvcmlnaW5hbFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXihodHRwcz8pOlxcL1xcLyhbXlxcL10rKShcXC8uKik/JC9pO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gb3JpZ2luYWxVcmwubWF0Y2gocmVnZXgpO1xuXG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkwgcHJvdmlkZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjaGVtZSA9IG1hdGNoWzFdOyAvLyAnaHR0cCcgb3IgJ2h0dHBzJ1xuICAgICAgICBjb25zdCBkb21haW4gPSBtYXRjaFsyXTsgLy8gZG9tYWluLmNvbVxuICAgICAgICBjb25zdCBwYXRoID0gbWF0Y2hbM10gfHwgJy8nOyAvLyAvcGF0aCBvciAnLydcblxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vcHJveHkucW9kYWxpcy5jb20vcHJveHkvJHtzY2hlbWV9LyR7ZG9tYWlufSR7cGF0aH1gO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbih0aGlzLmRlc2NyaXB0aW9uISk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignVXNhZ2U6Jyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJyAgY3VybCA8bWV0aG9kPiA8dXJsPiBbb3B0aW9uc10nKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdPcHRpb25zOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgLUgsIC0taGVhZGVyICAgICBBZGQgY3VzdG9tIGhlYWRlcnMgKGUuZy4sIC1IPVwiQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5cIiknLFxuICAgICAgICApO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIC1kLCAtLWRhdGEgICAgICAgQWRkIHJlcXVlc3QgYm9keScpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIC0tdmVyYm9zZSAgICBQcmludCBkZXRhaWxlZCByZXNwb25zZScpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0V4YW1wbGVzOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIGN1cmwgZ2V0IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzJyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAnICBjdXJsIHBvc3QgaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMgLWQ9XFwne1wibmFtZVwiOlwiSm9oblwifVxcJyAtSD1cIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuXG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlV2FybmluZyhcbiAgICAgICAgICAgICdOb3RlOiBUaGUgc2VydmVyIG11c3QgYWxsb3cgQ09SUyBmb3IgdGhpcyB0b29sIHRvIHdvcmsuJyxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWN1cmwtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXJsL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktY3VybC1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFHbEIsb0JBQW9CLEdBR3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLHVCQUF1QjtJQWdCaEM7UUFmQSxZQUFPLEdBQUcsTUFBTSxDQUFDO1FBRWpCLGdCQUFXLEdBQ1AsdUhBQXVILENBQUM7UUFFNUgsV0FBTSxHQUFHLG9CQUFvQixDQUFDO1FBRTlCLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFFMUIsZUFBVSxHQUF3QyxFQUFFLENBQUM7UUFFckQsYUFBUSxHQUFzQztZQUMxQyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUM7UUFHRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FDaEIsT0FBMEIsRUFDMUIsT0FBNkI7UUFFN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQTZCLElBQWtCLENBQUM7SUFFekQscUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZDtnQkFDSSxPQUFPLEVBQUUsS0FBSztnQkFDZCxXQUFXLEVBQUUsNkJBQTZCO2dCQUMxQyxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsVUFBVSxFQUFFO29CQUNSO3dCQUNJLElBQUksRUFBRSxRQUFRO3dCQUNkLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQzt3QkFDZCxJQUFJLEVBQUUsT0FBTzt3QkFDYixXQUFXLEVBQ1AsOENBQThDO3dCQUNsRCxRQUFRLEVBQUUsS0FBSztxQkFDbEI7b0JBQ0Q7d0JBQ0ksSUFBSSxFQUFFLE9BQU87d0JBQ2IsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsV0FBVyxFQUFFLFdBQVc7d0JBQ3hCLFFBQVEsRUFBRSxLQUFLO3FCQUNsQjtpQkFDSjtnQkFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtvQkFDdkMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7YUFDSjtZQUNEO2dCQUNJLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFdBQVcsRUFBRSw4QkFBOEI7Z0JBQzNDLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixVQUFVLEVBQUU7b0JBQ1I7d0JBQ0ksSUFBSSxFQUFFLFFBQVE7d0JBQ2QsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDO3dCQUNkLElBQUksRUFBRSxPQUFPO3dCQUNiLFdBQVcsRUFBRSxvQkFBb0I7d0JBQ2pDLFFBQVEsRUFBRSxLQUFLO3FCQUNsQjtvQkFDRDt3QkFDSSxJQUFJLEVBQUUsTUFBTTt3QkFDWixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ2QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLGNBQWM7d0JBQzNCLFFBQVEsRUFBRSxLQUFLO3FCQUNsQjtvQkFDRDt3QkFDSSxJQUFJLEVBQUUsT0FBTzt3QkFDYixJQUFJLEVBQUUsU0FBUzt3QkFDZixXQUFXLEVBQUUsV0FBVzt3QkFDeEIsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCO2lCQUNKO2dCQUNELGNBQWMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO29CQUN2QyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDeEQsQ0FBQzthQUNKO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsV0FBVyxFQUFFLDZCQUE2QjtnQkFDMUMsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLFVBQVUsRUFBRTtvQkFDUjt3QkFDSSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ2QsSUFBSSxFQUFFLE9BQU87d0JBQ2IsV0FBVyxFQUFFLG9CQUFvQjt3QkFDakMsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCO29CQUNEO3dCQUNJLElBQUksRUFBRSxNQUFNO3dCQUNaLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQzt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxXQUFXLEVBQUUsY0FBYzt3QkFDM0IsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCO29CQUNEO3dCQUNJLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxTQUFTO3dCQUNmLFdBQVcsRUFBRSxXQUFXO3dCQUN4QixRQUFRLEVBQUUsS0FBSztxQkFDbEI7aUJBQ0o7Z0JBQ0QsY0FBYyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7b0JBQ3ZDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxDQUFDO2FBQ0o7WUFDRDtnQkFDSSxPQUFPLEVBQUUsUUFBUTtnQkFDakIsV0FBVyxFQUFFLGdDQUFnQztnQkFDN0MsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLFVBQVUsRUFBRTtvQkFDUjt3QkFDSSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQ2QsSUFBSSxFQUFFLE9BQU87d0JBQ2IsV0FBVyxFQUFFLG9CQUFvQjt3QkFDakMsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCO29CQUNEO3dCQUNJLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxTQUFTO3dCQUNmLFdBQVcsRUFBRSxXQUFXO3dCQUN4QixRQUFRLEVBQUUsS0FBSztxQkFDbEI7aUJBQ0o7Z0JBQ0QsY0FBYyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7b0JBQ3ZDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUMxRCxDQUFDO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQ3hCLE1BQWMsRUFDZCxPQUEwQixFQUMxQixPQUE2QjtRQUU3QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzlDLE9BQU87U0FDVjtRQUVELGtCQUFrQjtRQUNsQixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNoQyxDQUFDLEdBQTJCLEVBQUUsTUFBYyxFQUFFLEVBQUU7WUFDNUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEUsSUFBSSxHQUFHLElBQUksS0FBSztnQkFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25DLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDTCxDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sT0FBTyxHQUFnQjtZQUN6QixNQUFNO1lBQ04sT0FBTyxFQUFFLGFBQWE7WUFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDNUQsQ0FBQztRQUVGLElBQUk7WUFDQSxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBRWhFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVuQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ25ELElBQUksT0FBTyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUNsQixZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FDMUQsQ0FBQzthQUNMO1lBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFN0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLG1CQUFtQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7Z0JBQVM7WUFDTixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FDdkQsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQixDQUN2QixHQUFXLEVBQ1gsTUFBYyxFQUNkLE9BQWlCLEVBQ2pCLElBQWE7UUFFYixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sV0FBVyxNQUFNLElBQUksWUFBWSxJQUFJLFVBQVUsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUN0RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsV0FBbUI7UUFDekMsTUFBTSxLQUFLLEdBQUcsaUNBQWlDLENBQUM7UUFFaEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO1FBQzdDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGVBQWU7UUFFN0MsT0FBTyxtQ0FBbUMsTUFBTSxJQUFJLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBNkI7UUFDMUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMzQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQywrQkFBK0IsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNqSCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDbkksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ3JILE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsT0FBTyxDQUFDLG9HQUFvRyxDQUFDLENBQUM7UUFDckgsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsWUFBWSxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDaEYsQ0FBQzsrR0F4UFEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENsaUZvcmVncm91bmRDb2xvcixcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBDbGlQcm9jZXNzb3JNZXRhZGF0YSxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IHsgTElCUkFSWV9WRVJTSU9OIH0gZnJvbSAnLi4vdmVyc2lvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGlDdXJsQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ2N1cmwnO1xuXG4gICAgZGVzY3JpcHRpb24gPVxuICAgICAgICAnQSBjb21tYW5kLWxpbmUgdG9vbCB0byBleGVjdXRlIEhUVFAgcmVxdWVzdHMgb24geW91ciBzZXJ2ZXIuIFN1cHBvcnRzIEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGhlYWRlcnMsIGFuZCBib2R5IGRhdGEuJztcblxuICAgIGF1dGhvciA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgdmVyc2lvbiA9IExJQlJBUllfVkVSU0lPTjtcblxuICAgIHByb2Nlc3NvcnM/OiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdIHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhIHwgdW5kZWZpbmVkID0ge1xuICAgICAgICBpY29uOiAn8J+MkCcsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3ViUHJvY2Vzc29ycygpO1xuICAgIH1cblxuICAgIGFzeW5jIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnRleHQuZXhlY3V0b3Iuc2hvd0hlbHAoY29tbWFuZCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdGlhbGl6ZShjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2dldCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQZXJmb3JtIGFuIEhUVFAgR0VUIHJlcXVlc3QnLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnSCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZGQgY3VzdG9tIGhlYWRlcnMuIEFjY2VwdCBtdWx0aXBsZSBoZWFkZXJzLicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnR0VUJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3Bvc3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIFBPU1QgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BPU1QnLCBjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncHV0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BlcmZvcm0gYW4gSFRUUCBQVVQgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BVVCcsIGNvbW1hbmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIERFTEVURSByZXF1ZXN0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ0gnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBjdXN0b20gaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnREVMRVRFJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdChcbiAgICAgICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gY29tbWFuZC52YWx1ZTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGNvbW1hbmQuYXJnc1snaGVhZGVyJ10gfHwgY29tbWFuZC5hcmdzWydIJ10gfHwgW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjb21tYW5kLmFyZ3NbJ2RhdGEnXSB8fCBjb21tYW5kLmFyZ3NbJ2QnXTtcbiAgICAgICAgY29uc3QgdmVyYm9zZSA9ICEhY29tbWFuZC5hcmdzWyd2ZXJib3NlJ107XG4gICAgICAgIGNvbnN0IHVzZVByb3h5ID0gISFjb21tYW5kLmFyZ3NbJ3Byb3h5J107XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJ1VSTCBpcyByZXF1aXJlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgaGVhZGVyc1xuICAgICAgICBjb25zdCBoZWFkZXJzT2JqZWN0ID0gaGVhZGVycy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBoZWFkZXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGhlYWRlci5zcGxpdCgnOicpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ICYmIHZhbHVlKSBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0IG9wdGlvbnNcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0LFxuICAgICAgICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZGF0YSkpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gdXNlUHJveHkgPyB0aGlzLnJld3JpdGVVcmxUb1Byb3h5KHVybCkgOiB1cmw7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdFVybCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ1JlcXVlc3Qgc3VjY2Vzc2Z1bDonKTtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihgU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICBgSGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5oZWFkZXJzLCBudWxsLCAyKX1gLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHRleHQpO1xuXG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHRleHQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihgUmVxdWVzdCBmYWlsZWQ6ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUluZm8oJ0VxdWl2YWxlbnQgY3VybCBjb21tYW5kOicpO1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ3VybENvbW1hbmQodXJsLCBtZXRob2QsIGhlYWRlcnMsIGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVDdXJsQ29tbWFuZChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxuICAgICAgICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgICAgICAgZGF0YT86IHN0cmluZyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWFkZXJTdHJpbmcgPSBoZWFkZXJzLm1hcCgoaCkgPT4gYC1IIFwiJHtofVwiYCkuam9pbignICcpO1xuICAgICAgICBjb25zdCBkYXRhU3RyaW5nID0gZGF0YSA/IGAtZCAnJHtkYXRhfSdgIDogJyc7XG4gICAgICAgIHJldHVybiBgY3VybCAtWCAke21ldGhvZH0gJHtoZWFkZXJTdHJpbmd9ICR7ZGF0YVN0cmluZ30gXCIke3VybH1cImA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXdyaXRlVXJsVG9Qcm94eShvcmlnaW5hbFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXihodHRwcz8pOlxcL1xcLyhbXlxcL10rKShcXC8uKik/JC9pO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gb3JpZ2luYWxVcmwubWF0Y2gocmVnZXgpO1xuXG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkwgcHJvdmlkZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjaGVtZSA9IG1hdGNoWzFdOyAvLyAnaHR0cCcgb3IgJ2h0dHBzJ1xuICAgICAgICBjb25zdCBkb21haW4gPSBtYXRjaFsyXTsgLy8gZG9tYWluLmNvbVxuICAgICAgICBjb25zdCBwYXRoID0gbWF0Y2hbM10gfHwgJy8nOyAvLyAvcGF0aCBvciAnLydcblxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vcHJveHkucW9kYWxpcy5jb20vcHJveHkvJHtzY2hlbWV9LyR7ZG9tYWlufSR7cGF0aH1gO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKHRoaXMuZGVzY3JpcHRpb24hKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdjdXJsIDxtZXRob2Q+IDx1cmw+IFtvcHRpb25zXScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ+Kame+4jyAgT3B0aW9uczonKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJy1ILCAtLWhlYWRlcicsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSAgICAgQWRkIGN1c3RvbSBoZWFkZXJzYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctZCwgLS1kYXRhJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9ICAgICAgIEFkZCByZXF1ZXN0IGJvZHkgKEpTT04pYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctLXZlcmJvc2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0gICAgICAgIFByaW50IGRldGFpbGVkIHJlc3BvbnNlIChzdGF0dXMsIGhlYWRlcnMpYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctLXByb3h5JywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9ICAgICAgICAgIFJvdXRlIHJlcXVlc3QgdGhyb3VnaCBwcm94eWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TnSBFeGFtcGxlczonKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgY3VybCBnZXQgaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnNgKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgY3VybCBwb3N0IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIC1kPSd7XCJuYW1lXCI6XCJKb2huXCJ9JyAtSD1cIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgIGN1cmwgZGVsZXRlIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzLzEgLS1wcm94eWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVXYXJuaW5nKCfimqDvuI8gIFRoZSBzZXJ2ZXIgbXVzdCBhbGxvdyBDT1JTIGZvciB0aGlzIHRvb2wgdG8gd29yaycpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  // Automatically generated during build
2
- export const LIBRARY_VERSION = '0.0.2';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2N1cmwvc3JjL2xpYi92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkdXJpbmcgYnVpbGRcbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnMC4wLjInO1xuICAiXX0=
2
+ export const LIBRARY_VERSION = '0.0.3';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2N1cmwvc3JjL2xpYi92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkdXJpbmcgYnVpbGRcbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnMC4wLjMnO1xuICAiXX0=
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule } from '@angular/core';
3
3
  import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
4
- import { DefaultLibraryAuthor } from '@qodalis/cli-core';
4
+ import { DefaultLibraryAuthor, CliForegroundColor } from '@qodalis/cli-core';
5
5
 
6
6
  // Automatically generated during build
7
- const LIBRARY_VERSION = '0.0.2';
7
+ const LIBRARY_VERSION = '0.0.3';
8
8
 
9
9
  class CliCurlCommandProcessor {
10
10
  constructor() {
@@ -194,21 +194,24 @@ class CliCurlCommandProcessor {
194
194
  return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
195
195
  }
196
196
  writeDescription(context) {
197
- context.writer.writeln(this.description);
198
- context.writer.writeln();
199
- context.writer.writeln('Usage:');
200
- context.writer.writeln(' curl <method> <url> [options]');
201
- context.writer.writeln();
202
- context.writer.writeln('Options:');
203
- context.writer.writeln(' -H, --header Add custom headers (e.g., -H="Authorization: Bearer <token>")');
204
- context.writer.writeln(' -d, --data Add request body');
205
- context.writer.writeln(' --verbose Print detailed response');
206
- context.writer.writeln();
207
- context.writer.writeln('Examples:');
208
- context.writer.writeln(' curl get https://api.example.com/users');
209
- context.writer.writeln(' curl post https://api.example.com/users -d=\'{"name":"John"}\' -H="Content-Type: application/json"');
210
- context.writer.writeln();
211
- context.writer.writeWarning('Note: The server must allow CORS for this tool to work.');
197
+ const { writer } = context;
198
+ writer.writeln(this.description);
199
+ writer.writeln();
200
+ writer.writeln('📋 Usage:');
201
+ writer.writeln(` ${writer.wrapInColor('curl <method> <url> [options]', CliForegroundColor.Cyan)}`);
202
+ writer.writeln();
203
+ writer.writeln('⚙️ Options:');
204
+ writer.writeln(` ${writer.wrapInColor('-H, --header', CliForegroundColor.Yellow)} Add custom headers`);
205
+ writer.writeln(` ${writer.wrapInColor('-d, --data', CliForegroundColor.Yellow)} Add request body (JSON)`);
206
+ writer.writeln(` ${writer.wrapInColor('--verbose', CliForegroundColor.Yellow)} Print detailed response (status, headers)`);
207
+ writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Yellow)} Route request through proxy`);
208
+ writer.writeln();
209
+ writer.writeln('📝 Examples:');
210
+ writer.writeln(` curl get https://api.example.com/users`);
211
+ writer.writeln(` curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json"`);
212
+ writer.writeln(` curl delete https://api.example.com/users/1 --proxy`);
213
+ writer.writeln();
214
+ writer.writeWarning('⚠️ The server must allow CORS for this tool to work');
212
215
  }
213
216
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
214
217
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor }); }
@@ -1 +1 @@
1
- {"version":3,"file":"qodalis-cli-curl.mjs","sources":["../../../projects/curl/src/lib/version.ts","../../../projects/curl/src/lib/processors/cli-curl-command-processor.ts","../../../projects/curl/src/lib/cli-curl.module.ts","../../../projects/curl/src/public-api.ts","../../../projects/curl/src/qodalis-cli-curl.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.2';\n ","import { Injectable } from '@angular/core';\nimport {\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\n@Injectable()\nexport class CliCurlCommandProcessor implements ICliCommandProcessor {\n command = 'curl';\n\n description =\n 'A command-line tool to execute HTTP requests on your server. Supports GET, POST, PUT, DELETE, headers, and body data.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🌐',\n };\n\n constructor() {\n this.registerSubProcessors();\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n async initialize(context: ICliExecutionContext): Promise<void> {}\n\n private registerSubProcessors(): void {\n this.processors = [\n {\n command: 'get',\n description: 'Perform an HTTP GET request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description:\n 'Add custom headers. Accept multiple headers.',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('GET', command, context);\n },\n },\n {\n command: 'post',\n description: 'Perform an HTTP POST request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Add custom headers',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string',\n description: 'Request body',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('POST', command, context);\n },\n },\n {\n command: 'put',\n description: 'Perform an HTTP PUT request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Add custom headers',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string',\n description: 'Request body',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('PUT', command, context);\n },\n },\n {\n command: 'delete',\n description: 'Perform an HTTP DELETE request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Add custom headers',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('DELETE', command, context);\n },\n },\n ];\n }\n\n private async executeRequest(\n method: string,\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value;\n const headers = command.args['header'] || command.args['H'] || [];\n const data = command.args['data'] || command.args['d'];\n const verbose = !!command.args['verbose'];\n const useProxy = !!command.args['proxy'];\n\n if (!url) {\n context.writer.writeError('URL is required.');\n return;\n }\n\n // Prepare headers\n const headersObject = headers.reduce(\n (acc: Record<string, string>, header: string) => {\n const [key, value] = header.split(':').map((str) => str.trim());\n if (key && value) acc[key] = value;\n return acc;\n },\n {},\n );\n\n // Prepare request options\n const options: RequestInit = {\n method,\n headers: headersObject,\n body: data ? JSON.stringify(JSON.parse(data)) : undefined,\n };\n\n try {\n const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;\n\n const response = await fetch(requestUrl, options);\n const text = await response.text();\n\n context.writer.writeSuccess('Request successful:');\n if (verbose) {\n context.writer.writeln(`Status: ${response.status}`);\n context.writer.writeln(\n `Headers: ${JSON.stringify(response.headers, null, 2)}`,\n );\n }\n context.writer.writeln(text);\n\n context.process.output(text);\n } catch (error) {\n context.writer.writeError(`Request failed: ${error}`);\n context.process.exit(-1);\n } finally {\n context.writer.writeln();\n context.writer.writeInfo('Equivalent curl command:');\n context.writer.writeln(\n this.generateCurlCommand(url, method, headers, data),\n );\n }\n }\n\n private generateCurlCommand(\n url: string,\n method: string,\n headers: string[],\n data?: string,\n ): string {\n const headerString = headers.map((h) => `-H \"${h}\"`).join(' ');\n const dataString = data ? `-d '${data}'` : '';\n return `curl -X ${method} ${headerString} ${dataString} \"${url}\"`;\n }\n\n private rewriteUrlToProxy(originalUrl: string): string {\n const regex = /^(https?):\\/\\/([^\\/]+)(\\/.*)?$/i;\n\n const match = originalUrl.match(regex);\n\n if (!match) {\n throw new Error('Invalid URL provided');\n }\n\n const scheme = match[1]; // 'http' or 'https'\n const domain = match[2]; // domain.com\n const path = match[3] || '/'; // /path or '/'\n\n return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n context.writer.writeln();\n context.writer.writeln('Usage:');\n context.writer.writeln(' curl <method> <url> [options]');\n context.writer.writeln();\n context.writer.writeln('Options:');\n context.writer.writeln(\n ' -H, --header Add custom headers (e.g., -H=\"Authorization: Bearer <token>\")',\n );\n context.writer.writeln(' -d, --data Add request body');\n context.writer.writeln(' --verbose Print detailed response');\n context.writer.writeln();\n context.writer.writeln('Examples:');\n context.writer.writeln(' curl get https://api.example.com/users');\n context.writer.writeln(\n ' curl post https://api.example.com/users -d=\\'{\"name\":\"John\"}\\' -H=\"Content-Type: application/json\"',\n );\n context.writer.writeln();\n\n context.writer.writeWarning(\n 'Note: The server must allow CORS for this tool to work.',\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliCurlCommandProcessor } from './processors/cli-curl-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliCurlCommandProcessor)],\n})\nexport class CliCurlModule {}\n","/*\n * Public API Surface of string\n */\n\nexport * from './lib/cli-curl.module';\n\nexport * from './lib/processors/cli-curl-command-processor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qodalis-cli-curl.mjs","sources":["../../../projects/curl/src/lib/version.ts","../../../projects/curl/src/lib/processors/cli-curl-command-processor.ts","../../../projects/curl/src/lib/cli-curl.module.ts","../../../projects/curl/src/public-api.ts","../../../projects/curl/src/qodalis-cli-curl.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.3';\n ","import { Injectable } from '@angular/core';\nimport {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\n@Injectable()\nexport class CliCurlCommandProcessor implements ICliCommandProcessor {\n command = 'curl';\n\n description =\n 'A command-line tool to execute HTTP requests on your server. Supports GET, POST, PUT, DELETE, headers, and body data.';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🌐',\n };\n\n constructor() {\n this.registerSubProcessors();\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n async initialize(context: ICliExecutionContext): Promise<void> {}\n\n private registerSubProcessors(): void {\n this.processors = [\n {\n command: 'get',\n description: 'Perform an HTTP GET request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description:\n 'Add custom headers. Accept multiple headers.',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('GET', command, context);\n },\n },\n {\n command: 'post',\n description: 'Perform an HTTP POST request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Add custom headers',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string',\n description: 'Request body',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('POST', command, context);\n },\n },\n {\n command: 'put',\n description: 'Perform an HTTP PUT request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Add custom headers',\n required: false,\n },\n {\n name: 'data',\n aliases: ['d'],\n type: 'string',\n description: 'Request body',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('PUT', command, context);\n },\n },\n {\n command: 'delete',\n description: 'Perform an HTTP DELETE request',\n valueRequired: true,\n parameters: [\n {\n name: 'header',\n aliases: ['H'],\n type: 'array',\n description: 'Add custom headers',\n required: false,\n },\n {\n name: 'proxy',\n type: 'boolean',\n description: 'Use procy',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n await this.executeRequest('DELETE', command, context);\n },\n },\n ];\n }\n\n private async executeRequest(\n method: string,\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const url = command.value;\n const headers = command.args['header'] || command.args['H'] || [];\n const data = command.args['data'] || command.args['d'];\n const verbose = !!command.args['verbose'];\n const useProxy = !!command.args['proxy'];\n\n if (!url) {\n context.writer.writeError('URL is required.');\n return;\n }\n\n // Prepare headers\n const headersObject = headers.reduce(\n (acc: Record<string, string>, header: string) => {\n const [key, value] = header.split(':').map((str) => str.trim());\n if (key && value) acc[key] = value;\n return acc;\n },\n {},\n );\n\n // Prepare request options\n const options: RequestInit = {\n method,\n headers: headersObject,\n body: data ? JSON.stringify(JSON.parse(data)) : undefined,\n };\n\n try {\n const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;\n\n const response = await fetch(requestUrl, options);\n const text = await response.text();\n\n context.writer.writeSuccess('Request successful:');\n if (verbose) {\n context.writer.writeln(`Status: ${response.status}`);\n context.writer.writeln(\n `Headers: ${JSON.stringify(response.headers, null, 2)}`,\n );\n }\n context.writer.writeln(text);\n\n context.process.output(text);\n } catch (error) {\n context.writer.writeError(`Request failed: ${error}`);\n context.process.exit(-1);\n } finally {\n context.writer.writeln();\n context.writer.writeInfo('Equivalent curl command:');\n context.writer.writeln(\n this.generateCurlCommand(url, method, headers, data),\n );\n }\n }\n\n private generateCurlCommand(\n url: string,\n method: string,\n headers: string[],\n data?: string,\n ): string {\n const headerString = headers.map((h) => `-H \"${h}\"`).join(' ');\n const dataString = data ? `-d '${data}'` : '';\n return `curl -X ${method} ${headerString} ${dataString} \"${url}\"`;\n }\n\n private rewriteUrlToProxy(originalUrl: string): string {\n const regex = /^(https?):\\/\\/([^\\/]+)(\\/.*)?$/i;\n\n const match = originalUrl.match(regex);\n\n if (!match) {\n throw new Error('Invalid URL provided');\n }\n\n const scheme = match[1]; // 'http' or 'https'\n const domain = match[2]; // domain.com\n const path = match[3] || '/'; // /path or '/'\n\n return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln(this.description!);\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(` ${writer.wrapInColor('curl <method> <url> [options]', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln('⚙️ Options:');\n writer.writeln(` ${writer.wrapInColor('-H, --header', CliForegroundColor.Yellow)} Add custom headers`);\n writer.writeln(` ${writer.wrapInColor('-d, --data', CliForegroundColor.Yellow)} Add request body (JSON)`);\n writer.writeln(` ${writer.wrapInColor('--verbose', CliForegroundColor.Yellow)} Print detailed response (status, headers)`);\n writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Yellow)} Route request through proxy`);\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(` curl get https://api.example.com/users`);\n writer.writeln(` curl post https://api.example.com/users -d='{\"name\":\"John\"}' -H=\"Content-Type: application/json\"`);\n writer.writeln(` curl delete https://api.example.com/users/1 --proxy`);\n writer.writeln();\n writer.writeWarning('⚠️ The server must allow CORS for this tool to work');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliCurlCommandProcessor } from './processors/cli-curl-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliCurlCommandProcessor)],\n})\nexport class CliCurlModule {}\n","/*\n * Public API Surface of string\n */\n\nexport * from './lib/cli-curl.module';\n\nexport * from './lib/processors/cli-curl-command-processor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const LIBRARY_VERSION = "0.0.2";
1
+ export declare const LIBRARY_VERSION = "0.0.3";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-curl",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Provide utility functions for the library curl",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
package/umd/index.js CHANGED
@@ -34,7 +34,7 @@
34
34
  };
35
35
 
36
36
  // Automatically generated during build
37
- const LIBRARY_VERSION = '0.0.2';
37
+ const LIBRARY_VERSION = '0.0.3';
38
38
 
39
39
  let CliCurlCommandProcessor = class CliCurlCommandProcessor {
40
40
  constructor() {
@@ -224,21 +224,24 @@
224
224
  return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
225
225
  }
226
226
  writeDescription(context) {
227
- context.writer.writeln(this.description);
228
- context.writer.writeln();
229
- context.writer.writeln('Usage:');
230
- context.writer.writeln(' curl <method> <url> [options]');
231
- context.writer.writeln();
232
- context.writer.writeln('Options:');
233
- context.writer.writeln(' -H, --header Add custom headers (e.g., -H="Authorization: Bearer <token>")');
234
- context.writer.writeln(' -d, --data Add request body');
235
- context.writer.writeln(' --verbose Print detailed response');
236
- context.writer.writeln();
237
- context.writer.writeln('Examples:');
238
- context.writer.writeln(' curl get https://api.example.com/users');
239
- context.writer.writeln(' curl post https://api.example.com/users -d=\'{"name":"John"}\' -H="Content-Type: application/json"');
240
- context.writer.writeln();
241
- context.writer.writeWarning('Note: The server must allow CORS for this tool to work.');
227
+ const { writer } = context;
228
+ writer.writeln(this.description);
229
+ writer.writeln();
230
+ writer.writeln('📋 Usage:');
231
+ writer.writeln(` ${writer.wrapInColor('curl <method> <url> [options]', cliCore.CliForegroundColor.Cyan)}`);
232
+ writer.writeln();
233
+ writer.writeln('⚙️ Options:');
234
+ writer.writeln(` ${writer.wrapInColor('-H, --header', cliCore.CliForegroundColor.Yellow)} Add custom headers`);
235
+ writer.writeln(` ${writer.wrapInColor('-d, --data', cliCore.CliForegroundColor.Yellow)} Add request body (JSON)`);
236
+ writer.writeln(` ${writer.wrapInColor('--verbose', cliCore.CliForegroundColor.Yellow)} Print detailed response (status, headers)`);
237
+ writer.writeln(` ${writer.wrapInColor('--proxy', cliCore.CliForegroundColor.Yellow)} Route request through proxy`);
238
+ writer.writeln();
239
+ writer.writeln('📝 Examples:');
240
+ writer.writeln(` curl get https://api.example.com/users`);
241
+ writer.writeln(` curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json"`);
242
+ writer.writeln(` curl delete https://api.example.com/users/1 --proxy`);
243
+ writer.writeln();
244
+ writer.writeWarning('⚠️ The server must allow CORS for this tool to work');
242
245
  }
243
246
  };
244
247
  CliCurlCommandProcessor = __decorate([