navy 5.0.0 → 5.0.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +3 -3
  2. package/package.json +10 -8
  3. package/lib/cli/config/index.js +0 -90
  4. package/lib/cli/config/wrapper.js +0 -21
  5. package/lib/cli/develop.js +0 -85
  6. package/lib/cli/doctor/clean-compose-files.js +0 -33
  7. package/lib/cli/doctor/index.js +0 -50
  8. package/lib/cli/doctor/invalid-compose-config.js +0 -26
  9. package/lib/cli/doctor/invalid-state.js +0 -33
  10. package/lib/cli/doctor/util.js +0 -41
  11. package/lib/cli/external-ip.js +0 -18
  12. package/lib/cli/health.js +0 -45
  13. package/lib/cli/https.js +0 -92
  14. package/lib/cli/import.js +0 -38
  15. package/lib/cli/index.js +0 -31
  16. package/lib/cli/lan-ip.js +0 -29
  17. package/lib/cli/launch.js +0 -52
  18. package/lib/cli/live.js +0 -55
  19. package/lib/cli/local-ip.js +0 -26
  20. package/lib/cli/logs.js +0 -15
  21. package/lib/cli/open.js +0 -20
  22. package/lib/cli/program.js +0 -243
  23. package/lib/cli/ps.js +0 -70
  24. package/lib/cli/refresh-config.js +0 -29
  25. package/lib/cli/run.js +0 -16
  26. package/lib/cli/status.js +0 -61
  27. package/lib/cli/updates.js +0 -98
  28. package/lib/cli/util/get-or-initialise-navy.js +0 -24
  29. package/lib/cli/util/import.js +0 -44
  30. package/lib/cli/util/index.js +0 -21
  31. package/lib/cli/util/reconfigure.js +0 -20
  32. package/lib/cli/wait-for-healthy.js +0 -78
  33. package/lib/config-provider.js +0 -46
  34. package/lib/config-providers/filesystem/index.js +0 -92
  35. package/lib/config-providers/npm/__tests__/util.js +0 -16
  36. package/lib/config-providers/npm/index.js +0 -101
  37. package/lib/config-providers/npm/util.js +0 -15
  38. package/lib/config.js +0 -69
  39. package/lib/driver-logging.js +0 -85
  40. package/lib/driver.js +0 -19
  41. package/lib/drivers/docker-compose/client.js +0 -86
  42. package/lib/drivers/docker-compose/index.js +0 -196
  43. package/lib/errors.js +0 -42
  44. package/lib/http-proxy.js +0 -87
  45. package/lib/index.d.ts +0 -66
  46. package/lib/index.js +0 -56
  47. package/lib/middleware/add-service-proxy-config.js +0 -76
  48. package/lib/middleware/develop.js +0 -23
  49. package/lib/middleware/helpers.js +0 -37
  50. package/lib/middleware/port-override.js +0 -27
  51. package/lib/middleware/set-env-vars.js +0 -22
  52. package/lib/middleware/set-image.js +0 -20
  53. package/lib/middleware/set-logging-driver.js +0 -22
  54. package/lib/middleware/tag-override.js +0 -30
  55. package/lib/navy/default-middleware.js +0 -27
  56. package/lib/navy/index.js +0 -581
  57. package/lib/navy/middleware.js +0 -24
  58. package/lib/navy/plugin-interface.js +0 -41
  59. package/lib/navy/state.js +0 -83
  60. package/lib/navy/util.js +0 -10
  61. package/lib/service.js +0 -11
  62. package/lib/util/__tests__/external-ip.js +0 -26
  63. package/lib/util/__tests__/registry-client.js +0 -82
  64. package/lib/util/__tests__/service-host.js +0 -50
  65. package/lib/util/docker-client.js +0 -19
  66. package/lib/util/exec-async.js +0 -30
  67. package/lib/util/external-ip.js +0 -56
  68. package/lib/util/fs.js +0 -15
  69. package/lib/util/get-lan-ip.js +0 -24
  70. package/lib/util/has-update.js +0 -37
  71. package/lib/util/https.js +0 -213
  72. package/lib/util/navyrc.js +0 -22
  73. package/lib/util/registry-client.js +0 -81
  74. package/lib/util/service-host.js +0 -69
  75. package/lib/util/table.js +0 -26
