navy 6.0.0 → 7.0.0-alpha.2
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/lib/__tests__/config-provider.js +75 -0
- package/lib/__tests__/config.js +130 -0
- package/lib/__tests__/driver-logging.js +148 -0
- package/lib/__tests__/driver.js +19 -0
- package/lib/__tests__/errors.js +49 -0
- package/lib/__tests__/http-proxy.js +214 -0
- package/lib/__tests__/index.js +25 -0
- package/lib/__tests__/service.js +16 -0
- package/lib/cli/__tests__/develop.js +239 -0
- package/lib/cli/__tests__/external-ip.js +68 -0
- package/lib/cli/__tests__/health.js +257 -0
- package/lib/cli/__tests__/https.js +210 -0
- package/lib/cli/__tests__/import.js +110 -0
- package/lib/cli/__tests__/index.js +118 -0
- package/lib/cli/__tests__/lan-ip.js +90 -0
- package/lib/cli/__tests__/launch.js +179 -0
- package/lib/cli/__tests__/live.js +155 -0
- package/lib/cli/__tests__/local-ip.js +72 -0
- package/lib/cli/__tests__/logs.js +52 -0
- package/lib/cli/__tests__/open.js +65 -0
- package/lib/cli/__tests__/program.js +472 -0
- package/lib/cli/__tests__/ps.js +345 -0
- package/lib/cli/__tests__/refresh-config.js +95 -0
- package/lib/cli/__tests__/run.js +54 -0
- package/lib/cli/__tests__/status.js +204 -0
- package/lib/cli/__tests__/updates.js +243 -0
- package/lib/cli/__tests__/wait-for-healthy.js +134 -0
- package/lib/cli/config/__tests__/index.js +275 -0
- package/lib/cli/config/__tests__/wrapper.js +53 -0
- package/lib/cli/config/index.js +19 -37
- package/lib/cli/config/wrapper.js +0 -6
- package/lib/cli/develop.js +7 -21
- package/lib/cli/doctor/__tests__/clean-compose-files.js +78 -0
- package/lib/cli/doctor/__tests__/index.js +67 -0
- package/lib/cli/doctor/__tests__/invalid-compose-config.js +103 -0
- package/lib/cli/doctor/__tests__/invalid-state.js +83 -0
- package/lib/cli/doctor/__tests__/util.js +91 -0
- package/lib/cli/doctor/clean-compose-files.js +5 -13
- package/lib/cli/doctor/index.js +0 -12
- package/lib/cli/doctor/invalid-compose-config.js +0 -4
- package/lib/cli/doctor/invalid-state.js +0 -6
- package/lib/cli/doctor/util.js +0 -10
- package/lib/cli/external-ip.js +0 -4
- package/lib/cli/health.js +0 -12
- package/lib/cli/https.js +9 -25
- package/lib/cli/import.js +0 -12
- package/lib/cli/index.js +0 -9
- package/lib/cli/lan-ip.js +2 -8
- package/lib/cli/launch.js +0 -9
- package/lib/cli/live.js +6 -16
- package/lib/cli/local-ip.js +2 -7
- package/lib/cli/logs.js +0 -3
- package/lib/cli/open.js +2 -7
- package/lib/cli/program.js +73 -101
- package/lib/cli/ps.js +1 -21
- package/lib/cli/refresh-config.js +0 -7
- package/lib/cli/run.js +0 -3
- package/lib/cli/status.js +0 -11
- package/lib/cli/updates.js +0 -22
- package/lib/cli/util/__tests__/get-or-initialise-navy.js +66 -0
- package/lib/cli/util/__tests__/import.js +123 -0
- package/lib/cli/util/__tests__/index.js +17 -0
- package/lib/cli/util/__tests__/merge-action-options.js +47 -0
- package/lib/cli/util/__tests__/reconfigure.js +78 -0
- package/lib/cli/util/get-or-initialise-navy.js +0 -7
- package/lib/cli/util/import.js +0 -9
- package/lib/cli/util/index.js +0 -2
- package/lib/cli/util/merge-action-options.js +20 -0
- package/lib/cli/util/reconfigure.js +0 -4
- package/lib/cli/wait-for-healthy.js +0 -21
- package/lib/client/registry/__tests__/get-credentials.js +62 -0
- package/lib/client/registry/__tests__/get-endpoint.js +124 -0
- package/lib/client/registry/__tests__/get-fat-manifest.js +67 -0
- package/lib/client/registry/__tests__/get-token.js +66 -0
- package/lib/client/registry/__tests__/helpers.js +26 -0
- package/lib/client/registry/get-credentials.js +3 -9
- package/lib/client/registry/get-endpoint.js +29 -63
- package/lib/client/registry/get-fat-manifest.js +2 -9
- package/lib/client/registry/get-token.js +2 -13
- package/lib/client/registry/helpers.js +0 -4
- package/lib/config-provider.js +0 -12
- package/lib/config-providers/filesystem/__tests__/index.js +176 -0
- package/lib/config-providers/filesystem/index.js +5 -23
- package/lib/config-providers/npm/__tests__/index.js +226 -0
- package/lib/config-providers/npm/__tests__/util.js +1 -2
- package/lib/config-providers/npm/index.js +12 -35
- package/lib/config-providers/npm/util.js +0 -3
- package/lib/config.js +4 -19
- package/lib/domain/__tests__/container-image.js +81 -0
- package/lib/domain/__tests__/oci-api-specification.js +23 -0
- package/lib/domain/container-image.js +8 -21
- package/lib/domain/oci-api-specification.js +3 -5
- package/lib/driver-logging.js +0 -19
- package/lib/driver.js +0 -4
- package/lib/drivers/docker-compose/__tests__/client.js +249 -0
- package/lib/drivers/docker-compose/__tests__/index.js +430 -0
- package/lib/drivers/docker-compose/client.js +0 -16
- package/lib/drivers/docker-compose/index.js +7 -49
- package/lib/errors.js +0 -10
- package/lib/http-proxy.js +28 -23
- package/lib/index.js +1 -9
- package/lib/middleware/__tests__/add-service-proxy-config.js +258 -0
- package/lib/middleware/__tests__/develop.js +120 -0
- package/lib/middleware/__tests__/helpers.js +154 -0
- package/lib/middleware/__tests__/port-override.js +125 -0
- package/lib/middleware/__tests__/set-env-vars.js +94 -0
- package/lib/middleware/__tests__/set-image.js +76 -0
- package/lib/middleware/__tests__/set-logging-driver.js +94 -0
- package/lib/middleware/__tests__/tag-override.js +92 -0
- package/lib/middleware/add-service-proxy-config.js +8 -16
- package/lib/middleware/develop.js +2 -5
- package/lib/middleware/helpers.js +6 -12
- package/lib/middleware/port-override.js +5 -8
- package/lib/middleware/set-env-vars.js +6 -6
- package/lib/middleware/set-image.js +4 -5
- package/lib/middleware/set-logging-driver.js +6 -6
- package/lib/middleware/tag-override.js +4 -6
- package/lib/navy/__tests__/default-middleware.js +40 -0
- package/lib/navy/__tests__/index.js +1612 -0
- package/lib/navy/__tests__/middleware.js +71 -0
- package/lib/navy/__tests__/plugin-interface.js +121 -0
- package/lib/navy/__tests__/state.js +103 -0
- package/lib/navy/__tests__/util.js +24 -0
- package/lib/navy/default-middleware.js +0 -10
- package/lib/navy/index.js +83 -138
- package/lib/navy/middleware.js +0 -6
- package/lib/navy/plugin-interface.js +2 -10
- package/lib/navy/state.js +12 -24
- package/lib/navy/util.js +0 -1
- package/lib/service.js +2 -3
- package/lib/util/__tests__/exec-async.js +83 -0
- package/lib/util/__tests__/external-ip.js +97 -2
- package/lib/util/__tests__/get-lan-ip.js +46 -0
- package/lib/util/__tests__/has-update.js +136 -0
- package/lib/util/__tests__/https.js +301 -0
- package/lib/util/__tests__/navyrc.js +45 -0
- package/lib/util/__tests__/service-host.js +63 -5
- package/lib/util/__tests__/table.js +44 -0
- package/lib/util/docker-client.js +2 -10
- package/lib/util/exec-async.js +0 -4
- package/lib/util/external-ip.js +8 -12
- package/lib/util/fs.js +1 -6
- package/lib/util/get-lan-ip.js +0 -5
- package/lib/util/has-update.js +2 -14
- package/lib/util/https.js +11 -55
- package/lib/util/navyrc.js +0 -5
- package/lib/util/service-host.js +0 -17
- package/lib/util/table.js +0 -6
- package/package.json +14 -13
|
@@ -4,20 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _helpers = require("./helpers");
|
|
9
|
-
|
|
10
8
|
function rewriteService(service, serviceName, serviceState) {
|
|
11
9
|
if (!serviceState || !serviceState._develop) return service;
|
|
12
10
|
const _serviceState = serviceState;
|
|
13
|
-
return {
|
|
11
|
+
return {
|
|
12
|
+
...service,
|
|
14
13
|
stdin_open: true,
|
|
15
14
|
volumes: _helpers.middlewareHelpers.addVolumes(service, Object.keys(serviceState._develop.mounts).map(local => `${local}:${_serviceState._develop.mounts[local]}`)),
|
|
16
15
|
command: serviceState._develop.command ? serviceState._develop.command : service.command
|
|
17
16
|
};
|
|
18
17
|
}
|
|
19
|
-
|
|
20
18
|
var _default = (config, state) => _helpers.middlewareHelpers.rewriteServicesWithState(config, state, rewriteService);
|
|
21
|
-
|
|
22
19
|
exports.default = _default;
|
|
23
20
|
module.exports = exports.default;
|
|
@@ -4,34 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.middlewareHelpers = void 0;
|
|
7
|
-
|
|
8
7
|
var _lodash = require("lodash");
|
|
9
|
-
|
|
10
|
-
const middlewareHelpers = {
|
|
8
|
+
const middlewareHelpers = exports.middlewareHelpers = {
|
|
11
9
|
rewriteServices(config, serviceMapperFn) {
|
|
12
|
-
return {
|
|
10
|
+
return {
|
|
11
|
+
...config,
|
|
13
12
|
services: (0, _lodash.mapValues)(config.services || {}, serviceMapperFn)
|
|
14
13
|
};
|
|
15
14
|
},
|
|
16
|
-
|
|
17
15
|
rewriteServicesWithState(config, state, serviceMapperFn) {
|
|
18
16
|
const normalisedState = state || {
|
|
19
17
|
services: {}
|
|
20
18
|
};
|
|
21
|
-
|
|
22
19
|
function mapperFn(service, serviceName) {
|
|
23
20
|
return serviceMapperFn(service, serviceName, normalisedState.services[serviceName]);
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
return {
|
|
23
|
+
...config,
|
|
27
24
|
services: (0, _lodash.mapValues)(config.services || {}, mapperFn)
|
|
28
25
|
};
|
|
29
26
|
},
|
|
30
|
-
|
|
31
27
|
addVolumes(service, volumes) {
|
|
32
28
|
const normalisedVolumes = service.volumes || [];
|
|
33
29
|
return [...normalisedVolumes, ...volumes];
|
|
34
30
|
}
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
exports.middlewareHelpers = middlewareHelpers;
|
|
31
|
+
};
|
|
@@ -4,24 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _lodash = require("lodash");
|
|
9
|
-
|
|
10
8
|
function getPortConfig(serviceName, state) {
|
|
11
9
|
return state.services[serviceName] ? state.services[serviceName]._ports || {} : {};
|
|
12
10
|
}
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
var _default = (config, state) => ({
|
|
12
|
+
...config,
|
|
15
13
|
services: (0, _lodash.mapValues)(config.services, (service, serviceName) => {
|
|
16
14
|
const portConfig = getPortConfig(serviceName, state);
|
|
17
|
-
const hasPortConfig = !!portConfig;
|
|
18
15
|
const internalPorts = Object.keys(portConfig).filter(internal => !!portConfig[internal]);
|
|
19
16
|
const inheritedPorts = service.ports ? service.ports.filter(port => internalPorts.indexOf(port) === -1) : [];
|
|
20
|
-
return {
|
|
21
|
-
|
|
17
|
+
return {
|
|
18
|
+
...service,
|
|
19
|
+
ports: [...inheritedPorts, ...internalPorts.map(internal => `${portConfig[internal]}:${internal}`)]
|
|
22
20
|
};
|
|
23
21
|
})
|
|
24
22
|
});
|
|
25
|
-
|
|
26
23
|
exports.default = _default;
|
|
27
24
|
module.exports = exports.default;
|
|
@@ -4,19 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _lodash = require("lodash");
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
var _default = (config, state) => ({
|
|
9
|
+
...config,
|
|
11
10
|
services: (0, _lodash.mapValues)(config.services, (serviceConfig, serviceName) => {
|
|
12
11
|
const serviceState = state.services[serviceName] || {};
|
|
13
|
-
return {
|
|
14
|
-
|
|
12
|
+
return {
|
|
13
|
+
...serviceConfig,
|
|
14
|
+
environment: {
|
|
15
|
+
...serviceConfig.environment,
|
|
15
16
|
...serviceState.environment
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
})
|
|
19
20
|
});
|
|
20
|
-
|
|
21
21
|
exports.default = _default;
|
|
22
22
|
module.exports = exports.default;
|
|
@@ -4,17 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _lodash = require("lodash");
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
var _default = (config, state) => ({
|
|
9
|
+
...config,
|
|
11
10
|
services: (0, _lodash.mapValues)(config.services, (serviceConfig, serviceName) => {
|
|
12
11
|
const serviceState = state.services[serviceName] || {};
|
|
13
|
-
return {
|
|
12
|
+
return {
|
|
13
|
+
...serviceConfig,
|
|
14
14
|
image: serviceState.image || serviceConfig.image
|
|
15
15
|
};
|
|
16
16
|
})
|
|
17
17
|
});
|
|
18
|
-
|
|
19
18
|
exports.default = _default;
|
|
20
19
|
module.exports = exports.default;
|
|
@@ -4,19 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _lodash = require("lodash");
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
var _default = (config, state) => ({
|
|
9
|
+
...config,
|
|
11
10
|
services: (0, _lodash.mapValues)(config.services, (serviceConfig, serviceName) => {
|
|
12
11
|
const serviceState = state.services[serviceName] || {};
|
|
13
|
-
return {
|
|
14
|
-
|
|
12
|
+
return {
|
|
13
|
+
...serviceConfig,
|
|
14
|
+
logging: {
|
|
15
|
+
...serviceConfig.logging,
|
|
15
16
|
...serviceState.logging
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
})
|
|
19
20
|
});
|
|
20
|
-
|
|
21
21
|
exports.default = _default;
|
|
22
22
|
module.exports = exports.default;
|
|
@@ -4,27 +4,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = (config, state) => {
|
|
9
8
|
const newConfig = config;
|
|
10
9
|
Object.keys(state.services || {}).forEach(function (serviceName) {
|
|
11
10
|
const serviceConfig = newConfig.services[serviceName];
|
|
12
11
|
const serviceState = state.services[serviceName];
|
|
13
|
-
|
|
14
12
|
if (serviceState._tag && serviceConfig) {
|
|
15
|
-
let image = serviceConfig.image;
|
|
13
|
+
let image = serviceConfig.image;
|
|
16
14
|
|
|
15
|
+
// strip existing tag off if it exists
|
|
17
16
|
if (image.indexOf(':') !== -1) {
|
|
18
17
|
image = image.substring(0, image.indexOf(':'));
|
|
19
|
-
}
|
|
20
|
-
|
|
18
|
+
}
|
|
21
19
|
|
|
20
|
+
// add new tag
|
|
22
21
|
image += ':' + serviceState._tag;
|
|
23
22
|
serviceConfig.image = image;
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
25
|
return newConfig;
|
|
27
26
|
};
|
|
28
|
-
|
|
29
27
|
exports.default = _default;
|
|
30
28
|
module.exports = exports.default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _chai = require("chai");
|
|
5
|
+
var _defaultMiddleware = _interopRequireDefault(require("../default-middleware"));
|
|
6
|
+
var _develop = _interopRequireDefault(require("../../middleware/develop"));
|
|
7
|
+
var _tagOverride = _interopRequireDefault(require("../../middleware/tag-override"));
|
|
8
|
+
var _portOverride = _interopRequireDefault(require("../../middleware/port-override"));
|
|
9
|
+
var _setEnvVars = _interopRequireDefault(require("../../middleware/set-env-vars"));
|
|
10
|
+
var _setLoggingDriver = _interopRequireDefault(require("../../middleware/set-logging-driver"));
|
|
11
|
+
var _setImage = _interopRequireDefault(require("../../middleware/set-image"));
|
|
12
|
+
var _addServiceProxyConfig = _interopRequireDefault(require("../../middleware/add-service-proxy-config"));
|
|
13
|
+
/* eslint-env mocha */
|
|
14
|
+
|
|
15
|
+
describe('default-middleware', function () {
|
|
16
|
+
it('should return the standard middleware pipeline in the documented order', function () {
|
|
17
|
+
const fakeNavy = {
|
|
18
|
+
name: 'env',
|
|
19
|
+
normalisedName: 'env'
|
|
20
|
+
};
|
|
21
|
+
const list = (0, _defaultMiddleware.default)(fakeNavy);
|
|
22
|
+
(0, _chai.expect)(list).to.have.lengthOf(7);
|
|
23
|
+
(0, _chai.expect)(list[0]).to.equal(_develop.default);
|
|
24
|
+
(0, _chai.expect)(list[1]).to.equal(_tagOverride.default);
|
|
25
|
+
(0, _chai.expect)(list[2]).to.equal(_portOverride.default);
|
|
26
|
+
(0, _chai.expect)(list[3]).to.equal(_setEnvVars.default);
|
|
27
|
+
(0, _chai.expect)(list[4]).to.equal(_setLoggingDriver.default);
|
|
28
|
+
(0, _chai.expect)(list[5]).to.equal(_setImage.default);
|
|
29
|
+
(0, _chai.expect)(list[6]).to.be.a('function');
|
|
30
|
+
});
|
|
31
|
+
it('should bind the navy through to the addServiceProxy middleware factory', function () {
|
|
32
|
+
const fakeNavy = {
|
|
33
|
+
name: 'env',
|
|
34
|
+
normalisedName: 'env'
|
|
35
|
+
};
|
|
36
|
+
const list = (0, _defaultMiddleware.default)(fakeNavy);
|
|
37
|
+
const expected = (0, _addServiceProxyConfig.default)(fakeNavy);
|
|
38
|
+
(0, _chai.expect)(typeof list[6]).to.equal(typeof expected);
|
|
39
|
+
});
|
|
40
|
+
});
|