@qodalis/cli-curl 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/esm2022/lib/processors/cli-curl-command-processor.mjs +56 -19
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/qodalis-cli-curl.mjs +56 -19
- package/fesm2022/qodalis-cli-curl.mjs.map +1 -1
- package/lib/processors/cli-curl-command-processor.d.ts +2 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.js +56 -19
package/README.md
CHANGED
|
@@ -13,6 +13,9 @@ packages add curl #short version
|
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
15
|
curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json"
|
|
16
|
+
|
|
17
|
+
#Using proxy
|
|
18
|
+
curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json" --proxy
|
|
16
19
|
```
|
|
17
20
|
|
|
18
21
|
This command downloads and registers the extension for use within the CLI environment.
|
|
@@ -17,23 +17,6 @@ export class CliCurlCommandProcessor {
|
|
|
17
17
|
async processCommand(command, context) {
|
|
18
18
|
context.executor.showHelp(command, context);
|
|
19
19
|
}
|
|
20
|
-
writeDescription(context) {
|
|
21
|
-
context.writer.writeln(this.description);
|
|
22
|
-
context.writer.writeln();
|
|
23
|
-
context.writer.writeln('Usage:');
|
|
24
|
-
context.writer.writeln(' curl <method> <url> [options]');
|
|
25
|
-
context.writer.writeln();
|
|
26
|
-
context.writer.writeln('Options:');
|
|
27
|
-
context.writer.writeln(' -H, --header Add custom headers (e.g., -H="Authorization: Bearer <token>")');
|
|
28
|
-
context.writer.writeln(' -d, --data Add request body');
|
|
29
|
-
context.writer.writeln(' --verbose Print detailed response');
|
|
30
|
-
context.writer.writeln();
|
|
31
|
-
context.writer.writeln('Examples:');
|
|
32
|
-
context.writer.writeln(' curl get https://api.example.com/users');
|
|
33
|
-
context.writer.writeln(' curl post https://api.example.com/users -d=\'{"name":"John"}\' -H="Content-Type: application/json"');
|
|
34
|
-
context.writer.writeln();
|
|
35
|
-
context.writer.writeWarning('Note: The server must allow CORS for this tool to work.');
|
|
36
|
-
}
|
|
37
20
|
async initialize(context) { }
|
|
38
21
|
registerSubProcessors() {
|
|
39
22
|
this.processors = [
|
|
@@ -49,6 +32,12 @@ export class CliCurlCommandProcessor {
|
|
|
49
32
|
description: 'Add custom headers. Accept multiple headers.',
|
|
50
33
|
required: false,
|
|
51
34
|
},
|
|
35
|
+
{
|
|
36
|
+
name: 'proxy',
|
|
37
|
+
type: 'boolean',
|
|
38
|
+
description: 'Use procy',
|
|
39
|
+
required: false,
|
|
40
|
+
},
|
|
52
41
|
],
|
|
53
42
|
processCommand: async (command, context) => {
|
|
54
43
|
await this.executeRequest('GET', command, context);
|
|
@@ -73,6 +62,12 @@ export class CliCurlCommandProcessor {
|
|
|
73
62
|
description: 'Request body',
|
|
74
63
|
required: false,
|
|
75
64
|
},
|
|
65
|
+
{
|
|
66
|
+
name: 'proxy',
|
|
67
|
+
type: 'boolean',
|
|
68
|
+
description: 'Use procy',
|
|
69
|
+
required: false,
|
|
70
|
+
},
|
|
76
71
|
],
|
|
77
72
|
processCommand: async (command, context) => {
|
|
78
73
|
await this.executeRequest('POST', command, context);
|
|
@@ -97,6 +92,12 @@ export class CliCurlCommandProcessor {
|
|
|
97
92
|
description: 'Request body',
|
|
98
93
|
required: false,
|
|
99
94
|
},
|
|
95
|
+
{
|
|
96
|
+
name: 'proxy',
|
|
97
|
+
type: 'boolean',
|
|
98
|
+
description: 'Use procy',
|
|
99
|
+
required: false,
|
|
100
|
+
},
|
|
100
101
|
],
|
|
101
102
|
processCommand: async (command, context) => {
|
|
102
103
|
await this.executeRequest('PUT', command, context);
|
|
@@ -114,6 +115,12 @@ export class CliCurlCommandProcessor {
|
|
|
114
115
|
description: 'Add custom headers',
|
|
115
116
|
required: false,
|
|
116
117
|
},
|
|
118
|
+
{
|
|
119
|
+
name: 'proxy',
|
|
120
|
+
type: 'boolean',
|
|
121
|
+
description: 'Use procy',
|
|
122
|
+
required: false,
|
|
123
|
+
},
|
|
117
124
|
],
|
|
118
125
|
processCommand: async (command, context) => {
|
|
119
126
|
await this.executeRequest('DELETE', command, context);
|
|
@@ -126,6 +133,7 @@ export class CliCurlCommandProcessor {
|
|
|
126
133
|
const headers = command.args['header'] || command.args['H'] || [];
|
|
127
134
|
const data = command.args['data'] || command.args['d'];
|
|
128
135
|
const verbose = !!command.args['verbose'];
|
|
136
|
+
const useProxy = !!command.args['proxy'];
|
|
129
137
|
if (!url) {
|
|
130
138
|
context.writer.writeError('URL is required.');
|
|
131
139
|
return;
|
|
@@ -144,7 +152,8 @@ export class CliCurlCommandProcessor {
|
|
|
144
152
|
body: data ? JSON.stringify(JSON.parse(data)) : undefined,
|
|
145
153
|
};
|
|
146
154
|
try {
|
|
147
|
-
const
|
|
155
|
+
const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;
|
|
156
|
+
const response = await fetch(requestUrl, options);
|
|
148
157
|
const text = await response.text();
|
|
149
158
|
context.writer.writeSuccess('Request successful:');
|
|
150
159
|
if (verbose) {
|
|
@@ -169,10 +178,38 @@ export class CliCurlCommandProcessor {
|
|
|
169
178
|
const dataString = data ? `-d '${data}'` : '';
|
|
170
179
|
return `curl -X ${method} ${headerString} ${dataString} "${url}"`;
|
|
171
180
|
}
|
|
181
|
+
rewriteUrlToProxy(originalUrl) {
|
|
182
|
+
const regex = /^(https?):\/\/([^\/]+)(\/.*)?$/i;
|
|
183
|
+
const match = originalUrl.match(regex);
|
|
184
|
+
if (!match) {
|
|
185
|
+
throw new Error('Invalid URL provided');
|
|
186
|
+
}
|
|
187
|
+
const scheme = match[1]; // 'http' or 'https'
|
|
188
|
+
const domain = match[2]; // domain.com
|
|
189
|
+
const path = match[3] || '/'; // /path or '/'
|
|
190
|
+
return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
|
|
191
|
+
}
|
|
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.');
|
|
208
|
+
}
|
|
172
209
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
173
210
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor }); }
|
|
174
211
|
}
|
|
175
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, decorators: [{
|
|
176
213
|
type: Injectable
|
|
177
214
|
}], ctorParameters: function () { return []; } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWN1cmwtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXJsL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktY3VybC1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHSCxvQkFBb0IsR0FHdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUc3QyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JoQztRQWZBLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFFakIsZ0JBQVcsR0FDUCx1SEFBdUgsQ0FBQztRQUU1SCxXQUFNLEdBQUcsb0JBQW9CLENBQUM7UUFFOUIsWUFBTyxHQUFHLGVBQWUsQ0FBQztRQUUxQixlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUVyRCxhQUFRLEdBQXNDO1lBQzFDLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUdFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTZCO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFZLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGlDQUFp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QUFVLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDdEUsQ0FBQzsrR0FqTlEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENsaVByb2Nlc3NDb21tYW5kLFxuICAgIENsaVByb2Nlc3Nvck1ldGFkYXRhLFxuICAgIERlZmF1bHRMaWJyYXJ5QXV0aG9yLFxuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlFeGVjdXRpb25Db250ZXh0LFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gfSBmcm9tICcuLi92ZXJzaW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsaUN1cmxDb21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAnY3VybCc7XG5cbiAgICBkZXNjcmlwdGlvbiA9XG4gICAgICAgICdBIGNvbW1hbmQtbGluZSB0b29sIHRvIGV4ZWN1dGUgSFRUUCByZXF1ZXN0cyBvbiB5b3VyIHNlcnZlci4gU3VwcG9ydHMgR0VULCBQT1NULCBQVVQsIERFTEVURSwgaGVhZGVycywgYW5kIGJvZHkgZGF0YS4nO1xuXG4gICAgYXV0aG9yID0gRGVmYXVsdExpYnJhcnlBdXRob3I7XG5cbiAgICB2ZXJzaW9uID0gTElCUkFSWV9WRVJTSU9OO1xuXG4gICAgcHJvY2Vzc29ycz86IElDbGlDb21tYW5kUHJvY2Vzc29yW10gfCB1bmRlZmluZWQgPSBbXTtcblxuICAgIG1ldGFkYXRhPzogQ2xpUHJvY2Vzc29yTWV0YWRhdGEgfCB1bmRlZmluZWQgPSB7XG4gICAgICAgIGljb246ICfwn4yQJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29udGV4dC5leGVjdXRvci5zaG93SGVscChjb21tYW5kLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICB3cml0ZURlc2NyaXB0aW9uKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogdm9pZCB7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4odGhpcy5kZXNjcmlwdGlvbiEpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ1VzYWdlOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIGN1cmwgPG1ldGhvZD4gPHVybD4gW29wdGlvbnNdJyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignT3B0aW9uczonKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICcgIC1ILCAtLWhlYWRlciAgICAgQWRkIGN1c3RvbSBoZWFkZXJzIChlLmcuLCAtSD1cIkF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+XCIpJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICAtZCwgLS1kYXRhICAgICAgIEFkZCByZXF1ZXN0IGJvZHknKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICAtLXZlcmJvc2UgICAgUHJpbnQgZGV0YWlsZWQgcmVzcG9uc2UnKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdFeGFtcGxlczonKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICBjdXJsIGdldCBodHRwczovL2FwaS5leGFtcGxlLmNvbS91c2VycycpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgY3VybCBwb3N0IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIC1kPVxcJ3tcIm5hbWVcIjpcIkpvaG5cIn1cXCcgLUg9XCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cIicsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oKTtcblxuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVdhcm5pbmcoXG4gICAgICAgICAgICAnTm90ZTogVGhlIHNlcnZlciBtdXN0IGFsbG93IENPUlMgZm9yIHRoaXMgdG9vbCB0byB3b3JrLicsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdGlhbGl6ZShjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2dldCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQZXJmb3JtIGFuIEhUVFAgR0VUIHJlcXVlc3QnLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnSCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZGQgY3VzdG9tIGhlYWRlcnMuIEFjY2VwdCBtdWx0aXBsZSBoZWFkZXJzLicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnR0VUJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3Bvc3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIFBPU1QgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BPU1QnLCBjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncHV0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BlcmZvcm0gYW4gSFRUUCBQVVQgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BVVCcsIGNvbW1hbmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIERFTEVURSByZXF1ZXN0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ0gnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBjdXN0b20gaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnREVMRVRFJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdChcbiAgICAgICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gY29tbWFuZC52YWx1ZTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGNvbW1hbmQuYXJnc1snaGVhZGVyJ10gfHwgY29tbWFuZC5hcmdzWydIJ10gfHwgW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjb21tYW5kLmFyZ3NbJ2RhdGEnXSB8fCBjb21tYW5kLmFyZ3NbJ2QnXTtcbiAgICAgICAgY29uc3QgdmVyYm9zZSA9ICEhY29tbWFuZC5hcmdzWyd2ZXJib3NlJ107XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJ1VSTCBpcyByZXF1aXJlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgaGVhZGVyc1xuICAgICAgICBjb25zdCBoZWFkZXJzT2JqZWN0ID0gaGVhZGVycy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBoZWFkZXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGhlYWRlci5zcGxpdCgnOicpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ICYmIHZhbHVlKSBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0IG9wdGlvbnNcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0LFxuICAgICAgICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZGF0YSkpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ1JlcXVlc3Qgc3VjY2Vzc2Z1bDonKTtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihgU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICBgSGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5oZWFkZXJzLCBudWxsLCAyKX1gLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHRleHQpO1xuXG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHRleHQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihgUmVxdWVzdCBmYWlsZWQ6ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUluZm8oJ0VxdWl2YWxlbnQgY3VybCBjb21tYW5kOicpO1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ3VybENvbW1hbmQodXJsLCBtZXRob2QsIGhlYWRlcnMsIGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVDdXJsQ29tbWFuZChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxuICAgICAgICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgICAgICAgZGF0YT86IHN0cmluZyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWFkZXJTdHJpbmcgPSBoZWFkZXJzLm1hcCgoaCkgPT4gYC1IIFwiJHtofVwiYCkuam9pbignICcpO1xuICAgICAgICBjb25zdCBkYXRhU3RyaW5nID0gZGF0YSA/IGAtZCAnJHtkYXRhfSdgIDogJyc7XG4gICAgICAgIHJldHVybiBgY3VybCAtWCAke21ldGhvZH0gJHtoZWFkZXJTdHJpbmd9ICR7ZGF0YVN0cmluZ30gXCIke3VybH1cImA7XG4gICAgfVxufVxuIl19
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWN1cmwtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXJsL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktY3VybC1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFHSCxvQkFBb0IsR0FHdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUc3QyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JoQztRQWZBLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFFakIsZ0JBQVcsR0FDUCx1SEFBdUgsQ0FBQztRQUU1SCxXQUFNLEdBQUcsb0JBQW9CLENBQUM7UUFFOUIsWUFBTyxHQUFHLGVBQWUsQ0FBQztRQUUxQixlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUVyRCxhQUFRLEdBQXNDO1lBQzFDLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQUdFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBNkIsSUFBa0IsQ0FBQztJQUV6RCxxQkFBcUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNkO2dCQUNJLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixVQUFVLEVBQUU7b0JBQ1I7d0JBQ0ksSUFBSSxFQUFFLFFBQVE7d0JBQ2QsT0FBTyxFQUFFLENBQUMs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QXNHLENBQ3pHLENBQUM7UUFDRixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUN2Qix5REFBeUQsQ0FDNUQsQ0FBQztJQUNOLENBQUM7K0dBNVBRLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBDbGlQcm9jZXNzb3JNZXRhZGF0YSxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IHsgTElCUkFSWV9WRVJTSU9OIH0gZnJvbSAnLi4vdmVyc2lvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGlDdXJsQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ2N1cmwnO1xuXG4gICAgZGVzY3JpcHRpb24gPVxuICAgICAgICAnQSBjb21tYW5kLWxpbmUgdG9vbCB0byBleGVjdXRlIEhUVFAgcmVxdWVzdHMgb24geW91ciBzZXJ2ZXIuIFN1cHBvcnRzIEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGhlYWRlcnMsIGFuZCBib2R5IGRhdGEuJztcblxuICAgIGF1dGhvciA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgdmVyc2lvbiA9IExJQlJBUllfVkVSU0lPTjtcblxuICAgIHByb2Nlc3NvcnM/OiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdIHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhIHwgdW5kZWZpbmVkID0ge1xuICAgICAgICBpY29uOiAn8J+MkCcsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3ViUHJvY2Vzc29ycygpO1xuICAgIH1cblxuICAgIGFzeW5jIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnRleHQuZXhlY3V0b3Iuc2hvd0hlbHAoY29tbWFuZCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdGlhbGl6ZShjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2dldCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQZXJmb3JtIGFuIEhUVFAgR0VUIHJlcXVlc3QnLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnSCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZGQgY3VzdG9tIGhlYWRlcnMuIEFjY2VwdCBtdWx0aXBsZSBoZWFkZXJzLicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnR0VUJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3Bvc3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIFBPU1QgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BPU1QnLCBjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncHV0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BlcmZvcm0gYW4gSFRUUCBQVVQgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BVVCcsIGNvbW1hbmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIERFTEVURSByZXF1ZXN0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ0gnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBjdXN0b20gaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnREVMRVRFJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdChcbiAgICAgICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gY29tbWFuZC52YWx1ZTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGNvbW1hbmQuYXJnc1snaGVhZGVyJ10gfHwgY29tbWFuZC5hcmdzWydIJ10gfHwgW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjb21tYW5kLmFyZ3NbJ2RhdGEnXSB8fCBjb21tYW5kLmFyZ3NbJ2QnXTtcbiAgICAgICAgY29uc3QgdmVyYm9zZSA9ICEhY29tbWFuZC5hcmdzWyd2ZXJib3NlJ107XG4gICAgICAgIGNvbnN0IHVzZVByb3h5ID0gISFjb21tYW5kLmFyZ3NbJ3Byb3h5J107XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJ1VSTCBpcyByZXF1aXJlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgaGVhZGVyc1xuICAgICAgICBjb25zdCBoZWFkZXJzT2JqZWN0ID0gaGVhZGVycy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBoZWFkZXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGhlYWRlci5zcGxpdCgnOicpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ICYmIHZhbHVlKSBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0IG9wdGlvbnNcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0LFxuICAgICAgICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZGF0YSkpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gdXNlUHJveHkgPyB0aGlzLnJld3JpdGVVcmxUb1Byb3h5KHVybCkgOiB1cmw7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdFVybCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ1JlcXVlc3Qgc3VjY2Vzc2Z1bDonKTtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihgU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICBgSGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5oZWFkZXJzLCBudWxsLCAyKX1gLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHRleHQpO1xuXG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHRleHQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihgUmVxdWVzdCBmYWlsZWQ6ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUluZm8oJ0VxdWl2YWxlbnQgY3VybCBjb21tYW5kOicpO1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ3VybENvbW1hbmQodXJsLCBtZXRob2QsIGhlYWRlcnMsIGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVDdXJsQ29tbWFuZChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxuICAgICAgICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgICAgICAgZGF0YT86IHN0cmluZyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWFkZXJTdHJpbmcgPSBoZWFkZXJzLm1hcCgoaCkgPT4gYC1IIFwiJHtofVwiYCkuam9pbignICcpO1xuICAgICAgICBjb25zdCBkYXRhU3RyaW5nID0gZGF0YSA/IGAtZCAnJHtkYXRhfSdgIDogJyc7XG4gICAgICAgIHJldHVybiBgY3VybCAtWCAke21ldGhvZH0gJHtoZWFkZXJTdHJpbmd9ICR7ZGF0YVN0cmluZ30gXCIke3VybH1cImA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXdyaXRlVXJsVG9Qcm94eShvcmlnaW5hbFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXihodHRwcz8pOlxcL1xcLyhbXlxcL10rKShcXC8uKik/JC9pO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gb3JpZ2luYWxVcmwubWF0Y2gocmVnZXgpO1xuXG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkwgcHJvdmlkZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjaGVtZSA9IG1hdGNoWzFdOyAvLyAnaHR0cCcgb3IgJ2h0dHBzJ1xuICAgICAgICBjb25zdCBkb21haW4gPSBtYXRjaFsyXTsgLy8gZG9tYWluLmNvbVxuICAgICAgICBjb25zdCBwYXRoID0gbWF0Y2hbM10gfHwgJy8nOyAvLyAvcGF0aCBvciAnLydcblxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vcHJveHkucW9kYWxpcy5jb20vcHJveHkvJHtzY2hlbWV9LyR7ZG9tYWlufSR7cGF0aH1gO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbih0aGlzLmRlc2NyaXB0aW9uISk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignVXNhZ2U6Jyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJyAgY3VybCA8bWV0aG9kPiA8dXJsPiBbb3B0aW9uc10nKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdPcHRpb25zOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgJyAgLUgsIC0taGVhZGVyICAgICBBZGQgY3VzdG9tIGhlYWRlcnMgKGUuZy4sIC1IPVwiQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5cIiknLFxuICAgICAgICApO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIC1kLCAtLWRhdGEgICAgICAgQWRkIHJlcXVlc3QgYm9keScpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIC0tdmVyYm9zZSAgICBQcmludCBkZXRhaWxlZCByZXNwb25zZScpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0V4YW1wbGVzOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIGN1cmwgZ2V0IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzJyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAnICBjdXJsIHBvc3QgaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMgLWQ9XFwne1wibmFtZVwiOlwiSm9oblwifVxcJyAtSD1cIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbigpO1xuXG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlV2FybmluZyhcbiAgICAgICAgICAgICdOb3RlOiBUaGUgc2VydmVyIG11c3QgYWxsb3cgQ09SUyBmb3IgdGhpcyB0b29sIHRvIHdvcmsuJyxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Automatically generated during build
|
|
2
|
-
export const LIBRARY_VERSION = '0.0.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const LIBRARY_VERSION = '0.0.2';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2N1cmwvc3JjL2xpYi92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkdXJpbmcgYnVpbGRcbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnMC4wLjInO1xuICAiXX0=
|
|
@@ -4,7 +4,7 @@ import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
|
|
|
4
4
|
import { DefaultLibraryAuthor } from '@qodalis/cli-core';
|
|
5
5
|
|
|
6
6
|
// Automatically generated during build
|
|
7
|
-
const LIBRARY_VERSION = '0.0.
|
|
7
|
+
const LIBRARY_VERSION = '0.0.2';
|
|
8
8
|
|
|
9
9
|
class CliCurlCommandProcessor {
|
|
10
10
|
constructor() {
|
|
@@ -21,23 +21,6 @@ class CliCurlCommandProcessor {
|
|
|
21
21
|
async processCommand(command, context) {
|
|
22
22
|
context.executor.showHelp(command, context);
|
|
23
23
|
}
|
|
24
|
-
writeDescription(context) {
|
|
25
|
-
context.writer.writeln(this.description);
|
|
26
|
-
context.writer.writeln();
|
|
27
|
-
context.writer.writeln('Usage:');
|
|
28
|
-
context.writer.writeln(' curl <method> <url> [options]');
|
|
29
|
-
context.writer.writeln();
|
|
30
|
-
context.writer.writeln('Options:');
|
|
31
|
-
context.writer.writeln(' -H, --header Add custom headers (e.g., -H="Authorization: Bearer <token>")');
|
|
32
|
-
context.writer.writeln(' -d, --data Add request body');
|
|
33
|
-
context.writer.writeln(' --verbose Print detailed response');
|
|
34
|
-
context.writer.writeln();
|
|
35
|
-
context.writer.writeln('Examples:');
|
|
36
|
-
context.writer.writeln(' curl get https://api.example.com/users');
|
|
37
|
-
context.writer.writeln(' curl post https://api.example.com/users -d=\'{"name":"John"}\' -H="Content-Type: application/json"');
|
|
38
|
-
context.writer.writeln();
|
|
39
|
-
context.writer.writeWarning('Note: The server must allow CORS for this tool to work.');
|
|
40
|
-
}
|
|
41
24
|
async initialize(context) { }
|
|
42
25
|
registerSubProcessors() {
|
|
43
26
|
this.processors = [
|
|
@@ -53,6 +36,12 @@ class CliCurlCommandProcessor {
|
|
|
53
36
|
description: 'Add custom headers. Accept multiple headers.',
|
|
54
37
|
required: false,
|
|
55
38
|
},
|
|
39
|
+
{
|
|
40
|
+
name: 'proxy',
|
|
41
|
+
type: 'boolean',
|
|
42
|
+
description: 'Use procy',
|
|
43
|
+
required: false,
|
|
44
|
+
},
|
|
56
45
|
],
|
|
57
46
|
processCommand: async (command, context) => {
|
|
58
47
|
await this.executeRequest('GET', command, context);
|
|
@@ -77,6 +66,12 @@ class CliCurlCommandProcessor {
|
|
|
77
66
|
description: 'Request body',
|
|
78
67
|
required: false,
|
|
79
68
|
},
|
|
69
|
+
{
|
|
70
|
+
name: 'proxy',
|
|
71
|
+
type: 'boolean',
|
|
72
|
+
description: 'Use procy',
|
|
73
|
+
required: false,
|
|
74
|
+
},
|
|
80
75
|
],
|
|
81
76
|
processCommand: async (command, context) => {
|
|
82
77
|
await this.executeRequest('POST', command, context);
|
|
@@ -101,6 +96,12 @@ class CliCurlCommandProcessor {
|
|
|
101
96
|
description: 'Request body',
|
|
102
97
|
required: false,
|
|
103
98
|
},
|
|
99
|
+
{
|
|
100
|
+
name: 'proxy',
|
|
101
|
+
type: 'boolean',
|
|
102
|
+
description: 'Use procy',
|
|
103
|
+
required: false,
|
|
104
|
+
},
|
|
104
105
|
],
|
|
105
106
|
processCommand: async (command, context) => {
|
|
106
107
|
await this.executeRequest('PUT', command, context);
|
|
@@ -118,6 +119,12 @@ class CliCurlCommandProcessor {
|
|
|
118
119
|
description: 'Add custom headers',
|
|
119
120
|
required: false,
|
|
120
121
|
},
|
|
122
|
+
{
|
|
123
|
+
name: 'proxy',
|
|
124
|
+
type: 'boolean',
|
|
125
|
+
description: 'Use procy',
|
|
126
|
+
required: false,
|
|
127
|
+
},
|
|
121
128
|
],
|
|
122
129
|
processCommand: async (command, context) => {
|
|
123
130
|
await this.executeRequest('DELETE', command, context);
|
|
@@ -130,6 +137,7 @@ class CliCurlCommandProcessor {
|
|
|
130
137
|
const headers = command.args['header'] || command.args['H'] || [];
|
|
131
138
|
const data = command.args['data'] || command.args['d'];
|
|
132
139
|
const verbose = !!command.args['verbose'];
|
|
140
|
+
const useProxy = !!command.args['proxy'];
|
|
133
141
|
if (!url) {
|
|
134
142
|
context.writer.writeError('URL is required.');
|
|
135
143
|
return;
|
|
@@ -148,7 +156,8 @@ class CliCurlCommandProcessor {
|
|
|
148
156
|
body: data ? JSON.stringify(JSON.parse(data)) : undefined,
|
|
149
157
|
};
|
|
150
158
|
try {
|
|
151
|
-
const
|
|
159
|
+
const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;
|
|
160
|
+
const response = await fetch(requestUrl, options);
|
|
152
161
|
const text = await response.text();
|
|
153
162
|
context.writer.writeSuccess('Request successful:');
|
|
154
163
|
if (verbose) {
|
|
@@ -173,6 +182,34 @@ class CliCurlCommandProcessor {
|
|
|
173
182
|
const dataString = data ? `-d '${data}'` : '';
|
|
174
183
|
return `curl -X ${method} ${headerString} ${dataString} "${url}"`;
|
|
175
184
|
}
|
|
185
|
+
rewriteUrlToProxy(originalUrl) {
|
|
186
|
+
const regex = /^(https?):\/\/([^\/]+)(\/.*)?$/i;
|
|
187
|
+
const match = originalUrl.match(regex);
|
|
188
|
+
if (!match) {
|
|
189
|
+
throw new Error('Invalid URL provided');
|
|
190
|
+
}
|
|
191
|
+
const scheme = match[1]; // 'http' or 'https'
|
|
192
|
+
const domain = match[2]; // domain.com
|
|
193
|
+
const path = match[3] || '/'; // /path or '/'
|
|
194
|
+
return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
|
|
195
|
+
}
|
|
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.');
|
|
212
|
+
}
|
|
176
213
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
177
214
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor }); }
|
|
178
215
|
}
|
|
@@ -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.1';\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 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 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 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 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 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 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\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 response = await fetch(url, 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","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.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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"}
|
|
@@ -9,11 +9,12 @@ export declare class CliCurlCommandProcessor implements ICliCommandProcessor {
|
|
|
9
9
|
metadata?: CliProcessorMetadata | undefined;
|
|
10
10
|
constructor();
|
|
11
11
|
processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
|
|
12
|
-
writeDescription(context: ICliExecutionContext): void;
|
|
13
12
|
initialize(context: ICliExecutionContext): Promise<void>;
|
|
14
13
|
private registerSubProcessors;
|
|
15
14
|
private executeRequest;
|
|
16
15
|
private generateCurlCommand;
|
|
16
|
+
private rewriteUrlToProxy;
|
|
17
|
+
writeDescription(context: ICliExecutionContext): void;
|
|
17
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<CliCurlCommandProcessor, never>;
|
|
18
19
|
static ɵprov: i0.ɵɵInjectableDeclaration<CliCurlCommandProcessor>;
|
|
19
20
|
}
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIBRARY_VERSION = "0.0.
|
|
1
|
+
export declare const LIBRARY_VERSION = "0.0.2";
|
package/package.json
CHANGED
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.
|
|
37
|
+
const LIBRARY_VERSION = '0.0.2';
|
|
38
38
|
|
|
39
39
|
let CliCurlCommandProcessor = class CliCurlCommandProcessor {
|
|
40
40
|
constructor() {
|
|
@@ -51,23 +51,6 @@
|
|
|
51
51
|
async processCommand(command, context) {
|
|
52
52
|
context.executor.showHelp(command, context);
|
|
53
53
|
}
|
|
54
|
-
writeDescription(context) {
|
|
55
|
-
context.writer.writeln(this.description);
|
|
56
|
-
context.writer.writeln();
|
|
57
|
-
context.writer.writeln('Usage:');
|
|
58
|
-
context.writer.writeln(' curl <method> <url> [options]');
|
|
59
|
-
context.writer.writeln();
|
|
60
|
-
context.writer.writeln('Options:');
|
|
61
|
-
context.writer.writeln(' -H, --header Add custom headers (e.g., -H="Authorization: Bearer <token>")');
|
|
62
|
-
context.writer.writeln(' -d, --data Add request body');
|
|
63
|
-
context.writer.writeln(' --verbose Print detailed response');
|
|
64
|
-
context.writer.writeln();
|
|
65
|
-
context.writer.writeln('Examples:');
|
|
66
|
-
context.writer.writeln(' curl get https://api.example.com/users');
|
|
67
|
-
context.writer.writeln(' curl post https://api.example.com/users -d=\'{"name":"John"}\' -H="Content-Type: application/json"');
|
|
68
|
-
context.writer.writeln();
|
|
69
|
-
context.writer.writeWarning('Note: The server must allow CORS for this tool to work.');
|
|
70
|
-
}
|
|
71
54
|
async initialize(context) { }
|
|
72
55
|
registerSubProcessors() {
|
|
73
56
|
this.processors = [
|
|
@@ -83,6 +66,12 @@
|
|
|
83
66
|
description: 'Add custom headers. Accept multiple headers.',
|
|
84
67
|
required: false,
|
|
85
68
|
},
|
|
69
|
+
{
|
|
70
|
+
name: 'proxy',
|
|
71
|
+
type: 'boolean',
|
|
72
|
+
description: 'Use procy',
|
|
73
|
+
required: false,
|
|
74
|
+
},
|
|
86
75
|
],
|
|
87
76
|
processCommand: async (command, context) => {
|
|
88
77
|
await this.executeRequest('GET', command, context);
|
|
@@ -107,6 +96,12 @@
|
|
|
107
96
|
description: 'Request body',
|
|
108
97
|
required: false,
|
|
109
98
|
},
|
|
99
|
+
{
|
|
100
|
+
name: 'proxy',
|
|
101
|
+
type: 'boolean',
|
|
102
|
+
description: 'Use procy',
|
|
103
|
+
required: false,
|
|
104
|
+
},
|
|
110
105
|
],
|
|
111
106
|
processCommand: async (command, context) => {
|
|
112
107
|
await this.executeRequest('POST', command, context);
|
|
@@ -131,6 +126,12 @@
|
|
|
131
126
|
description: 'Request body',
|
|
132
127
|
required: false,
|
|
133
128
|
},
|
|
129
|
+
{
|
|
130
|
+
name: 'proxy',
|
|
131
|
+
type: 'boolean',
|
|
132
|
+
description: 'Use procy',
|
|
133
|
+
required: false,
|
|
134
|
+
},
|
|
134
135
|
],
|
|
135
136
|
processCommand: async (command, context) => {
|
|
136
137
|
await this.executeRequest('PUT', command, context);
|
|
@@ -148,6 +149,12 @@
|
|
|
148
149
|
description: 'Add custom headers',
|
|
149
150
|
required: false,
|
|
150
151
|
},
|
|
152
|
+
{
|
|
153
|
+
name: 'proxy',
|
|
154
|
+
type: 'boolean',
|
|
155
|
+
description: 'Use procy',
|
|
156
|
+
required: false,
|
|
157
|
+
},
|
|
151
158
|
],
|
|
152
159
|
processCommand: async (command, context) => {
|
|
153
160
|
await this.executeRequest('DELETE', command, context);
|
|
@@ -160,6 +167,7 @@
|
|
|
160
167
|
const headers = command.args['header'] || command.args['H'] || [];
|
|
161
168
|
const data = command.args['data'] || command.args['d'];
|
|
162
169
|
const verbose = !!command.args['verbose'];
|
|
170
|
+
const useProxy = !!command.args['proxy'];
|
|
163
171
|
if (!url) {
|
|
164
172
|
context.writer.writeError('URL is required.');
|
|
165
173
|
return;
|
|
@@ -178,7 +186,8 @@
|
|
|
178
186
|
body: data ? JSON.stringify(JSON.parse(data)) : undefined,
|
|
179
187
|
};
|
|
180
188
|
try {
|
|
181
|
-
const
|
|
189
|
+
const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;
|
|
190
|
+
const response = await fetch(requestUrl, options);
|
|
182
191
|
const text = await response.text();
|
|
183
192
|
context.writer.writeSuccess('Request successful:');
|
|
184
193
|
if (verbose) {
|
|
@@ -203,6 +212,34 @@
|
|
|
203
212
|
const dataString = data ? `-d '${data}'` : '';
|
|
204
213
|
return `curl -X ${method} ${headerString} ${dataString} "${url}"`;
|
|
205
214
|
}
|
|
215
|
+
rewriteUrlToProxy(originalUrl) {
|
|
216
|
+
const regex = /^(https?):\/\/([^\/]+)(\/.*)?$/i;
|
|
217
|
+
const match = originalUrl.match(regex);
|
|
218
|
+
if (!match) {
|
|
219
|
+
throw new Error('Invalid URL provided');
|
|
220
|
+
}
|
|
221
|
+
const scheme = match[1]; // 'http' or 'https'
|
|
222
|
+
const domain = match[2]; // domain.com
|
|
223
|
+
const path = match[3] || '/'; // /path or '/'
|
|
224
|
+
return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
|
|
225
|
+
}
|
|
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.');
|
|
242
|
+
}
|
|
206
243
|
};
|
|
207
244
|
CliCurlCommandProcessor = __decorate([
|
|
208
245
|
core.Injectable()
|