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/shared/utils.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const constants_1 = require("./constants");
|
|
16
|
-
const url_helpers_1 = require("./url-helpers");
|
|
2
|
+
import { CLIError } from '@oclif/core/errors';
|
|
3
|
+
import fetch from '@stepzen/fetch';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import debug from 'debug';
|
|
6
|
+
import fsx from 'fs-extra';
|
|
7
|
+
import fs from 'node:fs';
|
|
8
|
+
import os from 'node:os';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import prettier from 'prettier';
|
|
11
|
+
import { readConfiguration } from './configuration.js';
|
|
12
|
+
import { getZenServDomain, getZenServUrl, getZenServUrlTemplate, } from './constants.js';
|
|
13
|
+
import { isLocalhost, parseHost } from './url-helpers.js';
|
|
17
14
|
const SAMPLE_QUERY = `query SampleQuery { __schema { description queryType { fields {name} } } }`;
|
|
18
|
-
const getDirectory = (d = process.cwd()) => {
|
|
15
|
+
export const getDirectory = (d = process.cwd()) => {
|
|
19
16
|
let directory = d;
|
|
20
17
|
// If it starts with `~`, expand this
|
|
21
18
|
if (directory.startsWith('~')) {
|
|
@@ -26,25 +23,23 @@ const getDirectory = (d = process.cwd()) => {
|
|
|
26
23
|
directory = path.resolve(directory);
|
|
27
24
|
// If the path does not exist, throw an error
|
|
28
25
|
if (!fs.existsSync(directory)) {
|
|
29
|
-
throw new
|
|
26
|
+
throw new CLIError(`Cannot find ${directory}`);
|
|
30
27
|
}
|
|
31
28
|
return directory;
|
|
32
29
|
};
|
|
33
|
-
exports.getDirectory = getDirectory;
|
|
34
30
|
/**
|
|
35
31
|
* Replace the path prefix with `~` if it is inside the user's home directory.
|
|
36
32
|
*
|
|
37
33
|
* @param {*} absPath an absolute file or directory path
|
|
38
34
|
* @returns {*} the same path that possibly looks more friendly to users
|
|
39
35
|
*/
|
|
40
|
-
const homeRelative = (absPath) => {
|
|
36
|
+
export const homeRelative = (absPath) => {
|
|
41
37
|
let pretty = absPath;
|
|
42
38
|
if (absPath.startsWith(os.homedir())) {
|
|
43
|
-
pretty = '~' + absPath.
|
|
39
|
+
pretty = '~' + absPath.slice(os.homedir().length);
|
|
44
40
|
}
|
|
45
41
|
return pretty;
|
|
46
42
|
};
|
|
47
|
-
exports.homeRelative = homeRelative;
|
|
48
43
|
/**
|
|
49
44
|
* Replace the path prefix with `~` if it is inside the user's home directory.
|
|
50
45
|
*
|
|
@@ -52,31 +47,29 @@ exports.homeRelative = homeRelative;
|
|
|
52
47
|
* @param {*} workspace an absolute file or the workspace root
|
|
53
48
|
* @returns {*} the same path that possibly looks more friendly to users
|
|
54
49
|
*/
|
|
55
|
-
const workspaceRelative = (absPath, workspace) => {
|
|
50
|
+
export const workspaceRelative = (absPath, workspace) => {
|
|
56
51
|
let pretty = absPath;
|
|
57
52
|
if (absPath.startsWith(workspace)) {
|
|
58
|
-
pretty = '.' + absPath.
|
|
53
|
+
pretty = '.' + absPath.slice(workspace.length);
|
|
59
54
|
}
|
|
60
55
|
return pretty;
|
|
61
56
|
};
|
|
62
|
-
|
|
63
|
-
const getStepZenExtensions = async (configuration) => {
|
|
57
|
+
export const getStepZenExtensions = async (configuration) => {
|
|
64
58
|
if (!configuration) {
|
|
65
|
-
configuration = await
|
|
59
|
+
configuration = await readConfiguration();
|
|
66
60
|
}
|
|
67
|
-
const zenserv =
|
|
61
|
+
const zenserv = getZenServUrlTemplate(configuration).replace('{account}', 'stepzen');
|
|
68
62
|
const url = `${zenserv}/directives.graphql`;
|
|
69
|
-
const startedAt =
|
|
63
|
+
const startedAt = Date.now();
|
|
70
64
|
debug('stepzen:extensions')(`fetching StepZen extensions from ${url}`);
|
|
71
|
-
const response = await (
|
|
65
|
+
const response = await fetch(url);
|
|
72
66
|
const schema = await response.text();
|
|
73
67
|
const formatted = prettier.format(schema, { parser: 'graphql' });
|
|
74
|
-
const doneAt =
|
|
68
|
+
const doneAt = Date.now();
|
|
75
69
|
debug('stepzen:extensions')(`fetched extensions (${formatted.length} bytes, ${doneAt - startedAt} ms)`);
|
|
76
70
|
return formatted;
|
|
77
71
|
};
|
|
78
|
-
|
|
79
|
-
const validateEndpoint = (endpoint) => {
|
|
72
|
+
export const validateEndpoint = (endpoint) => {
|
|
80
73
|
const error = chalk `Expected the endpoint name to be of the format {bold folder/name},` +
|
|
81
74
|
chalk ` matching the pattern {bold ^[\\w-]+$}` +
|
|
82
75
|
chalk ` but got {bold ${endpoint}}.`;
|
|
@@ -85,50 +78,47 @@ const validateEndpoint = (endpoint) => {
|
|
|
85
78
|
const parts = endpoint.split('/');
|
|
86
79
|
if (parts.some(part => part.trim() === ''))
|
|
87
80
|
return error;
|
|
88
|
-
if (parts.some(part =>
|
|
81
|
+
if (parts.some(part => /^[\d_-]+/.test(part)))
|
|
89
82
|
return error;
|
|
90
|
-
if (parts.some(part =>
|
|
83
|
+
if (parts.some(part => !/^[\w-]+$/.test(part)))
|
|
91
84
|
return error;
|
|
92
85
|
return true;
|
|
93
86
|
};
|
|
94
|
-
|
|
95
|
-
const maskStepZenKey = (key) => {
|
|
87
|
+
export const maskStepZenKey = (key) => {
|
|
96
88
|
const parts = key.split('::');
|
|
97
89
|
const thirdPart = parts[2];
|
|
98
|
-
const firstTwoChars = thirdPart.
|
|
90
|
+
const firstTwoChars = thirdPart.slice(0, 2);
|
|
99
91
|
const lastTwoChars = thirdPart.slice(-2);
|
|
100
92
|
const stars = '*'.repeat(thirdPart.length - 4);
|
|
101
93
|
const maskedThirdPart = `${firstTwoChars}${stars}${lastTwoChars}`;
|
|
102
94
|
const masked = `${parts[0]}::${parts[1]}::${maskedThirdPart} `;
|
|
103
95
|
return masked;
|
|
104
96
|
};
|
|
105
|
-
|
|
106
|
-
const getFeatureFlag = (flag) => {
|
|
97
|
+
export const getFeatureFlag = (flag) => {
|
|
107
98
|
const value = process.env[flag];
|
|
108
99
|
if (value === undefined) {
|
|
109
100
|
return false;
|
|
110
101
|
}
|
|
111
102
|
return value.toLowerCase() !== 'false';
|
|
112
103
|
};
|
|
113
|
-
|
|
114
|
-
const hasWebDashboard = (configuration) => {
|
|
104
|
+
export const hasWebDashboard = (configuration) => {
|
|
115
105
|
// At the moment the Web StepZen Dashboard https://dashboard.stepzen.com only
|
|
116
106
|
// works with the endpoints deployed to the production GCP servers:
|
|
117
107
|
// stepzen.net
|
|
118
|
-
const hostname =
|
|
108
|
+
const hostname = getZenServDomain(configuration);
|
|
119
109
|
return hostname === 'stepzen.net' || hostname === 'steprz.net';
|
|
120
110
|
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
type: (0, exports.hasWebDashboard)(configuration) ? 'web' : 'none',
|
|
111
|
+
export const formatEndpointInfo = ({ configuration, endpoint, graphiql = {
|
|
112
|
+
type: hasWebDashboard(configuration) ? 'web' : 'none',
|
|
124
113
|
}, }) => {
|
|
125
114
|
const account = configuration.account;
|
|
126
|
-
const zenserv =
|
|
115
|
+
const zenserv = getZenServUrl(configuration);
|
|
127
116
|
const isPublic = account.startsWith('public');
|
|
128
117
|
const url = `${zenserv}/${endpoint}/__graphql`;
|
|
129
118
|
const subsurl = `${zenserv.replace(/^http/i, 'ws')}/stepzen-subscriptions/${endpoint}/__graphql`;
|
|
119
|
+
/* eslint-disable unicorn/no-array-push-push */
|
|
130
120
|
const lines = [];
|
|
131
|
-
const icon =
|
|
121
|
+
const icon = isLocalhost(zenserv) ? '💻' : isPublic ? '🌐' : '🔐';
|
|
132
122
|
lines.push(chalk ` {green ✓ ${icon} ${url}}`);
|
|
133
123
|
lines.push(chalk ` {green ✓ ${icon} ${subsurl}} {grey ({bold subscriptions})}`);
|
|
134
124
|
lines.push('');
|
|
@@ -170,10 +160,10 @@ const formatEndpointInfo = ({ configuration, endpoint, graphiql = {
|
|
|
170
160
|
lines.push(` ${graphiqlUrl}`);
|
|
171
161
|
}
|
|
172
162
|
lines.push('');
|
|
163
|
+
/* eslint-enable unicorn/no-array-push-push */
|
|
173
164
|
return lines.join('\n');
|
|
174
165
|
};
|
|
175
|
-
|
|
176
|
-
const parseSnowflakeAccountId = (accountId) => {
|
|
166
|
+
export const parseSnowflakeAccountId = (accountId) => {
|
|
177
167
|
if (!accountId) {
|
|
178
168
|
return { error: { message: 'Snowflake account identifier must not be empty' } };
|
|
179
169
|
}
|
|
@@ -197,10 +187,9 @@ const parseSnowflakeAccountId = (accountId) => {
|
|
|
197
187
|
},
|
|
198
188
|
};
|
|
199
189
|
};
|
|
200
|
-
exports.parseSnowflakeAccountId = parseSnowflakeAccountId;
|
|
201
190
|
// postgresql://ctluser:ctlpass@example.org/ctldb --> postgresql://ctluser:***@example.org/ctldb
|
|
202
191
|
// postgresql://example.org/ctldb?user=ctluser&password=crlpass --> postgresql://example.org/ctldb?user=ctluser&password=***
|
|
203
|
-
function maskPasswordInDsn(dsn) {
|
|
192
|
+
export function maskPasswordInDsn(dsn) {
|
|
204
193
|
try {
|
|
205
194
|
const url = new URL(dsn);
|
|
206
195
|
if (url.username) {
|
|
@@ -216,21 +205,19 @@ function maskPasswordInDsn(dsn) {
|
|
|
216
205
|
return dsn;
|
|
217
206
|
}
|
|
218
207
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
if (isValid && (0, url_helpers_1.isLocalhost)(host)) {
|
|
208
|
+
export function rewriteLocalhostToHostGateway(config, hostname) {
|
|
209
|
+
const { host, port, isValid } = parseHost(hostname);
|
|
210
|
+
if (isValid && isLocalhost(host)) {
|
|
223
211
|
if (config.serviceInstance &&
|
|
224
212
|
'zenctl2' in config.serviceInstance &&
|
|
225
|
-
|
|
213
|
+
isLocalhost(config.serviceInstance.zenctl2)) {
|
|
226
214
|
return `host.docker.internal${port ? `:${port}` : ''}`;
|
|
227
215
|
}
|
|
228
|
-
throw new
|
|
216
|
+
throw new CLIError(`${chalk.bold('stepzen import')} only supports loopback introspection when running a local service (see ${chalk.dim('stepzen service --help')} for more information)`);
|
|
229
217
|
}
|
|
230
218
|
return hostname;
|
|
231
219
|
}
|
|
232
|
-
|
|
233
|
-
function rewriteLocalhostToHostGatewayInURL(config, url) {
|
|
220
|
+
export function rewriteLocalhostToHostGatewayInURL(config, url) {
|
|
234
221
|
let parsed;
|
|
235
222
|
try {
|
|
236
223
|
parsed = new URL(url);
|
|
@@ -242,11 +229,9 @@ function rewriteLocalhostToHostGatewayInURL(config, url) {
|
|
|
242
229
|
parsed.host = rewriteLocalhostToHostGateway(config, parsed.host);
|
|
243
230
|
return parsed.toString();
|
|
244
231
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return prefix + text.replace(/\n/gm, `\n${prefix}`);
|
|
232
|
+
export function prependEachLine(text, prefix) {
|
|
233
|
+
return prefix + text.replaceAll(/\n/gm, `\n${prefix}`);
|
|
248
234
|
}
|
|
249
|
-
exports.prependEachLine = prependEachLine;
|
|
250
235
|
/**
|
|
251
236
|
* Create a Promise that completes within the given duration, unless
|
|
252
237
|
* cancelled.
|
|
@@ -254,15 +239,16 @@ exports.prependEachLine = prependEachLine;
|
|
|
254
239
|
* @param {*} ms milliseconds before completion
|
|
255
240
|
* @returns {*} a Promise
|
|
256
241
|
*/
|
|
257
|
-
function getTimeout(ms) {
|
|
242
|
+
export function getTimeout(ms) {
|
|
258
243
|
let timeoutId;
|
|
259
244
|
const promise = new Promise(resolve => {
|
|
245
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
246
|
+
// @ts-ignore: could not explain why TS would complain at this line
|
|
260
247
|
timeoutId = setTimeout(resolve, ms);
|
|
261
248
|
});
|
|
262
249
|
promise.cancel = () => clearTimeout(timeoutId);
|
|
263
250
|
return promise;
|
|
264
251
|
}
|
|
265
|
-
exports.getTimeout = getTimeout;
|
|
266
252
|
/**
|
|
267
253
|
*
|
|
268
254
|
* Check if an endpoint is up; if not 200 OK after given number of tries raise an
|
|
@@ -272,7 +258,7 @@ exports.getTimeout = getTimeout;
|
|
|
272
258
|
* @param {*} tries number of attempts at 3-second intervals
|
|
273
259
|
* @returns {*} a promise that completes if the service is up, otherwise fails
|
|
274
260
|
*/
|
|
275
|
-
async function probeEndpoint(url, tries = 5) {
|
|
261
|
+
export async function probeEndpoint(url, tries = 5) {
|
|
276
262
|
try {
|
|
277
263
|
debug('stepzen:utils')(chalk `fetching {cyan ${url}}`);
|
|
278
264
|
if (url.endsWith('graphql')) {
|
|
@@ -280,7 +266,7 @@ async function probeEndpoint(url, tries = 5) {
|
|
|
280
266
|
// introspection log; so send a trivial but fine introspection query
|
|
281
267
|
url += '?query={__schema {__typename}}';
|
|
282
268
|
}
|
|
283
|
-
const response = await (
|
|
269
|
+
const response = await fetch(url);
|
|
284
270
|
debug('stepzen:utils')(chalk `\t--> ${response.status}`);
|
|
285
271
|
if (response.status === 200) {
|
|
286
272
|
return;
|
|
@@ -295,10 +281,9 @@ async function probeEndpoint(url, tries = 5) {
|
|
|
295
281
|
await getTimeout(waitMillis);
|
|
296
282
|
return probeEndpoint(url, tries - 1);
|
|
297
283
|
}
|
|
298
|
-
throw new
|
|
284
|
+
throw new CLIError(`Could not connect to the service at ${url}.`);
|
|
299
285
|
}
|
|
300
|
-
|
|
301
|
-
const findNextAvailableSubfolder = (folder, name) => {
|
|
286
|
+
export const findNextAvailableSubfolder = (folder, name) => {
|
|
302
287
|
let subfolder = name;
|
|
303
288
|
let counter = 1;
|
|
304
289
|
while (fsx.existsSync(path.join(folder, subfolder))) {
|
|
@@ -307,5 +292,4 @@ const findNextAvailableSubfolder = (folder, name) => {
|
|
|
307
292
|
}
|
|
308
293
|
return subfolder;
|
|
309
294
|
};
|
|
310
|
-
exports.findNextAvailableSubfolder = findNextAvailableSubfolder;
|
|
311
295
|
//# sourceMappingURL=utils.js.map
|
package/lib/shared/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/shared/validation.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const glob = require("glob");
|
|
8
|
-
const yaml = require("yaml");
|
|
2
|
+
import { CLIError } from '@oclif/core/errors';
|
|
3
|
+
import glob from 'glob';
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import yaml from 'yaml';
|
|
9
6
|
// Validate the Configurationset file
|
|
10
|
-
const validateConfigurationset = async (file) => {
|
|
7
|
+
export const validateConfigurationset = async (file) => {
|
|
11
8
|
if (!file) {
|
|
12
|
-
throw new
|
|
9
|
+
throw new CLIError('You must provide a file path');
|
|
13
10
|
}
|
|
14
11
|
if (!fs.existsSync(file)) {
|
|
15
|
-
throw new
|
|
12
|
+
throw new CLIError('The file does not exist');
|
|
16
13
|
}
|
|
17
14
|
const content = fs.readFileSync(file, 'utf8');
|
|
18
15
|
// Ensure the file is valid YAML
|
|
@@ -20,23 +17,21 @@ const validateConfigurationset = async (file) => {
|
|
|
20
17
|
yaml.parse(content);
|
|
21
18
|
}
|
|
22
19
|
catch {
|
|
23
|
-
throw new
|
|
20
|
+
throw new CLIError('The file is not valid YAML');
|
|
24
21
|
}
|
|
25
22
|
};
|
|
26
|
-
exports.validateConfigurationset = validateConfigurationset;
|
|
27
23
|
// Validate the Schema directory
|
|
28
|
-
const validateSchema = async (directory) => {
|
|
24
|
+
export const validateSchema = async (directory) => {
|
|
29
25
|
if (!directory) {
|
|
30
|
-
throw new
|
|
26
|
+
throw new CLIError('You must provide a directory path');
|
|
31
27
|
}
|
|
32
28
|
if (!fs.existsSync(directory)) {
|
|
33
|
-
throw new
|
|
29
|
+
throw new CLIError('The directory does not exist');
|
|
34
30
|
}
|
|
35
31
|
// Ensure there's a root `index.graphql` file
|
|
36
32
|
const allSchemaFiles = glob.sync('index.graphql', { cwd: directory });
|
|
37
33
|
if (allSchemaFiles.length === 0) {
|
|
38
|
-
throw new
|
|
34
|
+
throw new CLIError('Schemas must include an `index.graphql` file');
|
|
39
35
|
}
|
|
40
36
|
};
|
|
41
|
-
exports.validateSchema = validateSchema;
|
|
42
37
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAC3C,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,qCAAqC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,IAAwB,EAAE,EAAE;IACzE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,QAAQ,CAAC,8BAA8B,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CAAC,yBAAyB,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE7C,gCAAgC;IAChC,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,4BAA4B,CAAC,CAAA;IAClD,CAAC;AACH,CAAC,CAAA;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,SAA6B,EAAE,EAAE;IACpE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,mCAAmC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,8BAA8B,CAAC,CAAA;IACpD,CAAC;IAED,6CAA6C;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAC,GAAG,EAAE,SAAS,EAAC,CAAC,CAAA;IACnE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,QAAQ,CAAC,8CAA8C,CAAC,CAAA;IACpE,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Workspace } from './types';
|
|
1
|
+
import type { Workspace } from './types.js';
|
|
2
2
|
export declare const validateWorkspaceName: (directory: string, name: string) => boolean;
|
|
3
3
|
export declare const generateWorkspaceName: (directory: string) => string;
|
|
4
4
|
export declare const guessSchemaRoot: (directory: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/shared/workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/shared/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAyB,MAAM,YAAY,CAAA;AAajE,eAAO,MAAM,qBAAqB,cACrB,MAAM,QACX,MAAM,KACX,OAAqD,CAAA;AAExD,eAAO,MAAM,qBAAqB,cAAe,MAAM,KAAG,MAOzD,CAAA;AAED,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,MAYnD,CAAA;AAED,eAAO,MAAM,YAAY,cAAe,MAAM,KAAG,SAAS,GAAG,IAqD5D,CAAA;AAED,eAAO,MAAM,aAAa,SAAgB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,QAAQ,SAAS,CAuGpB,CAAA"}
|
package/lib/shared/workspace.js
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright IBM Corp. 2020, 2024
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const validateWorkspaceName = (directory, name) => {
|
|
15
|
-
return !fs.existsSync(path.join(directory, name));
|
|
16
|
-
};
|
|
17
|
-
exports.validateWorkspaceName = validateWorkspaceName;
|
|
18
|
-
const generateWorkspaceName = (directory) => {
|
|
2
|
+
import { CLIError } from '@oclif/core/errors';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import glob from 'glob';
|
|
5
|
+
import fs from 'node:fs';
|
|
6
|
+
import os from 'node:os';
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import * as inquirer from '../shared/inquirer.js';
|
|
9
|
+
import getMoniker, { getRandomDescriptor } from '../shared/moniker.js';
|
|
10
|
+
import { getDirectory, validateEndpoint } from './utils.js';
|
|
11
|
+
export const validateWorkspaceName = (directory, name) => !fs.existsSync(path.join(directory, name));
|
|
12
|
+
export const generateWorkspaceName = (directory) => {
|
|
19
13
|
let name = 'hello-stepzen';
|
|
20
|
-
while (!
|
|
21
|
-
name = `hello-${
|
|
14
|
+
while (!validateWorkspaceName(directory, name)) {
|
|
15
|
+
name = `hello-${getRandomDescriptor()}-stepzen`;
|
|
22
16
|
}
|
|
23
17
|
return name;
|
|
24
18
|
};
|
|
25
|
-
|
|
26
|
-
const guessSchemaRoot = (directory) => {
|
|
19
|
+
export const guessSchemaRoot = (directory) => {
|
|
27
20
|
const existing = [
|
|
28
21
|
...glob.sync('*/**/config.yaml', {
|
|
29
22
|
cwd: directory,
|
|
@@ -36,8 +29,7 @@ const guessSchemaRoot = (directory) => {
|
|
|
36
29
|
];
|
|
37
30
|
return existing.length > 0 ? path.dirname(existing[0]) : '';
|
|
38
31
|
};
|
|
39
|
-
|
|
40
|
-
const getWorkspace = (directory) => {
|
|
32
|
+
export const getWorkspace = (directory) => {
|
|
41
33
|
let workspaceRoot;
|
|
42
34
|
const parts = path
|
|
43
35
|
// Remove trailing slashes and any `..` and `.` segments
|
|
@@ -66,31 +58,30 @@ const getWorkspace = (directory) => {
|
|
|
66
58
|
config = JSON.parse(file);
|
|
67
59
|
}
|
|
68
60
|
catch {
|
|
69
|
-
throw new
|
|
61
|
+
throw new CLIError(`Cannot parse configuration from ${filepath}`);
|
|
70
62
|
}
|
|
71
63
|
// Validate the workspace
|
|
72
|
-
const error =
|
|
64
|
+
const error = validateEndpoint(config.endpoint);
|
|
73
65
|
if (typeof error === 'string') {
|
|
74
|
-
throw new
|
|
66
|
+
throw new CLIError(error);
|
|
75
67
|
}
|
|
76
68
|
// Add the 'schema' property, which is the directory + the 'root'
|
|
77
69
|
const schema = path.join(workspaceRoot, config.root || '');
|
|
78
70
|
if (!fs.existsSync(schema)) {
|
|
79
|
-
throw new
|
|
71
|
+
throw new CLIError(`Cannot find workspace schema folder ${schema}`);
|
|
80
72
|
}
|
|
81
73
|
return {
|
|
82
74
|
directory: workspaceRoot,
|
|
83
75
|
endpoint: config.endpoint,
|
|
84
|
-
schema
|
|
76
|
+
schema,
|
|
85
77
|
};
|
|
86
78
|
};
|
|
87
|
-
|
|
88
|
-
const initWorkspace = async (args) => {
|
|
79
|
+
export const initWorkspace = async (args) => {
|
|
89
80
|
// Get the correct directory
|
|
90
|
-
let directory =
|
|
81
|
+
let directory = getDirectory(args.directory);
|
|
91
82
|
// Make sure it is not already a workspace
|
|
92
|
-
if (
|
|
93
|
-
throw new
|
|
83
|
+
if (getWorkspace(directory)) {
|
|
84
|
+
throw new CLIError(`This directory is already a StepZen workspace: ${directory}.` +
|
|
94
85
|
' Please select a different directory.');
|
|
95
86
|
}
|
|
96
87
|
const isHomeDir = directory === os.homedir();
|
|
@@ -99,40 +90,40 @@ const initWorkspace = async (args) => {
|
|
|
99
90
|
// StepZen CLI sometimes would enumerate all files in the workspace folder
|
|
100
91
|
// doing so in the home directory is likely to fail.
|
|
101
92
|
if (args.directory && isHomeDir) {
|
|
102
|
-
throw new
|
|
93
|
+
throw new CLIError('Using the home directory as a StepZen workspace is not supported.' +
|
|
103
94
|
' Please select a different directory.');
|
|
104
95
|
}
|
|
105
96
|
// Make a suggestion for the workspace name (if running in the HOME
|
|
106
97
|
// directory)
|
|
107
98
|
const name = isHomeDir
|
|
108
|
-
?
|
|
99
|
+
? generateWorkspaceName(directory)
|
|
109
100
|
: path.basename(directory);
|
|
110
101
|
// See if we think there's a StepZen schema already
|
|
111
|
-
const root = isHomeDir ? '' :
|
|
102
|
+
const root = isHomeDir ? '' : guessSchemaRoot(directory);
|
|
112
103
|
// If you've passed an endpoint, validate it, and throw an error
|
|
113
104
|
// straight away if needed
|
|
114
105
|
if (args.endpoint) {
|
|
115
|
-
const error =
|
|
106
|
+
const error = validateEndpoint(args.endpoint);
|
|
116
107
|
if (typeof error === 'string') {
|
|
117
|
-
throw new
|
|
108
|
+
throw new CLIError(error);
|
|
118
109
|
}
|
|
119
110
|
}
|
|
120
111
|
// Make a suggestion for the endpoint
|
|
121
|
-
const endpoint = args.endpoint || `api/${(
|
|
112
|
+
const endpoint = args.endpoint || `api/${getMoniker()}`;
|
|
122
113
|
// What questions will we ask?
|
|
123
114
|
const questions = [
|
|
124
115
|
{
|
|
125
116
|
default: name,
|
|
126
117
|
message: 'What would you like to call your workspace?',
|
|
127
118
|
name: 'name',
|
|
128
|
-
validate: (name) =>
|
|
119
|
+
validate: (name) => validateWorkspaceName(directory, name),
|
|
129
120
|
when: isHomeDir && !args.yes,
|
|
130
121
|
},
|
|
131
122
|
{
|
|
132
123
|
default: endpoint,
|
|
133
124
|
message: 'What would you like your endpoint to be called?',
|
|
134
125
|
name: 'endpoint',
|
|
135
|
-
validate:
|
|
126
|
+
validate: validateEndpoint,
|
|
136
127
|
when: !args.endpoint && !args.yes,
|
|
137
128
|
},
|
|
138
129
|
{
|
|
@@ -143,7 +134,7 @@ const initWorkspace = async (args) => {
|
|
|
143
134
|
},
|
|
144
135
|
];
|
|
145
136
|
if (args.nonInteractive && questions.some(question => question.when)) {
|
|
146
|
-
throw new
|
|
137
|
+
throw new CLIError(chalk `Missing parameters for creating a StepZen workspace in {bold --non-interactive} mode` +
|
|
147
138
|
chalk ` (see {bold stepzen init --help} for more information)`);
|
|
148
139
|
}
|
|
149
140
|
// Get the answers
|
|
@@ -156,7 +147,6 @@ const initWorkspace = async (args) => {
|
|
|
156
147
|
// Append the suggested workspace name to the directory (if running
|
|
157
148
|
// in the HOME directory)
|
|
158
149
|
if (isHomeDir) {
|
|
159
|
-
// eslint-disable-next-line require-atomic-updates
|
|
160
150
|
directory = path.join(directory, answers.name);
|
|
161
151
|
fs.mkdirSync(directory);
|
|
162
152
|
}
|
|
@@ -168,8 +158,7 @@ const initWorkspace = async (args) => {
|
|
|
168
158
|
const file = path.join(directory, 'stepzen.config.json');
|
|
169
159
|
fs.writeFileSync(file, JSON.stringify(workspace, null, ' '));
|
|
170
160
|
// Fetch the newly created workspace
|
|
171
|
-
const created =
|
|
161
|
+
const created = getWorkspace(directory);
|
|
172
162
|
return created;
|
|
173
163
|
};
|
|
174
|
-
exports.initWorkspace = initWorkspace;
|
|
175
164
|
//# sourceMappingURL=workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/shared/workspace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/shared/workspace.ts"],"names":[],"mappings":"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"}
|