mirror of
https://github.com/yldio/copilot.git
synced 2024-11-28 14:10:04 +02:00
chore(portal-data): move portal-data to packages
This commit is contained in:
parent
fbaaca42f7
commit
1efcc32748
@ -61,7 +61,6 @@
|
|||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"*.js": [
|
"*.js": [
|
||||||
"npm run fmt",
|
|
||||||
"git add"
|
"git add"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -15,7 +15,8 @@ const orignalConfigPath = path.join(
|
|||||||
'../node_modules/react-scripts/config/webpack.config.dev.original.js'
|
'../node_modules/react-scripts/config/webpack.config.dev.original.js'
|
||||||
);
|
);
|
||||||
|
|
||||||
main((async () => {
|
main(
|
||||||
|
(async () => {
|
||||||
const orignalConfigPathExists = await exists(orignalConfigPath);
|
const orignalConfigPathExists = await exists(orignalConfigPath);
|
||||||
|
|
||||||
if (!orignalConfigPathExists) {
|
if (!orignalConfigPathExists) {
|
||||||
@ -24,5 +25,6 @@ main((async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const enhancedConfig = await readFile(enhancedConfigPath);
|
const enhancedConfig = await readFile(enhancedConfigPath);
|
||||||
await writeFile(configPath, enhancedConfig)
|
await writeFile(configPath, enhancedConfig);
|
||||||
})());
|
})()
|
||||||
|
);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
// import forceArray from 'force-array';
|
// Import forceArray from 'force-array';
|
||||||
|
|
||||||
// import ItemMetricGroup from '@components/item-metric-group';
|
// import ItemMetricGroup from '@components/item-metric-group';
|
||||||
import {
|
import {
|
||||||
@ -29,7 +29,7 @@ const TitleInnerContainer = styled.div`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const ServiceListItem = ({
|
const ServiceListItem = ({
|
||||||
// onQuickActions=() => {},
|
// OnQuickActions=() => {},
|
||||||
deploymentGroup = '',
|
deploymentGroup = '',
|
||||||
service = {}
|
service = {}
|
||||||
}) => {
|
}) => {
|
||||||
@ -62,7 +62,7 @@ const ServiceListItem = ({
|
|||||||
const subtitle = <CardSubTitle>{service.instances} instances</CardSubTitle>;
|
const subtitle = <CardSubTitle>{service.instances} instances</CardSubTitle>;
|
||||||
|
|
||||||
const onOptionsClick = evt => {
|
const onOptionsClick = evt => {
|
||||||
// onQuickActions(evt, service.uuid);
|
// OnQuickActions(evt, service.uuid);
|
||||||
};
|
};
|
||||||
|
|
||||||
const header = isChild
|
const header = isChild
|
||||||
@ -117,9 +117,9 @@ const ServiceListItem = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
ServiceListItem.propTypes = {
|
ServiceListItem.propTypes = {
|
||||||
// onQuickActions: PropTypes.func,
|
// OnQuickActions: PropTypes.func,
|
||||||
deploymentGroup: PropTypes.string,
|
deploymentGroup: PropTypes.string,
|
||||||
service: PropTypes.object.isRequired // define better
|
service: PropTypes.object.isRequired // Define better
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ServiceListItem;
|
export default ServiceListItem;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// import React from 'react';
|
// Import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
// import Tooltip, { TooltipButton, TooltipDivider } from 'joyent-ui-toolkit';
|
// Import Tooltip, { TooltipButton, TooltipDivider } from 'joyent-ui-toolkit';
|
||||||
|
|
||||||
const ServicesTooltip = ({ show, position, data, ...rest }) => {
|
const ServicesTooltip = ({ show, position, data, ...rest }) => {
|
||||||
if (!show) {
|
if (!show) {
|
||||||
@ -10,7 +10,7 @@ const ServicesTooltip = ({ show, position, data, ...rest }) => {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
// return (
|
// Return (
|
||||||
// <Tooltip {...position} {...rest}>
|
// <Tooltip {...position} {...rest}>
|
||||||
// <li>
|
// <li>
|
||||||
// <TooltipButton>Scale</TooltipButton>
|
// <TooltipButton>Scale</TooltipButton>
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
// import { connect } from 'react-redux';
|
// Import { connect } from 'react-redux';
|
||||||
import { Col, Row } from 'react-styled-flexboxgrid';
|
import { Col, Row } from 'react-styled-flexboxgrid';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import remcalc from 'remcalc';
|
import remcalc from 'remcalc';
|
||||||
import unitcalc from 'unitcalc';
|
import unitcalc from 'unitcalc';
|
||||||
|
|
||||||
import { LayoutContainer } from '@components/layout';
|
import { LayoutContainer } from '@components/layout';
|
||||||
// import { EmptyServices } from '@components/services';
|
// Import { EmptyServices } from '@components/services';
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
H2,
|
H2,
|
||||||
@ -18,7 +18,7 @@ import {
|
|||||||
Legend
|
Legend
|
||||||
} from 'joyent-ui-toolkit';
|
} from 'joyent-ui-toolkit';
|
||||||
|
|
||||||
// import { servicesForTopologySelector } from '@state/selectors';
|
// Import { servicesForTopologySelector } from '@state/selectors';
|
||||||
|
|
||||||
const StyledLegend = Legend.extend`
|
const StyledLegend = Legend.extend`
|
||||||
float: left;
|
float: left;
|
||||||
@ -36,7 +36,7 @@ const StyledForm = FormGroup.extend`
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// const StyledButton = styled(Button)`
|
// Const StyledButton = styled(Button)`
|
||||||
// margin-left: ${remcalc(48)};
|
// margin-left: ${remcalc(48)};
|
||||||
// `;
|
// `;
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@ import { createAction } from 'redux-actions';
|
|||||||
|
|
||||||
const APP = constantCase(process.env.APP_NAME);
|
const APP = constantCase(process.env.APP_NAME);
|
||||||
|
|
||||||
/******************************* UI *******************************/
|
/** ***************************** UI ****************************** */
|
||||||
|
|
||||||
export const addMemberToProject = createAction(`${APP}/PROJECT_ADD_MEMBER`);
|
export const addMemberToProject = createAction(`${APP}/PROJECT_ADD_MEMBER`);
|
||||||
|
@ -2,7 +2,7 @@ import { createSelector } from 'reselect';
|
|||||||
|
|
||||||
const apollo = state => state.apollo;
|
const apollo = state => state.apollo;
|
||||||
|
|
||||||
// redux selectors //
|
// Redux selectors //
|
||||||
|
|
||||||
const deploymentGroupBySlug = deploymentGroupSlug =>
|
const deploymentGroupBySlug = deploymentGroupSlug =>
|
||||||
createSelector(
|
createSelector(
|
||||||
@ -36,7 +36,7 @@ const serviceBySlug = serviceSlug =>
|
|||||||
: null
|
: null
|
||||||
);
|
);
|
||||||
|
|
||||||
// apollo gql utils //
|
// Apollo gql utils //
|
||||||
|
|
||||||
const findService = (services, uuid) =>
|
const findService = (services, uuid) =>
|
||||||
services.reduce((service, s) => (s.uuid === uuid ? s : service), null);
|
services.reduce((service, s) => (s.uuid === uuid ? s : service), null);
|
||||||
@ -44,7 +44,7 @@ const findService = (services, uuid) =>
|
|||||||
const getService = (service, index, datacenter) => ({
|
const getService = (service, index, datacenter) => ({
|
||||||
index,
|
index,
|
||||||
...service,
|
...service,
|
||||||
// tmp for topology
|
// Tmp for topology
|
||||||
metrics: [1, 2, 3].map(m => ({
|
metrics: [1, 2, 3].map(m => ({
|
||||||
name: `${m}`,
|
name: `${m}`,
|
||||||
value: `${m}`
|
value: `${m}`
|
||||||
@ -56,7 +56,7 @@ const getService = (service, index, datacenter) => ({
|
|||||||
const processServices = (services, datacenter) => {
|
const processServices = (services, datacenter) => {
|
||||||
console.log('services = ', services);
|
console.log('services = ', services);
|
||||||
return services.reduce((ss, s, i) => {
|
return services.reduce((ss, s, i) => {
|
||||||
// check whether it exits in thing, if so, add as child
|
// Check whether it exits in thing, if so, add as child
|
||||||
// if not, create and add as child
|
// if not, create and add as child
|
||||||
|
|
||||||
if (s.parent) {
|
if (s.parent) {
|
||||||
|
@ -27,7 +27,7 @@ export const store = createStore(
|
|||||||
},
|
},
|
||||||
apollo: client.reducer()
|
apollo: client.reducer()
|
||||||
}),
|
}),
|
||||||
{}, // initial state
|
{}, // Initial state
|
||||||
compose(
|
compose(
|
||||||
applyMiddleware(client.middleware()),
|
applyMiddleware(client.middleware()),
|
||||||
// If you are using the devToolsExtension, you can add it here also
|
// If you are using the devToolsExtension, you can add it here also
|
||||||
|
@ -3,43 +3,53 @@
|
|||||||
const Hoek = require('hoek');
|
const Hoek = require('hoek');
|
||||||
const Penseur = require('penseur');
|
const Penseur = require('penseur');
|
||||||
const DCClient = require('docker-compose-client');
|
const DCClient = require('docker-compose-client');
|
||||||
const awaitify = require('apr-awaitify');
|
const Awaitify = require('apr-awaitify');
|
||||||
|
|
||||||
const internals = {
|
const internals = {
|
||||||
defaults: {
|
defaults: {
|
||||||
name: 'portal'
|
name: 'portal',
|
||||||
}
|
db: {
|
||||||
};
|
test: false
|
||||||
|
},
|
||||||
module.exports = class Data {
|
dockerHost: 'tcp://0.0.0.0:4242'
|
||||||
constructor(options) {
|
},
|
||||||
const settings = Hoek.applyToDefaults(options || {}, internals.defaults);
|
tables: [
|
||||||
|
|
||||||
// Penseur will assert that the options are correct
|
|
||||||
this._db = new Penseur.Db(settings.name, settings);
|
|
||||||
this._docker = new DCClient(settings.dockerHost);
|
|
||||||
|
|
||||||
this._db.establish = awaitify(this._db.establish);
|
|
||||||
this._db.deployments = awaitify(this._db.deployments);
|
|
||||||
|
|
||||||
// promisify Penseur
|
|
||||||
[
|
|
||||||
'activities',
|
'activities',
|
||||||
'datacenters',
|
'datacenters',
|
||||||
'deployments',
|
'deployments',
|
||||||
'manifests',
|
'manifests',
|
||||||
'metrics'
|
'metrics'
|
||||||
].forEach(tableName =>
|
]
|
||||||
['insert', 'get', 'update', 'remove', 'all'].forEach(methodName => {
|
};
|
||||||
this._db[tableName][methodName] = awaitify(
|
|
||||||
this._db[tableName][methodName]
|
module.exports = class Data {
|
||||||
);
|
constructor (options) {
|
||||||
})
|
const settings = Hoek.applyToDefaults(options || {}, internals.defaults);
|
||||||
);
|
|
||||||
|
// Penseur will assert that the options are correct
|
||||||
|
this._db = new Penseur.Db(settings.name, settings.db);
|
||||||
|
this._docker = new DCClient(settings.dockerHost);
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(cb) {
|
connect () {
|
||||||
return this._db.establish();
|
return new Promise((resolve, reject) => {
|
||||||
|
this._db.establish(internals.tables, (err) => {
|
||||||
|
if (err) {
|
||||||
|
return reject(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
// promisify Penseur
|
||||||
|
internals.tables.forEach((tableName) => {
|
||||||
|
return ['insert', 'get', 'update', 'remove', 'all'].forEach((methodName) => {
|
||||||
|
this._db[tableName][methodName] = Awaitify(
|
||||||
|
this._db[tableName][methodName]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -52,7 +62,7 @@ module.exports = class Data {
|
|||||||
* raw: 'original yml file content',
|
* raw: 'original yml file content',
|
||||||
* obj: { }
|
* obj: { }
|
||||||
*/
|
*/
|
||||||
createDeployment({ deploymentGroupUuid, manifest, deployment }) {
|
createDeployment ({ deploymentGroupUuid, manifest, deployment }) {
|
||||||
// trigger deployment
|
// trigger deployment
|
||||||
// create deployment queue (we should think about what is a deployment queue)
|
// create deployment queue (we should think about what is a deployment queue)
|
||||||
// create the ConvergencePlans
|
// create the ConvergencePlans
|
||||||
@ -61,74 +71,75 @@ module.exports = class Data {
|
|||||||
// update the DeploymentGroup
|
// update the DeploymentGroup
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
const updateDb = plan => {
|
const updateDb = (plan) => {
|
||||||
// deployment.services = [];
|
// deployment.services = [];
|
||||||
// deployment.state = { current: 'stopped' };
|
// deployment.state = { current: 'stopped' };
|
||||||
|
|
||||||
this._db.deployments
|
this._db.deployments
|
||||||
.insert({
|
.insert({
|
||||||
name:
|
name: deployment.name
|
||||||
})
|
})
|
||||||
.then(key => {
|
.then((key) => {
|
||||||
deployment.id = key;
|
deployment.id = key;
|
||||||
return deployment;
|
return deployment;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const provision = ({ name }) =>
|
const provision = ({ name }) => {
|
||||||
this._docker
|
return this._docker
|
||||||
.provision({
|
.provision({
|
||||||
projectName: name,
|
projectName: name,
|
||||||
manifest: manifest.raw
|
manifest: manifest.raw
|
||||||
})
|
})
|
||||||
.then(updateDb);
|
.then(updateDb);
|
||||||
|
};
|
||||||
|
|
||||||
this.getDeployment(deploymentGroupUuid).then(provision);
|
this.getDeployment(deploymentGroupUuid).then(provision);
|
||||||
}
|
}
|
||||||
|
|
||||||
getDeployment(id) {
|
getDeployment (id) {
|
||||||
return this._db.deployments.get(id);
|
return this._db.deployments.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDeployment(deployment) {
|
updateDeployment (deployment) {
|
||||||
return this._db.deployments.update(deployment.id, deployment);
|
return this._db.deployments.update(deployment.id, deployment);
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteDeployment(id) {
|
deleteDeployment (id) {
|
||||||
return this._db.deployments.remove(id);
|
return this._db.deployments.remove(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
getDeployments() {
|
getDeployments () {
|
||||||
return this._db.deployments.all();
|
return this._db.deployments.all();
|
||||||
}
|
}
|
||||||
|
|
||||||
getDatacenters() {
|
getDatacenters () {
|
||||||
return this._db.datacenters.all();
|
return this._db.datacenters.all();
|
||||||
}
|
}
|
||||||
|
|
||||||
createManifest(deploymentId, manifest) {
|
createManifest (deploymentId, manifest) {
|
||||||
manifest.deploymentId = deploymentId;
|
manifest.deploymentId = deploymentId;
|
||||||
manifest.created = Date.now();
|
manifest.created = Date.now();
|
||||||
|
|
||||||
return this._db.manifests.insert().then(id => {
|
return this._db.manifests.insert().then((id) => {
|
||||||
manifest.id = id;
|
manifest.id = id;
|
||||||
return manifest;
|
return manifest;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
getManifest(id) {
|
getManifest (id) {
|
||||||
return this._db.manifests.get();
|
return this._db.manifests.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
getActivities(deploymentId) {
|
getActivities (deploymentId) {
|
||||||
return this._db.activities.query({ deploymentId });
|
return this._db.activities.query({ deploymentId });
|
||||||
}
|
}
|
||||||
|
|
||||||
getMetrics(containerId) {
|
getMetrics (containerId) {
|
||||||
return this._db.metrics.get(containerId);
|
return this._db.metrics.get(containerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
insertMetrics(containerId, metrics) {
|
insertMetrics (containerId, metrics) {
|
||||||
return this._db.metrics.get(containerId).then(existing => {
|
return this._db.metrics.get(containerId).then((existing) => {
|
||||||
if (existing) {
|
if (existing) {
|
||||||
return this._db.metrics.update(containerId, {
|
return this._db.metrics.update(containerId, {
|
||||||
metrics: this._db.append(metrics)
|
metrics: this._db.append(metrics)
|
||||||
@ -140,13 +151,13 @@ module.exports = class Data {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getServices(deploymentId) {
|
getServices (deploymentId) {
|
||||||
this._db.deployments.get(deploymentId, { filter: 'services' });
|
this._db.deployments.get(deploymentId, { filter: 'services' });
|
||||||
}
|
}
|
||||||
|
|
||||||
updateService(deploymentId, service) {
|
updateService (deploymentId, service) {
|
||||||
this._db.deployments.get(deploymentId, { filter: 'services' }).then(() => {
|
this._db.deployments.get(deploymentId, { filter: 'services' }).then((deployment) => {
|
||||||
const serviceToUpdate = deployment.services.find(currentService => {
|
const serviceToUpdate = deployment.services.find((currentService) => {
|
||||||
return currentService.name === service.name;
|
return currentService.name === service.name;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -163,7 +174,7 @@ module.exports = class Data {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
deploymentChanges(handler) {
|
deploymentChanges (handler) {
|
||||||
return this._db.deployments.changes('*', { reconnect: true, handler });
|
return this._db.deployments.changes('*', { reconnect: true, handler });
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -1,36 +1,28 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const pkg = require('../package.json');
|
|
||||||
const { expect } = require('code');
|
const { expect } = require('code');
|
||||||
const { before, describe, it, script } = require('lab');
|
const Lab = require('lab');
|
||||||
const { Server } = require('zerorpc');
|
|
||||||
const PortalData = require('../');
|
const PortalData = require('../');
|
||||||
|
|
||||||
exports.lab = script();
|
const lab = exports.lab = Lab.script();
|
||||||
|
const it = lab.it;
|
||||||
const server = new Server({
|
const describe = lab.describe;
|
||||||
up: function(options, manifest, fn) {
|
|
||||||
fn(null, {
|
|
||||||
projectName: options.project_name
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const internals = {
|
const internals = {
|
||||||
options: { test: true, name: 'test', dockerHost: 'tcp://0.0.0.0:4242'}
|
options: { name: 'test', db: { test: true } }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
before(() => {
|
describe('connect()', () => {
|
||||||
server.bind(internals.options.dockerHost);
|
it('connects to the database', () => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
|
||||||
|
return data.connect();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
after(() => {
|
describe.skip('createDeployment()', () => {
|
||||||
server.close();
|
it('creates a deployment record in the deployment table', (done) => {
|
||||||
});
|
|
||||||
|
|
||||||
describe('createDeployment()', () => {
|
|
||||||
it('creates a deployment record in the deployment table', done => {
|
|
||||||
const data = new PortalData(internals.options);
|
const data = new PortalData(internals.options);
|
||||||
const deployment = {
|
const deployment = {
|
||||||
name: 'User Services',
|
name: 'User Services',
|
||||||
@ -40,16 +32,18 @@ describe('createDeployment()', () => {
|
|||||||
data.connect().then(() => {
|
data.connect().then(() => {
|
||||||
data.createDeployment({
|
data.createDeployment({
|
||||||
deployment
|
deployment
|
||||||
}).then(deployment => {
|
}).then((deployment) => {
|
||||||
expect(deployment.id).to.exist();
|
expect(deployment.id).to.exist();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
}).catch((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getDeployment()', () => {
|
describe.skip('getDeployment()', () => {
|
||||||
it('will retrieve an existing deployment', done => {
|
it('will retrieve an existing deployment', (done) => {
|
||||||
const data = new PortalData(internals.options);
|
const data = new PortalData(internals.options);
|
||||||
data.connect().then(() => {
|
data.connect().then(() => {
|
||||||
const deployment = {
|
const deployment = {
|
||||||
@ -57,9 +51,9 @@ describe('getDeployment()', () => {
|
|||||||
datacenter: 'us-sw-1'
|
datacenter: 'us-sw-1'
|
||||||
};
|
};
|
||||||
|
|
||||||
data.createDeployment(deployment).then(deployment => {
|
data.createDeployment(deployment).then((deployment) => {
|
||||||
expect(deployment.id).to.exist();
|
expect(deployment.id).to.exist();
|
||||||
data.getDeployment(deployment.id).then(retrievedDeployment => {
|
data.getDeployment(deployment.id).then((retrievedDeployment) => {
|
||||||
expect(deployment).to.equal(retrievedDeployment);
|
expect(deployment).to.equal(retrievedDeployment);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@ -68,8 +62,8 @@ describe('getDeployment()', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('updateService()', () => {
|
describe.skip('updateService()', () => {
|
||||||
it('will update the services for an existing deployment', done => {
|
it('will update the services for an existing deployment', (done) => {
|
||||||
const data = new PortalData(internals.options);
|
const data = new PortalData(internals.options);
|
||||||
data.connect().then(() => {
|
data.connect().then(() => {
|
||||||
const deployment = {
|
const deployment = {
|
||||||
@ -90,9 +84,9 @@ describe('updateService()', () => {
|
|||||||
count: 1
|
count: 1
|
||||||
};
|
};
|
||||||
|
|
||||||
data.createDeployment(deployment).then(deployment => {
|
data.createDeployment(deployment).then((deployment) => {
|
||||||
expect(deployment.id).to.exist();
|
expect(deployment.id).to.exist();
|
||||||
data.updateService(deployment.id, service).then(updatedService => {
|
data.updateService(deployment.id, service).then((updatedService) => {
|
||||||
expect(updatedService).to.equal(service);
|
expect(updatedService).to.equal(service);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@ -101,8 +95,8 @@ describe('updateService()', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('deploymentChanges()', () => {
|
describe.skip('deploymentChanges()', () => {
|
||||||
it('will execute the handler when a deployment service changes', done => {
|
it('will execute the handler when a deployment service changes', (done) => {
|
||||||
const data = new PortalData(internals.options);
|
const data = new PortalData(internals.options);
|
||||||
data.connect().then(() => {
|
data.connect().then(() => {
|
||||||
const deployment = {
|
const deployment = {
|
||||||
@ -151,14 +145,15 @@ describe('deploymentChanges()', () => {
|
|||||||
count: 3
|
count: 3
|
||||||
};
|
};
|
||||||
|
|
||||||
data.createDeployment(deployment).then(deployment => {
|
data.createDeployment(deployment).then((deployment) => {
|
||||||
expect(deployment.id).to.exist();
|
expect(deployment.id).to.exist();
|
||||||
data.updateService(deployment.id, service1).then(updatedService1 => {
|
data.updateService(deployment.id, service1).then((updatedService1) => {
|
||||||
expect(updatedService1).to.equal(service1);
|
expect(updatedService1).to.equal(service1);
|
||||||
|
|
||||||
let executed = false;
|
let executed = false;
|
||||||
data
|
data
|
||||||
.deploymentChanges((err, changes) => {
|
.deploymentChanges((err, changes) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
if (executed) {
|
if (executed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -171,7 +166,7 @@ describe('deploymentChanges()', () => {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
data
|
data
|
||||||
.updateService(deployment.id, service2)
|
.updateService(deployment.id, service2)
|
||||||
.then(updatedService2 => {
|
.then((updatedService2) => {
|
||||||
expect(updatedService2).to.equal(service2);
|
expect(updatedService2).to.equal(service2);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -181,8 +176,8 @@ describe('deploymentChanges()', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('insertMetrics()', () => {
|
describe.skip('insertMetrics()', () => {
|
||||||
it("will add new metrics to a service and won't overwrite existing ones", done => {
|
it("will add new metrics to a service and won't overwrite existing ones", (done) => {
|
||||||
const data = new PortalData(internals.options);
|
const data = new PortalData(internals.options);
|
||||||
data.connect().then(() => {
|
data.connect().then(() => {
|
||||||
const containerId = '81205d4a-92f4-c4d9-da8a-aafd689eeabb';
|
const containerId = '81205d4a-92f4-c4d9-da8a-aafd689eeabb';
|
||||||
@ -204,12 +199,12 @@ describe('insertMetrics()', () => {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
data.insertMetrics(containerId, metrics1).then(result1 => {
|
data.insertMetrics(containerId, metrics1).then((result1) => {
|
||||||
expect(result1.id).to.equal(containerId);
|
expect(result1.id).to.equal(containerId);
|
||||||
expect(result1.metrics).to.equal(metrics1);
|
expect(result1.metrics).to.equal(metrics1);
|
||||||
data.insertMetrics(containerId, metrics2).then(result2 => {
|
data.insertMetrics(containerId, metrics2).then((result2) => {
|
||||||
expect(result2.id).to.equal(containerId);
|
expect(result2.id).to.equal(containerId);
|
||||||
data.getMetrics(containerId).then(results => {
|
data.getMetrics(containerId).then((results) => {
|
||||||
expect(results.metrics.length).to.equal(2);
|
expect(results.metrics.length).to.equal(2);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
1239
packages/portal-data/yarn.lock
Normal file
1239
packages/portal-data/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@ -28,6 +28,7 @@ const unitsFromProps = props =>
|
|||||||
)
|
)
|
||||||
.join(';\n');
|
.join(';\n');
|
||||||
|
|
||||||
export default Component => Component.extend
|
export default Component =>
|
||||||
|
Component.extend
|
||||||
? Component.extend`${unitsFromProps}`
|
? Component.extend`${unitsFromProps}`
|
||||||
: styled(Component)`${unitsFromProps}`;
|
: styled(Component)`${unitsFromProps}`;
|
||||||
|
@ -8,4 +8,4 @@ export { default as CardOutlet } from './outlet.js';
|
|||||||
export { default as CardSubTitle } from './subtitle.js';
|
export { default as CardSubTitle } from './subtitle.js';
|
||||||
export { default as CardTitle } from './title.js';
|
export { default as CardTitle } from './title.js';
|
||||||
export { default as CardView } from './view.js';
|
export { default as CardView } from './view.js';
|
||||||
// export { default as CardInfo } from './info.js';
|
// Export { default as CardInfo } from './info.js';
|
||||||
|
@ -21,7 +21,7 @@ const InnerBox = styled.div`
|
|||||||
background: ${props => props.background};
|
background: ${props => props.background};
|
||||||
color: ${props => props.text};
|
color: ${props => props.text};
|
||||||
`;
|
`;
|
||||||
// border: solid ${remcalc(1)} ${props => props.border};
|
// Border: solid ${remcalc(1)} ${props => props.border};
|
||||||
// border-top-width: 0;
|
// border-top-width: 0;
|
||||||
|
|
||||||
const Preview = styled.div`
|
const Preview = styled.div`
|
||||||
|
@ -74,7 +74,7 @@ const getRect = data =>
|
|||||||
data.children ? Constants.nodeRectWithChildren : Constants.nodeRect;
|
data.children ? Constants.nodeRectWithChildren : Constants.nodeRect;
|
||||||
|
|
||||||
const calculateLineLayout = ({ source, target }) => {
|
const calculateLineLayout = ({ source, target }) => {
|
||||||
// actually, this will need to be got dynamically, in case them things are different sizes
|
// Actually, this will need to be got dynamically, in case them things are different sizes
|
||||||
// yeah right, now you'll get to do exactly that
|
// yeah right, now you'll get to do exactly that
|
||||||
|
|
||||||
const sourceRect = getRect(source);
|
const sourceRect = getRect(source);
|
||||||
|
@ -77,7 +77,7 @@ const updateSimulation = (
|
|||||||
return simNode
|
return simNode
|
||||||
? {
|
? {
|
||||||
id: simNode.id,
|
id: simNode.id,
|
||||||
// fx: simNode.x,
|
// Fx: simNode.x,
|
||||||
// fy: simNode.y,
|
// fy: simNode.y,
|
||||||
index
|
index
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ const updateSimulation = (
|
|||||||
export { createSimulation, updateSimulation };
|
export { createSimulation, updateSimulation };
|
||||||
|
|
||||||
/*
|
/*
|
||||||
const simulation = forceSimulation(dataNodes)
|
Const simulation = forceSimulation(dataNodes)
|
||||||
// .alpha(1).alphaDecay(0.1)
|
// .alpha(1).alphaDecay(0.1)
|
||||||
// .force('charge', forceManyBody())
|
// .force('charge', forceManyBody())
|
||||||
.force('link', forceLink(dataLinks)
|
.force('link', forceLink(dataLinks)
|
||||||
|
120
yarn.lock
120
yarn.lock
@ -9,11 +9,7 @@ JSONStream@^1.0.4:
|
|||||||
jsonparse "^1.2.0"
|
jsonparse "^1.2.0"
|
||||||
through ">=2.2.7 <3"
|
through ">=2.2.7 <3"
|
||||||
|
|
||||||
abbrev@1, abbrev@^1.0.7:
|
abbrev@1, abbrev@^1.0.7, abbrev@~1.0.9:
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
|
|
||||||
|
|
||||||
abbrev@~1.0.9:
|
|
||||||
version "1.0.9"
|
version "1.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
|
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
|
||||||
|
|
||||||
@ -39,7 +35,7 @@ ajv-keywords@^1.0.0:
|
|||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
||||||
|
|
||||||
ajv@^4.7.0, ajv@^4.9.1:
|
ajv@^4.7.0:
|
||||||
version "4.11.8"
|
version "4.11.8"
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -68,14 +64,14 @@ ansi-escapes@^1.0.0, ansi-escapes@^1.1.0, ansi-escapes@^1.3.0:
|
|||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||||
|
|
||||||
ansi-regex@*, ansi-regex@^2.0.0:
|
|
||||||
version "2.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
|
||||||
|
|
||||||
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
|
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
|
||||||
|
|
||||||
|
ansi-regex@^2.0.0:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
||||||
|
|
||||||
ansi-styles@^1.1.0:
|
ansi-styles@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
|
||||||
@ -547,10 +543,6 @@ caseless@~0.11.0:
|
|||||||
version "0.11.0"
|
version "0.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
|
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
|
||||||
|
|
||||||
caseless@~0.12.0:
|
|
||||||
version "0.12.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
|
||||||
|
|
||||||
ccount@^1.0.0:
|
ccount@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.1.tgz#665687945168c218ec77ff61a4155ae00227a96c"
|
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.1.tgz#665687945168c218ec77ff61a4155ae00227a96c"
|
||||||
@ -1098,7 +1090,7 @@ debug@^2.1.1, debug@^2.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
debuglog@*, debuglog@^1.0.1:
|
debuglog@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
||||||
|
|
||||||
@ -1689,14 +1681,6 @@ form-data@~2.0.0:
|
|||||||
combined-stream "^1.0.5"
|
combined-stream "^1.0.5"
|
||||||
mime-types "^2.1.11"
|
mime-types "^2.1.11"
|
||||||
|
|
||||||
form-data@~2.1.1:
|
|
||||||
version "2.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
|
|
||||||
dependencies:
|
|
||||||
asynckit "^0.4.0"
|
|
||||||
combined-stream "^1.0.5"
|
|
||||||
mime-types "^2.1.12"
|
|
||||||
|
|
||||||
franc@2.0.0:
|
franc@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/franc/-/franc-2.0.0.tgz#d9939eded4b486acf4b9f33591fe8e69e5464616"
|
resolved "https://registry.yarnpkg.com/franc/-/franc-2.0.0.tgz#d9939eded4b486acf4b9f33591fe8e69e5464616"
|
||||||
@ -2012,10 +1996,6 @@ handlebars@^4.0.2:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
uglify-js "^2.6"
|
uglify-js "^2.6"
|
||||||
|
|
||||||
har-schema@^1.0.5:
|
|
||||||
version "1.0.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
|
|
||||||
|
|
||||||
har-validator@~2.0.6:
|
har-validator@~2.0.6:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
|
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
|
||||||
@ -2025,13 +2005,6 @@ har-validator@~2.0.6:
|
|||||||
is-my-json-valid "^2.12.4"
|
is-my-json-valid "^2.12.4"
|
||||||
pinkie-promise "^2.0.0"
|
pinkie-promise "^2.0.0"
|
||||||
|
|
||||||
har-validator@~4.2.1:
|
|
||||||
version "4.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
|
|
||||||
dependencies:
|
|
||||||
ajv "^4.9.1"
|
|
||||||
har-schema "^1.0.5"
|
|
||||||
|
|
||||||
has-ansi@^0.1.0:
|
has-ansi@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
|
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
|
||||||
@ -2114,7 +2087,7 @@ ignore@^3.2.0:
|
|||||||
version "3.3.3"
|
version "3.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
|
||||||
|
|
||||||
imurmurhash@*, imurmurhash@^0.1.4:
|
imurmurhash@^0.1.4:
|
||||||
version "0.1.4"
|
version "0.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||||
|
|
||||||
@ -2759,10 +2732,6 @@ lockfile@~1.0.2:
|
|||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79"
|
resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79"
|
||||||
|
|
||||||
lodash._baseindexof@*:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
|
|
||||||
|
|
||||||
lodash._baseuniq@~4.6.0:
|
lodash._baseuniq@~4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
|
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
|
||||||
@ -2770,28 +2739,10 @@ lodash._baseuniq@~4.6.0:
|
|||||||
lodash._createset "~4.0.0"
|
lodash._createset "~4.0.0"
|
||||||
lodash._root "~3.0.0"
|
lodash._root "~3.0.0"
|
||||||
|
|
||||||
lodash._bindcallback@*:
|
|
||||||
version "3.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
|
|
||||||
|
|
||||||
lodash._cacheindexof@*:
|
|
||||||
version "3.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
|
|
||||||
|
|
||||||
lodash._createcache@*:
|
|
||||||
version "3.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
|
|
||||||
dependencies:
|
|
||||||
lodash._getnative "^3.0.0"
|
|
||||||
|
|
||||||
lodash._createset@~4.0.0:
|
lodash._createset@~4.0.0:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
|
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
|
||||||
|
|
||||||
lodash._getnative@*, lodash._getnative@^3.0.0:
|
|
||||||
version "3.9.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
|
||||||
|
|
||||||
lodash._reinterpolate@~3.0.0:
|
lodash._reinterpolate@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
||||||
@ -2848,10 +2799,6 @@ lodash.mergewith@^4.3.1:
|
|||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
|
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
|
||||||
|
|
||||||
lodash.restparam@*:
|
|
||||||
version "3.6.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
|
|
||||||
|
|
||||||
lodash.template@^4.0.2:
|
lodash.template@^4.0.2:
|
||||||
version "4.4.0"
|
version "4.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
|
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
|
||||||
@ -3023,7 +2970,7 @@ mime-db@~1.27.0:
|
|||||||
version "1.27.0"
|
version "1.27.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
|
||||||
|
|
||||||
mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.7:
|
mime-types@^2.1.11, mime-types@~2.1.7:
|
||||||
version "2.1.15"
|
version "2.1.15"
|
||||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -3686,10 +3633,6 @@ pause-stream@0.0.11:
|
|||||||
dependencies:
|
dependencies:
|
||||||
through "~2.3"
|
through "~2.3"
|
||||||
|
|
||||||
performance-now@^0.2.0:
|
|
||||||
version "0.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
|
||||||
|
|
||||||
pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
|
pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||||
@ -3811,10 +3754,6 @@ qs@~6.2.0:
|
|||||||
version "6.2.3"
|
version "6.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
|
||||||
|
|
||||||
qs@~6.4.0:
|
|
||||||
version "6.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
|
|
||||||
|
|
||||||
quality-docs@^3.3.0:
|
quality-docs@^3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/quality-docs/-/quality-docs-3.3.0.tgz#cc2a3f35440000fe274410ab3ccfdd760b3cfc94"
|
resolved "https://registry.yarnpkg.com/quality-docs/-/quality-docs-3.3.0.tgz#cc2a3f35440000fe274410ab3ccfdd760b3cfc94"
|
||||||
@ -3981,7 +3920,7 @@ readable-stream@~2.1.5:
|
|||||||
string_decoder "~0.10.x"
|
string_decoder "~0.10.x"
|
||||||
util-deprecate "~1.0.1"
|
util-deprecate "~1.0.1"
|
||||||
|
|
||||||
readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0:
|
readdir-scoped-modules@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
|
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4139,34 +4078,7 @@ replace-ext@1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
||||||
|
|
||||||
request@2, request@^2.74.0:
|
request@2, request@^2.74.0, request@~2.75.0:
|
||||||
version "2.81.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
|
|
||||||
dependencies:
|
|
||||||
aws-sign2 "~0.6.0"
|
|
||||||
aws4 "^1.2.1"
|
|
||||||
caseless "~0.12.0"
|
|
||||||
combined-stream "~1.0.5"
|
|
||||||
extend "~3.0.0"
|
|
||||||
forever-agent "~0.6.1"
|
|
||||||
form-data "~2.1.1"
|
|
||||||
har-validator "~4.2.1"
|
|
||||||
hawk "~3.1.3"
|
|
||||||
http-signature "~1.1.0"
|
|
||||||
is-typedarray "~1.0.0"
|
|
||||||
isstream "~0.1.2"
|
|
||||||
json-stringify-safe "~5.0.1"
|
|
||||||
mime-types "~2.1.7"
|
|
||||||
oauth-sign "~0.8.1"
|
|
||||||
performance-now "^0.2.0"
|
|
||||||
qs "~6.4.0"
|
|
||||||
safe-buffer "^5.0.1"
|
|
||||||
stringstream "~0.0.4"
|
|
||||||
tough-cookie "~2.3.0"
|
|
||||||
tunnel-agent "^0.6.0"
|
|
||||||
uuid "^3.0.0"
|
|
||||||
|
|
||||||
request@~2.75.0:
|
|
||||||
version "2.75.0"
|
version "2.75.0"
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
|
resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4935,12 +4847,6 @@ tryit@^1.0.1:
|
|||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
|
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
|
||||||
|
|
||||||
tunnel-agent@^0.6.0:
|
|
||||||
version "0.6.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
|
||||||
dependencies:
|
|
||||||
safe-buffer "^5.0.1"
|
|
||||||
|
|
||||||
tunnel-agent@~0.4.1:
|
tunnel-agent@~0.4.1:
|
||||||
version "0.4.3"
|
version "0.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
|
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
|
||||||
@ -5129,11 +5035,11 @@ uuid@^2.0.1:
|
|||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
|
||||||
|
|
||||||
uuid@^3.0.0, uuid@^3.0.1:
|
uuid@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
|
||||||
|
|
||||||
validate-npm-package-license@*, validate-npm-package-license@^3.0.1:
|
validate-npm-package-license@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
|
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
Loading…
Reference in New Issue
Block a user