stepzen 0.44.0 → 0.45.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -71
- package/bin/dev.cmd +1 -1
- package/bin/dev.js +6 -0
- package/bin/{run → run.js} +6 -20
- package/lib/commands/delete.d.ts +3 -3
- package/lib/commands/delete.d.ts.map +1 -1
- package/lib/commands/delete.js +32 -33
- package/lib/commands/delete.js.map +1 -1
- package/lib/commands/deploy.d.ts +10 -12
- package/lib/commands/deploy.d.ts.map +1 -1
- package/lib/commands/deploy.js +98 -98
- package/lib/commands/deploy.js.map +1 -1
- package/lib/commands/import/curl.d.ts +17 -24
- package/lib/commands/import/curl.d.ts.map +1 -1
- package/lib/commands/import/curl.js +85 -85
- package/lib/commands/import/curl.js.map +1 -1
- package/lib/commands/import/db2.d.ts +20 -28
- package/lib/commands/import/db2.d.ts.map +1 -1
- package/lib/commands/import/db2.js +59 -62
- package/lib/commands/import/db2.js.map +1 -1
- package/lib/commands/import/flow.d.ts +10 -71
- package/lib/commands/import/flow.d.ts.map +1 -1
- package/lib/commands/import/flow.js +39 -43
- package/lib/commands/import/flow.js.map +1 -1
- package/lib/commands/import/graphql.d.ts +10 -18
- package/lib/commands/import/graphql.d.ts.map +1 -1
- package/lib/commands/import/graphql.js +38 -42
- package/lib/commands/import/graphql.js.map +1 -1
- package/lib/commands/import/index.d.ts +7 -10
- package/lib/commands/import/index.d.ts.map +1 -1
- package/lib/commands/import/index.js +52 -53
- package/lib/commands/import/index.js.map +1 -1
- package/lib/commands/import/mysql.d.ts +14 -22
- package/lib/commands/import/mysql.d.ts.map +1 -1
- package/lib/commands/import/mysql.js +53 -56
- package/lib/commands/import/mysql.js.map +1 -1
- package/lib/commands/import/openapi.d.ts +9 -16
- package/lib/commands/import/openapi.d.ts.map +1 -1
- package/lib/commands/import/openapi.js +38 -41
- package/lib/commands/import/openapi.js.map +1 -1
- package/lib/commands/import/oracle.d.ts +19 -26
- package/lib/commands/import/oracle.d.ts.map +1 -1
- package/lib/commands/import/oracle.js +56 -59
- package/lib/commands/import/oracle.js.map +1 -1
- package/lib/commands/import/postgresql.d.ts +15 -23
- package/lib/commands/import/postgresql.d.ts.map +1 -1
- package/lib/commands/import/postgresql.js +54 -57
- package/lib/commands/import/postgresql.js.map +1 -1
- package/lib/commands/import/presto.d.ts +14 -22
- package/lib/commands/import/presto.d.ts.map +1 -1
- package/lib/commands/import/presto.js +57 -60
- package/lib/commands/import/presto.js.map +1 -1
- package/lib/commands/import/snowflake.d.ts +16 -24
- package/lib/commands/import/snowflake.d.ts.map +1 -1
- package/lib/commands/import/snowflake.js +61 -64
- package/lib/commands/import/snowflake.js.map +1 -1
- package/lib/commands/init.d.ts +5 -7
- package/lib/commands/init.d.ts.map +1 -1
- package/lib/commands/init.js +22 -22
- package/lib/commands/init.js.map +1 -1
- package/lib/commands/lint.d.ts +2 -4
- package/lib/commands/lint.d.ts.map +1 -1
- package/lib/commands/lint.js +15 -18
- package/lib/commands/lint.js.map +1 -1
- package/lib/commands/list.d.ts +4 -6
- package/lib/commands/list.d.ts.map +1 -1
- package/lib/commands/list.js +66 -63
- package/lib/commands/list.js.map +1 -1
- package/lib/commands/login.d.ts +8 -10
- package/lib/commands/login.d.ts.map +1 -1
- package/lib/commands/login.js +94 -92
- package/lib/commands/login.js.map +1 -1
- package/lib/commands/logout.d.ts +2 -3
- package/lib/commands/logout.d.ts.map +1 -1
- package/lib/commands/logout.js +8 -11
- package/lib/commands/logout.js.map +1 -1
- package/lib/commands/request.d.ts +10 -12
- package/lib/commands/request.d.ts.map +1 -1
- package/lib/commands/request.js +127 -129
- package/lib/commands/request.js.map +1 -1
- package/lib/commands/service.d.ts +9 -11
- package/lib/commands/service.d.ts.map +1 -1
- package/lib/commands/service.js +203 -203
- package/lib/commands/service.js.map +1 -1
- package/lib/commands/start.d.ts +13 -15
- package/lib/commands/start.d.ts.map +1 -1
- package/lib/commands/start.js +61 -60
- package/lib/commands/start.js.map +1 -1
- package/lib/commands/transpile.d.ts +8 -10
- package/lib/commands/transpile.d.ts.map +1 -1
- package/lib/commands/transpile.js +31 -34
- package/lib/commands/transpile.js.map +1 -1
- package/lib/commands/upload.d.ts +6 -8
- package/lib/commands/upload.d.ts.map +1 -1
- package/lib/commands/upload.js +41 -44
- package/lib/commands/upload.js.map +1 -1
- package/lib/commands/validate.d.ts +3 -4
- package/lib/commands/validate.d.ts.map +1 -1
- package/lib/commands/validate.js +23 -26
- package/lib/commands/validate.js.map +1 -1
- package/lib/commands/whoami.d.ts +6 -8
- package/lib/commands/whoami.d.ts.map +1 -1
- package/lib/commands/whoami.js +39 -48
- package/lib/commands/whoami.js.map +1 -1
- package/lib/generate/curl2sdl.d.ts +8 -8
- package/lib/generate/curl2sdl.d.ts.map +1 -1
- package/lib/generate/curl2sdl.js +16 -20
- package/lib/generate/curl2sdl.js.map +1 -1
- package/lib/generate/flags.d.ts +11 -11
- package/lib/generate/flags.d.ts.map +1 -1
- package/lib/generate/flags.js +16 -17
- package/lib/generate/flags.js.map +1 -1
- package/lib/generate/flow2sdl.d.ts +5 -5
- package/lib/generate/flow2sdl.d.ts.map +1 -1
- package/lib/generate/flow2sdl.js +13 -19
- package/lib/generate/flow2sdl.js.map +1 -1
- package/lib/generate/graphql2sdl.d.ts +5 -5
- package/lib/generate/graphql2sdl.d.ts.map +1 -1
- package/lib/generate/graphql2sdl.js +22 -28
- package/lib/generate/graphql2sdl.js.map +1 -1
- package/lib/generate/helpers.d.ts +5 -5
- package/lib/generate/helpers.d.ts.map +1 -1
- package/lib/generate/helpers.js +39 -44
- package/lib/generate/helpers.js.map +1 -1
- package/lib/generate/import-command.d.ts +7 -13
- package/lib/generate/import-command.d.ts.map +1 -1
- package/lib/generate/import-command.js +51 -52
- package/lib/generate/import-command.js.map +1 -1
- package/lib/generate/openapi2sdl.d.ts +4 -4
- package/lib/generate/openapi2sdl.d.ts.map +1 -1
- package/lib/generate/openapi2sdl.js +10 -16
- package/lib/generate/openapi2sdl.js.map +1 -1
- package/lib/generate/questions.d.ts.map +1 -1
- package/lib/generate/questions.js +4 -7
- package/lib/generate/questions.js.map +1 -1
- package/lib/generate/sql2sdl.d.ts +13 -13
- package/lib/generate/sql2sdl.d.ts.map +1 -1
- package/lib/generate/sql2sdl.js +13 -16
- package/lib/generate/sql2sdl.js.map +1 -1
- package/lib/hooks/init/version.d.ts +1 -1
- package/lib/hooks/init/version.d.ts.map +1 -1
- package/lib/hooks/init/version.js +11 -9
- package/lib/hooks/init/version.js.map +1 -1
- package/lib/hooks/prerun/check-upgrade.d.ts +1 -1
- package/lib/hooks/prerun/check-upgrade.d.ts.map +1 -1
- package/lib/hooks/prerun/check-upgrade.js +42 -46
- package/lib/hooks/prerun/check-upgrade.js.map +1 -1
- package/lib/hooks/prerun/ensure-config-file.d.ts +1 -1
- package/lib/hooks/prerun/ensure-config-file.d.ts.map +1 -1
- package/lib/hooks/prerun/ensure-config-file.js +9 -11
- package/lib/hooks/prerun/ensure-config-file.js.map +1 -1
- package/lib/hooks/prerun/ensure-permissions.d.ts +1 -1
- package/lib/hooks/prerun/ensure-permissions.d.ts.map +1 -1
- package/lib/hooks/prerun/ensure-permissions.js +15 -11
- package/lib/hooks/prerun/ensure-permissions.js.map +1 -1
- package/lib/index.js +1 -5
- package/lib/index.js.map +1 -1
- package/lib/shared/actions.d.ts +2 -2
- package/lib/shared/actions.d.ts.map +1 -1
- package/lib/shared/actions.js +15 -21
- package/lib/shared/actions.js.map +1 -1
- package/lib/shared/configuration.d.ts +5 -3
- package/lib/shared/configuration.d.ts.map +1 -1
- package/lib/shared/configuration.js +39 -52
- package/lib/shared/configuration.js.map +1 -1
- package/lib/shared/constants.d.ts +7 -4
- package/lib/shared/constants.d.ts.map +1 -1
- package/lib/shared/constants.js +70 -86
- package/lib/shared/constants.js.map +1 -1
- package/lib/shared/curl-parser.d.ts +2 -2
- package/lib/shared/curl-parser.d.ts.map +1 -1
- package/lib/shared/curl-parser.js +9 -13
- package/lib/shared/curl-parser.js.map +1 -1
- package/lib/shared/docker.d.ts +2 -4
- package/lib/shared/docker.d.ts.map +1 -1
- package/lib/shared/docker.js +40 -48
- package/lib/shared/docker.js.map +1 -1
- package/lib/shared/errors.js +7 -11
- package/lib/shared/errors.js.map +1 -1
- package/lib/shared/header-params-parser.d.ts +2 -4
- package/lib/shared/header-params-parser.d.ts.map +1 -1
- package/lib/shared/header-params-parser.js +23 -29
- package/lib/shared/header-params-parser.js.map +1 -1
- package/lib/shared/header.d.ts +7 -7
- package/lib/shared/header.d.ts.map +1 -1
- package/lib/shared/header.js +5 -10
- package/lib/shared/header.js.map +1 -1
- package/lib/shared/inquirer.d.ts +7 -6
- package/lib/shared/inquirer.d.ts.map +1 -1
- package/lib/shared/inquirer.js +29 -37
- package/lib/shared/inquirer.js.map +1 -1
- package/lib/shared/moniker.js +4 -9
- package/lib/shared/moniker.js.map +1 -1
- package/lib/shared/path-params-parser.d.ts +2 -2
- package/lib/shared/path-params-parser.d.ts.map +1 -1
- package/lib/shared/path-params-parser.js +6 -12
- package/lib/shared/path-params-parser.js.map +1 -1
- package/lib/shared/request-variables-parser.d.ts +4 -4
- package/lib/shared/request-variables-parser.d.ts.map +1 -1
- package/lib/shared/request-variables-parser.js +10 -14
- package/lib/shared/request-variables-parser.js.map +1 -1
- package/lib/shared/rmtemp.d.ts +1 -0
- package/lib/shared/rmtemp.d.ts.map +1 -1
- package/lib/shared/rmtemp.js +7 -10
- package/lib/shared/rmtemp.js.map +1 -1
- package/lib/shared/segment.d.ts +10 -0
- package/lib/shared/segment.d.ts.map +1 -0
- package/lib/shared/segment.js +162 -0
- package/lib/shared/segment.js.map +1 -0
- package/lib/shared/stepzen-sdk.d.ts +8 -8
- package/lib/shared/stepzen-sdk.d.ts.map +1 -1
- package/lib/shared/stepzen-sdk.js +27 -36
- package/lib/shared/stepzen-sdk.js.map +1 -1
- package/lib/shared/types.d.ts +13 -11
- package/lib/shared/types.d.ts.map +1 -1
- package/lib/shared/types.js +1 -2
- package/lib/shared/url-helpers.d.ts.map +1 -1
- package/lib/shared/url-helpers.js +7 -14
- package/lib/shared/url-helpers.js.map +1 -1
- package/lib/shared/utils.d.ts +2 -2
- package/lib/shared/utils.d.ts.map +1 -1
- package/lib/shared/utils.js +55 -71
- package/lib/shared/utils.js.map +1 -1
- package/lib/shared/validation.js +12 -17
- package/lib/shared/validation.js.map +1 -1
- package/lib/shared/workspace.d.ts +1 -1
- package/lib/shared/workspace.d.ts.map +1 -1
- package/lib/shared/workspace.js +34 -45
- package/lib/shared/workspace.js.map +1 -1
- package/lib/shared/zen-command.d.ts +5 -10
- package/lib/shared/zen-command.d.ts.map +1 -1
- package/lib/shared/zen-command.js +132 -113
- package/lib/shared/zen-command.js.map +1 -1
- package/oclif.manifest.json +1281 -945
- package/package.json +35 -33
- package/bin/dev +0 -23
package/lib/commands/upload.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
2
|
// This file contains the code for the `stepzen upload` command.
|
|
5
3
|
// The upload command transfers resources on your local file system
|
|
6
4
|
// to Stepzen. You have to upload your resources before you can
|
|
@@ -9,13 +7,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
7
|
// Resources that can be uploaded can be schemas or configurationsets.
|
|
10
8
|
// When uploaded, each resource is stored and referenced using a name
|
|
11
9
|
// provided by the user.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class Upload extends
|
|
10
|
+
import { Args, Flags } from '@oclif/core';
|
|
11
|
+
import { CLIError } from '@oclif/core/errors';
|
|
12
|
+
import chalk from 'chalk';
|
|
13
|
+
import { upload } from '../shared/actions.js';
|
|
14
|
+
import { tryZenCtl2ThenZenCtl1 } from '../shared/stepzen-sdk.js';
|
|
15
|
+
import ZenCommand from '../shared/zen-command.js';
|
|
16
|
+
export default class Upload extends ZenCommand {
|
|
17
|
+
static description = chalk `{yellow [DEPRECATED]} Upload a schema or a configuration set to StepZen.` +
|
|
18
|
+
chalk `\n{yellow {bold stepzen upload} is deprecated in favor of {bold stepzen deploy}}` +
|
|
19
|
+
chalk `\nStepZen CLI is moving away from a two-step "upload" + "deploy"` +
|
|
20
|
+
chalk ` flow to a single-step "deploy" flow.`;
|
|
21
|
+
// The uploaded resource is either a directory or a file. In case it is the former,
|
|
22
|
+
// it will be packaged into a zip archive and transferred.
|
|
23
|
+
static flags = {
|
|
24
|
+
...ZenCommand.flags,
|
|
25
|
+
dir: Flags.string({
|
|
26
|
+
description: 'A directory to upload',
|
|
27
|
+
exclusive: ['file'],
|
|
28
|
+
}),
|
|
29
|
+
file: Flags.string({ description: 'A file to upload', exclusive: ['dir'] }),
|
|
30
|
+
silent: Flags.boolean(),
|
|
31
|
+
};
|
|
32
|
+
// the type and name of the uploaded resource.
|
|
33
|
+
static args = {
|
|
34
|
+
type: Args.string({
|
|
35
|
+
required: true,
|
|
36
|
+
description: 'type',
|
|
37
|
+
options: ['configurationset', 'schema'],
|
|
38
|
+
}),
|
|
39
|
+
destination: Args.string({
|
|
40
|
+
description: 'destination',
|
|
41
|
+
required: true,
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
19
44
|
async run() {
|
|
20
45
|
const { args, flags } = await this.parse(Upload);
|
|
21
46
|
const type = args.type;
|
|
@@ -26,7 +51,7 @@ class Upload extends zen_command_1.default {
|
|
|
26
51
|
}
|
|
27
52
|
// Make sure that you definitely specify folder/name
|
|
28
53
|
if (args.destination.includes('/') === false) {
|
|
29
|
-
throw new
|
|
54
|
+
throw new CLIError('You must specify the folder/name you want to use');
|
|
30
55
|
}
|
|
31
56
|
const { configuration } = await this.ensureStepZenAccount({
|
|
32
57
|
nonInteractive: flags['non-interactive'],
|
|
@@ -34,25 +59,25 @@ class Upload extends zen_command_1.default {
|
|
|
34
59
|
let source;
|
|
35
60
|
if (type === 'configurationset') {
|
|
36
61
|
if (!flags.file) {
|
|
37
|
-
throw new
|
|
62
|
+
throw new CLIError('Please specify a source file with the --file flag');
|
|
38
63
|
}
|
|
39
64
|
source = flags.file;
|
|
40
65
|
}
|
|
41
66
|
else {
|
|
42
67
|
if (!flags.dir) {
|
|
43
|
-
throw new
|
|
68
|
+
throw new CLIError('Please specify a source directory with the --dir flag');
|
|
44
69
|
}
|
|
45
70
|
source = flags.dir;
|
|
46
71
|
}
|
|
47
72
|
if (!flags.silent) {
|
|
48
73
|
this.log('Uploading...');
|
|
49
74
|
}
|
|
50
|
-
const { result } = await
|
|
75
|
+
const { result } = await tryZenCtl2ThenZenCtl1(configuration, stepzen => {
|
|
51
76
|
if (stepzen.version === 'v2') {
|
|
52
|
-
throw new
|
|
77
|
+
throw new CLIError(chalk `{bold stepzen upload} is no longer supported.` +
|
|
53
78
|
chalk ` Please use {bold stepzen deploy} instead.`);
|
|
54
79
|
}
|
|
55
|
-
return
|
|
80
|
+
return upload(type, args.destination, source);
|
|
56
81
|
});
|
|
57
82
|
if (result.success) {
|
|
58
83
|
if (!flags.silent) {
|
|
@@ -61,36 +86,8 @@ class Upload extends zen_command_1.default {
|
|
|
61
86
|
}
|
|
62
87
|
else {
|
|
63
88
|
// Errors. Exit, and output the server's error result
|
|
64
|
-
throw new
|
|
89
|
+
throw new CLIError(JSON.stringify(result.errors) || 'An error occurred.');
|
|
65
90
|
}
|
|
66
91
|
}
|
|
67
92
|
}
|
|
68
|
-
exports.default = Upload;
|
|
69
|
-
Upload.description = chalk `{yellow [DEPRECATED]} Upload a schema or a configuration set to StepZen.` +
|
|
70
|
-
chalk `\n{yellow {bold stepzen upload} is deprecated in favor of {bold stepzen deploy}}` +
|
|
71
|
-
chalk `\nStepZen CLI is moving away from a two-step "upload" + "deploy"` +
|
|
72
|
-
chalk ` flow to a single-step "deploy" flow.`;
|
|
73
|
-
// The uploaded resource is either a directory or a file. In case it is the former,
|
|
74
|
-
// it will be packaged into a zip archive and transferred.
|
|
75
|
-
Upload.flags = {
|
|
76
|
-
...zen_command_1.default.flags,
|
|
77
|
-
dir: core_1.Flags.string({
|
|
78
|
-
description: 'A directory to upload',
|
|
79
|
-
exclusive: ['file'],
|
|
80
|
-
}),
|
|
81
|
-
file: core_1.Flags.string({ description: 'A file to upload', exclusive: ['dir'] }),
|
|
82
|
-
silent: core_1.Flags.boolean(),
|
|
83
|
-
};
|
|
84
|
-
// the type and name of the uploaded resource.
|
|
85
|
-
Upload.args = {
|
|
86
|
-
type: core_1.Args.string({
|
|
87
|
-
required: true,
|
|
88
|
-
description: 'type',
|
|
89
|
-
options: ['configurationset', 'schema'],
|
|
90
|
-
}),
|
|
91
|
-
destination: core_1.Args.string({
|
|
92
|
-
description: 'destination',
|
|
93
|
-
required: true,
|
|
94
|
-
}),
|
|
95
|
-
};
|
|
96
93
|
//# sourceMappingURL=upload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import ZenCommand from '../shared/zen-command';
|
|
1
|
+
import ZenCommand from '../shared/zen-command.js';
|
|
2
2
|
export default class Validate extends ZenCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static hidden: boolean;
|
|
5
5
|
static flags: {
|
|
6
|
-
|
|
7
|
-
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
6
|
+
[x: string]: import("@oclif/core/interfaces").Flag<any>;
|
|
8
7
|
};
|
|
9
8
|
static args: {
|
|
10
|
-
folder: import("@oclif/core/
|
|
9
|
+
folder: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
11
10
|
};
|
|
12
11
|
run(): Promise<void>;
|
|
13
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AASA,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,MAAM,CAAC,WAAW,SAA+B;IAEjD,MAAM,CAAC,MAAM,UAAO;IAEpB,MAAM,CAAC,KAAK;;MAEX;IAED,MAAM,CAAC,IAAI;;MAEV;IAEK,GAAG;CAmBV"}
|
package/lib/commands/validate.js
CHANGED
|
@@ -1,41 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
import { Args, ux } from '@oclif/core';
|
|
3
|
+
import { CLIError } from '@oclif/core/errors';
|
|
4
|
+
import { stitch, validate } from '@stepzen/transpiler';
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { rmtemp } from '../shared/rmtemp.js';
|
|
7
|
+
import { getDirectory, getStepZenExtensions } from '../shared/utils.js';
|
|
8
|
+
import ZenCommand from '../shared/zen-command.js';
|
|
9
|
+
export default class Validate extends ZenCommand {
|
|
10
|
+
static description = 'Validate a GraphQL schema.';
|
|
11
|
+
static hidden = true;
|
|
12
|
+
static flags = {
|
|
13
|
+
...ZenCommand.flags,
|
|
14
|
+
};
|
|
15
|
+
static args = {
|
|
16
|
+
folder: Args.string({ required: true }),
|
|
17
|
+
};
|
|
12
18
|
async run() {
|
|
13
19
|
const { args } = await this.parse(Validate);
|
|
14
|
-
const folder =
|
|
20
|
+
const folder = getDirectory(args.folder);
|
|
15
21
|
try {
|
|
16
|
-
const schema =
|
|
22
|
+
const schema = stitch(folder);
|
|
17
23
|
try {
|
|
18
|
-
|
|
19
|
-
extensions: await
|
|
24
|
+
validate(schema, {
|
|
25
|
+
extensions: await getStepZenExtensions(),
|
|
20
26
|
});
|
|
21
27
|
}
|
|
22
28
|
finally {
|
|
23
|
-
|
|
29
|
+
rmtemp(schema);
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
32
|
catch (error) {
|
|
27
|
-
|
|
28
|
-
throw new
|
|
33
|
+
ux.action.stop(chalk.red('fail'));
|
|
34
|
+
throw new CLIError(chalk.red(error));
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
|
-
exports.default = Validate;
|
|
33
|
-
Validate.description = 'Validate a GraphQL schema.';
|
|
34
|
-
Validate.hidden = true;
|
|
35
|
-
Validate.flags = {
|
|
36
|
-
...zen_command_1.default.flags,
|
|
37
|
-
};
|
|
38
|
-
Validate.args = {
|
|
39
|
-
folder: core_1.Args.string({ required: true }),
|
|
40
|
-
};
|
|
41
38
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAC,IAAI,EAAE,EAAE,EAAC,MAAM,aAAa,CAAA;AACpC,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAA;AACrE,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,MAAM,CAAC,WAAW,GAAG,4BAA4B,CAAA;IAEjD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAA;IAEpB,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,UAAU,CAAC,KAAK;KACpB,CAAA;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KACtC,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEzC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;YAC7B,IAAI,CAAC;gBACH,QAAQ,CAAC,MAAM,EAAE;oBACf,UAAU,EAAE,MAAM,oBAAoB,EAAE;iBACzC,CAAC,CAAA;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,MAAM,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;YACjC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC"}
|
package/lib/commands/whoami.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import ZenCommand from '../shared/zen-command';
|
|
1
|
+
import ZenCommand from '../shared/zen-command.js';
|
|
2
2
|
export default class WhoAmI extends ZenCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static flags: {
|
|
5
|
-
showkeys: import("@oclif/core/
|
|
6
|
-
account: import("@oclif/core/
|
|
7
|
-
adminkey: import("@oclif/core/
|
|
8
|
-
apikey: import("@oclif/core/
|
|
9
|
-
domain: import("@oclif/core/
|
|
10
|
-
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
11
|
-
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
5
|
+
showkeys: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
6
|
+
account: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
adminkey: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
apikey: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
domain: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
10
|
};
|
|
13
11
|
run(): Promise<undefined>;
|
|
14
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAQA,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAQA,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAC5C,MAAM,CAAC,WAAW,SAAmC;IAErD,MAAM,CAAC,KAAK;;;;;;MAsBX;IAEK,GAAG;CAwEV"}
|
package/lib/commands/whoami.js
CHANGED
|
@@ -1,16 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
import { Flags } from '@oclif/core';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { readConfiguration } from '../shared/configuration.js';
|
|
5
|
+
import { getZenServDomain } from '../shared/constants.js';
|
|
6
|
+
import { maskStepZenKey } from '../shared/utils.js';
|
|
7
|
+
import ZenCommand from '../shared/zen-command.js';
|
|
8
|
+
export default class WhoAmI extends ZenCommand {
|
|
9
|
+
static description = 'View your StepZen credentials.';
|
|
10
|
+
static flags = {
|
|
11
|
+
...ZenCommand.flags,
|
|
12
|
+
showkeys: Flags.boolean({
|
|
13
|
+
default: false,
|
|
14
|
+
exclusive: ['account', 'adminkey', 'apikey', 'domain'],
|
|
15
|
+
}),
|
|
16
|
+
account: Flags.boolean({
|
|
17
|
+
default: false,
|
|
18
|
+
exclusive: ['showkeys', 'adminkey', 'apikey', 'domain'],
|
|
19
|
+
}),
|
|
20
|
+
adminkey: Flags.boolean({
|
|
21
|
+
default: false,
|
|
22
|
+
exclusive: ['showkeys', 'account', 'apikey', 'domain'],
|
|
23
|
+
}),
|
|
24
|
+
apikey: Flags.boolean({
|
|
25
|
+
default: false,
|
|
26
|
+
exclusive: ['showkeys', 'account', 'adminkey', 'domain'],
|
|
27
|
+
}),
|
|
28
|
+
domain: Flags.boolean({
|
|
29
|
+
default: false,
|
|
30
|
+
exclusive: ['showkeys', 'account', 'adminkey', 'apikey'],
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
11
33
|
async run() {
|
|
12
34
|
const { flags } = await this.parse(WhoAmI);
|
|
13
|
-
const configuration = await
|
|
35
|
+
const configuration = await readConfiguration();
|
|
14
36
|
if (!('account' in configuration)) {
|
|
15
37
|
this.log('You are not logged in.');
|
|
16
38
|
const exitCode = flags.account || flags.adminkey || flags.apikey ? 1 : 0;
|
|
@@ -20,7 +42,7 @@ class WhoAmI extends zen_command_1.default {
|
|
|
20
42
|
this.log(`Account: ${chalk.bold(configuration.account)}`);
|
|
21
43
|
return;
|
|
22
44
|
}
|
|
23
|
-
const domain =
|
|
45
|
+
const domain = getZenServDomain(configuration, { includePort: true });
|
|
24
46
|
const details = {
|
|
25
47
|
domain,
|
|
26
48
|
account: `${configuration.account} `,
|
|
@@ -52,20 +74,14 @@ class WhoAmI extends zen_command_1.default {
|
|
|
52
74
|
return;
|
|
53
75
|
}
|
|
54
76
|
if (configuration.adminkey) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
else {
|
|
59
|
-
details.adminkey = (0, utils_1.maskStepZenKey)(configuration.adminkey);
|
|
60
|
-
}
|
|
77
|
+
details.adminkey = flags.showkeys
|
|
78
|
+
? configuration.adminkey
|
|
79
|
+
: maskStepZenKey(configuration.adminkey);
|
|
61
80
|
}
|
|
62
81
|
if (configuration.apikey) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
else {
|
|
67
|
-
details.apikey = (0, utils_1.maskStepZenKey)(configuration.apikey);
|
|
68
|
-
}
|
|
82
|
+
details.apikey = flags.showkeys
|
|
83
|
+
? configuration.apikey
|
|
84
|
+
: maskStepZenKey(configuration.apikey);
|
|
69
85
|
}
|
|
70
86
|
this.log();
|
|
71
87
|
this.log(`Domain: ${chalk.bold(details.domain)}`);
|
|
@@ -75,29 +91,4 @@ class WhoAmI extends zen_command_1.default {
|
|
|
75
91
|
this.log();
|
|
76
92
|
}
|
|
77
93
|
}
|
|
78
|
-
exports.default = WhoAmI;
|
|
79
|
-
WhoAmI.description = 'View your StepZen credentials.';
|
|
80
|
-
WhoAmI.flags = {
|
|
81
|
-
...zen_command_1.default.flags,
|
|
82
|
-
showkeys: core_1.Flags.boolean({
|
|
83
|
-
default: false,
|
|
84
|
-
exclusive: ['account', 'adminkey', 'apikey', 'domain'],
|
|
85
|
-
}),
|
|
86
|
-
account: core_1.Flags.boolean({
|
|
87
|
-
default: false,
|
|
88
|
-
exclusive: ['showkeys', 'adminkey', 'apikey', 'domain'],
|
|
89
|
-
}),
|
|
90
|
-
adminkey: core_1.Flags.boolean({
|
|
91
|
-
default: false,
|
|
92
|
-
exclusive: ['showkeys', 'account', 'apikey', 'domain'],
|
|
93
|
-
}),
|
|
94
|
-
apikey: core_1.Flags.boolean({
|
|
95
|
-
default: false,
|
|
96
|
-
exclusive: ['showkeys', 'account', 'adminkey', 'domain'],
|
|
97
|
-
}),
|
|
98
|
-
domain: core_1.Flags.boolean({
|
|
99
|
-
default: false,
|
|
100
|
-
exclusive: ['showkeys', 'account', 'adminkey', 'apikey'],
|
|
101
|
-
}),
|
|
102
|
-
};
|
|
103
94
|
//# sourceMappingURL=whoami.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAA;AACjD,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,UAAU;IAC5C,MAAM,CAAC,WAAW,GAAG,gCAAgC,CAAA;IAErD,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,UAAU,CAAC,KAAK;QACnB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACvD,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACxD,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACvD,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;SACzD,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;SACzD,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExC,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAA;QAC/C,IAAI,CAAC,CAAC,SAAS,IAAI,aAAa,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACxE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACzD,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAA;QACnE,MAAM,OAAO,GAAG;YACd,MAAM;YACN,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,IAAI;YACrC,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;SAClB,CAAA;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAChB,OAAM;QACR,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;gBAC/B,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACxB,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ;gBAC7B,CAAC,CAAC,aAAa,CAAC,MAAM;gBACtB,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACtD,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG,EAAE,CAAA;IACZ,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type { CurlArguments } from '../shared/curl-parser';
|
|
2
|
-
import type { HeaderInput } from '../shared/header';
|
|
3
|
-
import type { PathParam } from '../shared/path-params-parser';
|
|
4
|
-
import type { ErrorOr, MachineConfiguration } from '../shared/types';
|
|
5
|
-
import type { IntrospectionServiceResponse } from './helpers';
|
|
6
|
-
import type { CommonImportOptions } from './import-command';
|
|
7
|
-
export
|
|
1
|
+
import type { CurlArguments } from '../shared/curl-parser.js';
|
|
2
|
+
import type { HeaderInput } from '../shared/header.js';
|
|
3
|
+
import type { PathParam } from '../shared/path-params-parser.js';
|
|
4
|
+
import type { ErrorOr, MachineConfiguration } from '../shared/types.js';
|
|
5
|
+
import type { IntrospectionServiceResponse } from './helpers.js';
|
|
6
|
+
import type { CommonImportOptions } from './import-command.js';
|
|
7
|
+
export type CurlQueryParameter = {
|
|
8
8
|
name: string;
|
|
9
9
|
value: string;
|
|
10
10
|
context: string;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type CurlImportOptions = CommonImportOptions & {
|
|
13
13
|
curlArgs: CurlArguments;
|
|
14
14
|
queryName?: string;
|
|
15
15
|
rootType?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curl2sdl.d.ts","sourceRoot":"","sources":["../../src/generate/curl2sdl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"curl2sdl.d.ts","sourceRoot":"","sources":["../../src/generate/curl2sdl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,KAAK,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAA;AACrE,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAA;AAQ5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,QAAQ,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IAChC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,QAAQ,wEAQhB,iBAAiB,iBACL,oBAAoB,KAClC,QAAQ,QAAQ,4BAA4B,CAAC,CAoD/C,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,YACtB,WAAW,EAAE,cACV,SAAS,EAAE,YACb,MAAM,KACf,kBAAkB,EA6CpB,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,YAC5B,WAAW,EAAE,cACV,SAAS,EAAE,OAClB,MAAM,KACV,MAAM,GAAG,IAwCX,CAAA"}
|
package/lib/generate/curl2sdl.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const curl2sdl = async ({ curlArgs, queryName, rootType, typePrefix, pathParams, headers, }, configuration) => {
|
|
10
|
-
const { result, error } = await (0, helpers_1.queryIntrospectionService)((0, constants_1.getIntrospectionUrl)(configuration), {
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { flatMap, groupBy } from 'lodash-es';
|
|
4
|
+
import { getIntrospectionUrl } from '../shared/constants.js';
|
|
5
|
+
import { queryIntrospectionService } from './helpers.js';
|
|
6
|
+
export const curl2sdl = async ({ curlArgs, queryName, rootType, typePrefix, pathParams, headers, }, configuration) => {
|
|
7
|
+
const { result, error } = await queryIntrospectionService(getIntrospectionUrl(configuration), {
|
|
11
8
|
operation: 'getSDLFromCurl',
|
|
12
9
|
variables: {
|
|
13
10
|
command: {
|
|
@@ -55,7 +52,6 @@ const curl2sdl = async ({ curlArgs, queryName, rootType, typePrefix, pathParams,
|
|
|
55
52
|
}
|
|
56
53
|
return { result };
|
|
57
54
|
};
|
|
58
|
-
exports.curl2sdl = curl2sdl;
|
|
59
55
|
/**
|
|
60
56
|
* Collect together all query parameters from HTTP headers and from the
|
|
61
57
|
* pathname, and return them as a uniform list.
|
|
@@ -65,12 +61,12 @@ exports.curl2sdl = curl2sdl;
|
|
|
65
61
|
* @param {*} pathname full pathname of the REST endpoint
|
|
66
62
|
* @returns {*} combined list of query parameters in a uniform format
|
|
67
63
|
*/
|
|
68
|
-
const compileParameterList = (headers, pathParams, pathname) => {
|
|
64
|
+
export const compileParameterList = (headers, pathParams, pathname) => {
|
|
69
65
|
// Drop empty segments, including empty string before the leading slash
|
|
70
66
|
const pathSegments = pathname.split('/').filter(Boolean);
|
|
71
67
|
// For each header, make a list of the parameters it contains.
|
|
72
68
|
// `flatMap()` concatenates each header's param lists into a single list.
|
|
73
|
-
return (
|
|
69
|
+
return (flatMap(headers, header => {
|
|
74
70
|
// skip headers that don't contain parameters
|
|
75
71
|
if (!('parts' in header)) {
|
|
76
72
|
return [];
|
|
@@ -90,16 +86,17 @@ const compileParameterList = (headers, pathParams, pathname) => {
|
|
|
90
86
|
}
|
|
91
87
|
: null)
|
|
92
88
|
.filter(Boolean); // remove nulls
|
|
93
|
-
})
|
|
89
|
+
})
|
|
90
|
+
// eslint-disable-next-line unicorn/prefer-spread
|
|
91
|
+
.concat(
|
|
94
92
|
// Append the path parameters to the list, converting them to
|
|
95
93
|
// the `CurlyQueryParameter` structure as well.
|
|
96
94
|
pathParams.map(param => ({
|
|
97
95
|
name: param.name,
|
|
98
96
|
value: pathSegments[param.index],
|
|
99
97
|
context: `pathname ${chalk.dim(`(${pathname})`)}`,
|
|
100
|
-
})));
|
|
98
|
+
}))));
|
|
101
99
|
};
|
|
102
|
-
exports.compileParameterList = compileParameterList;
|
|
103
100
|
/**
|
|
104
101
|
* Check the header and path parameters for duplicates, and construct a
|
|
105
102
|
* user-friendly error message describing identified problems (if any).
|
|
@@ -111,15 +108,15 @@ exports.compileParameterList = compileParameterList;
|
|
|
111
108
|
* @returns {*} a message describing duplicate query parameters, or null if
|
|
112
109
|
* there are no duplicates
|
|
113
110
|
*/
|
|
114
|
-
const makeDuplicateParamsMessage = (headers, pathParams, url) => {
|
|
111
|
+
export const makeDuplicateParamsMessage = (headers, pathParams, url) => {
|
|
115
112
|
// Create a uniform list of query parameters from the headers and path
|
|
116
|
-
const parameters =
|
|
117
|
-
const errors = Object.entries(
|
|
113
|
+
const parameters = compileParameterList(headers, pathParams, new URL(url).pathname);
|
|
114
|
+
const errors = Object.entries(groupBy(parameters, 'name'))
|
|
118
115
|
// Create groups for each unique parameter name,
|
|
119
116
|
// and then sub-groups for each unique [name, value] tuple.
|
|
120
117
|
.map(([name, group]) => ({
|
|
121
118
|
name,
|
|
122
|
-
values: Object.entries(
|
|
119
|
+
values: Object.entries(groupBy(group, 'value')),
|
|
123
120
|
}))
|
|
124
121
|
// ignore the [name, value] tuples that occur only once
|
|
125
122
|
.filter(({ values }) => values.length > 1)
|
|
@@ -135,5 +132,4 @@ const makeDuplicateParamsMessage = (headers, pathParams, url) => {
|
|
|
135
132
|
}
|
|
136
133
|
return null;
|
|
137
134
|
};
|
|
138
|
-
exports.makeDuplicateParamsMessage = makeDuplicateParamsMessage;
|
|
139
135
|
//# sourceMappingURL=curl2sdl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curl2sdl.js","sourceRoot":"","sources":["../../src/generate/curl2sdl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"curl2sdl.js","sourceRoot":"","sources":["../../src/generate/curl2sdl.ts"],"names":[],"mappings":"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"}
|
package/lib/generate/flags.d.ts
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
* A helper to share flags between several import commands.
|
|
3
3
|
*/
|
|
4
4
|
export declare const ImportFlags: {
|
|
5
|
-
prefix: () => import("@oclif/core/
|
|
6
|
-
header: () => import("@oclif/core/
|
|
7
|
-
headerParam: () => import("@oclif/core/
|
|
8
|
-
dbHost: () => import("@oclif/core/
|
|
9
|
-
dbUser: () => import("@oclif/core/
|
|
10
|
-
dbPassword: () => import("@oclif/core/
|
|
11
|
-
dbDatabase: () => import("@oclif/core/
|
|
5
|
+
prefix: () => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
6
|
+
header: () => import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
headerParam: () => import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
dbHost: () => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
dbUser: () => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
dbPassword: () => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
dbDatabase: () => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
dbSchema: (opts?: {
|
|
13
13
|
default?: string;
|
|
14
|
-
}) => import("@oclif/core/
|
|
15
|
-
dbLinkTypes: () => import("@oclif/core/
|
|
16
|
-
dbInclude: () => import("@oclif/core/
|
|
17
|
-
dbUseDeprecatedNaming: () => import("@oclif/core/
|
|
14
|
+
}) => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
dbLinkTypes: () => import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
dbInclude: () => import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
dbUseDeprecatedNaming: () => import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/generate/flags.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/generate/flags.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;sBAoDL;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;;;;CAoCpC,CAAA"}
|