package/README.md CHANGED
@@ -51,11 +51,11 @@ You can customise the functionality of Navy by writing Javascript plugins which
51
51
  $ npm install -g navy
52
52
  ```
53
53
 
54
- - [Read more of the documentation on the website](https://momentumft.github.io/navy/)
55
- - [GitHub page](https://github.com/momentumft/navy)
54
+ - [Read more of the documentation on the website](https://moneyhub.github.io/navy/)
55
+ - [GitHub page](https://github.com/moneyhub/navy)
56
56
 
57
57
  ## License
58
58
 
59
59
  Licensed under the MIT License.
60
60
 
61
- [View the full license here](https://raw.githubusercontent.com/momentumft/navy/master/LICENSE).
61
+ [View the full license here](https://raw.githubusercontent.com/moneyhub/navy/master/LICENSE).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "navy",
3
- "version": "5.0.0",
3
+ "version": "5.0.1-rc.1",
4
4
  "description": "Quick and powerful development environments using Docker and Docker Compose",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -12,18 +12,18 @@
12
12
  },
13
13
  "repository": {
14
14
  "type": "git",
15
- "url": "git+https://github.com/momentumft/navy.git"
15
+ "url": "git+https://github.com/moneyhub/navy.git"
16
16
  },
17
17
  "keywords": [
18
18
  "docker",
19
19
  "environment"
20
20
  ],
21
- "author": "Momentum Financial Technology Ltd",
21
+ "author": "Moneyhub Financial Technology Ltd",
22
22
  "license": "MIT",
23
23
  "bugs": {
24
- "url": "https://github.com/momentumft/navy/issues"
24
+ "url": "https://github.com/moneyhub/navy/issues"
25
25
  },
26
- "homepage": "https://github.com/momentumft/navy#readme",
26
+ "homepage": "https://github.com/moneyhub/navy#readme",
27
27
  "dependencies": {
28
28
  "@babel/runtime": "^7",
29
29
  "bluebird": "^3.7.2",
@@ -38,13 +38,15 @@
38
38
  "js-yaml": "^3.14.1",
39
39
  "lodash": "^4.17.21",
40
40
  "mkdirp": "^0.5.5",
41
- "node-forge": "^0.10.0",
41
+ "node-fetch": "^3.3.0",
42
+ "node-forge": "^1.3.0",
42
43
  "opn": "^5.5.0",
43
44
  "pad": "^3.2.0",
44
45
  "promise-retry": "^1.1.1",
46
+ "ramda": "^0.28.0",
45
47
  "resolve": "^1.20.0",
46
48
  "rimraf": "^2.7.1",
47
- "simple-docker-registry-client": "^1.1.2",
48
- "strip-ansi": "^3.0.1"
49
+ "strip-ansi": "^3.0.1",
50
+ "www-authenticate": "^0.6.3"
49
51
  }
50
52
  }
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.reconfigureIfNecessary = reconfigureIfNecessary;
9
-
10
- var _commander = _interopRequireDefault(require("commander"));
11
-
12
- var _config = require("../../config");
13
-
14
- var _errors = require("../../errors");
15
-
16
- var _reconfigure = require("../util/reconfigure");
17
-
18
- const NAME_MAP = {
19
- 'default-navy': 'defaultNavy',
20
- 'external-ip': 'externalIP',
21
- 'tlsCa-dir': 'tlsRootCaDir'
22
- };
23
- const configWhichNeedsReconfigure = ['externalIP'];
24
-
25
- async function reconfigureIfNecessary(configProp) {
26
- if (configWhichNeedsReconfigure.indexOf(configProp) === -1) {
27
- return;
28
- }
29
-
30
- await (0, _reconfigure.reconfigureAllNavies)();
31
- }
32
-
33
- _commander.default.command('set <key> <value>').description('Sets the given config key').action(async (key, value) => {
34
- const configProp = NAME_MAP[key];
35
-
36
- if (!configProp) {
37
- throw new _errors.NavyError('Invalid config key: ' + key);
38
- }
39
-
40
- await (0, _config.setConfig)({ ...(await (0, _config.getConfig)()),
41
- [configProp]: value
42
- });
43
- await reconfigureIfNecessary(configProp);
44
- });
45
-
46
- _commander.default.command('get <key>').description('Gets the given config by key').action(async key => {
47
- if (!NAME_MAP[key]) {
48
- throw new _errors.NavyError('Invalid config key: ' + key);
49
- }
50
-
51
- const config = await (0, _config.getConfig)();
52
- console.log(config[NAME_MAP[key]]);
53
- });
54
-
55
- _commander.default.command('rm <key>').description('Removes the current config value').action(async key => {
56
- const configProp = NAME_MAP[key];
57
-
58
- if (!configProp) {
59
- throw new _errors.NavyError('Invalid config key: ' + key);
60
- }
61
-
62
- await (0, _config.setConfig)({ ...(await (0, _config.getConfig)()),
63
- [configProp]: null
64
- });
65
- await reconfigureIfNecessary(configProp);
66
- });
67
-
68
- _commander.default.command('ls').description('Lists all of the Navy config keys and values that have been set').action(async () => {
69
- const configKeys = Object.keys(NAME_MAP);
70
- const config = await (0, _config.getConfig)();
71
- console.log(configKeys.map(key => `${key}=${config[NAME_MAP[key]] != null ? config[NAME_MAP[key]] : 'null'}`).join('\n'));
72
- });
73
-
74
- _commander.default.command('json').description('Dumps out all Navy config as JSON').action(async () => {
75
- console.log(JSON.stringify(await (0, _config.getConfig)(), null, 2));
76
- });
77
-
78
- process.on('unhandledRejection', err => {
79
- if (err instanceof _errors.NavyError) {
80
- err.prettyPrint();
81
- } else {
82
- console.error(err.stack);
83
- }
84
- });
85
-
86
- _commander.default.parse(process.argv);
87
-
88
- if (_commander.default.args.length === 0) {
89
- _commander.default.help();
90
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _child_process = require("child_process");
11
-
12
- var _path = _interopRequireDefault(require("path"));
13
-
14
- async function _default(navy) {
15
- // $FlowIgnore flow bug with execSync
16
- (0, _child_process.execSync)(_path.default.join(__dirname, '../../../bin/navy-config.js') + ' ' + process.argv.slice(3).join(' '), {
17
- stdio: 'inherit'
18
- });
19
- }
20
-
21
- module.exports = exports.default;
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _chalk = _interopRequireDefault(require("chalk"));
13
-
14
- var _invariant = _interopRequireDefault(require("invariant"));
15
-
16
- var _ = require("../");
17
-
18
- var _errors = require("../errors");
19
-
20
- var _dockerClient = _interopRequireDefault(require("../util/docker-client"));
21
-
22
- var _navyrc = _interopRequireDefault(require("../util/navyrc"));
23
-
24
- async function _default(service, opts) {
25
- const navy = (0, _.getNavy)(opts.navy);
26
- const cwd = process.cwd();
27
- const navyRc = await (0, _navyrc.default)(cwd);
28
-
29
- if (!navyRc || !navyRc.services) {
30
- throw new _errors.NavyError(`No valid .navyrc file was found in "${cwd}"`);
31
- }
32
-
33
- if (!navyRc.develop) {
34
- throw new _errors.NavyError('No develop mounts found in .navyrc');
35
- }
36
-
37
- if (navyRc.services.length > 1 && !service) {
38
- throw new _errors.NavyError('Multiple service mappings are defined in .navyrc, you need to explicitly specify what service to develop');
39
- }
40
-
41
- if (!service) service = navyRc.services[0];
42
-
43
- if (navyRc.services.indexOf(service) === -1) {
44
- throw new _errors.NavyError(`Service "${service}" is not a valid development target`);
45
- }
46
-
47
- const mounts = {};
48
- Object.keys(navyRc.develop.mounts).forEach(localPath => mounts[_path.default.resolve(localPath)] = navyRc.develop.mounts[localPath]);
49
- const state = (await navy.getState()) || {};
50
- await navy.saveState({ ...state,
51
- services: { ...state.services,
52
- [service]: { ...(state.services || {})[service],
53
- _develop: {
54
- mounts,
55
- command: navyRc.develop.command
56
- }
57
- }
58
- }
59
- });
60
- await navy.emitAsync('cli.develop.beforeLaunch');
61
- await navy.kill([service]);
62
- await navy.launch([service], {
63
- noDeps: true
64
- });
65
- console.log(`🚧 ${service} has now restarted in development 🚧`);
66
- console.log(_chalk.default.dim('-----------'));
67
- console.log();
68
- const container = (await navy.ps()).filter(_service => _service.name === service)[0];
69
- (0, _invariant.default)(container, "DEVELOP_NO_CONTAINER_ID: Could not determine container ID for log attachment");
70
- const containerId = container.id;
71
-
72
- const containerObj = _dockerClient.default.getContainer(containerId);
73
-
74
- containerObj.attach({
75
- stream: true,
76
- stdout: true,
77
- stderr: true
78
- }).then(stream => containerObj.modem.demuxStream(stream, process.stdout, process.stderr)).catch(() => {
79
- console.log();
80
- console.log(_chalk.default.dim(`-------> ${service} exited`));
81
- console.log();
82
- });
83
- }
84
-
85
- module.exports = exports.default;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _bluebird = _interopRequireDefault(require("bluebird"));
11
-
12
- var _path = _interopRequireDefault(require("path"));
13
-
14
- var _ = require("../../");
15
-
16
- var _util = require("./util");
17
-
18
- var _state = require("../../navy/state");
19
-
20
- var _util2 = require("../../navy/util");
21
-
22
- async function _default() {
23
- const rimraf = _bluebird.default.promisify(require('rimraf'));
24
-
25
- (0, _util.start)('Cleaning temporary Docker Compose files');
26
- const navyNames = await (0, _.getLaunchedNavyNames)();
27
- await Promise.all(navyNames.map(async navyName => {
28
- const navyPath = (0, _state.pathToNavy)((0, _util2.normaliseNavyName)(navyName));
29
- await rimraf(_path.default.join(navyPath, 'docker-compose.tmp.yml'));
30
- }));
31
- }
32
-
33
- module.exports = exports.default;
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _chalk = _interopRequireDefault(require("chalk"));
11
-
12
- var _cleanComposeFiles = _interopRequireDefault(require("./clean-compose-files"));
13
-
14
- var _invalidState = _interopRequireDefault(require("./invalid-state"));
15
-
16
- var _invalidComposeConfig = _interopRequireDefault(require("./invalid-compose-config"));
17
-
18
- async function run(fns) {
19
- const errors = [];
20
-
21
- for (const fn of fns) {
22
- try {
23
- await fn();
24
- } catch (ex) {
25
- errors.push(ex);
26
- }
27
- }
28
-
29
- return errors;
30
- }
31
-
32
- async function _default() {
33
- const errors = await run([_cleanComposeFiles.default, _invalidState.default, _invalidComposeConfig.default]);
34
-
35
- if (errors.length > 0) {
36
- console.log(_chalk.default.yellow('There were some issues'));
37
- console.log();
38
- errors.forEach(error => console.log(error.stack));
39
- return;
40
- }
41
-
42
- console.log();
43
- console.log(_chalk.default.green(' ✔ Finished tests'));
44
- console.log();
45
- console.log(' Please try running Navy again if it wasn\'t working before.');
46
- console.log(' If you still have problems, please open an issue at https://github.com/momentumft/navy/issues/new');
47
- console.log();
48
- }
49
-
50
- module.exports = exports.default;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _ = require("../../");
9
-
10
- var _util = require("./util");
11
-
12
- async function _default() {
13
- (0, _util.start)('Checking for Navies with invalid/no compose config');
14
- const navies = await (0, _.getLaunchedNavies)();
15
- await Promise.all(navies.map(async navy => {
16
- await (0, _util.catchInvariant)('NO_DOCKER_COMPOSE_FILE', async () => {
17
- await (await navy.safeGetDriver()).getConfig();
18
- }, async () => {
19
- await (0, _util.fix)('Found Navy %s which has no docker compose config, removing', navy.name, async () => {
20
- await navy.delete();
21
- });
22
- });
23
- }));
24
- }
25
-
26
- module.exports = exports.default;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _ = require("../../");
9
-
10
- var _util = require("./util");
11
-
12
- async function _default() {
13
- (0, _util.start)('Checking for dangling Navies');
14
- const navies = await (0, _.getLaunchedNavies)();
15
- await Promise.all(navies.map(async navy => {
16
- const configProvider = await navy.getConfigProvider();
17
-
18
- if (!configProvider) {
19
- await (0, _util.fix)('Found Navy without config provider %s, removing', navy.name, async () => {
20
- await navy.delete();
21
- });
22
- return;
23
- }
24
-
25
- if (await configProvider.isDangling()) {
26
- await (0, _util.fix)('Found dangling Navy %s (invalid config), removing', navy.name, async () => {
27
- await navy.destroy();
28
- });
29
- }
30
- }));
31
- }
32
-
33
- module.exports = exports.default;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.start = exports.fix = exports.catchInvariant = void 0;
9
-
10
- var _util = _interopRequireDefault(require("util"));
11
-
12
- var _invariant = _interopRequireDefault(require("invariant"));
13
-
14
- var _chalk = _interopRequireDefault(require("chalk"));
15
-
16
- const fix = async (message, ...params) => {
17
- (0, _invariant.default)(params.length > 0, "DOCTOR_FIX_NO_PARAMS: Expected params to be passed to doctor fix");
18
- const fixCallback = params[params.length - 1];
19
- console.log(_chalk.default.yellow('----->', _util.default.format(message, ...params.slice(0, -1))));
20
- await fixCallback();
21
- };
22
-
23
- exports.fix = fix;
24
-
25
- const start = message => {
26
- console.log(_chalk.default.dim('----->', message));
27
- };
28
-
29
- exports.start = start;
30
-
31
- const catchInvariant = async (code, fn, catchCallback) => {
32
- try {
33
- await fn();
34
- } catch (ex) {
35
- if (ex.name === 'Invariant Violation' && ex.message.indexOf(code) === 0) {
36
- await catchCallback();
37
- }
38
- }
39
- };
40
-
41
- exports.catchInvariant = catchInvariant;
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _config = require("../config");
9
-
10
- var _externalIp = require("../util/external-ip");
11
-
12
- var _default = async () => {
13
- const config = await (0, _config.getConfig)();
14
- console.log(await (0, _externalIp.getExternalIP)(config.externalIP));
15
- };
16
-
17
- exports.default = _default;
18
- module.exports = exports.default;
package/lib/cli/health.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _chalk = _interopRequireDefault(require("chalk"));
11
-
12
- var _ = require("../");
13
-
14
- var _table = _interopRequireDefault(require("../util/table"));
15
-
16
- function getStatus(service, state) {
17
- const health = service.raw && service.raw.State.Health;
18
-
19
- if (!health) {
20
- return '-';
21
- }
22
-
23
- const statusString = health.Status === 'healthy' ? _chalk.default.green('✔ Healthy') : _chalk.default.red('• Unhealthy');
24
- return statusString;
25
- }
26
-
27
- function getHistory(service, state) {
28
- const health = service.raw && service.raw.State.Health;
29
-
30
- if (!health) {
31
- return '-';
32
- }
33
-
34
- const history = health.Log;
35
- return history.map(record => record.ExitCode === 0 ? _chalk.default.green('█') : _chalk.default.red('x')).join(' ');
36
- }
37
-
38
- async function _default(opts) {
39
- const navy = (0, _.getNavy)(opts.navy);
40
- const ps = await navy.ps();
41
- const state = await navy.getState();
42
- console.log((0, _table.default)([['NAME', 'STATUS', 'HISTORY'], ...ps.map(service => [service.name, getStatus(service, state), getHistory(service, state)])]));
43
- }
44
-
45
- module.exports = exports.default;
package/lib/cli/https.js DELETED
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _chalk = _interopRequireDefault(require("chalk"));
11
-
12
- var _errors = require("../errors");
13
-
14
- var _navy = require("../navy");
15
-
16
- var _config = require("../config");
17
-
18
- var _httpProxy = require("../http-proxy");
19
-
20
- var _https = require("../util/https");
21
-
22
- var _fs = _interopRequireDefault(require("fs"));
23
-
24
- async function _default(services, opts) {
25
- const tlsRootCaDir = (0, _config.getConfig)().tlsRootCaDir || _config.DEFAULT_TLS_ROOT_CA_DIR;
26
-
27
- const configDir = (0, _config.getConfigDir)();
28
-
29
- if (opts.disable) {
30
- await (0, _https.removeCert)(opts);
31
- await (0, _httpProxy.reconfigureHTTPProxy)({
32
- restart: true
33
- });
34
- console.log();
35
- console.log(_chalk.default.green(`✅ HTTPS for service ${opts.disable} is now disabled`));
36
- console.log();
37
- return;
38
- }
39
-
40
- if (!services || services.length === 0) {
41
- if (!_fs.default.existsSync(`${configDir}/tls-certs`)) return;
42
-
43
- const files = _fs.default.readdirSync(`${configDir}/tls-certs`);
44
-
45
- const urls = files.filter(file => file.endsWith('.crt')).map(crt => {
46
- return `https://${crt.replace('.crt', '')}`;
47
- });
48
-
49
- for (const url of urls) {
50
- console.log(`${url}`);
51
- }
52
-
53
- return;
54
- }
55
-
56
- if (!_fs.default.existsSync(`${tlsRootCaDir}/ca.crt`) || !_fs.default.existsSync(`${tlsRootCaDir}/ca.key`)) {
57
- await (0, _https.generateRootCa)();
58
- }
59
-
60
- const navy = await (0, _navy.getNavy)(opts.navy);
61
- await navy.ensurePluginsLoaded();
62
- const availableServices = await navy.getAvailableServiceNames();
63
- const httpsReadyServices = [];
64
-
65
- for (const service of services) {
66
- if (!availableServices.includes(service)) {
67
- console.log(`❌ ${service} not found, skipping`);
68
- continue;
69
- }
70
-
71
- const serviceUrl = await navy.url(service);
72
-
73
- try {
74
- await (0, _https.createCert)({
75
- serviceUrl
76
- });
77
- httpsReadyServices.push(service);
78
- } catch (error) {
79
- console.log(error);
80
- throw new _errors.NavyError(`Could not generate TLS cert for ${service}`);
81
- }
82
- }
83
-
84
- await (0, _httpProxy.reconfigureHTTPProxy)({
85
- restart: true
86
- });
87
- console.log();
88
- console.log(_chalk.default.green(`✅ Service(s) ${httpsReadyServices.join(', ')} now accessible via HTTPS🔒`));
89
- console.log();
90
- }
91
-
92
- module.exports = exports.default;
package/lib/cli/import.js DELETED
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = _default;
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _chalk = _interopRequireDefault(require("chalk"));
13
-
14
- var _fs = _interopRequireDefault(require("../util/fs"));
15
-
16
- var _ = require("../");
17
-
18
- var _configProvider = require("../config-provider");
19
-
20
- var _util = require("./util");
21
-
22
- async function _default(opts) {
23
- const navy = (0, _.getNavy)(opts.navy);
24
-
25
- const boatAsciiArt = _fs.default.readFileSync(_path.default.join(__dirname, '../../resources/sailing-boat.txt')).toString();
26
-
27
- const initialiseOpts = await (0, _configProvider.getImportOptionsForCLI)(opts);
28
- await (0, _util.importNavy)(navy, initialiseOpts);
29
- console.log(` You can now use ${_chalk.default.bold('navy')} commands from any directory to control this Navy.`);
30
- console.log();
31
-
32
- if (process.stdout.isTTY) {
33
- console.log(boatAsciiArt);
34
- console.log();
35
- }
36
- }
37
-
38
- module.exports = exports.default;
package/lib/cli/index.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _package = _interopRequireDefault(require("../../package.json"));
6
-
7
- var _program = _interopRequireDefault(require("./program"));
8
-
9
- var _errors = require("../errors");
10
-
11
- const debug = require('debug')('navy:cli');
12
-
13
- _program.default.version(_package.default.version);
14
-
15
- _program.default.command('help').alias('*').action(() => _program.default.help());
16
-
17
- try {
18
- _program.default.parse(process.argv);
19
- } catch (ex) {
20
- if (ex instanceof _errors.NavyError) {
21
- ex.prettyPrint();
22
- } else {
23
- throw ex;
24
- }
25
- }
26
-
27
- debug('Invoked CLI action');
28
-
29
- if (_program.default.args.length === 0) {
30
- _program.default.help();
31
- }