stepzen 0.44.0 → 0.45.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 +76 -71
- package/bin/dev.cmd +1 -1
- package/bin/dev.js +6 -0
- package/bin/{run → run.js} +8 -21
- 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
|
@@ -1,26 +1,72 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
import { Flags } from '@oclif/core';
|
|
3
|
+
import { CLIError } from '@oclif/core/errors';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { parseArgsStringToArgv as stringArgv } from 'string-argv';
|
|
6
|
+
import { curl2sdl, makeDuplicateParamsMessage } from '../../generate/curl2sdl.js';
|
|
7
|
+
import { ImportFlags } from '../../generate/flags.js';
|
|
8
|
+
import { parseHeaderFlags } from '../../generate/helpers.js';
|
|
9
|
+
import { ImportCommandBase } from '../../generate/import-command.js';
|
|
10
|
+
import { ImportQuestions } from '../../generate/questions.js';
|
|
11
|
+
import { readConfiguration } from '../../shared/configuration.js';
|
|
12
|
+
import { STEPZEN_DISCORD_URL } from '../../shared/constants.js';
|
|
13
|
+
import { parseCurlArgv } from '../../shared/curl-parser.js';
|
|
14
|
+
import * as inquirer from '../../shared/inquirer.js';
|
|
15
|
+
import { parsePathParamsPattern } from '../../shared/path-params-parser.js';
|
|
16
|
+
import { rewriteLocalhostToHostGatewayInURL } from '../../shared/utils.js';
|
|
17
|
+
export default class ImportCurl extends ImportCommandBase {
|
|
18
|
+
static description = `Import a schema for a REST endpoint into your GraphQL API (uses the curl` +
|
|
19
|
+
` syntax).` +
|
|
20
|
+
`\n` +
|
|
21
|
+
chalk `\n{bold stepzen import curl} automatically introspects a REST` +
|
|
22
|
+
` endpoint, generates a GraphQL schema for accessing this endpoint` +
|
|
23
|
+
` through a StepZen API, and adds the generated types and a query` +
|
|
24
|
+
` field into your GraphQL schema.`;
|
|
21
25
|
get source() {
|
|
22
26
|
return 'curl';
|
|
23
27
|
}
|
|
28
|
+
static flags = {
|
|
29
|
+
...ImportCommandBase.flags,
|
|
30
|
+
prefix: ImportFlags.prefix(),
|
|
31
|
+
data: Flags.string({
|
|
32
|
+
char: 'd',
|
|
33
|
+
hidden: true,
|
|
34
|
+
aliases: ['data-ascii', 'data-raw', 'data-binary'],
|
|
35
|
+
multiple: true,
|
|
36
|
+
multipleNonGreedy: true,
|
|
37
|
+
}),
|
|
38
|
+
request: Flags.string({
|
|
39
|
+
char: 'X',
|
|
40
|
+
hidden: true,
|
|
41
|
+
}),
|
|
42
|
+
url: Flags.string({
|
|
43
|
+
hidden: true,
|
|
44
|
+
multiple: true,
|
|
45
|
+
multipleNonGreedy: true,
|
|
46
|
+
}),
|
|
47
|
+
header: ImportFlags.header(),
|
|
48
|
+
'header-param': ImportFlags.headerParam(),
|
|
49
|
+
'query-name': Flags.string({
|
|
50
|
+
description: 'Property name to add to the Query type as a way to' +
|
|
51
|
+
' access the imported endpoint',
|
|
52
|
+
}),
|
|
53
|
+
'query-type': Flags.string({
|
|
54
|
+
description: 'Name for the type returned by the curl request in the ' +
|
|
55
|
+
`generated schema. The name specified by ${chalk.bold('--query-type')} is not prefixed by ${chalk.bold('--prefix')} if both flags are present.`,
|
|
56
|
+
}),
|
|
57
|
+
'path-params': Flags.string({
|
|
58
|
+
description: `Specifies path parameters in the URL path.` +
|
|
59
|
+
` Can be formed by taking the original path and replacing the` +
|
|
60
|
+
` variable segments with ${chalk.bold('$paramName')} placeholders.` +
|
|
61
|
+
`\n` +
|
|
62
|
+
`\nExample:` +
|
|
63
|
+
`\nstepzen import curl https://example.com/users/jane/posts/12` +
|
|
64
|
+
` --path-params` +
|
|
65
|
+
` '/users/${chalk.bold('$userId')}/posts/${chalk.bold('$postId')}'`,
|
|
66
|
+
}),
|
|
67
|
+
};
|
|
68
|
+
// allow any number of arguments to support `import curl [url] [curl flags and options]`
|
|
69
|
+
static strict = false;
|
|
24
70
|
async import(commonOptions) {
|
|
25
71
|
const { flags, argv } = await this.parse(ImportCurl);
|
|
26
72
|
const nonInteractiveOptions = {
|
|
@@ -28,23 +74,23 @@ class ImportCurl extends import_command_1.ImportCommandBase {
|
|
|
28
74
|
rootType: flags['query-type'],
|
|
29
75
|
typePrefix: flags.prefix,
|
|
30
76
|
pathParams: flags['path-params'],
|
|
31
|
-
headers:
|
|
77
|
+
headers: parseHeaderFlags(flags.header, flags['header-param']),
|
|
32
78
|
};
|
|
33
79
|
let curl2sdlOptions;
|
|
34
80
|
if (argv.length > 0) {
|
|
35
81
|
// Non-empty argv means that the user has passed in a curl command
|
|
36
82
|
// => running non-interactively
|
|
37
|
-
const { result: curlArgs, error: curlError } =
|
|
83
|
+
const { result: curlArgs, error: curlError } = parseCurlArgv(argv);
|
|
38
84
|
if (curlError) {
|
|
39
|
-
throw new
|
|
85
|
+
throw new CLIError(curlError.message);
|
|
40
86
|
}
|
|
41
|
-
const { result: pathParams, error: pathParamsError } =
|
|
87
|
+
const { result: pathParams, error: pathParamsError } = parsePathParamsPattern(curlArgs.url, flags['path-params']);
|
|
42
88
|
if (pathParamsError) {
|
|
43
|
-
throw new
|
|
89
|
+
throw new CLIError(pathParamsError.message);
|
|
44
90
|
}
|
|
45
|
-
const maybeDuplicateParamsMessage =
|
|
91
|
+
const maybeDuplicateParamsMessage = makeDuplicateParamsMessage(nonInteractiveOptions.headers, pathParams, curlArgs.url);
|
|
46
92
|
if (maybeDuplicateParamsMessage) {
|
|
47
|
-
throw new
|
|
93
|
+
throw new CLIError(maybeDuplicateParamsMessage);
|
|
48
94
|
}
|
|
49
95
|
curl2sdlOptions = {
|
|
50
96
|
...commonOptions,
|
|
@@ -55,7 +101,7 @@ class ImportCurl extends import_command_1.ImportCommandBase {
|
|
|
55
101
|
}
|
|
56
102
|
else {
|
|
57
103
|
if (flags['non-interactive']) {
|
|
58
|
-
throw new
|
|
104
|
+
throw new CLIError('Please provide a REST endpoint URL or a full curl command.' +
|
|
59
105
|
chalk `\nSee more help with {bold stepzen import curl --help}`);
|
|
60
106
|
}
|
|
61
107
|
// no parameters given: start an interactive prompt
|
|
@@ -80,9 +126,9 @@ class ImportCurl extends import_command_1.ImportCommandBase {
|
|
|
80
126
|
],
|
|
81
127
|
};
|
|
82
128
|
}
|
|
83
|
-
const configuration = await
|
|
84
|
-
curl2sdlOptions.curlArgs.url =
|
|
85
|
-
const { result, error } = await this.wrapInProgressAndTimeout(
|
|
129
|
+
const configuration = await readConfiguration();
|
|
130
|
+
curl2sdlOptions.curlArgs.url = rewriteLocalhostToHostGatewayInURL(configuration, curl2sdlOptions.curlArgs.url);
|
|
131
|
+
const { result, error } = await this.wrapInProgressAndTimeout(curl2sdl(curl2sdlOptions, configuration));
|
|
86
132
|
if (error) {
|
|
87
133
|
return {
|
|
88
134
|
error: {
|
|
@@ -128,17 +174,19 @@ class ImportCurl extends import_command_1.ImportCommandBase {
|
|
|
128
174
|
return parsed;
|
|
129
175
|
}
|
|
130
176
|
catch (error) {
|
|
131
|
-
if (!(error instanceof
|
|
177
|
+
if (!(error instanceof CLIError && 'parse' in error)) {
|
|
132
178
|
throw error;
|
|
133
179
|
}
|
|
134
|
-
|
|
180
|
+
// see CLIParseError in @oclif/core/lib/parser/errors.d.ts
|
|
181
|
+
const { parse } = error;
|
|
182
|
+
const unsupportedFlags = parse.output?.nonExistentFlags;
|
|
135
183
|
if (!unsupportedFlags || unsupportedFlags.length === 0) {
|
|
136
184
|
throw error;
|
|
137
185
|
}
|
|
138
186
|
// show a curl-specific error message for unsupported flags
|
|
139
|
-
throw new
|
|
187
|
+
throw new CLIError(`Unsupported curl flag${unsupportedFlags.length > 1 ? 's' : ''}: ${unsupportedFlags.join(', ')}.` +
|
|
140
188
|
` If this is a blocker for you, please let us know on Discord` +
|
|
141
|
-
` (${
|
|
189
|
+
` (${STEPZEN_DISCORD_URL})`);
|
|
142
190
|
}
|
|
143
191
|
}
|
|
144
192
|
async getImportOptionsInteractively(defaults = {}) {
|
|
@@ -159,17 +207,17 @@ class ImportCurl extends import_command_1.ImportCommandBase {
|
|
|
159
207
|
name: 'rootType',
|
|
160
208
|
message: 'Query type name to use when generating schema (leave blank to use defaults)',
|
|
161
209
|
},
|
|
162
|
-
|
|
210
|
+
ImportQuestions.prefix(),
|
|
163
211
|
], defaults);
|
|
164
212
|
const answers = await inquirer.prompt('import-curl', questions);
|
|
165
|
-
const { result: curlArgs, error: curlError } =
|
|
213
|
+
const { result: curlArgs, error: curlError } = parseCurlArgv(stringArgv(answers.url));
|
|
166
214
|
if (curlError) {
|
|
167
215
|
this.log();
|
|
168
216
|
this.log(chalk.red('A problem occurred while parsing the curl command:\n', curlError.message), '\nPlease enter a URL or a supported curl command.');
|
|
169
217
|
this.log();
|
|
170
218
|
return this.getImportOptionsInteractively(answers);
|
|
171
219
|
}
|
|
172
|
-
const { result: pathParams, error: pathParamsError } =
|
|
220
|
+
const { result: pathParams, error: pathParamsError } = parsePathParamsPattern(curlArgs.url, answers.pathParams);
|
|
173
221
|
if (pathParamsError) {
|
|
174
222
|
this.log();
|
|
175
223
|
this.log(chalk.red('A problem occurred while parsing path parameters pattern:\n', pathParamsError.message));
|
|
@@ -195,52 +243,4 @@ class ImportCurl extends import_command_1.ImportCommandBase {
|
|
|
195
243
|
};
|
|
196
244
|
}
|
|
197
245
|
}
|
|
198
|
-
exports.default = ImportCurl;
|
|
199
|
-
ImportCurl.description = `Import a schema for a REST endpoint into your GraphQL API (uses the curl` +
|
|
200
|
-
` syntax).` +
|
|
201
|
-
`\n` +
|
|
202
|
-
chalk `\n{bold stepzen import curl} automatically introspects a REST` +
|
|
203
|
-
` endpoint, generates a GraphQL schema for accessing this endpoint` +
|
|
204
|
-
` through a StepZen API, and adds the generated types and a query` +
|
|
205
|
-
` field into your GraphQL schema.`;
|
|
206
|
-
ImportCurl.flags = {
|
|
207
|
-
...import_command_1.ImportCommandBase.flags,
|
|
208
|
-
prefix: flags_1.ImportFlags.prefix(),
|
|
209
|
-
data: core_1.Flags.string({
|
|
210
|
-
char: 'd',
|
|
211
|
-
hidden: true,
|
|
212
|
-
aliases: ['data-ascii', 'data-raw', 'data-binary'],
|
|
213
|
-
multiple: true,
|
|
214
|
-
}),
|
|
215
|
-
request: core_1.Flags.string({
|
|
216
|
-
char: 'X',
|
|
217
|
-
hidden: true,
|
|
218
|
-
}),
|
|
219
|
-
url: core_1.Flags.string({
|
|
220
|
-
hidden: true,
|
|
221
|
-
multiple: true,
|
|
222
|
-
}),
|
|
223
|
-
header: flags_1.ImportFlags.header(),
|
|
224
|
-
'header-param': flags_1.ImportFlags.headerParam(),
|
|
225
|
-
'query-name': core_1.Flags.string({
|
|
226
|
-
description: 'Property name to add to the Query type as a way to' +
|
|
227
|
-
' access the imported endpoint',
|
|
228
|
-
}),
|
|
229
|
-
'query-type': core_1.Flags.string({
|
|
230
|
-
description: 'Name for the type returned by the curl request in the ' +
|
|
231
|
-
`generated schema. The name specified by ${chalk.bold('--query-type')} is not prefixed by ${chalk.bold('--prefix')} if both flags are present.`,
|
|
232
|
-
}),
|
|
233
|
-
'path-params': core_1.Flags.string({
|
|
234
|
-
description: `Specifies path parameters in the URL path.` +
|
|
235
|
-
` Can be formed by taking the original path and replacing the` +
|
|
236
|
-
` variable segments with ${chalk.bold('$paramName')} placeholders.` +
|
|
237
|
-
`\n` +
|
|
238
|
-
`\nExample:` +
|
|
239
|
-
`\nstepzen import curl https://example.com/users/jane/posts/12` +
|
|
240
|
-
` --path-params` +
|
|
241
|
-
` '/users/${chalk.bold('$userId')}/posts/${chalk.bold('$postId')}'`,
|
|
242
|
-
}),
|
|
243
|
-
};
|
|
244
|
-
// allow any number of arguments to support `import curl [url] [curl flags and options]`
|
|
245
|
-
ImportCurl.strict = false;
|
|
246
246
|
//# sourceMappingURL=curl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curl.js","sourceRoot":"","sources":["../../../src/commands/import/curl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"curl.js","sourceRoot":"","sources":["../../../src/commands/import/curl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
5
|
-
|
|
1
|
+
import type { CommonImportOptions } from '../../generate/import-command.js';
|
|
2
|
+
import type { DBIntrospectionOptions, Db2sqlImportOptions } from '../../generate/sql2sdl.js';
|
|
3
|
+
import type { FlagsT } from '../../shared/types.js';
|
|
4
|
+
import { ImportCommandBase } from '../../generate/import-command.js';
|
|
5
|
+
type ParserSuccessResult = {
|
|
6
6
|
success: true;
|
|
7
7
|
value: ParsedDsn;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
type ParserErrorResult = {
|
|
10
10
|
success: false;
|
|
11
11
|
message: string;
|
|
12
12
|
};
|
|
13
|
-
export
|
|
14
|
-
|
|
13
|
+
export type ParserResult = ParserSuccessResult | ParserErrorResult;
|
|
14
|
+
type ParsedDsn = {
|
|
15
15
|
driver: string;
|
|
16
16
|
host: string;
|
|
17
17
|
user?: string;
|
|
@@ -21,33 +21,25 @@ declare type ParsedDsn = {
|
|
|
21
21
|
schema?: string;
|
|
22
22
|
sslConnection?: boolean;
|
|
23
23
|
};
|
|
24
|
-
export
|
|
24
|
+
export type Db2SQLAnswers = Pick<Db2sqlImportOptions, 'host' | 'user' | 'password' | 'database' | 'schema' | 'linkTypes' | 'sslConnection'>;
|
|
25
25
|
export default class ImportDb2SQL extends ImportCommandBase {
|
|
26
26
|
static description: string;
|
|
27
27
|
get source(): "db2";
|
|
28
28
|
static flags: {
|
|
29
|
-
'db-host': import("@oclif/core/
|
|
30
|
-
'db-user': import("@oclif/core/
|
|
31
|
-
'db-password': import("@oclif/core/
|
|
32
|
-
'db-database': import("@oclif/core/
|
|
33
|
-
'db-schema': import("@oclif/core/
|
|
34
|
-
'db-link-types': import("@oclif/core/
|
|
35
|
-
'db-include': import("@oclif/core/
|
|
36
|
-
'db-use-deprecated-2022-naming': import("@oclif/core/
|
|
37
|
-
'ssl-connection': import("@oclif/core/
|
|
38
|
-
dir: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
39
|
-
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
40
|
-
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
41
|
-
overwrite: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
42
|
-
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
43
|
-
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
29
|
+
'db-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
|
+
'db-user': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
|
+
'db-password': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
+
'db-database': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
'db-schema': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
|
+
'db-link-types': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
35
|
+
'db-include': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
36
|
+
'db-use-deprecated-2022-naming': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
37
|
+
'ssl-connection': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
44
38
|
};
|
|
45
39
|
static args: {
|
|
46
|
-
dsn: import("@oclif/core/
|
|
40
|
+
dsn: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
47
41
|
};
|
|
48
|
-
protected import(commonOptions: CommonImportOptions): Promise<import("../../shared/types").ErrorOr<import("../../generate/helpers").IntrospectionServiceResponse
|
|
49
|
-
message: string;
|
|
50
|
-
}>>;
|
|
42
|
+
protected import(commonOptions: CommonImportOptions): Promise<import("../../shared/types.js").ErrorOr<import("../../generate/helpers.js").IntrospectionServiceResponse>>;
|
|
51
43
|
getImportOptionsFromFlags(flags: FlagsT<typeof ImportDb2SQL>): {
|
|
52
44
|
host: string | undefined;
|
|
53
45
|
user: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db2.d.ts","sourceRoot":"","sources":["../../../src/commands/import/db2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"db2.d.ts","sourceRoot":"","sources":["../../../src/commands/import/db2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAU,MAAM,EAAC,MAAM,uBAAuB,CAAA;AAQ1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAA;AAOlE,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AACD,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAA;AAElE,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,mBAAmB,EACjB,MAAM,GACN,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,eAAe,CAClB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,MAAM,CAAC,WAAW,SAMkC;IAEpD,IAAI,MAAM,UAET;IAED,MAAM,CAAC,KAAK;;;;;;;;;;MAaX;IAED,MAAM,CAAC,IAAI;;MASV;cAEe,MAAM,CAAC,aAAa,EAAE,mBAAmB;IAuFzD,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC;;;;;;;;;;;IAoB5D,uBAAuB,CAAC,WAAW,EAAE,MAAM;;;;;;;;IAyBrC,6BAA6B,CACjC,QAAQ,GAAE,OAAO,CAAC,aAAa,CAAM,GACpC,OAAO,CAAC,aAAa,CAAC;IAkBzB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAuDnC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;CAoC1E"}
|
|
@@ -1,21 +1,48 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
import { Args, Flags } from '@oclif/core';
|
|
3
|
+
import { CLIError } from '@oclif/core/errors';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { pickBy } from 'lodash-es';
|
|
6
|
+
import { ImportFlags } from '../../generate/flags.js';
|
|
7
|
+
import { ImportCommandBase } from '../../generate/import-command.js';
|
|
8
|
+
import { ImportQuestions } from '../../generate/questions.js';
|
|
9
|
+
import { sql2sdl } from '../../generate/sql2sdl.js';
|
|
10
|
+
import { readConfiguration } from '../../shared/configuration.js';
|
|
11
|
+
import * as inquirer from '../../shared/inquirer.js';
|
|
12
|
+
import { rewriteLocalhostToHostGateway } from '../../shared/utils.js';
|
|
13
|
+
export default class ImportDb2SQL extends ImportCommandBase {
|
|
14
|
+
static description = `Import a schema for a Db2 data source into your GraphQL API.` +
|
|
15
|
+
`\n` +
|
|
16
|
+
chalk `\n{bold stepzen import db2} automatically introspects a` +
|
|
17
|
+
` Db2 database, generates a GraphQL schema for accessing this` +
|
|
18
|
+
` database through a StepZen API, and merges the generated types,` +
|
|
19
|
+
` queries and mutations into your GraphQL schema.`;
|
|
16
20
|
get source() {
|
|
17
21
|
return 'db2';
|
|
18
22
|
}
|
|
23
|
+
static flags = {
|
|
24
|
+
...ImportCommandBase.flags,
|
|
25
|
+
'db-host': ImportFlags.dbHost(),
|
|
26
|
+
'db-user': ImportFlags.dbUser(),
|
|
27
|
+
'db-password': ImportFlags.dbPassword(),
|
|
28
|
+
'db-database': ImportFlags.dbDatabase(),
|
|
29
|
+
'db-schema': ImportFlags.dbSchema(),
|
|
30
|
+
'db-link-types': ImportFlags.dbLinkTypes(),
|
|
31
|
+
'db-include': ImportFlags.dbInclude(),
|
|
32
|
+
'db-use-deprecated-2022-naming': ImportFlags.dbUseDeprecatedNaming(),
|
|
33
|
+
'ssl-connection': Flags.boolean({
|
|
34
|
+
description: 'Is SSL enabled?',
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
static args = {
|
|
38
|
+
dsn: Args.string({
|
|
39
|
+
description: chalk `{italic (optional)} Data Source Name (DSN) of a Db2 database.` +
|
|
40
|
+
chalk `\nExample: {bold 'jdbc:db2://host:port/db:user=username;password=password;schema=schema;sslConnection=true/false;'}` +
|
|
41
|
+
chalk `\n` +
|
|
42
|
+
chalk `\nFlags, such as {bold --db-host}, override the corresponding` +
|
|
43
|
+
chalk ` parts of the DSN (if both are provided).`,
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
19
46
|
async import(commonOptions) {
|
|
20
47
|
const { args, flags } = await this.parse(ImportDb2SQL);
|
|
21
48
|
const nonInteractiveOptions = {
|
|
@@ -44,7 +71,7 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
44
71
|
}
|
|
45
72
|
else {
|
|
46
73
|
if (flags['non-interactive']) {
|
|
47
|
-
throw new
|
|
74
|
+
throw new CLIError('Please provide a Data Source Name (DSN) string for a Db2 database.' +
|
|
48
75
|
chalk `\nSee more help with {bold stepzen import db2 --help}`);
|
|
49
76
|
}
|
|
50
77
|
// no parameters given: start an interactive prompt
|
|
@@ -68,9 +95,9 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
68
95
|
...interactiveOptions,
|
|
69
96
|
};
|
|
70
97
|
}
|
|
71
|
-
const configuration = await
|
|
72
|
-
sql2sdlOptions.host =
|
|
73
|
-
return this.wrapInProgressAndTimeout(
|
|
98
|
+
const configuration = await readConfiguration();
|
|
99
|
+
sql2sdlOptions.host = rewriteLocalhostToHostGateway(configuration, sql2sdlOptions.host);
|
|
100
|
+
return this.wrapInProgressAndTimeout(sql2sdl(sql2sdlOptions, configuration));
|
|
74
101
|
}
|
|
75
102
|
getImportOptionsFromFlags(flags) {
|
|
76
103
|
const options = {
|
|
@@ -89,7 +116,7 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
89
116
|
},
|
|
90
117
|
};
|
|
91
118
|
// Remove `undefined`-valued properties
|
|
92
|
-
return
|
|
119
|
+
return pickBy(options, value => value !== undefined);
|
|
93
120
|
}
|
|
94
121
|
getImportOptionsFromDsn(possibleDsn) {
|
|
95
122
|
/**
|
|
@@ -109,19 +136,19 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
109
136
|
sslConnection: value.sslConnection,
|
|
110
137
|
};
|
|
111
138
|
// Remove `undefined`-valued properties
|
|
112
|
-
return
|
|
139
|
+
return pickBy(options, value => value !== undefined);
|
|
113
140
|
}
|
|
114
|
-
throw new
|
|
141
|
+
throw new CLIError(parsed.message);
|
|
115
142
|
}
|
|
116
143
|
async getImportOptionsInteractively(defaults = {}) {
|
|
117
144
|
const questions = inquirer.overrideDefaults([
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
145
|
+
ImportQuestions.dbHost(),
|
|
146
|
+
ImportQuestions.dbUser(),
|
|
147
|
+
ImportQuestions.dbPassword(),
|
|
148
|
+
ImportQuestions.dbDatabase(),
|
|
149
|
+
ImportQuestions.dbSchema({ required: true }),
|
|
150
|
+
ImportQuestions.dbLinkTypes(),
|
|
151
|
+
ImportQuestions.sslConnection(),
|
|
125
152
|
], defaults);
|
|
126
153
|
return inquirer.prompt(`import-${this.source}`, questions);
|
|
127
154
|
}
|
|
@@ -136,12 +163,12 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
136
163
|
const seperateHost = urlWithoutPrefix.split('/');
|
|
137
164
|
const hostPort = seperateHost[0].split(':');
|
|
138
165
|
parsedDsn.host = hostPort[0];
|
|
139
|
-
parsedDsn.port = parseInt(hostPort[1], 10);
|
|
166
|
+
parsedDsn.port = Number.parseInt(hostPort[1], 10);
|
|
140
167
|
const manageParams = seperateHost[1].split(':');
|
|
141
168
|
parsedDsn.db = manageParams[0];
|
|
142
169
|
// Split by ; to separate key-value pairs
|
|
143
170
|
const keyValuePairs = manageParams[1].split(';');
|
|
144
|
-
|
|
171
|
+
for (const pair of keyValuePairs) {
|
|
145
172
|
const [key, value] = pair.split('=');
|
|
146
173
|
switch (key.toLowerCase()) {
|
|
147
174
|
case 'user':
|
|
@@ -159,7 +186,7 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
159
186
|
default:
|
|
160
187
|
break;
|
|
161
188
|
}
|
|
162
|
-
}
|
|
189
|
+
}
|
|
163
190
|
return {
|
|
164
191
|
success: true,
|
|
165
192
|
value: parsedDsn,
|
|
@@ -184,7 +211,7 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
184
211
|
}
|
|
185
212
|
else {
|
|
186
213
|
const urlWithoutPrefix = dsnString.replace(/^db2:\/\//i, '');
|
|
187
|
-
if (urlWithoutPrefix.
|
|
214
|
+
if (urlWithoutPrefix.at(-1) !== ';') {
|
|
188
215
|
// If not, add a semicolon at the end
|
|
189
216
|
message = `Missing ';' at the end of the url`;
|
|
190
217
|
}
|
|
@@ -208,34 +235,4 @@ class ImportDb2SQL extends import_command_1.ImportCommandBase {
|
|
|
208
235
|
return { status: true };
|
|
209
236
|
}
|
|
210
237
|
}
|
|
211
|
-
exports.default = ImportDb2SQL;
|
|
212
|
-
ImportDb2SQL.description = `Import a schema for a Db2 data source into your GraphQL API.` +
|
|
213
|
-
`\n` +
|
|
214
|
-
chalk `\n{bold stepzen import db2} automatically introspects a` +
|
|
215
|
-
` Db2 database, generates a GraphQL schema for accessing this` +
|
|
216
|
-
` database through a StepZen API, and merges the generated types,` +
|
|
217
|
-
` queries and mutations into your GraphQL schema.`;
|
|
218
|
-
ImportDb2SQL.flags = {
|
|
219
|
-
...import_command_1.ImportCommandBase.flags,
|
|
220
|
-
'db-host': flags_1.ImportFlags.dbHost(),
|
|
221
|
-
'db-user': flags_1.ImportFlags.dbUser(),
|
|
222
|
-
'db-password': flags_1.ImportFlags.dbPassword(),
|
|
223
|
-
'db-database': flags_1.ImportFlags.dbDatabase(),
|
|
224
|
-
'db-schema': flags_1.ImportFlags.dbSchema(),
|
|
225
|
-
'db-link-types': flags_1.ImportFlags.dbLinkTypes(),
|
|
226
|
-
'db-include': flags_1.ImportFlags.dbInclude(),
|
|
227
|
-
'db-use-deprecated-2022-naming': flags_1.ImportFlags.dbUseDeprecatedNaming(),
|
|
228
|
-
'ssl-connection': core_1.Flags.boolean({
|
|
229
|
-
description: 'Is SSL enabled?',
|
|
230
|
-
}),
|
|
231
|
-
};
|
|
232
|
-
ImportDb2SQL.args = {
|
|
233
|
-
dsn: core_1.Args.string({
|
|
234
|
-
description: chalk `{italic (optional)} Data Source Name (DSN) of a Db2 database.` +
|
|
235
|
-
chalk `\nExample: {bold 'jdbc:db2://host:port/db:user=username;password=password;schema=schema;sslConnection=true/false;'}` +
|
|
236
|
-
chalk `\n` +
|
|
237
|
-
chalk `\nFlags, such as {bold --db-host}, override the corresponding` +
|
|
238
|
-
chalk ` parts of the DSN (if both are provided).`,
|
|
239
|
-
}),
|
|
240
|
-
};
|
|
241
238
|
//# sourceMappingURL=db2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db2.js","sourceRoot":"","sources":["../../../src/commands/import/db2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"db2.js","sourceRoot":"","sources":["../../../src/commands/import/db2.ts"],"names":[],"mappings":"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"}
|