@apimatic/cli 1.1.0-alpha.4 → 1.1.0-alpha.6
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 +115 -37
- package/bin/run +5 -1
- package/lib/client-utils/auth-manager.js +3 -3
- package/lib/client-utils/sdk-client.js +1 -0
- package/lib/commands/api/transform.d.ts +7 -7
- package/lib/commands/api/transform.js +18 -15
- package/lib/commands/api/validate.d.ts +4 -4
- package/lib/commands/api/validate.js +13 -10
- package/lib/commands/auth/login.d.ts +2 -2
- package/lib/commands/auth/login.js +29 -12
- package/lib/commands/auth/logout.d.ts +1 -1
- package/lib/commands/auth/logout.js +3 -2
- package/lib/commands/auth/status.d.ts +1 -1
- package/lib/commands/auth/status.js +3 -2
- package/lib/commands/portal/generate.d.ts +6 -6
- package/lib/commands/portal/generate.js +16 -11
- package/lib/commands/portal/quickstart.d.ts +10 -0
- package/lib/commands/portal/quickstart.js +83 -0
- package/lib/commands/portal/serve.d.ts +17 -0
- package/lib/commands/portal/serve.js +143 -0
- package/lib/commands/sdk/generate.d.ts +8 -8
- package/lib/commands/sdk/generate.js +16 -13
- package/lib/config/axios-config.d.ts +2 -0
- package/lib/config/axios-config.js +12 -0
- package/lib/config/env.d.ts +26 -0
- package/lib/config/env.js +28 -1
- package/lib/controllers/api/transform.js +6 -5
- package/lib/controllers/api/validate.d.ts +1 -1
- package/lib/controllers/api/validate.js +25 -8
- package/lib/controllers/portal/generate.d.ts +2 -1
- package/lib/controllers/portal/generate.js +19 -11
- package/lib/controllers/portal/quickstart.d.ts +14 -0
- package/lib/controllers/portal/quickstart.js +206 -0
- package/lib/controllers/portal/serve.d.ts +4 -0
- package/lib/controllers/portal/serve.js +152 -0
- package/lib/controllers/sdk/generate.js +7 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -3
- package/lib/prompts/portal/quickstart.d.ts +32 -0
- package/lib/prompts/portal/quickstart.js +216 -0
- package/lib/prompts/portal/serve.d.ts +7 -0
- package/lib/prompts/portal/serve.js +25 -0
- package/lib/services/portal/server.d.ts +11 -0
- package/lib/services/portal/server.js +71 -0
- package/lib/types/api/transform.d.ts +0 -1
- package/lib/types/api/transform.js +1 -0
- package/lib/types/api/validate.js +1 -0
- package/lib/types/portal/generate.js +1 -0
- package/lib/types/portal/quickstart.d.ts +17 -0
- package/lib/types/portal/quickstart.js +3 -0
- package/lib/types/sdk/generate.js +1 -0
- package/lib/types/utils.js +1 -0
- package/lib/utils/utils.d.ts +28 -4
- package/lib/utils/utils.js +289 -53
- package/lib/validators/common/directoryValidator.d.ts +9 -0
- package/lib/validators/common/directoryValidator.js +53 -0
- package/lib/validators/common/portValidator.d.ts +5 -0
- package/lib/validators/common/portValidator.js +20 -0
- package/lib/validators/portal/serveValidator.d.ts +6 -0
- package/lib/validators/portal/serveValidator.js +21 -0
- package/package.json +60 -24
package/README.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@apimatic/cli
|
|
2
2
|
=============
|
|
3
|
+
apimatic is in Alpha.
|
|
3
4
|
|
|
4
5
|
The official CLI for APIMatic.
|
|
5
6
|
|
|
@@ -8,6 +9,14 @@ The official CLI for APIMatic.
|
|
|
8
9
|
[](https://npmjs.org/package/@apimatic/cli)
|
|
9
10
|
[](https://github.com/apimatic/apimatic-cli/blob/master/package.json)
|
|
10
11
|
|
|
12
|
+
# Getting Started
|
|
13
|
+
|
|
14
|
+
To get started with APIMatic's CLI using a step by step wizard, run the following command:
|
|
15
|
+
|
|
16
|
+
```sh-session
|
|
17
|
+
$ apimatic portal:quickstart
|
|
18
|
+
```
|
|
19
|
+
|
|
11
20
|
<!-- toc -->
|
|
12
21
|
* [Usage](#usage)
|
|
13
22
|
* [Commands](#commands)
|
|
@@ -15,11 +24,11 @@ The official CLI for APIMatic.
|
|
|
15
24
|
# Usage
|
|
16
25
|
<!-- usage -->
|
|
17
26
|
```sh-session
|
|
18
|
-
$ npm install -g @apimatic/cli
|
|
27
|
+
$ npm install -g @apimatic/cli
|
|
19
28
|
$ apimatic COMMAND
|
|
20
29
|
running command...
|
|
21
|
-
$ apimatic (
|
|
22
|
-
@apimatic/cli/0.0.0-alpha.
|
|
30
|
+
$ apimatic (--version)
|
|
31
|
+
@apimatic/cli/0.0.0-alpha.0 win32-x64 node-v20.18.3
|
|
23
32
|
$ apimatic --help [COMMAND]
|
|
24
33
|
USAGE
|
|
25
34
|
$ apimatic COMMAND
|
|
@@ -37,6 +46,8 @@ USAGE
|
|
|
37
46
|
* [`apimatic autocomplete [SHELL]`](#apimatic-autocomplete-shell)
|
|
38
47
|
* [`apimatic help [COMMAND]`](#apimatic-help-command)
|
|
39
48
|
* [`apimatic portal:generate`](#apimatic-portalgenerate)
|
|
49
|
+
* [`apimatic portal:quickstart`](#apimatic-portalquickstart)
|
|
50
|
+
* [`apimatic portal:serve`](#apimatic-portalserve)
|
|
40
51
|
* [`apimatic sdk:generate`](#apimatic-sdkgenerate)
|
|
41
52
|
|
|
42
53
|
## `apimatic api:transform`
|
|
@@ -45,9 +56,10 @@ Transform API specifications from one format to another. Supports [10+ different
|
|
|
45
56
|
|
|
46
57
|
```
|
|
47
58
|
USAGE
|
|
48
|
-
$ apimatic api:transform
|
|
59
|
+
$ apimatic api:transform --format <value> [--file <value>] [--url <value>] [--destination <value>] [-f]
|
|
60
|
+
[--auth-key <value>]
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
FLAGS
|
|
51
63
|
-f, --force overwrite if same file exist in the destination
|
|
52
64
|
--auth-key=auth-key override current authentication state with an authentication key
|
|
53
65
|
|
|
@@ -63,6 +75,11 @@ OPTIONS
|
|
|
63
75
|
--url=url URL to the API specification file to transform. Can be used in place of the --file option
|
|
64
76
|
if the API specification is publicly available.
|
|
65
77
|
|
|
78
|
+
DESCRIPTION
|
|
79
|
+
Transform API specifications from one format to another. Supports [10+ different
|
|
80
|
+
formats](https://www.apimatic.io/transformer/#supported-formats) including OpenApi/Swagger, RAML, WSDL and Postman
|
|
81
|
+
Collections.
|
|
82
|
+
|
|
66
83
|
EXAMPLES
|
|
67
84
|
$ apimatic api:transform --format="OpenApi3Json" --file="./specs/sample.json" --destination="D:/"
|
|
68
85
|
Success! Your transformed file is located at D:/Transformed_OpenApi3Json.json
|
|
@@ -71,7 +88,7 @@ EXAMPLES
|
|
|
71
88
|
Success! Your transformed file is located at D:/swagger_raml.yaml
|
|
72
89
|
```
|
|
73
90
|
|
|
74
|
-
_See code: [src/commands/api/transform.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
91
|
+
_See code: [src/commands/api/transform.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/api/transform.ts)_
|
|
75
92
|
|
|
76
93
|
## `apimatic api:validate`
|
|
77
94
|
|
|
@@ -79,15 +96,18 @@ Validate the syntactic and semantic correctness of an API specification
|
|
|
79
96
|
|
|
80
97
|
```
|
|
81
98
|
USAGE
|
|
82
|
-
$ apimatic api:validate
|
|
99
|
+
$ apimatic api:validate [--file <value>] [--url <value>] [--auth-key <value>]
|
|
83
100
|
|
|
84
|
-
|
|
101
|
+
FLAGS
|
|
85
102
|
--auth-key=auth-key override current authentication state with an authentication key
|
|
86
103
|
--file=file Path to the API specification file to validate
|
|
87
104
|
|
|
88
105
|
--url=url URL to the specification file to validate. Can be used in place of the --file option if the API
|
|
89
106
|
specification is publicly available.
|
|
90
107
|
|
|
108
|
+
DESCRIPTION
|
|
109
|
+
Validate the syntactic and semantic correctness of an API specification
|
|
110
|
+
|
|
91
111
|
EXAMPLES
|
|
92
112
|
$ apimatic api:validate --file="./specs/sample.json"
|
|
93
113
|
Specification file provided is valid
|
|
@@ -96,7 +116,7 @@ EXAMPLES
|
|
|
96
116
|
Specification file provided is valid
|
|
97
117
|
```
|
|
98
118
|
|
|
99
|
-
_See code: [src/commands/api/validate.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
119
|
+
_See code: [src/commands/api/validate.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/api/validate.ts)_
|
|
100
120
|
|
|
101
121
|
## `apimatic auth:login`
|
|
102
122
|
|
|
@@ -104,11 +124,14 @@ Login using your APIMatic credentials or an API Key
|
|
|
104
124
|
|
|
105
125
|
```
|
|
106
126
|
USAGE
|
|
107
|
-
$ apimatic auth:login
|
|
127
|
+
$ apimatic auth:login [--auth-key <value>]
|
|
108
128
|
|
|
109
|
-
|
|
129
|
+
FLAGS
|
|
110
130
|
--auth-key=auth-key Set authentication key for all commands
|
|
111
131
|
|
|
132
|
+
DESCRIPTION
|
|
133
|
+
Login using your APIMatic credentials or an API Key
|
|
134
|
+
|
|
112
135
|
EXAMPLES
|
|
113
136
|
$ apimatic auth:login
|
|
114
137
|
Please enter your registered email: apimatic-user@gmail.com
|
|
@@ -120,7 +143,7 @@ EXAMPLES
|
|
|
120
143
|
Authentication key successfully set
|
|
121
144
|
```
|
|
122
145
|
|
|
123
|
-
_See code: [src/commands/auth/login.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
146
|
+
_See code: [src/commands/auth/login.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/auth/login.ts)_
|
|
124
147
|
|
|
125
148
|
## `apimatic auth:logout`
|
|
126
149
|
|
|
@@ -130,12 +153,15 @@ Clear local login credentials
|
|
|
130
153
|
USAGE
|
|
131
154
|
$ apimatic auth:logout
|
|
132
155
|
|
|
133
|
-
|
|
156
|
+
DESCRIPTION
|
|
157
|
+
Clear local login credentials
|
|
158
|
+
|
|
159
|
+
EXAMPLES
|
|
134
160
|
$ apimatic auth:logout
|
|
135
161
|
Logged out
|
|
136
162
|
```
|
|
137
163
|
|
|
138
|
-
_See code: [src/commands/auth/logout.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
164
|
+
_See code: [src/commands/auth/logout.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/auth/logout.ts)_
|
|
139
165
|
|
|
140
166
|
## `apimatic auth:status`
|
|
141
167
|
|
|
@@ -145,27 +171,33 @@ View current authentication state
|
|
|
145
171
|
USAGE
|
|
146
172
|
$ apimatic auth:status
|
|
147
173
|
|
|
148
|
-
|
|
174
|
+
DESCRIPTION
|
|
175
|
+
View current authentication state
|
|
176
|
+
|
|
177
|
+
EXAMPLES
|
|
149
178
|
$ apimatic auth:status
|
|
150
179
|
Currently logged in as apimatic-client@gmail.com
|
|
151
180
|
```
|
|
152
181
|
|
|
153
|
-
_See code: [src/commands/auth/status.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
182
|
+
_See code: [src/commands/auth/status.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/auth/status.ts)_
|
|
154
183
|
|
|
155
184
|
## `apimatic autocomplete [SHELL]`
|
|
156
185
|
|
|
157
|
-
|
|
186
|
+
Display autocomplete installation instructions.
|
|
158
187
|
|
|
159
188
|
```
|
|
160
189
|
USAGE
|
|
161
|
-
$ apimatic autocomplete [SHELL]
|
|
190
|
+
$ apimatic autocomplete [SHELL] [-r]
|
|
162
191
|
|
|
163
192
|
ARGUMENTS
|
|
164
193
|
SHELL shell type
|
|
165
194
|
|
|
166
|
-
|
|
195
|
+
FLAGS
|
|
167
196
|
-r, --refresh-cache Refresh cache (ignores displaying instructions)
|
|
168
197
|
|
|
198
|
+
DESCRIPTION
|
|
199
|
+
Display autocomplete installation instructions.
|
|
200
|
+
|
|
169
201
|
EXAMPLES
|
|
170
202
|
$ apimatic autocomplete
|
|
171
203
|
$ apimatic autocomplete bash
|
|
@@ -173,11 +205,11 @@ EXAMPLES
|
|
|
173
205
|
$ apimatic autocomplete --refresh-cache
|
|
174
206
|
```
|
|
175
207
|
|
|
176
|
-
_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/
|
|
208
|
+
_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/main/src/commands/autocomplete/index.ts)_
|
|
177
209
|
|
|
178
210
|
## `apimatic help [COMMAND]`
|
|
179
211
|
|
|
180
|
-
|
|
212
|
+
Display help for apimatic.
|
|
181
213
|
|
|
182
214
|
```
|
|
183
215
|
USAGE
|
|
@@ -186,33 +218,77 @@ USAGE
|
|
|
186
218
|
ARGUMENTS
|
|
187
219
|
COMMAND command to show help for
|
|
188
220
|
|
|
189
|
-
|
|
190
|
-
|
|
221
|
+
DESCRIPTION
|
|
222
|
+
Display help for apimatic.
|
|
191
223
|
```
|
|
192
224
|
|
|
193
|
-
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/
|
|
225
|
+
_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/main/src/commands/help.ts)_
|
|
194
226
|
|
|
195
227
|
## `apimatic portal:generate`
|
|
196
228
|
|
|
197
|
-
Generate and download a static API Documentation portal. Requires an input directory containing API specifications, a config file and optionally, markdown guides. For details, refer to the [documentation](https://
|
|
229
|
+
Generate and download a static API Documentation portal. Requires an input directory containing API specifications, a config file and optionally, markdown guides. For details, refer to the [documentation](https://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/build-file-reference)
|
|
198
230
|
|
|
199
231
|
```
|
|
200
232
|
USAGE
|
|
201
|
-
$ apimatic portal:generate
|
|
233
|
+
$ apimatic portal:generate [--folder <value>] [--destination <value>] [-f] [--zip] [--auth-key <value>]
|
|
202
234
|
|
|
203
|
-
|
|
235
|
+
FLAGS
|
|
204
236
|
-f, --force overwrite if a portal exists in the destination
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
237
|
+
DESCRIPTION
|
|
238
|
+
Generate and download a static API Documentation portal. Requires an input directory containing API specifications, a
|
|
239
|
+
config file and optionally, markdown guides. For details, refer to the [documentation](https://docs.apimatic.io/platfo
|
|
240
|
+
rm-api/#/http/guides/generating-on-prem-api-portal/build-file-reference)
|
|
209
241
|
|
|
210
|
-
|
|
242
|
+
EXAMPLES
|
|
211
243
|
$ apimatic portal:generate --folder="./portal/" --destination="D:/"
|
|
212
244
|
Your portal has been generated at D:/
|
|
213
245
|
```
|
|
214
246
|
|
|
215
|
-
_See code: [src/commands/portal/generate.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
247
|
+
_See code: [src/commands/portal/generate.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/portal/generate.ts)_
|
|
248
|
+
|
|
249
|
+
## `apimatic portal:quickstart`
|
|
250
|
+
|
|
251
|
+
Create your first API Portal using APIMatic’s Docs as Code offering.
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
USAGE
|
|
255
|
+
$ apimatic portal:quickstart
|
|
256
|
+
|
|
257
|
+
DESCRIPTION
|
|
258
|
+
Create your first API Portal using APIMatic’s Docs as Code offering.
|
|
259
|
+
|
|
260
|
+
EXAMPLES
|
|
261
|
+
$ apimatic portal:quickstart
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
_See code: [src/commands/portal/quickstart.ts](https://github.com/apimatic/apimatic-cli/blob/v1.0.1-alpha.11/src/commands/portal/quickstart.ts)_
|
|
265
|
+
|
|
266
|
+
## `apimatic portal:serve`
|
|
267
|
+
|
|
268
|
+
Generate and deploy a Docs as Code portal with hot reload.
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
USAGE
|
|
272
|
+
$ apimatic portal:serve [-p <value>] [-d <value>] [-s <value>] [-o] [--no-reload] [-i <value>] [--auth-key <value>]
|
|
273
|
+
|
|
274
|
+
FLAGS
|
|
275
|
+
-d, --destination=<value> [default: ./api-portal] Directory to store and serve the generated portal.
|
|
276
|
+
-i, --ignore=<value> Comma-separated list of files/directories to ignore.
|
|
277
|
+
-o, --open Open the portal in the default browser.
|
|
278
|
+
-p, --port=<value> [default: 3000] Port to serve the portal.
|
|
279
|
+
-s, --source=<value> [default: ./] Source directory containing specs, content, and build file. By default, the
|
|
280
|
+
current directory is used.
|
|
281
|
+
--auth-key=<value> Override current authentication state with an authentication key.
|
|
282
|
+
--no-reload Disable hot reload.
|
|
283
|
+
|
|
284
|
+
DESCRIPTION
|
|
285
|
+
Generate and deploy a Docs as Code portal with hot reload.
|
|
286
|
+
|
|
287
|
+
EXAMPLES
|
|
288
|
+
$ apimatic portal:serve --source="./" --destination="./api-portal" --port=3000 --open --no-reload
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
_See code: [src/commands/portal/serve.ts](https://github.com/apimatic/apimatic-cli/blob/v1.0.1-alpha.11/src/commands/portal/serve.ts)_
|
|
216
292
|
|
|
217
293
|
## `apimatic sdk:generate`
|
|
218
294
|
|
|
@@ -220,9 +296,9 @@ Generate SDK for your APIs
|
|
|
220
296
|
|
|
221
297
|
```
|
|
222
298
|
USAGE
|
|
223
|
-
$ apimatic sdk:generate
|
|
299
|
+
$ apimatic sdk:generate --platform <value> [--file <value>] [--url <value>] [--destination <value>] [-f] [--zip] [--auth-key <value>]
|
|
224
300
|
|
|
225
|
-
|
|
301
|
+
FLAGS
|
|
226
302
|
-f, --force overwrite if an SDK already exists in the destination
|
|
227
303
|
--auth-key=auth-key override current authentication state with an authentication key
|
|
228
304
|
|
|
@@ -239,8 +315,10 @@ OPTIONS
|
|
|
239
315
|
|
|
240
316
|
--url=url URL to the API specification to generate SDKs for. Can be used in place of the --file
|
|
241
317
|
option if the API specification is publicly available.
|
|
318
|
+
--zip download the generated SDK as a .zip archive
|
|
242
319
|
|
|
243
|
-
|
|
320
|
+
DESCRIPTION
|
|
321
|
+
Generate SDK for your APIs
|
|
244
322
|
|
|
245
323
|
EXAMPLES
|
|
246
324
|
$ apimatic sdk:generate --platform="CSHARP" --file="./specs/sample.json"
|
|
@@ -254,5 +332,5 @@ EXAMPLES
|
|
|
254
332
|
Success! Your SDK is located at swagger_sdk_csharp
|
|
255
333
|
```
|
|
256
334
|
|
|
257
|
-
_See code: [src/commands/sdk/generate.ts](https://github.com/apimatic/apimatic-cli/blob/
|
|
335
|
+
_See code: [src/commands/sdk/generate.ts](https://github.com/apimatic/apimatic-cli/blob/alpha/src/commands/sdk/generate.ts)_
|
|
258
336
|
<!-- commandsstop -->
|
package/bin/run
CHANGED
|
@@ -2,4 +2,8 @@
|
|
|
2
2
|
/* eslint-disable no-undef */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const { run, flush, handle } = require("@oclif/core");
|
|
6
|
+
|
|
7
|
+
run()
|
|
8
|
+
.then(flush)
|
|
9
|
+
.catch(handle);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getAuthInfo = getAuthInfo;
|
|
4
|
+
exports.setAuthInfo = setAuthInfo;
|
|
4
5
|
const path = require("path");
|
|
5
6
|
const fs = require("fs-extra");
|
|
6
7
|
/**
|
|
@@ -17,7 +18,6 @@ async function getAuthInfo(configDir) {
|
|
|
17
18
|
return null;
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
|
-
exports.getAuthInfo = getAuthInfo;
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
* @param {AuthInfo} credentials
|
|
@@ -30,4 +30,4 @@ async function setAuthInfo(credentials, configDir) {
|
|
|
30
30
|
fs.createFileSync(configFilePath);
|
|
31
31
|
return await fs.writeFile(configFilePath, JSON.stringify(credentials));
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC11dGlscy9hdXRoLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxrQ0FPQztBQVFELGtDQU1DO0FBakNELDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFNL0I7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxXQUFXLENBQUMsU0FBaUI7SUFDakQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekcsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxXQUFXLENBQUMsV0FBcUIsRUFBRSxTQUFpQjtJQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUUzRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7UUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXRFLE9BQU8sTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDekUsQ0FBQyJ9
|
|
@@ -117,3 +117,4 @@ class SDKClient {
|
|
|
117
117
|
}
|
|
118
118
|
exports.SDKClient = SDKClient;
|
|
119
119
|
SDKClient.authAPI = `${env_1.baseURL}/account/authkey`;
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQtdXRpbHMvc2RrLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBa0M7QUFDbEMsaUNBQTZDO0FBRTdDLHVDQUF1QztBQUN2Qyx1Q0FBd0M7QUFDeEMsaURBQW9FO0FBU3BFLE1BQWEsU0FBUztJQUF0QjtRQTBIUyxlQUFVLEdBQUcsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1lBQ3pELElBQUEsMEJBQVcsRUFDVDtnQkFDRSxLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPO2FBQ1IsRUFDRCxTQUFTLENBQ1YsQ0FBQztZQUNGLE9BQU8scUNBQXFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQS9IQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUVJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLFFBQWdCLEVBQUUsU0FBaUI7UUFDbkUsSUFBSSxjQUFjLEdBQW9CLE1BQU0sSUFBQSwwQkFBVyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5FLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsY0FBYyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDOUMsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBVyxNQUFNLElBQUksQ0FBQyxVQUFVLENB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
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
2
|
export default class Transform extends Command {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
format:
|
|
7
|
-
file:
|
|
8
|
-
url:
|
|
9
|
-
destination:
|
|
10
|
-
force: import("@oclif/
|
|
11
|
-
"auth-key":
|
|
6
|
+
format: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
file: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
url: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
destination: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
force: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
"auth-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
};
|
|
13
13
|
run(): Promise<void>;
|
|
14
14
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
const path = require("path");
|
|
4
5
|
const fs = require("fs-extra");
|
|
5
|
-
const
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
6
7
|
const sdk_1 = require("@apimatic/sdk");
|
|
7
8
|
const sdk_client_1 = require("../../client-utils/sdk-client");
|
|
8
9
|
const utils_1 = require("../../utils/utils");
|
|
@@ -10,9 +11,9 @@ const utils_2 = require("../../utils/utils");
|
|
|
10
11
|
const transform_1 = require("../../types/api/transform");
|
|
11
12
|
const transform_2 = require("../../controllers/api/transform");
|
|
12
13
|
const formats = Object.keys(sdk_1.ExportFormats).join("|");
|
|
13
|
-
class Transform extends
|
|
14
|
+
class Transform extends core_1.Command {
|
|
14
15
|
async run() {
|
|
15
|
-
const { flags } = this.parse(
|
|
16
|
+
const { flags } = await this.parse(_a);
|
|
16
17
|
const fileName = flags.file ? (0, utils_2.getFileNameFromPath)(flags.file) : (0, utils_2.getFileNameFromPath)(flags.url);
|
|
17
18
|
const destinationFormat = transform_1.DestinationFormats[flags.format];
|
|
18
19
|
const destinationFilePath = path.join(flags.destination, `${fileName}_${flags.format}.${destinationFormat}`.toLowerCase());
|
|
@@ -33,9 +34,9 @@ class Transform extends command_1.Command {
|
|
|
33
34
|
const transformationController = new sdk_1.TransformationController(client);
|
|
34
35
|
const { id, apiValidationSummary } = await (0, transform_2.getTransformationId)(flags, transformationController);
|
|
35
36
|
const logFunctions = {
|
|
36
|
-
log: this.log,
|
|
37
|
-
warn: this.warn,
|
|
38
|
-
error: this.error
|
|
37
|
+
log: (message) => this.log(message),
|
|
38
|
+
warn: (message) => this.warn(message),
|
|
39
|
+
error: (message) => this.error(message)
|
|
39
40
|
};
|
|
40
41
|
(0, utils_1.printValidationMessages)(apiValidationSummary, logFunctions);
|
|
41
42
|
const savedTransformationFile = await (0, transform_2.downloadTransformationFile)({
|
|
@@ -78,6 +79,7 @@ class Transform extends command_1.Command {
|
|
|
78
79
|
}
|
|
79
80
|
}
|
|
80
81
|
}
|
|
82
|
+
_a = Transform;
|
|
81
83
|
Transform.description = `Transform API specifications from one format to another. Supports [10+ different formats](https://www.apimatic.io/transformer/#supported-formats) including OpenApi/Swagger, RAML, WSDL and Postman Collections.`;
|
|
82
84
|
Transform.examples = [
|
|
83
85
|
`$ apimatic api:transform --format="OpenApi3Json" --file="./specs/sample.json" --destination="D:/"
|
|
@@ -88,27 +90,28 @@ Success! Your transformed file is located at D:/swagger_raml.yaml
|
|
|
88
90
|
`
|
|
89
91
|
];
|
|
90
92
|
Transform.flags = {
|
|
91
|
-
format:
|
|
92
|
-
parse: (format) => (0, transform_2.getValidFormat)(format.toUpperCase()),
|
|
93
|
+
format: core_1.Flags.string({
|
|
94
|
+
parse: async (format) => (0, transform_2.getValidFormat)(format.toUpperCase()),
|
|
93
95
|
required: true,
|
|
94
96
|
description: `specification format to transform API specification into
|
|
95
97
|
${formats}`
|
|
96
98
|
}),
|
|
97
|
-
file:
|
|
98
|
-
parse: (input) => path.resolve(input),
|
|
99
|
+
file: core_1.Flags.string({
|
|
100
|
+
parse: async (input) => path.resolve(input),
|
|
99
101
|
default: "",
|
|
100
102
|
description: "path to the API specification file to transform"
|
|
101
103
|
}),
|
|
102
|
-
url:
|
|
104
|
+
url: core_1.Flags.string({
|
|
103
105
|
default: "",
|
|
104
106
|
description: "URL to the API specification file to transform. Can be used in place of the --file option if the API specification is publicly available."
|
|
105
107
|
}),
|
|
106
|
-
destination:
|
|
107
|
-
parse: (input) => path.resolve(input),
|
|
108
|
+
destination: core_1.Flags.string({
|
|
109
|
+
parse: async (input) => path.resolve(input),
|
|
108
110
|
default: path.resolve("./"),
|
|
109
111
|
description: "directory to download transformed file to"
|
|
110
112
|
}),
|
|
111
|
-
force:
|
|
112
|
-
"auth-key":
|
|
113
|
+
force: core_1.Flags.boolean({ char: "f", default: false, description: "overwrite if same file exist in the destination" }),
|
|
114
|
+
"auth-key": core_1.Flags.string({ description: "override current authentication state with an authentication key" })
|
|
113
115
|
};
|
|
114
116
|
exports.default = Transform;
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FwaS90cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixzQ0FBNkM7QUFDN0MsdUNBQTBHO0FBRzFHLDhEQUEwRDtBQUMxRCw2Q0FBNEQ7QUFDNUQsNkNBQXFFO0FBQ3JFLHlEQUErRDtBQUMvRCwrREFBa0g7QUFFbEgsTUFBTSxPQUFPLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELE1BQXFCLFNBQVUsU0FBUSxjQUFPO0lBc0M1QyxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBUyxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSwyQkFBbUIsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsMkJBQW1CLEVBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9GLE1BQU0saUJBQWlCLEdBQVcsOEJBQWtCLENBQUMsS0FBSyxDQUFDLE1BQXlDLENBQUMsQ0FBQztRQUN0RyxNQUFNLG1CQUFtQixHQUFXLElBQUksQ0FBQyxJQUFJLENBQzNDLEtBQUssQ0FBQyxXQUFXLEVBQ2pCLEdBQUcsUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksaUJBQWlCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FDakUsQ0FBQztRQUVGLG1GQUFtRjtRQUNuRixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2RCxNQUFNLElBQUksS0FB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
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
2
|
export default class Validate extends Command {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
file:
|
|
7
|
-
url:
|
|
8
|
-
"auth-key":
|
|
6
|
+
file: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
url: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
"auth-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
9
|
};
|
|
10
10
|
run(): Promise<void>;
|
|
11
11
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const fs = require("fs-extra");
|
|
4
|
-
const
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
5
|
const sdk_1 = require("@apimatic/sdk");
|
|
6
6
|
const sdk_client_1 = require("../../client-utils/sdk-client");
|
|
7
7
|
const validate_1 = require("../../controllers/api/validate");
|
|
8
8
|
const utils_1 = require("../../utils/utils");
|
|
9
|
-
class Validate extends
|
|
9
|
+
class Validate extends core_1.Command {
|
|
10
10
|
async run() {
|
|
11
|
-
const { flags } = this.parse(Validate);
|
|
11
|
+
const { flags } = await this.parse(Validate);
|
|
12
12
|
try {
|
|
13
13
|
if (flags.file && !(await fs.pathExists(flags.file))) {
|
|
14
14
|
throw new Error(`Validation file: ${flags.file} does not exist`);
|
|
@@ -16,11 +16,13 @@ class Validate extends command_1.Command {
|
|
|
16
16
|
const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
|
|
17
17
|
const client = await sdk_client_1.SDKClient.getInstance().getClient(overrideAuthKey, this.config.configDir);
|
|
18
18
|
const apiValidationController = new sdk_1.APIValidationExternalApisController(client);
|
|
19
|
-
|
|
19
|
+
core_1.ux.action.start("Validating specification file");
|
|
20
|
+
const validationSummary = await (0, validate_1.getValidationSummary)(flags, apiValidationController);
|
|
21
|
+
core_1.ux.action.stop();
|
|
20
22
|
const logFunctions = {
|
|
21
|
-
log: this.log,
|
|
22
|
-
warn: this.warn,
|
|
23
|
-
error: this.error
|
|
23
|
+
log: (message) => this.log(message),
|
|
24
|
+
warn: (message) => this.warn(message),
|
|
25
|
+
error: (message) => this.error(message)
|
|
24
26
|
};
|
|
25
27
|
(0, utils_1.printValidationMessages)(validationSummary, logFunctions);
|
|
26
28
|
validationSummary.success
|
|
@@ -65,12 +67,13 @@ Specification file provided is valid
|
|
|
65
67
|
`
|
|
66
68
|
];
|
|
67
69
|
Validate.flags = {
|
|
68
|
-
file:
|
|
69
|
-
url:
|
|
70
|
+
file: core_1.Flags.string({ default: "", description: "Path to the API specification file to validate" }),
|
|
71
|
+
url: core_1.Flags.string({
|
|
70
72
|
default: "",
|
|
71
73
|
description: "URL to the specification file to validate. Can be used in place of the --file option if the API specification is publicly available."
|
|
72
74
|
}),
|
|
73
75
|
// docs: flags.boolean({ default: false, description: "Validate specification for docs generation" }), // Next tier, not included in API spec
|
|
74
|
-
"auth-key":
|
|
76
|
+
"auth-key": core_1.Flags.string({ description: "override current authentication state with an authentication key" })
|
|
75
77
|
};
|
|
76
78
|
exports.default = Validate;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYXBpL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBRS9CLHNDQUFpRDtBQUNqRCx1Q0FBNEc7QUFHNUcsOERBQTBEO0FBQzFELDZEQUFzRTtBQUN0RSw2Q0FBeUU7QUFHekUsTUFBcUIsUUFBUyxTQUFRLGNBQU87SUF1QjNDLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUM7WUFDSCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3JFLE1BQU0sTUFBTSxHQUFXLE1BQU0sc0JBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFdkcsTUFBTSx1QkFBdUIsR0FBd0MsSUFBSSx5Q0FBbUMsQ0FDMUcsTUFBTSxDQUNQLENBQUM7WUFFRixTQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQ2pELE1BQU0saUJBQWlCLEdBQXlCLE1BQU0sSUFBQSwrQkFBb0IsRUFBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUMs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
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
2
|
export default class Login extends Command {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
"auth-key":
|
|
6
|
+
"auth-key": import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
7
|
};
|
|
8
8
|
run(): Promise<void>;
|
|
9
9
|
}
|