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
|
@@ -1,24 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { CLIError } from '@oclif/core/errors';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { ImportCommandBase } from '../../generate/import-command.js';
|
|
7
|
+
import { openapi2sdl } from '../../generate/openapi2sdl.js';
|
|
8
|
+
import { readConfiguration } from '../../shared/configuration.js';
|
|
9
|
+
import { STEPZEN_DISCORD_URL } from '../../shared/constants.js';
|
|
10
|
+
import * as inquirer from '../../shared/inquirer.js';
|
|
11
|
+
export default class ImportOpenApi extends ImportCommandBase {
|
|
12
|
+
static description = `Import a REST API from an OpenAPI spec as a subgraph into your GraphQL` +
|
|
13
|
+
` API.` +
|
|
14
|
+
`\n` +
|
|
15
|
+
chalk `\n{bold stepzen import openapi} automatically introspects an` +
|
|
16
|
+
` OpenAPI spec file, generates a GraphQL schema for accessing the REST` +
|
|
17
|
+
` API it describes through a StepZen API, and adds the generated types,` +
|
|
18
|
+
` queries, mutations and subscriptions for accessing this REST API` +
|
|
19
|
+
` through a StepZen API into your GraphQL schema.`;
|
|
15
20
|
get source() {
|
|
16
21
|
return 'openapi';
|
|
17
22
|
}
|
|
23
|
+
// OpenAPI import is not yet GA
|
|
24
|
+
static hidden = true;
|
|
25
|
+
static flags = {
|
|
26
|
+
...ImportCommandBase.flags,
|
|
27
|
+
};
|
|
28
|
+
static args = {
|
|
29
|
+
openapi: Args.string({
|
|
30
|
+
name: 'OpenAPI spec file (YAML or JSON)',
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
18
33
|
ensureOpenApiSpecFile(openapi, basedir) {
|
|
19
34
|
const abspath = path.resolve(basedir, openapi);
|
|
20
35
|
if (!fs.existsSync(abspath)) {
|
|
21
|
-
throw new
|
|
36
|
+
throw new CLIError(`File does not exist: cannot find the OpenAPI spec file ${openapi}` +
|
|
22
37
|
` in the workspace directory ${basedir}. Please make sure the file` +
|
|
23
38
|
` name is correct and the file exists.`);
|
|
24
39
|
}
|
|
@@ -26,7 +41,7 @@ class ImportOpenApi extends import_command_1.ImportCommandBase {
|
|
|
26
41
|
if (extension !== '.yaml' &&
|
|
27
42
|
extension !== '.yml' &&
|
|
28
43
|
extension !== '.json') {
|
|
29
|
-
throw new
|
|
44
|
+
throw new CLIError(chalk `The {bold ${extension}} file type is not supported.` +
|
|
30
45
|
chalk ` {bold stepzen import openapi} currently supports only YAML` +
|
|
31
46
|
chalk ` and JSON files.`);
|
|
32
47
|
}
|
|
@@ -36,7 +51,7 @@ class ImportOpenApi extends import_command_1.ImportCommandBase {
|
|
|
36
51
|
this.warn(chalk `\n{yellow {bold stepzen import openapi} is in preview and} ` +
|
|
37
52
|
chalk `{yellow does not support all OpenAPI features yet.}` +
|
|
38
53
|
`\n` +
|
|
39
|
-
chalk `{yellow We welcome your feedback on Discord (${
|
|
54
|
+
chalk `{yellow We welcome your feedback on Discord (${STEPZEN_DISCORD_URL})}`);
|
|
40
55
|
this.log();
|
|
41
56
|
if (args.openapi) {
|
|
42
57
|
this.ensureOpenApiSpecFile(args.openapi, workspace.directory);
|
|
@@ -56,7 +71,7 @@ class ImportOpenApi extends import_command_1.ImportCommandBase {
|
|
|
56
71
|
}
|
|
57
72
|
else {
|
|
58
73
|
if (flags['non-interactive']) {
|
|
59
|
-
throw new
|
|
74
|
+
throw new CLIError('Please provide an OpenAPI spec file.' +
|
|
60
75
|
chalk `\nSee more help with {bold stepzen import openapi --help}`);
|
|
61
76
|
}
|
|
62
77
|
// no parameters given: start an interactive prompt
|
|
@@ -75,9 +90,9 @@ class ImportOpenApi extends import_command_1.ImportCommandBase {
|
|
|
75
90
|
...interactiveOptions,
|
|
76
91
|
};
|
|
77
92
|
}
|
|
78
|
-
openapi2sdlOptions.openapi = fs.readFileSync(openapi2sdlOptions.openapi, '
|
|
79
|
-
const configuration = await
|
|
80
|
-
return this.wrapInProgressAndTimeout(
|
|
93
|
+
openapi2sdlOptions.openapi = fs.readFileSync(openapi2sdlOptions.openapi, 'utf8');
|
|
94
|
+
const configuration = await readConfiguration();
|
|
95
|
+
return this.wrapInProgressAndTimeout(openapi2sdl(openapi2sdlOptions, configuration));
|
|
81
96
|
}
|
|
82
97
|
async getImportOptionsInteractively(defaults = {}, basedir) {
|
|
83
98
|
const questions = inquirer.overrideDefaults([
|
|
@@ -88,9 +103,10 @@ class ImportOpenApi extends import_command_1.ImportCommandBase {
|
|
|
88
103
|
try {
|
|
89
104
|
this.ensureOpenApiSpecFile(input, basedir);
|
|
90
105
|
return true;
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
91
107
|
}
|
|
92
108
|
catch (error) {
|
|
93
|
-
return error
|
|
109
|
+
return error?.message || 'something went wrong';
|
|
94
110
|
}
|
|
95
111
|
},
|
|
96
112
|
},
|
|
@@ -101,23 +117,4 @@ class ImportOpenApi extends import_command_1.ImportCommandBase {
|
|
|
101
117
|
};
|
|
102
118
|
}
|
|
103
119
|
}
|
|
104
|
-
exports.default = ImportOpenApi;
|
|
105
|
-
ImportOpenApi.description = `Import a REST API from an OpenAPI spec as a subgraph into your GraphQL` +
|
|
106
|
-
` API.` +
|
|
107
|
-
`\n` +
|
|
108
|
-
chalk `\n{bold stepzen import openapi} automatically introspects an` +
|
|
109
|
-
` OpenAPI spec file, generates a GraphQL schema for accessing the REST` +
|
|
110
|
-
` API it describes through a StepZen API, and adds the generated types,` +
|
|
111
|
-
` queries, mutations and subscriptions for accessing this REST API` +
|
|
112
|
-
` through a StepZen API into your GraphQL schema.`;
|
|
113
|
-
// OpenAPI import is not yet GA
|
|
114
|
-
ImportOpenApi.hidden = true;
|
|
115
|
-
ImportOpenApi.flags = {
|
|
116
|
-
...import_command_1.ImportCommandBase.flags,
|
|
117
|
-
};
|
|
118
|
-
ImportOpenApi.args = {
|
|
119
|
-
openapi: core_1.Args.string({
|
|
120
|
-
name: 'OpenAPI spec file (YAML or JSON)',
|
|
121
|
-
}),
|
|
122
|
-
};
|
|
123
120
|
//# sourceMappingURL=openapi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/commands/import/openapi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../src/commands/import/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { CommonImportOptions
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import type { CommonImportOptions } from '../../generate/import-command.js';
|
|
2
|
+
import type { DBIntrospectionOptions, OraclesqlImportOptions } from '../../generate/sql2sdl.js';
|
|
3
|
+
import type { FlagsT } from '../../shared/types.js';
|
|
4
|
+
import { ImportCommandBase } from '../../generate/import-command.js';
|
|
5
|
+
type ParsedDsn = {
|
|
5
6
|
driver: string;
|
|
6
7
|
host: string;
|
|
7
8
|
user?: string;
|
|
@@ -10,41 +11,33 @@ declare type ParsedDsn = {
|
|
|
10
11
|
db?: string;
|
|
11
12
|
schema?: string;
|
|
12
13
|
};
|
|
13
|
-
|
|
14
|
+
type ParserSuccessResult = {
|
|
14
15
|
success: true;
|
|
15
16
|
value: ParsedDsn;
|
|
16
17
|
};
|
|
17
|
-
|
|
18
|
+
type ParserErrorResult = {
|
|
18
19
|
success: false;
|
|
19
20
|
message: string;
|
|
20
21
|
};
|
|
21
|
-
export
|
|
22
|
-
export
|
|
22
|
+
export type ParserResult = ParserSuccessResult | ParserErrorResult;
|
|
23
|
+
export type OracleSQLAnswers = Pick<OraclesqlImportOptions, 'host' | 'user' | 'password' | 'database' | 'schema' | 'linkTypes'>;
|
|
23
24
|
export default class ImportOracle extends ImportCommandBase {
|
|
24
25
|
get source(): "oracle";
|
|
25
26
|
static description: string;
|
|
26
27
|
static flags: {
|
|
27
|
-
'db-host': import("@oclif/core/
|
|
28
|
-
'db-user': import("@oclif/core/
|
|
29
|
-
'db-password': import("@oclif/core/
|
|
30
|
-
'db-database': import("@oclif/core/
|
|
31
|
-
'db-schema': import("@oclif/core/
|
|
32
|
-
'db-link-types': import("@oclif/core/
|
|
33
|
-
'db-include': import("@oclif/core/
|
|
34
|
-
'db-use-deprecated-2022-naming': import("@oclif/core/
|
|
35
|
-
dir: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
36
|
-
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
37
|
-
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
38
|
-
overwrite: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
39
|
-
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
40
|
-
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
28
|
+
'db-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
29
|
+
'db-user': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
|
+
'db-password': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
|
+
'db-database': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
|
+
'db-schema': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
'db-link-types': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
34
|
+
'db-include': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
35
|
+
'db-use-deprecated-2022-naming': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
41
36
|
};
|
|
42
37
|
static args: {
|
|
43
|
-
dsn: import("@oclif/core/
|
|
38
|
+
dsn: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
44
39
|
};
|
|
45
|
-
protected import(commonOptions: CommonImportOptions): Promise<import("../../shared/types").ErrorOr<import("../../generate/helpers").IntrospectionServiceResponse
|
|
46
|
-
message: string;
|
|
47
|
-
}>>;
|
|
40
|
+
protected import(commonOptions: CommonImportOptions): Promise<import("../../shared/types.js").ErrorOr<import("../../generate/helpers.js").IntrospectionServiceResponse>>;
|
|
48
41
|
getImportOptionsFromFlags(flags: FlagsT<typeof ImportOracle>): {
|
|
49
42
|
host: string | undefined;
|
|
50
43
|
user: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/commands/import/oracle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/commands/import/oracle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAU,MAAM,EAAC,MAAM,uBAAuB,CAAA;AAQ1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAA;AAOlE,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;CAChB,CAAA;AAED,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;AACD,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAA;AAElE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,sBAAsB,EACtB,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CACnE,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,IAAI,MAAM,aAET;IAED,MAAM,CAAC,WAAW,SAMkC;IAEpD,MAAM,CAAC,KAAK;;;;;;;;;MAUX;IAED,MAAM,CAAC,IAAI;;MASV;cAEe,MAAM,CAAC,aAAa,EAAE,mBAAmB;IAmFzD,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC;;;;;;;;;;IAmB5D,uBAAuB,CAAC,WAAW,EAAE,MAAM;;;;;;;IAoBrC,6BAA6B,CACjC,QAAQ,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACvC,OAAO,CAAC,gBAAgB,CAAC;IAgB5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IAwDnC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;CAqC7E"}
|
|
@@ -1,21 +1,45 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ImportOracle extends import_command_1.ImportCommandBase {
|
|
2
|
+
import { Args } 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 ImportOracle extends ImportCommandBase {
|
|
16
14
|
get source() {
|
|
17
15
|
return 'oracle';
|
|
18
16
|
}
|
|
17
|
+
static description = `Import a schema for a oracle data source into your GraphQL API.` +
|
|
18
|
+
`\n` +
|
|
19
|
+
chalk `\n{bold stepzen import oracle} automatically introspects an` +
|
|
20
|
+
` Oracle database, generates a GraphQL schema for accessing this` +
|
|
21
|
+
` database through a StepZen API, and merges the generated types,` +
|
|
22
|
+
` queries and mutations into your GraphQL schema.`;
|
|
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
|
+
};
|
|
34
|
+
static args = {
|
|
35
|
+
dsn: Args.string({
|
|
36
|
+
description: chalk `{italic (optional)} Data Source Name (DSN) of an Oracle database.` +
|
|
37
|
+
chalk `\nExample: {bold 'jdbc:oracle:thin:user/password@//host:port/db?currentschema=schema'}` +
|
|
38
|
+
chalk `\n` +
|
|
39
|
+
chalk `\nFlags, such as {bold --db-host}, override the corresponding` +
|
|
40
|
+
chalk ` parts of the DSN (if both are provided).`,
|
|
41
|
+
}),
|
|
42
|
+
};
|
|
19
43
|
async import(commonOptions) {
|
|
20
44
|
const { args, flags } = await this.parse(ImportOracle);
|
|
21
45
|
const nonInteractiveOptions = {
|
|
@@ -43,7 +67,7 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
43
67
|
}
|
|
44
68
|
else {
|
|
45
69
|
if (flags['non-interactive']) {
|
|
46
|
-
throw new
|
|
70
|
+
throw new CLIError('Please provide a Data Source Name (DSN) string for an Oracle database.' +
|
|
47
71
|
chalk `\nSee more help with {bold stepzen import oracle --help}`);
|
|
48
72
|
}
|
|
49
73
|
// no parameters given: start an interactive prompt
|
|
@@ -67,9 +91,9 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
67
91
|
...interactiveOptions,
|
|
68
92
|
};
|
|
69
93
|
}
|
|
70
|
-
const configuration = await
|
|
71
|
-
sql2sdlOptions.host =
|
|
72
|
-
return this.wrapInProgressAndTimeout(
|
|
94
|
+
const configuration = await readConfiguration();
|
|
95
|
+
sql2sdlOptions.host = rewriteLocalhostToHostGateway(configuration, sql2sdlOptions.host);
|
|
96
|
+
return this.wrapInProgressAndTimeout(sql2sdl(sql2sdlOptions, configuration));
|
|
73
97
|
}
|
|
74
98
|
getImportOptionsFromFlags(flags) {
|
|
75
99
|
const options = {
|
|
@@ -87,7 +111,7 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
87
111
|
},
|
|
88
112
|
};
|
|
89
113
|
// Remove `undefined`-valued properties
|
|
90
|
-
return
|
|
114
|
+
return pickBy(options, value => value !== undefined);
|
|
91
115
|
}
|
|
92
116
|
getImportOptionsFromDsn(possibleDsn) {
|
|
93
117
|
possibleDsn = possibleDsn.replace('jdbc:', '');
|
|
@@ -102,18 +126,18 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
102
126
|
schema: value.schema,
|
|
103
127
|
};
|
|
104
128
|
// Remove `undefined`-valued properties
|
|
105
|
-
return
|
|
129
|
+
return pickBy(options, value => value !== undefined);
|
|
106
130
|
}
|
|
107
|
-
throw new
|
|
131
|
+
throw new CLIError(parsed.message);
|
|
108
132
|
}
|
|
109
133
|
async getImportOptionsInteractively(defaults = {}) {
|
|
110
134
|
const questions = inquirer.overrideDefaults([
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
135
|
+
ImportQuestions.dbHost(),
|
|
136
|
+
ImportQuestions.dbUser(),
|
|
137
|
+
ImportQuestions.dbPassword(),
|
|
138
|
+
ImportQuestions.dbDatabase(),
|
|
139
|
+
ImportQuestions.dbSchema({ required: true }),
|
|
140
|
+
ImportQuestions.dbLinkTypes(),
|
|
117
141
|
], defaults);
|
|
118
142
|
return inquirer.prompt(`import-${this.source}`, questions);
|
|
119
143
|
}
|
|
@@ -132,13 +156,13 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
132
156
|
const matches = userInfo.match(userPasswordRegex);
|
|
133
157
|
if (matches) {
|
|
134
158
|
parsedDsn.user = matches[1]; // Extracted user
|
|
135
|
-
parsedDsn.password = matches[2].
|
|
159
|
+
parsedDsn.password = matches[2].replaceAll('"', ''); // Extracted password, removing quotes if present
|
|
136
160
|
}
|
|
137
161
|
// Extract host, port, and database from hostInfo
|
|
138
162
|
const separateHost = hostInfo.split('/');
|
|
139
163
|
const hostPort = separateHost[0].split(':');
|
|
140
164
|
parsedDsn.host = hostPort[0]; // Hostname
|
|
141
|
-
parsedDsn.port = parseInt(hostPort[1], 10); // Port number
|
|
165
|
+
parsedDsn.port = Number.parseInt(hostPort[1], 10); // Port number
|
|
142
166
|
parsedDsn.db = separateHost[1]; // Database name
|
|
143
167
|
}
|
|
144
168
|
else {
|
|
@@ -146,7 +170,7 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
146
170
|
const [hostInfo, dbInfo] = urlWithoutPrefix.split('/');
|
|
147
171
|
const [host, port] = hostInfo.split(':');
|
|
148
172
|
parsedDsn.host = host; // Hostname
|
|
149
|
-
parsedDsn.port = parseInt(port, 10); // Port number
|
|
173
|
+
parsedDsn.port = Number.parseInt(port, 10); // Port number
|
|
150
174
|
parsedDsn.db = dbInfo; // Database name
|
|
151
175
|
}
|
|
152
176
|
// Parse query params (if any)
|
|
@@ -160,12 +184,12 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
160
184
|
}
|
|
161
185
|
return {
|
|
162
186
|
success: false,
|
|
163
|
-
message: isValidDsn.message
|
|
187
|
+
message: isValidDsn.message || 'Cannot parse DSN',
|
|
164
188
|
};
|
|
165
189
|
}
|
|
166
190
|
isValidJdbcOracleUrl(dsnString) {
|
|
167
191
|
const patterns = [
|
|
168
|
-
/^oracle:thin:(\w+\/)?[^\s@]+@\/\/[\w.-]+:\d+\/[\w-]+(\?currentschema=[\w-]+)?$/,
|
|
192
|
+
/^oracle:thin:(\w+\/)?[^\s@]+@\/\/[\w.-]+:\d+\/[\w-]+(\?currentschema=[\w-]+)?$/, // With user/password in the path
|
|
169
193
|
/^oracle:thin:@[\w.-]+:\d+\/\w+(\?user=\w+&password=[^&]+(¤tschema=\w+)?)?$/, // With user/password as query parameters
|
|
170
194
|
];
|
|
171
195
|
// Check if the DSN string matches any of the patterns
|
|
@@ -202,31 +226,4 @@ class ImportOracle extends import_command_1.ImportCommandBase {
|
|
|
202
226
|
return { status: true };
|
|
203
227
|
}
|
|
204
228
|
}
|
|
205
|
-
exports.default = ImportOracle;
|
|
206
|
-
ImportOracle.description = `Import a schema for a oracle data source into your GraphQL API.` +
|
|
207
|
-
`\n` +
|
|
208
|
-
chalk `\n{bold stepzen import oracle} automatically introspects an` +
|
|
209
|
-
` Oracle database, generates a GraphQL schema for accessing this` +
|
|
210
|
-
` database through a StepZen API, and merges the generated types,` +
|
|
211
|
-
` queries and mutations into your GraphQL schema.`;
|
|
212
|
-
ImportOracle.flags = {
|
|
213
|
-
...import_command_1.ImportCommandBase.flags,
|
|
214
|
-
'db-host': flags_1.ImportFlags.dbHost(),
|
|
215
|
-
'db-user': flags_1.ImportFlags.dbUser(),
|
|
216
|
-
'db-password': flags_1.ImportFlags.dbPassword(),
|
|
217
|
-
'db-database': flags_1.ImportFlags.dbDatabase(),
|
|
218
|
-
'db-schema': flags_1.ImportFlags.dbSchema(),
|
|
219
|
-
'db-link-types': flags_1.ImportFlags.dbLinkTypes(),
|
|
220
|
-
'db-include': flags_1.ImportFlags.dbInclude(),
|
|
221
|
-
'db-use-deprecated-2022-naming': flags_1.ImportFlags.dbUseDeprecatedNaming(),
|
|
222
|
-
};
|
|
223
|
-
ImportOracle.args = {
|
|
224
|
-
dsn: core_1.Args.string({
|
|
225
|
-
description: chalk `{italic (optional)} Data Source Name (DSN) of an Oracle database.` +
|
|
226
|
-
chalk `\nExample: {bold 'jdbc:oracle:thin:user/password@//host:port/db?currentschema=schema'}` +
|
|
227
|
-
chalk `\n` +
|
|
228
|
-
chalk `\nFlags, such as {bold --db-host}, override the corresponding` +
|
|
229
|
-
chalk ` parts of the DSN (if both are provided).`,
|
|
230
|
-
}),
|
|
231
|
-
};
|
|
232
229
|
//# sourceMappingURL=oracle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../src/commands/import/oracle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../src/commands/import/oracle.ts"],"names":[],"mappings":"AAAA,iCAAiC;AASjC,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAChC,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAC,6BAA6B,EAAC,MAAM,uBAAuB,CAAA;AA2BnE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,IAAI,MAAM;QACR,OAAO,QAAiB,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,WAAW,GAChB,iEAAiE;QACjE,IAAI;QACJ,KAAK,CAAA,6DAA6D;QAClE,iEAAiE;QACjE,kEAAkE;QAClE,kDAAkD,CAAA;IAEpD,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,iBAAiB,CAAC,KAAK;QAC1B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE;QAC/B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE;QAC/B,aAAa,EAAE,WAAW,CAAC,UAAU,EAAE;QACvC,aAAa,EAAE,WAAW,CAAC,UAAU,EAAE;QACvC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;QACnC,eAAe,EAAE,WAAW,CAAC,WAAW,EAAE;QAC1C,YAAY,EAAE,WAAW,CAAC,SAAS,EAAE;QACrC,+BAA+B,EAAE,WAAW,CAAC,qBAAqB,EAAE;KACrE,CAAA;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YACf,WAAW,EACT,KAAK,CAAA,mEAAmE;gBACxE,KAAK,CAAA,wFAAwF;gBAC7F,KAAK,CAAA,IAAI;gBACT,KAAK,CAAA,+DAA+D;gBACpE,KAAK,CAAA,2CAA2C;SACnD,CAAC;KACH,CAAA;IAES,KAAK,CAAC,MAAM,CAAC,aAAkC;QACvD,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAEpD,MAAM,qBAAqB,GAAG;YAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;SACzC,CAAA;QAED,MAAM,eAAe,GAA8C;YACjE,MAAM;YACN,MAAM;YACN,UAAU;YACV,UAAU;YACV,QAAQ;SACT,CAAA;QACD,MAAM,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAC9C,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,SAAS,CACtD,CAAA;QACD,IAAI,cAAsC,CAAA;QAC1C,IAAI,kBAAkB,EAAE,CAAC;YACvB,oFAAoF;YACpF,MAAM,0BAA0B,GAC9B,qBAMG,CAAA;YAEL,wBAAwB;YACxB,cAAc,GAAG;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,aAAa;gBAChB,GAAG,0BAA0B;aAC9B,CAAA;QACH,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,QAAQ,CAChB,wEAAwE;oBACtE,KAAK,CAAA,0DAA0D,CAClE,CAAA;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,EAAE,CAAA;gBACV,IAAI,CAAC,GAAG,CACN,KAAK,CAAA,iCAAiC;oBACpC,KAAK,CAAC,GAAG,CACP,6DAA6D;wBAC3D,iEAAiE;wBACjE,iBAAiB,CACpB,CACJ,CAAA;gBACD,IAAI,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC;YAED,2EAA2E;YAC3E,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CACjE,qBAAqB,CACtB,CAAA;YAED,cAAc,GAAG;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,aAAa;gBAChB,oEAAoE;gBACpE,sEAAsE;gBACtE,0DAA0D;gBAC1D,GAAG,qBAAqB;gBACxB,GAAG,kBAAkB;aACtB,CAAA;QACH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAA;QAC/C,cAAc,CAAC,IAAI,GAAG,6BAA6B,CACjD,aAAa,EACb,cAAc,CAAC,IAAI,CACpB,CAAA;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,yBAAyB,CAAC,KAAkC;QAC1D,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;YACtB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;YACtB,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;YAC9B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;YAC9B,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;YAC1B,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC;YACjC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAsC;YACjE,oBAAoB,EAAE;gBACpB,iEAAiE;gBACjE,uDAAuD;gBACvD,MAAM,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACvC;SAC5B,CAAA;QACD,uCAAuC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAmB,CAAA;IACxE,CAAC;IAED,uBAAuB,CAAC,WAAmB;QACzC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAEzC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YAC1B,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAA;YACD,uCAAuC;YACvC,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAmB,CAAA;QACxE,CAAC;QAED,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,WAAsC,EAAE;QAExC,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CACzC;YACE,eAAe,CAAC,MAAM,EAAE;YACxB,eAAe,CAAC,MAAM,EAAE;YACxB,eAAe,CAAC,UAAU,EAAE;YAC5B,eAAe,CAAC,UAAU,EAAE;YAC5B,eAAe,CAAC,QAAQ,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;YAC1C,eAAe,CAAC,WAAW,EAAE;SAC9B,EACD,QAAQ,CACT,CAAA;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAA;IAC5D,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACjD,+BAA+B;QAC/B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,EAAC,MAAM,EAAE,kBAAkB,EAAc,CAAA;YAE3D,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAE7C,mFAAmF;YACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;YAE9D,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC1D,wFAAwF;gBACxF,MAAM,iBAAiB,GAAG,sBAAsB,CAAA;gBAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAEjD,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,iBAAiB;oBAC7C,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAAC,iDAAiD;gBACvG,CAAC;gBAED,iDAAiD;gBACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAE3C,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,WAAW;gBACxC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,cAAc;gBAChE,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA,CAAC,gBAAgB;YACjD,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACtD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAExC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAA,CAAC,WAAW;gBACjC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,CAAC,cAAc;gBACzD,SAAS,CAAC,EAAE,GAAG,MAAM,CAAA,CAAC,gBAAgB;YACxC,CAAC;YAED,8BAA8B;YAC9B,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;gBAC/C,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAA;gBACrD,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAA;gBACjE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,MAAM,CAAA;YACpE,CAAC;YAED,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC,CAAA;QAC1C,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,kBAAkB;SAClD,CAAA;IACH,CAAC;IAED,oBAAoB,CAAC,SAAiB;QACpC,MAAM,QAAQ,GAAG;YACf,gFAAgF,EAAE,iCAAiC;YACnH,kFAAkF,EAAE,yCAAyC;SAC9H,CAAA;QACD,sDAAsD;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAEjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,OAAO,CAAA;YAEX,IAAI,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE,CAAC;gBACnD,OAAO,GAAG,+BAA+B,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;gBAChE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5B,OAAO,GAAG,sEAAsE,CAAA;oBAClF,CAAC;yBAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACtC,OAAO,GAAG,6CAA6C,CAAA;oBACzD,CAAC;yBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnC,OAAO,GAAG,0CAA0C,CAAA;oBACtD,CAAC;yBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnC,OAAO,GAAG,2CAA2C,CAAA;oBACvD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,mDAAmD;oBACnD,OAAO,GAAG,2CAA2C,CAAA;gBACvD,CAAC;YACH,CAAC;YAED,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC,CAAA;QACjC,CAAC;QAED,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;IACvB,CAAC"}
|
|
@@ -1,34 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
5
|
-
export
|
|
1
|
+
import type { CommonImportOptions } from '../../generate/import-command.js';
|
|
2
|
+
import type { DBIntrospectionOptions, PostgresqlImportOptions } from '../../generate/sql2sdl.js';
|
|
3
|
+
import type { FlagsT } from '../../shared/types.js';
|
|
4
|
+
import { ImportCommandBase } from '../../generate/import-command.js';
|
|
5
|
+
export type PostgreSQLAnswers = Pick<PostgresqlImportOptions, 'host' | 'user' | 'password' | 'database' | 'schema' | 'linkTypes'>;
|
|
6
6
|
export default class ImportPostgreSQL extends ImportCommandBase {
|
|
7
7
|
static description: string;
|
|
8
8
|
get source(): "postgresql";
|
|
9
9
|
static aliases: string[];
|
|
10
10
|
static flags: {
|
|
11
|
-
'db-host': import("@oclif/core/
|
|
12
|
-
'db-user': import("@oclif/core/
|
|
13
|
-
'db-password': import("@oclif/core/
|
|
14
|
-
'db-database': import("@oclif/core/
|
|
15
|
-
'db-schema': import("@oclif/core/
|
|
16
|
-
'db-link-types': import("@oclif/core/
|
|
17
|
-
'db-include': import("@oclif/core/
|
|
18
|
-
'db-use-deprecated-2022-naming': import("@oclif/core/
|
|
19
|
-
dir: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
20
|
-
silent: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
21
|
-
name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
22
|
-
overwrite: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
23
|
-
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
24
|
-
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
'db-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
'db-user': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
'db-password': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
'db-database': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
'db-schema': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
'db-link-types': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
'db-include': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
'db-use-deprecated-2022-naming': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
25
19
|
};
|
|
26
20
|
static args: {
|
|
27
|
-
dsn: import("@oclif/core/
|
|
21
|
+
dsn: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
28
22
|
};
|
|
29
|
-
protected import(commonOptions: CommonImportOptions): Promise<import("../../shared/types").ErrorOr<import("../../generate/helpers").IntrospectionServiceResponse
|
|
30
|
-
message: string;
|
|
31
|
-
}>>;
|
|
23
|
+
protected import(commonOptions: CommonImportOptions): Promise<import("../../shared/types.js").ErrorOr<import("../../generate/helpers.js").IntrospectionServiceResponse>>;
|
|
32
24
|
getImportOptionsFromFlags(flags: FlagsT<typeof ImportPostgreSQL>): {
|
|
33
25
|
host: string | undefined;
|
|
34
26
|
user: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../../src/commands/import/postgresql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../../src/commands/import/postgresql.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAU,MAAM,EAAC,MAAM,uBAAuB,CAAA;AAS1D,OAAO,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAA;AAOlE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,uBAAuB,EACvB,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CACnE,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,iBAAiB;IAC7D,MAAM,CAAC,WAAW,SAMkC;IAEpD,IAAI,MAAM,iBAET;IAED,MAAM,CAAC,OAAO,WAAsB;IAEpC,MAAM,CAAC,KAAK;;;;;;;;;MAUX;IAED,MAAM,CAAC,IAAI;;MASV;cAEe,MAAM,CAAC,aAAa,EAAE,mBAAmB;IAmFzD,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,gBAAgB,CAAC;;;;;;;;;;IAoBhE,uBAAuB,CAAC,WAAW,EAAE,MAAM;;;;;;;IAsBrC,6BAA6B,CACjC,QAAQ,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACxC,OAAO,CAAC,iBAAiB,CAAC;CAe9B"}
|