@qodalis/cli-curl 0.0.4 → 2.0.0-beta.1

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 DELETED
@@ -1,21 +0,0 @@
1
- # Cli extension
2
-
3
- The `@qodalis/cli-curl` package is a CLI extension designed to execute HTTP requests on your server. Supports GET, POST, PUT, DELETE, headers, and body data.
4
-
5
- # Installation
6
-
7
- ```bash
8
- packages add @qodalis/cli-curl
9
- packages add curl #short version
10
- ```
11
-
12
- # Usage
13
-
14
- ```bash
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
19
- ```
20
-
21
- This command downloads and registers the extension for use within the CLI environment.
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
3
- import { CliCurlCommandProcessor } from './processors/cli-curl-command-processor';
4
- import * as i0 from "@angular/core";
5
- export class CliCurlModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule, providers: [resolveCommandProcessorProvider(CliCurlCommandProcessor)] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [],
14
- imports: [],
15
- exports: [],
16
- providers: [resolveCommandProcessorProvider(CliCurlCommandProcessor)],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWN1cmwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY3VybC9zcmMvbGliL2NsaS1jdXJsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVFsRixNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWE7Z0hBQWIsYUFBYSxhQUZYLENBQUMsK0JBQStCLENBQUMsdUJBQXVCLENBQUMsQ0FBQzs7NEZBRTVELGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLENBQUM7aUJBQ3hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlc29sdmVDb21tYW5kUHJvY2Vzc29yUHJvdmlkZXIgfSBmcm9tICdAcW9kYWxpcy9hbmd1bGFyLWNsaSc7XG5pbXBvcnQgeyBDbGlDdXJsQ29tbWFuZFByb2Nlc3NvciB9IGZyb20gJy4vcHJvY2Vzc29ycy9jbGktY3VybC1jb21tYW5kLXByb2Nlc3Nvcic7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBpbXBvcnRzOiBbXSxcbiAgICBleHBvcnRzOiBbXSxcbiAgICBwcm92aWRlcnM6IFtyZXNvbHZlQ29tbWFuZFByb2Nlc3NvclByb3ZpZGVyKENsaUN1cmxDb21tYW5kUHJvY2Vzc29yKV0sXG59KVxuZXhwb3J0IGNsYXNzIENsaUN1cmxNb2R1bGUge31cbiJdfQ==
@@ -1,220 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { CliForegroundColor, DefaultLibraryAuthor, } from '@qodalis/cli-core';
3
- import { LIBRARY_VERSION } from '../version';
4
- import * as i0 from "@angular/core";
5
- export class CliCurlCommandProcessor {
6
- constructor() {
7
- this.command = 'curl';
8
- this.description = 'A command-line tool to execute HTTP requests on your server. Supports GET, POST, PUT, DELETE, headers, and body data.';
9
- this.author = DefaultLibraryAuthor;
10
- this.version = LIBRARY_VERSION;
11
- this.processors = [];
12
- this.metadata = {
13
- icon: '🌐',
14
- requiredCoreVersion: '0.0.16',
15
- requiredCliVersion: '1.0.37',
16
- };
17
- this.registerSubProcessors();
18
- }
19
- async processCommand(command, context) {
20
- context.executor.showHelp(command, context);
21
- }
22
- async initialize(context) { }
23
- registerSubProcessors() {
24
- this.processors = [
25
- {
26
- command: 'get',
27
- description: 'Perform an HTTP GET request',
28
- valueRequired: true,
29
- parameters: [
30
- {
31
- name: 'header',
32
- aliases: ['H'],
33
- type: 'array',
34
- description: 'Add custom headers. Accept multiple headers.',
35
- required: false,
36
- },
37
- {
38
- name: 'proxy',
39
- type: 'boolean',
40
- description: 'Use procy',
41
- required: false,
42
- },
43
- ],
44
- processCommand: async (command, context) => {
45
- await this.executeRequest('GET', command, context);
46
- },
47
- },
48
- {
49
- command: 'post',
50
- description: 'Perform an HTTP POST request',
51
- valueRequired: true,
52
- parameters: [
53
- {
54
- name: 'header',
55
- aliases: ['H'],
56
- type: 'array',
57
- description: 'Add custom headers',
58
- required: false,
59
- },
60
- {
61
- name: 'data',
62
- aliases: ['d'],
63
- type: 'string',
64
- description: 'Request body',
65
- required: false,
66
- },
67
- {
68
- name: 'proxy',
69
- type: 'boolean',
70
- description: 'Use procy',
71
- required: false,
72
- },
73
- ],
74
- processCommand: async (command, context) => {
75
- await this.executeRequest('POST', command, context);
76
- },
77
- },
78
- {
79
- command: 'put',
80
- description: 'Perform an HTTP PUT request',
81
- valueRequired: true,
82
- parameters: [
83
- {
84
- name: 'header',
85
- aliases: ['H'],
86
- type: 'array',
87
- description: 'Add custom headers',
88
- required: false,
89
- },
90
- {
91
- name: 'data',
92
- aliases: ['d'],
93
- type: 'string',
94
- description: 'Request body',
95
- required: false,
96
- },
97
- {
98
- name: 'proxy',
99
- type: 'boolean',
100
- description: 'Use procy',
101
- required: false,
102
- },
103
- ],
104
- processCommand: async (command, context) => {
105
- await this.executeRequest('PUT', command, context);
106
- },
107
- },
108
- {
109
- command: 'delete',
110
- description: 'Perform an HTTP DELETE request',
111
- valueRequired: true,
112
- parameters: [
113
- {
114
- name: 'header',
115
- aliases: ['H'],
116
- type: 'array',
117
- description: 'Add custom headers',
118
- required: false,
119
- },
120
- {
121
- name: 'proxy',
122
- type: 'boolean',
123
- description: 'Use procy',
124
- required: false,
125
- },
126
- ],
127
- processCommand: async (command, context) => {
128
- await this.executeRequest('DELETE', command, context);
129
- },
130
- },
131
- ];
132
- }
133
- async executeRequest(method, command, context) {
134
- const url = command.value;
135
- const headers = command.args['header'] || command.args['H'] || [];
136
- const data = command.args['data'] || command.args['d'];
137
- const verbose = !!command.args['verbose'];
138
- const useProxy = !!command.args['proxy'];
139
- if (!url) {
140
- context.writer.writeError('URL is required.');
141
- return;
142
- }
143
- // Prepare headers
144
- const headersObject = headers.reduce((acc, header) => {
145
- const [key, value] = header.split(':').map((str) => str.trim());
146
- if (key && value)
147
- acc[key] = value;
148
- return acc;
149
- }, {});
150
- // Prepare request options
151
- const options = {
152
- method,
153
- headers: headersObject,
154
- body: data ? JSON.stringify(JSON.parse(data)) : undefined,
155
- };
156
- try {
157
- const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;
158
- const response = await fetch(requestUrl, options);
159
- const text = await response.text();
160
- context.writer.writeSuccess('Request successful:');
161
- if (verbose) {
162
- context.writer.writeln(`Status: ${response.status}`);
163
- context.writer.writeln(`Headers: ${JSON.stringify(response.headers, null, 2)}`);
164
- }
165
- context.writer.writeln(text);
166
- context.process.output(text);
167
- }
168
- catch (error) {
169
- context.writer.writeError(`Request failed: ${error}`);
170
- context.process.exit(-1);
171
- }
172
- finally {
173
- context.writer.writeln();
174
- context.writer.writeInfo('Equivalent curl command:');
175
- context.writer.writeln(this.generateCurlCommand(url, method, headers, data));
176
- }
177
- }
178
- generateCurlCommand(url, method, headers, data) {
179
- const headerString = headers.map((h) => `-H "${h}"`).join(' ');
180
- const dataString = data ? `-d '${data}'` : '';
181
- return `curl -X ${method} ${headerString} ${dataString} "${url}"`;
182
- }
183
- rewriteUrlToProxy(originalUrl) {
184
- const regex = /^(https?):\/\/([^\/]+)(\/.*)?$/i;
185
- const match = originalUrl.match(regex);
186
- if (!match) {
187
- throw new Error('Invalid URL provided');
188
- }
189
- const scheme = match[1]; // 'http' or 'https'
190
- const domain = match[2]; // domain.com
191
- const path = match[3] || '/'; // /path or '/'
192
- return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
193
- }
194
- writeDescription(context) {
195
- const { writer } = context;
196
- writer.writeln(this.description);
197
- writer.writeln();
198
- writer.writeln('📋 Usage:');
199
- writer.writeln(` ${writer.wrapInColor('curl <method> <url> [options]', CliForegroundColor.Cyan)}`);
200
- writer.writeln();
201
- writer.writeln('⚙️ Options:');
202
- writer.writeln(` ${writer.wrapInColor('-H, --header', CliForegroundColor.Yellow)} Add custom headers`);
203
- writer.writeln(` ${writer.wrapInColor('-d, --data', CliForegroundColor.Yellow)} Add request body (JSON)`);
204
- writer.writeln(` ${writer.wrapInColor('--verbose', CliForegroundColor.Yellow)} Print detailed response (status, headers)`);
205
- writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Yellow)} Route request through proxy`);
206
- writer.writeln();
207
- writer.writeln('📝 Examples:');
208
- writer.writeln(` curl get https://api.example.com/users`);
209
- writer.writeln(` curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json"`);
210
- writer.writeln(` curl delete https://api.example.com/users/1 --proxy`);
211
- writer.writeln();
212
- writer.writeWarning('⚠️ The server must allow CORS for this tool to work');
213
- }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
215
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor }); }
216
- }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, decorators: [{
218
- type: Injectable
219
- }], ctorParameters: function () { return []; } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWN1cmwtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXJsL3NyYy9saWIvcHJvY2Vzc29ycy9jbGktY3VybC1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFHbEIsb0JBQW9CLEdBR3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLHVCQUF1QjtJQWtCaEM7UUFqQkEsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUVqQixnQkFBVyxHQUNQLHVIQUF1SCxDQUFDO1FBRTVILFdBQU0sR0FBRyxvQkFBb0IsQ0FBQztRQUU5QixZQUFPLEdBQUcsZUFBZSxDQUFDO1FBRTFCLGVBQVUsR0FBd0MsRUFBRSxDQUFDO1FBRXJELGFBQVEsR0FBc0M7WUFDMUMsSUFBSSxFQUFFLElBQUk7WUFDVixtQkFBbUIsRUFBRSxRQUFRO1lBQzdCLGtCQUFrQixFQUFFLFFBQVE7U0FDL0IsQ0FBQztRQUdFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBNkIsSUFBa0IsQ0FBQztJQUV6RCxxQkFBcUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNkO2dCQUNJLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLGFBQWEsRUFBRSxJQUFJO2dCQUNu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QUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUNuSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDckgsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsb0dBQW9HLENBQUMsQ0FBQztRQUNySCxNQUFNLENBQUMsT0FBTyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNoRixDQUFDOytHQTFQUSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaVByb2Nlc3NDb21tYW5kLFxuICAgIENsaVByb2Nlc3Nvck1ldGFkYXRhLFxuICAgIERlZmF1bHRMaWJyYXJ5QXV0aG9yLFxuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlFeGVjdXRpb25Db250ZXh0LFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gfSBmcm9tICcuLi92ZXJzaW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsaUN1cmxDb21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAnY3VybCc7XG5cbiAgICBkZXNjcmlwdGlvbiA9XG4gICAgICAgICdBIGNvbW1hbmQtbGluZSB0b29sIHRvIGV4ZWN1dGUgSFRUUCByZXF1ZXN0cyBvbiB5b3VyIHNlcnZlci4gU3VwcG9ydHMgR0VULCBQT1NULCBQVVQsIERFTEVURSwgaGVhZGVycywgYW5kIGJvZHkgZGF0YS4nO1xuXG4gICAgYXV0aG9yID0gRGVmYXVsdExpYnJhcnlBdXRob3I7XG5cbiAgICB2ZXJzaW9uID0gTElCUkFSWV9WRVJTSU9OO1xuXG4gICAgcHJvY2Vzc29ycz86IElDbGlDb21tYW5kUHJvY2Vzc29yW10gfCB1bmRlZmluZWQgPSBbXTtcblxuICAgIG1ldGFkYXRhPzogQ2xpUHJvY2Vzc29yTWV0YWRhdGEgfCB1bmRlZmluZWQgPSB7XG4gICAgICAgIGljb246ICfwn4yQJyxcbiAgICAgICAgcmVxdWlyZWRDb3JlVmVyc2lvbjogJzAuMC4xNicsXG4gICAgICAgIHJlcXVpcmVkQ2xpVmVyc2lvbjogJzEuMC4zNycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3ViUHJvY2Vzc29ycygpO1xuICAgIH1cblxuICAgIGFzeW5jIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnRleHQuZXhlY3V0b3Iuc2hvd0hlbHAoY29tbWFuZCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdGlhbGl6ZShjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJQcm9jZXNzb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2dldCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQZXJmb3JtIGFuIEhUVFAgR0VUIHJlcXVlc3QnLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnSCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZGQgY3VzdG9tIGhlYWRlcnMuIEFjY2VwdCBtdWx0aXBsZSBoZWFkZXJzLicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnR0VUJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3Bvc3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIFBPU1QgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BPU1QnLCBjb21tYW5kLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncHV0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BlcmZvcm0gYW4gSFRUUCBQVVQgcmVxdWVzdCcsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdoZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBZGQgY3VzdG9tIGhlYWRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXF1ZXN0IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJveHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2UgcHJvY3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChjb21tYW5kLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QoJ1BVVCcsIGNvbW1hbmQsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyZm9ybSBhbiBIVFRQIERFTEVURSByZXF1ZXN0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ0gnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0FkZCBjdXN0b20gaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcm94eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZSBwcm9jeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdCgnREVMRVRFJywgY29tbWFuZCwgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGVjdXRlUmVxdWVzdChcbiAgICAgICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gY29tbWFuZC52YWx1ZTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IGNvbW1hbmQuYXJnc1snaGVhZGVyJ10gfHwgY29tbWFuZC5hcmdzWydIJ10gfHwgW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjb21tYW5kLmFyZ3NbJ2RhdGEnXSB8fCBjb21tYW5kLmFyZ3NbJ2QnXTtcbiAgICAgICAgY29uc3QgdmVyYm9zZSA9ICEhY29tbWFuZC5hcmdzWyd2ZXJib3NlJ107XG4gICAgICAgIGNvbnN0IHVzZVByb3h5ID0gISFjb21tYW5kLmFyZ3NbJ3Byb3h5J107XG5cbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJ1VSTCBpcyByZXF1aXJlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgaGVhZGVyc1xuICAgICAgICBjb25zdCBoZWFkZXJzT2JqZWN0ID0gaGVhZGVycy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBoZWFkZXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IGhlYWRlci5zcGxpdCgnOicpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ICYmIHZhbHVlKSBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge30sXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0IG9wdGlvbnNcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0LFxuICAgICAgICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KEpTT04ucGFyc2UoZGF0YSkpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gdXNlUHJveHkgPyB0aGlzLnJld3JpdGVVcmxUb1Byb3h5KHVybCkgOiB1cmw7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocmVxdWVzdFVybCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ1JlcXVlc3Qgc3VjY2Vzc2Z1bDonKTtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihgU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICBgSGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5oZWFkZXJzLCBudWxsLCAyKX1gLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHRleHQpO1xuXG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHRleHQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihgUmVxdWVzdCBmYWlsZWQ6ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUluZm8oJ0VxdWl2YWxlbnQgY3VybCBjb21tYW5kOicpO1xuICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ3VybENvbW1hbmQodXJsLCBtZXRob2QsIGhlYWRlcnMsIGRhdGEpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVDdXJsQ29tbWFuZChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxuICAgICAgICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgICAgICAgZGF0YT86IHN0cmluZyxcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWFkZXJTdHJpbmcgPSBoZWFkZXJzLm1hcCgoaCkgPT4gYC1IIFwiJHtofVwiYCkuam9pbignICcpO1xuICAgICAgICBjb25zdCBkYXRhU3RyaW5nID0gZGF0YSA/IGAtZCAnJHtkYXRhfSdgIDogJyc7XG4gICAgICAgIHJldHVybiBgY3VybCAtWCAke21ldGhvZH0gJHtoZWFkZXJTdHJpbmd9ICR7ZGF0YVN0cmluZ30gXCIke3VybH1cImA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXdyaXRlVXJsVG9Qcm94eShvcmlnaW5hbFVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXihodHRwcz8pOlxcL1xcLyhbXlxcL10rKShcXC8uKik/JC9pO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoID0gb3JpZ2luYWxVcmwubWF0Y2gocmVnZXgpO1xuXG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkwgcHJvdmlkZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNjaGVtZSA9IG1hdGNoWzFdOyAvLyAnaHR0cCcgb3IgJ2h0dHBzJ1xuICAgICAgICBjb25zdCBkb21haW4gPSBtYXRjaFsyXTsgLy8gZG9tYWluLmNvbVxuICAgICAgICBjb25zdCBwYXRoID0gbWF0Y2hbM10gfHwgJy8nOyAvLyAvcGF0aCBvciAnLydcblxuICAgICAgICByZXR1cm4gYGh0dHBzOi8vcHJveHkucW9kYWxpcy5jb20vcHJveHkvJHtzY2hlbWV9LyR7ZG9tYWlufSR7cGF0aH1gO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKHRoaXMuZGVzY3JpcHRpb24hKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdjdXJsIDxtZXRob2Q+IDx1cmw+IFtvcHRpb25zXScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ+Kame+4jyAgT3B0aW9uczonKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJy1ILCAtLWhlYWRlcicsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSAgICAgQWRkIGN1c3RvbSBoZWFkZXJzYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctZCwgLS1kYXRhJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9ICAgICAgIEFkZCByZXF1ZXN0IGJvZHkgKEpTT04pYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctLXZlcmJvc2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0gICAgICAgIFByaW50IGRldGFpbGVkIHJlc3BvbnNlIChzdGF0dXMsIGhlYWRlcnMpYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctLXByb3h5JywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9ICAgICAgICAgIFJvdXRlIHJlcXVlc3QgdGhyb3VnaCBwcm94eWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TnSBFeGFtcGxlczonKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgY3VybCBnZXQgaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnNgKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgY3VybCBwb3N0IGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIC1kPSd7XCJuYW1lXCI6XCJKb2huXCJ9JyAtSD1cIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgIGN1cmwgZGVsZXRlIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzLzEgLS1wcm94eWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVXYXJuaW5nKCfimqDvuI8gIFRoZSBzZXJ2ZXIgbXVzdCBhbGxvdyBDT1JTIGZvciB0aGlzIHRvb2wgdG8gd29yaycpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- // Automatically generated during build
2
- export const LIBRARY_VERSION = '0.0.4';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2N1cmwvc3JjL2xpYi92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkdXJpbmcgYnVpbGRcbmV4cG9ydCBjb25zdCBMSUJSQVJZX1ZFUlNJT04gPSAnMC4wLjQnO1xuICAiXX0=
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of string
3
- */
4
- export * from './lib/cli-curl.module';
5
- export * from './lib/processors/cli-curl-command-processor';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2N1cmwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHN0cmluZ1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsaS1jdXJsLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2Nlc3NvcnMvY2xpLWN1cmwtY29tbWFuZC1wcm9jZXNzb3InO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW9kYWxpcy1jbGktY3VybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2N1cmwvc3JjL3FvZGFsaXMtY2xpLWN1cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,249 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable, NgModule } from '@angular/core';
3
- import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
4
- import { DefaultLibraryAuthor, CliForegroundColor } from '@qodalis/cli-core';
5
-
6
- // Automatically generated during build
7
- const LIBRARY_VERSION = '0.0.4';
8
-
9
- class CliCurlCommandProcessor {
10
- constructor() {
11
- this.command = 'curl';
12
- this.description = 'A command-line tool to execute HTTP requests on your server. Supports GET, POST, PUT, DELETE, headers, and body data.';
13
- this.author = DefaultLibraryAuthor;
14
- this.version = LIBRARY_VERSION;
15
- this.processors = [];
16
- this.metadata = {
17
- icon: '🌐',
18
- requiredCoreVersion: '0.0.16',
19
- requiredCliVersion: '1.0.37',
20
- };
21
- this.registerSubProcessors();
22
- }
23
- async processCommand(command, context) {
24
- context.executor.showHelp(command, context);
25
- }
26
- async initialize(context) { }
27
- registerSubProcessors() {
28
- this.processors = [
29
- {
30
- command: 'get',
31
- description: 'Perform an HTTP GET request',
32
- valueRequired: true,
33
- parameters: [
34
- {
35
- name: 'header',
36
- aliases: ['H'],
37
- type: 'array',
38
- description: 'Add custom headers. Accept multiple headers.',
39
- required: false,
40
- },
41
- {
42
- name: 'proxy',
43
- type: 'boolean',
44
- description: 'Use procy',
45
- required: false,
46
- },
47
- ],
48
- processCommand: async (command, context) => {
49
- await this.executeRequest('GET', command, context);
50
- },
51
- },
52
- {
53
- command: 'post',
54
- description: 'Perform an HTTP POST request',
55
- valueRequired: true,
56
- parameters: [
57
- {
58
- name: 'header',
59
- aliases: ['H'],
60
- type: 'array',
61
- description: 'Add custom headers',
62
- required: false,
63
- },
64
- {
65
- name: 'data',
66
- aliases: ['d'],
67
- type: 'string',
68
- description: 'Request body',
69
- required: false,
70
- },
71
- {
72
- name: 'proxy',
73
- type: 'boolean',
74
- description: 'Use procy',
75
- required: false,
76
- },
77
- ],
78
- processCommand: async (command, context) => {
79
- await this.executeRequest('POST', command, context);
80
- },
81
- },
82
- {
83
- command: 'put',
84
- description: 'Perform an HTTP PUT request',
85
- valueRequired: true,
86
- parameters: [
87
- {
88
- name: 'header',
89
- aliases: ['H'],
90
- type: 'array',
91
- description: 'Add custom headers',
92
- required: false,
93
- },
94
- {
95
- name: 'data',
96
- aliases: ['d'],
97
- type: 'string',
98
- description: 'Request body',
99
- required: false,
100
- },
101
- {
102
- name: 'proxy',
103
- type: 'boolean',
104
- description: 'Use procy',
105
- required: false,
106
- },
107
- ],
108
- processCommand: async (command, context) => {
109
- await this.executeRequest('PUT', command, context);
110
- },
111
- },
112
- {
113
- command: 'delete',
114
- description: 'Perform an HTTP DELETE request',
115
- valueRequired: true,
116
- parameters: [
117
- {
118
- name: 'header',
119
- aliases: ['H'],
120
- type: 'array',
121
- description: 'Add custom headers',
122
- required: false,
123
- },
124
- {
125
- name: 'proxy',
126
- type: 'boolean',
127
- description: 'Use procy',
128
- required: false,
129
- },
130
- ],
131
- processCommand: async (command, context) => {
132
- await this.executeRequest('DELETE', command, context);
133
- },
134
- },
135
- ];
136
- }
137
- async executeRequest(method, command, context) {
138
- const url = command.value;
139
- const headers = command.args['header'] || command.args['H'] || [];
140
- const data = command.args['data'] || command.args['d'];
141
- const verbose = !!command.args['verbose'];
142
- const useProxy = !!command.args['proxy'];
143
- if (!url) {
144
- context.writer.writeError('URL is required.');
145
- return;
146
- }
147
- // Prepare headers
148
- const headersObject = headers.reduce((acc, header) => {
149
- const [key, value] = header.split(':').map((str) => str.trim());
150
- if (key && value)
151
- acc[key] = value;
152
- return acc;
153
- }, {});
154
- // Prepare request options
155
- const options = {
156
- method,
157
- headers: headersObject,
158
- body: data ? JSON.stringify(JSON.parse(data)) : undefined,
159
- };
160
- try {
161
- const requestUrl = useProxy ? this.rewriteUrlToProxy(url) : url;
162
- const response = await fetch(requestUrl, options);
163
- const text = await response.text();
164
- context.writer.writeSuccess('Request successful:');
165
- if (verbose) {
166
- context.writer.writeln(`Status: ${response.status}`);
167
- context.writer.writeln(`Headers: ${JSON.stringify(response.headers, null, 2)}`);
168
- }
169
- context.writer.writeln(text);
170
- context.process.output(text);
171
- }
172
- catch (error) {
173
- context.writer.writeError(`Request failed: ${error}`);
174
- context.process.exit(-1);
175
- }
176
- finally {
177
- context.writer.writeln();
178
- context.writer.writeInfo('Equivalent curl command:');
179
- context.writer.writeln(this.generateCurlCommand(url, method, headers, data));
180
- }
181
- }
182
- generateCurlCommand(url, method, headers, data) {
183
- const headerString = headers.map((h) => `-H "${h}"`).join(' ');
184
- const dataString = data ? `-d '${data}'` : '';
185
- return `curl -X ${method} ${headerString} ${dataString} "${url}"`;
186
- }
187
- rewriteUrlToProxy(originalUrl) {
188
- const regex = /^(https?):\/\/([^\/]+)(\/.*)?$/i;
189
- const match = originalUrl.match(regex);
190
- if (!match) {
191
- throw new Error('Invalid URL provided');
192
- }
193
- const scheme = match[1]; // 'http' or 'https'
194
- const domain = match[2]; // domain.com
195
- const path = match[3] || '/'; // /path or '/'
196
- return `https://proxy.qodalis.com/proxy/${scheme}/${domain}${path}`;
197
- }
198
- writeDescription(context) {
199
- const { writer } = context;
200
- writer.writeln(this.description);
201
- writer.writeln();
202
- writer.writeln('📋 Usage:');
203
- writer.writeln(` ${writer.wrapInColor('curl <method> <url> [options]', CliForegroundColor.Cyan)}`);
204
- writer.writeln();
205
- writer.writeln('⚙️ Options:');
206
- writer.writeln(` ${writer.wrapInColor('-H, --header', CliForegroundColor.Yellow)} Add custom headers`);
207
- writer.writeln(` ${writer.wrapInColor('-d, --data', CliForegroundColor.Yellow)} Add request body (JSON)`);
208
- writer.writeln(` ${writer.wrapInColor('--verbose', CliForegroundColor.Yellow)} Print detailed response (status, headers)`);
209
- writer.writeln(` ${writer.wrapInColor('--proxy', CliForegroundColor.Yellow)} Route request through proxy`);
210
- writer.writeln();
211
- writer.writeln('📝 Examples:');
212
- writer.writeln(` curl get https://api.example.com/users`);
213
- writer.writeln(` curl post https://api.example.com/users -d='{"name":"John"}' -H="Content-Type: application/json"`);
214
- writer.writeln(` curl delete https://api.example.com/users/1 --proxy`);
215
- writer.writeln();
216
- writer.writeWarning('⚠️ The server must allow CORS for this tool to work');
217
- }
218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
219
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor }); }
220
- }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlCommandProcessor, decorators: [{
222
- type: Injectable
223
- }], ctorParameters: function () { return []; } });
224
-
225
- class CliCurlModule {
226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
227
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule }); }
228
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule, providers: [resolveCommandProcessorProvider(CliCurlCommandProcessor)] }); }
229
- }
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCurlModule, decorators: [{
231
- type: NgModule,
232
- args: [{
233
- declarations: [],
234
- imports: [],
235
- exports: [],
236
- providers: [resolveCommandProcessorProvider(CliCurlCommandProcessor)],
237
- }]
238
- }] });
239
-
240
- /*
241
- * Public API Surface of string
242
- */
243
-
244
- /**
245
- * Generated bundle index. Do not edit.
246
- */
247
-
248
- export { CliCurlCommandProcessor, CliCurlModule };
249
- //# sourceMappingURL=qodalis-cli-curl.mjs.map
@@ -1 +0,0 @@
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.4';\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 requiredCoreVersion: '0.0.16',\n requiredCliVersion: '1.0.37',\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/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@qodalis/cli-curl" />
5
- export * from './public-api';
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class CliCurlModule {
3
- static ɵfac: i0.ɵɵFactoryDeclaration<CliCurlModule, never>;
4
- static ɵmod: i0.ɵɵNgModuleDeclaration<CliCurlModule, never, never, never>;
5
- static ɵinj: i0.ɵɵInjectorDeclaration<CliCurlModule>;
6
- }