@govuk-pay/cli 0.0.32 → 0.0.33
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/package.json +3 -2
- package/resources/pay-local/templates/docker-compose.hbs +3 -0
- package/src/commands/browse.js +19 -70
- package/src/commands/browse.spec.js +15 -48
- package/src/commands/demo.js +8 -2
- package/src/commands/legacy.js +12 -16
- package/src/commands/local/config/pay_local_cluster.js +10 -7
- package/src/commands/local/subcommands/account.js +24 -23
- package/src/commands/local/subcommands/browse.js +28 -20
- package/src/commands/local/subcommands/db.js +28 -20
- package/src/commands/local/subcommands/down.js +26 -15
- package/src/commands/local/subcommands/nuke.js +11 -5
- package/src/commands/local/subcommands/otp.js +16 -14
- package/src/commands/local/subcommands/payment.js +25 -12
- package/src/commands/local/subcommands/paymentlink.js +20 -14
- package/src/commands/local/subcommands/restart.js +22 -19
- package/src/commands/local/subcommands/token.js +19 -21
- package/src/commands/local/subcommands/up.js +77 -19
- package/src/commands/local/subcommands/url.js +25 -20
- package/src/commands/local/subcommands/user.js +20 -9
- package/src/commands/local.js +9 -134
- package/src/commands/tunnel.js +17 -28
- package/src/core/commandRouter.js +11 -69
- package/src/core/standardContent.js +1 -5
- package/resources/usageDetails.txt +0 -9
- package/src/commands/help.js +0 -15
package/src/commands/local.js
CHANGED
|
@@ -1,136 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const db_js_1 = __importDefault(require("./local/subcommands/db.js"));
|
|
16
|
-
const account_js_1 = __importDefault(require("./local/subcommands/account.js"));
|
|
17
|
-
const token_js_1 = __importDefault(require("./local/subcommands/token.js"));
|
|
18
|
-
const payment_js_1 = __importDefault(require("./local/subcommands/payment.js"));
|
|
19
|
-
const user_js_1 = __importDefault(require("./local/subcommands/user.js"));
|
|
20
|
-
var LocalCommand;
|
|
21
|
-
(function (LocalCommand) {
|
|
22
|
-
LocalCommand["OTP"] = "otp";
|
|
23
|
-
LocalCommand["Up"] = "up";
|
|
24
|
-
LocalCommand["Launch"] = "launch";
|
|
25
|
-
LocalCommand["Down"] = "down";
|
|
26
|
-
LocalCommand["Restart"] = "restart";
|
|
27
|
-
LocalCommand["Nuke"] = "nuke";
|
|
28
|
-
LocalCommand["PaymentLink"] = "paymentlink";
|
|
29
|
-
LocalCommand["Browse"] = "browse";
|
|
30
|
-
LocalCommand["Url"] = "url";
|
|
31
|
-
LocalCommand["DB"] = "db";
|
|
32
|
-
LocalCommand["Token"] = "token";
|
|
33
|
-
LocalCommand["Payment"] = "payment";
|
|
34
|
-
LocalCommand["Account"] = "account";
|
|
35
|
-
LocalCommand["User"] = "user";
|
|
36
|
-
LocalCommand["Help"] = "help";
|
|
37
|
-
LocalCommand["Unknown"] = "Unknown";
|
|
38
|
-
})(LocalCommand || (LocalCommand = {}));
|
|
39
|
-
async function localHandler(options) {
|
|
40
|
-
await (0, standardContent_js_1.showHeader)();
|
|
41
|
-
const { subcommand, subcommandOptions } = parseArguments(options);
|
|
42
|
-
switch (subcommand) {
|
|
43
|
-
case LocalCommand.OTP: {
|
|
44
|
-
await (0, otp_js_1.default)(subcommandOptions);
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
case LocalCommand.PaymentLink: {
|
|
48
|
-
await (0, paymentlink_js_1.default)(subcommandOptions);
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
case LocalCommand.Browse: {
|
|
52
|
-
await (0, browse_js_1.default)(subcommandOptions);
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
case LocalCommand.Account: {
|
|
56
|
-
await (0, account_js_1.default)(subcommandOptions);
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
case LocalCommand.Url: {
|
|
60
|
-
await (0, url_js_1.default)(subcommandOptions);
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
case LocalCommand.DB: {
|
|
64
|
-
await (0, db_js_1.default)(subcommandOptions);
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
case LocalCommand.Token: {
|
|
68
|
-
await (0, token_js_1.default)(subcommandOptions);
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
case LocalCommand.Payment: {
|
|
72
|
-
await (0, payment_js_1.default)(subcommandOptions);
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
case LocalCommand.User: {
|
|
76
|
-
await (0, user_js_1.default)(subcommandOptions);
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
case LocalCommand.Up: {
|
|
80
|
-
await (0, up_js_1.default)(subcommandOptions);
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
case LocalCommand.Launch: {
|
|
84
|
-
await (0, up_js_1.default)(subcommandOptions);
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
case LocalCommand.Down: {
|
|
88
|
-
await (0, down_js_1.default)(subcommandOptions);
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
case LocalCommand.Restart: {
|
|
92
|
-
await (0, restart_js_1.default)(subcommandOptions);
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
case LocalCommand.Nuke: {
|
|
96
|
-
await (0, nuke_js_1.default)();
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
case LocalCommand.Help:
|
|
100
|
-
case LocalCommand.Unknown: {
|
|
101
|
-
help();
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
default: {
|
|
105
|
-
help();
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
exports.default = localHandler;
|
|
111
|
-
// TODO: Replace this with yargs
|
|
112
|
-
function parseArguments(options) {
|
|
113
|
-
const subcommandOptions = options.arguments;
|
|
114
|
-
const subcommand = subcommandOptions.shift();
|
|
115
|
-
switch (subcommand) {
|
|
116
|
-
case LocalCommand.OTP: return { subcommand, subcommandOptions };
|
|
117
|
-
case LocalCommand.PaymentLink: return { subcommand, subcommandOptions };
|
|
118
|
-
case LocalCommand.Url: return { subcommand, subcommandOptions };
|
|
119
|
-
case LocalCommand.Browse: return { subcommand, subcommandOptions };
|
|
120
|
-
case LocalCommand.Account: return { subcommand, subcommandOptions };
|
|
121
|
-
case LocalCommand.Up: return { subcommand, subcommandOptions };
|
|
122
|
-
case LocalCommand.DB: return { subcommand, subcommandOptions };
|
|
123
|
-
case LocalCommand.Token: return { subcommand, subcommandOptions };
|
|
124
|
-
case LocalCommand.Payment: return { subcommand, subcommandOptions };
|
|
125
|
-
case LocalCommand.User: return { subcommand, subcommandOptions };
|
|
126
|
-
case LocalCommand.Launch: return { subcommand, subcommandOptions };
|
|
127
|
-
case LocalCommand.Down: return { subcommand, subcommandOptions };
|
|
128
|
-
case LocalCommand.Restart: return { subcommand, subcommandOptions };
|
|
129
|
-
case LocalCommand.Nuke: return { subcommand, subcommandOptions };
|
|
130
|
-
case LocalCommand.Help: return { subcommand, subcommandOptions };
|
|
131
|
-
default: return { subcommand: LocalCommand.Unknown, subcommandOptions };
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function help() {
|
|
135
|
-
console.error('USAGE FOLLOWS');
|
|
136
|
-
}
|
|
3
|
+
exports.builder = exports.desc = exports.command = void 0;
|
|
4
|
+
exports.command = 'local';
|
|
5
|
+
exports.desc = 'Local pay for local people';
|
|
6
|
+
const builder = (yargs) => {
|
|
7
|
+
return yargs
|
|
8
|
+
.commandDir('local/subcommands')
|
|
9
|
+
.demandCommand();
|
|
10
|
+
};
|
|
11
|
+
exports.builder = builder;
|
package/src/commands/tunnel.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.handler = exports.builder = exports.desc = exports.command = void 0;
|
|
7
7
|
const standardContent_js_1 = require("../core/standardContent.js");
|
|
8
8
|
const client_ec2_1 = require("@aws-sdk/client-ec2");
|
|
9
9
|
const client_ecs_1 = require("@aws-sdk/client-ecs");
|
|
@@ -24,12 +24,19 @@ const FORMAT = {
|
|
|
24
24
|
ul: '\x1b[4m',
|
|
25
25
|
ulstop: '\x1b[24m'
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
exports.command = 'tunnel <environment> <application>';
|
|
28
|
+
exports.desc = 'Open a tunnel to an app database in a given environment';
|
|
29
|
+
const builder = (yargs) => {
|
|
30
|
+
return yargs.positional('environment', {
|
|
31
|
+
describe: 'The environment to open the tunnel to',
|
|
32
|
+
choices: constants_js_1.ENVIRONMENTS
|
|
33
|
+
}).positional('application', {
|
|
34
|
+
describe: 'The application to connect to',
|
|
35
|
+
choices: constants_js_1.APPLICATIONS
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
exports.builder = builder;
|
|
39
|
+
exports.handler = tunnelHandler;
|
|
33
40
|
async function readInputForReadOrWriteDBAccess() {
|
|
34
41
|
const rl = promises_1.default.createInterface({
|
|
35
42
|
input: process.stdin,
|
|
@@ -54,9 +61,10 @@ async function readInputForReadOrWriteDBAccess() {
|
|
|
54
61
|
process.exit(1);
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
|
-
async function tunnelHandler(
|
|
64
|
+
async function tunnelHandler(argv) {
|
|
58
65
|
await (0, standardContent_js_1.showHeader)();
|
|
59
|
-
const
|
|
66
|
+
const environment = argv.environment;
|
|
67
|
+
const application = argv.application;
|
|
60
68
|
console.log(`Opening a database tunnel to ${environment} ${application}`);
|
|
61
69
|
ec2 = new client_ec2_1.EC2Client();
|
|
62
70
|
ecs = new client_ecs_1.ECSClient();
|
|
@@ -84,25 +92,6 @@ async function tunnelHandler(options) {
|
|
|
84
92
|
}
|
|
85
93
|
}
|
|
86
94
|
exports.default = tunnelHandler;
|
|
87
|
-
function parseArguments(options) {
|
|
88
|
-
if (options.arguments.length !== 2 || options.arguments[0] === 'help') {
|
|
89
|
-
logTunnelCommands();
|
|
90
|
-
process.exit(0);
|
|
91
|
-
}
|
|
92
|
-
const environment = options.arguments[0];
|
|
93
|
-
const application = options.arguments[1];
|
|
94
|
-
if (!constants_js_1.APPLICATIONS.includes(application)) {
|
|
95
|
-
printError(`Invalid application: "${application}". Must be one of ${constants_js_1.APPLICATIONS.join(', ')}`);
|
|
96
|
-
process.exit(2);
|
|
97
|
-
}
|
|
98
|
-
if (!constants_js_1.ENVIRONMENTS.includes(environment)) {
|
|
99
|
-
printError(`Invalid environment: "${environment}". Must be one of ${constants_js_1.ENVIRONMENTS.join(', ')}`);
|
|
100
|
-
process.exit(2);
|
|
101
|
-
}
|
|
102
|
-
return {
|
|
103
|
-
environment, application
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
95
|
async function waitForExit() {
|
|
107
96
|
const prompt = "\nTo shutdown bastion task and close tunnel type 'exit' or 'Ctrl-C'\n";
|
|
108
97
|
const rl = readline_1.default.createInterface({
|
|
@@ -3,81 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const standardContent_js_1 = require("./standardContent.js");
|
|
7
|
-
const browse_js_1 = __importDefault(require("../commands/browse.js"));
|
|
8
|
-
const demo_js_1 = __importDefault(require("../commands/demo.js"));
|
|
9
|
-
const legacy_1 = __importDefault(require("../commands/legacy"));
|
|
10
|
-
const local_js_1 = __importDefault(require("../commands/local.js"));
|
|
11
|
-
const help_1 = __importDefault(require("../commands/help"));
|
|
12
|
-
const tunnel_js_1 = __importDefault(require("../commands/tunnel.js"));
|
|
13
6
|
const package_json_1 = __importDefault(require("../../package.json"));
|
|
14
7
|
const semver_1 = __importDefault(require("semver"));
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
handler: browse_js_1.default
|
|
18
|
-
});
|
|
19
|
-
handlers.set('tunnel', {
|
|
20
|
-
handler: tunnel_js_1.default
|
|
21
|
-
});
|
|
22
|
-
handlers.set('legacy', {
|
|
23
|
-
handler: legacy_1.default
|
|
24
|
-
});
|
|
25
|
-
handlers.set('doctor', {
|
|
26
|
-
handler: legacy_1.default
|
|
27
|
-
});
|
|
28
|
-
handlers.set('help', {
|
|
29
|
-
handler: help_1.default
|
|
30
|
-
});
|
|
31
|
-
handlers.set('local', {
|
|
32
|
-
handler: legacy_1.default
|
|
33
|
-
});
|
|
34
|
-
handlers.set('localx', {
|
|
35
|
-
handler: local_js_1.default
|
|
36
|
-
});
|
|
37
|
-
handlers.set('schema', {
|
|
38
|
-
handler: legacy_1.default
|
|
39
|
-
});
|
|
40
|
-
handlers.set('secrets', {
|
|
41
|
-
handler: legacy_1.default
|
|
42
|
-
});
|
|
43
|
-
handlers.set('demo', {
|
|
44
|
-
handler: demo_js_1.default
|
|
45
|
-
});
|
|
8
|
+
const yargs_1 = __importDefault(require("yargs/yargs"));
|
|
9
|
+
const helpers_1 = require("yargs/helpers");
|
|
46
10
|
async function runCommand() {
|
|
47
|
-
const command = process.argv[2];
|
|
48
11
|
await checkVersion();
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
12
|
+
const yargsInstance = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv));
|
|
13
|
+
await yargsInstance
|
|
14
|
+
.commandDir('../commands', { exclude: /.*\.spec\..*/ })
|
|
15
|
+
.demandCommand()
|
|
16
|
+
.usage('pay <command>\n\nProvides usefull commands for managing and developing the GOV.UK Pay platform. Use `pay <command> help` to find more information on an individual pay command.')
|
|
17
|
+
.strict()
|
|
18
|
+
.help()
|
|
19
|
+
.wrap(yargsInstance.terminalWidth())
|
|
20
|
+
.parse();
|
|
56
21
|
}
|
|
57
22
|
exports.default = runCommand;
|
|
58
|
-
async function getCommandDetails(commandName) {
|
|
59
|
-
return handlers.get(commandName);
|
|
60
|
-
}
|
|
61
|
-
async function showUsageIfNoCommand(commandName) {
|
|
62
|
-
if (commandName === undefined || commandName.trim() === '') {
|
|
63
|
-
await (0, standardContent_js_1.showHeader)();
|
|
64
|
-
await (0, standardContent_js_1.showUsage)();
|
|
65
|
-
process.exit(2);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async function runHandler(commandName, commandHandler) {
|
|
69
|
-
try {
|
|
70
|
-
await commandHandler.handler({
|
|
71
|
-
commandName,
|
|
72
|
-
arguments: process.argv.slice(3)
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
catch (e) {
|
|
76
|
-
console.error(`Failed to run command [${commandName}]`);
|
|
77
|
-
console.error(e);
|
|
78
|
-
process.exit(12);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
23
|
async function checkVersion() {
|
|
82
24
|
try {
|
|
83
25
|
const { version: currentVersion, engines: { node: requiredNodeVersion } } = package_json_1.default;
|
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.showHeader = void 0;
|
|
27
27
|
const fsp = __importStar(require("fs/promises"));
|
|
28
28
|
const path = __importStar(require("path"));
|
|
29
29
|
const constants_js_1 = require("./constants.js");
|
|
@@ -31,7 +31,3 @@ async function showHeader() {
|
|
|
31
31
|
console.log(await fsp.readFile(path.join(constants_js_1.rootDir, 'resources/header.txt'), 'utf8'));
|
|
32
32
|
}
|
|
33
33
|
exports.showHeader = showHeader;
|
|
34
|
-
async function showUsage() {
|
|
35
|
-
console.log(await fsp.readFile(path.join(constants_js_1.rootDir, 'resources/usageDetails.txt'), 'utf8'));
|
|
36
|
-
}
|
|
37
|
-
exports.showUsage = showUsage;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Commands:
|
|
2
|
-
pay browse # Opens web browser link to useful links
|
|
3
|
-
pay doctor # Attempts to initialise or fix the Pay CLI
|
|
4
|
-
pay help [COMMAND] # Describe available commands or one specific ...
|
|
5
|
-
pay local # Sets up local Pay development environment
|
|
6
|
-
pay localx # EXPERIMENTAL: Nodejs replacement of `pay local`
|
|
7
|
-
pay schema # Generates web based database diagrams and me...
|
|
8
|
-
pay secrets # Manage secrets in and between environments
|
|
9
|
-
pay tunnel # Open tunnel to application database
|
package/src/commands/help.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const legacy_1 = require("./legacy");
|
|
4
|
-
const standardContent_1 = require("../core/standardContent");
|
|
5
|
-
const browse_1 = require("./browse");
|
|
6
|
-
async function helpHandler(options) {
|
|
7
|
-
if (options.arguments[0] === 'browse') {
|
|
8
|
-
await (0, standardContent_1.showHeader)();
|
|
9
|
-
(0, browse_1.logBrowseCommands)();
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
await (0, legacy_1.proxyHandlerOptionsToLegacyCli)(options);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.default = helpHandler;
|