Various fixes.
This commit is contained in:
parent
4e4b77ca84
commit
02360be75b
20 changed files with 3137 additions and 3124 deletions
1705
client/package-lock.json
generated
1705
client/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -20,16 +20,16 @@
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"homepage": "https://mailtrain.org/",
|
"homepage": "https://mailtrain.org/",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@coreui/coreui": "^2.1.4",
|
"@coreui/coreui": "^2.1.12",
|
||||||
"@fortawesome/fontawesome-free": "^5.6.3",
|
"@fortawesome/fontawesome-free": "^5.9.0",
|
||||||
"axios": "^0.18.0",
|
"axios": "^0.18.1",
|
||||||
"bootstrap": "^4.2.1",
|
"bootstrap": "^4.2.1",
|
||||||
"clone": "^2.1.2",
|
"clone": "^2.1.2",
|
||||||
"datatables.net": "^1.10.19",
|
"datatables.net": "^1.10.19",
|
||||||
"datatables.net-bs4": "^1.10.19",
|
"datatables.net-bs4": "^1.10.19",
|
||||||
"ellipsize": "^0.1.0",
|
"ellipsize": "^0.1.0",
|
||||||
"fast-deep-equal": "^2.0.1",
|
"fast-deep-equal": "^2.0.1",
|
||||||
"grapesjs": "^0.14.49",
|
"grapesjs": "^0.14.62",
|
||||||
"grapesjs-mjml": "0.0.31",
|
"grapesjs-mjml": "0.0.31",
|
||||||
"grapesjs-preset-newsletter": "^0.2.20",
|
"grapesjs-preset-newsletter": "^0.2.20",
|
||||||
"htmlparser2": "^3.10.1",
|
"htmlparser2": "^3.10.1",
|
||||||
|
@ -37,51 +37,51 @@
|
||||||
"i18next-browser-languagedetector": "^2.2.4",
|
"i18next-browser-languagedetector": "^2.2.4",
|
||||||
"immutable": "^4.0.0-rc.12",
|
"immutable": "^4.0.0-rc.12",
|
||||||
"juice": "^5.2.0",
|
"juice": "^5.2.0",
|
||||||
"lodash": "^4.17.11",
|
"lodash": "^4.17.15",
|
||||||
"mjml4-in-browser": "^1.1.1",
|
"mjml4-in-browser": "^1.1.2",
|
||||||
"moment": "^2.23.0",
|
"moment": "^2.23.0",
|
||||||
"moment-timezone": "^0.5.25",
|
"moment-timezone": "^0.5.26",
|
||||||
"popper.js": "^1.14.6",
|
"popper.js": "^1.14.6",
|
||||||
"prop-types": "^15.6.2",
|
"prop-types": "^15.6.2",
|
||||||
"querystringify": "^2.1.0",
|
"querystringify": "^2.1.0",
|
||||||
"react": "^16.7.0",
|
"react": "^16.7.0",
|
||||||
"react-ace": "^6.3.2",
|
"react-ace": "^6.6.0",
|
||||||
"react-ckeditor-component": "^1.1.0",
|
"react-ckeditor-component": "^1.1.0",
|
||||||
"react-color": "^2.17.0",
|
"react-color": "^2.17.3",
|
||||||
"react-day-picker": "^7.2.4",
|
"react-day-picker": "^7.2.4",
|
||||||
"react-dnd": "^7.0.2",
|
"react-dnd": "^7.7.0",
|
||||||
"react-dnd-html5-backend": "^7.0.2",
|
"react-dnd-html5-backend": "^7.7.0",
|
||||||
"react-dnd-touch-backend": "^0.7.1",
|
"react-dnd-touch-backend": "^0.7.1",
|
||||||
"react-dom": "^16.7.0",
|
"react-dom": "^16.7.0",
|
||||||
"react-dropzone": "^8.0.3",
|
"react-dropzone": "^8.0.3",
|
||||||
"react-google-charts": "^3.0.10",
|
"react-google-charts": "^3.0.14",
|
||||||
"react-i18next": "^9.0.1",
|
"react-i18next": "^9.0.1",
|
||||||
"react-router-dom": "^4.3.1",
|
"react-router-dom": "^4.3.1",
|
||||||
"react-sortable-tree": "^2.6.0",
|
"react-sortable-tree": "^2.6.0",
|
||||||
"shallowequal": "^1.1.0",
|
"shallowequal": "^1.1.0",
|
||||||
"shortid": "^2.2.14",
|
"shortid": "^2.2.14",
|
||||||
"slugify": "^1.3.4",
|
"slugify": "^1.3.4",
|
||||||
"url-parse": "^1.4.4"
|
"url-parse": "^1.4.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.2.3",
|
"@babel/cli": "^7.5.5",
|
||||||
"@babel/core": "^7.2.2",
|
"@babel/core": "^7.5.5",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.2.3",
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
||||||
"@babel/plugin-proposal-decorators": "^7.2.3",
|
"@babel/plugin-proposal-decorators": "^7.4.4",
|
||||||
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
||||||
"@babel/preset-env": "^7.2.3",
|
"@babel/preset-env": "^7.5.5",
|
||||||
"@babel/preset-react": "^7.0.0",
|
"@babel/preset-react": "^7.0.0",
|
||||||
"babel-loader": "^8.0.4",
|
"babel-loader": "^8.0.6",
|
||||||
"clean-css-cli": "^4.2.1",
|
"clean-css-cli": "^4.2.1",
|
||||||
"css-loader": "^2.1.0",
|
"css-loader": "^2.1.0",
|
||||||
"file-loader": "^3.0.1",
|
"file-loader": "^3.0.1",
|
||||||
"node-sass": "^4.11.0",
|
"node-sass": "^4.12.0",
|
||||||
"nodemon": "^1.18.9",
|
"nodemon": "^1.19.1",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"sass-loader": "^7.1.0",
|
"sass-loader": "^7.1.0",
|
||||||
"style-loader": "^0.23.1",
|
"style-loader": "^0.23.1",
|
||||||
"url-loader": "^1.1.2",
|
"url-loader": "^1.1.2",
|
||||||
"webpack": "^4.28.3",
|
"webpack": "^4.36.1",
|
||||||
"webpack-cli": "^3.2.0"
|
"webpack-cli": "^3.3.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,21 +121,20 @@ export default class CUD extends Component {
|
||||||
onFormChangeBeforeValidation(mutStateData, key, oldValue, newValue) {
|
onFormChangeBeforeValidation(mutStateData, key, oldValue, newValue) {
|
||||||
let match;
|
let match;
|
||||||
|
|
||||||
if (key === undefined || key === 'data_sourceCustom_type') {
|
if (key === 'data_sourceCustom_type') {
|
||||||
if (newValue) {
|
if (newValue) {
|
||||||
this.templateTypes[newValue].afterTypeChange(mutStateData);
|
this.templateTypes[newValue].afterTypeChange(mutStateData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key === undefined || key === 'data_sourceCustom_tag_language') {
|
if (key === 'data_sourceCustom_tag_language') {
|
||||||
if (newValue) {
|
if (newValue) {
|
||||||
const isEdit = !!this.props.entity;
|
const isEdit = !!this.props.entity;
|
||||||
const type = mutStateData.getIn(['data_sourceCustom_tag_language', 'value']);
|
this.templateTypes[newValue].afterTagLanguageChange(mutStateData, isEdit);
|
||||||
this.templateTypes[type].afterTagLanguageChange(mutStateData, isEdit);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key === undefined || (match = key.match(/^(lists_[0-9]+_)list$/))) {
|
if (key && (match = key.match(/^(lists_[0-9]+_)list$/))) {
|
||||||
const prefix = match[1];
|
const prefix = match[1];
|
||||||
mutStateData.setIn([prefix + 'segment', 'value'], null);
|
mutStateData.setIn([prefix + 'segment', 'value'], null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1052,34 +1052,38 @@ const withForm = createComponentMixin([], [], (TargetClass, InnerClass) => {
|
||||||
axios.post(getUrl(settings.serverValidation.url), payload)
|
axios.post(getUrl(settings.serverValidation.url), payload)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
|
||||||
self.setState(previousState => ({
|
if (self.isComponentMounted()) {
|
||||||
formState: previousState.formState.withMutations(mutState => {
|
self.setState(previousState => ({
|
||||||
mutState.set('isServerValidationRunning', false);
|
formState: previousState.formState.withMutations(mutState => {
|
||||||
|
mutState.set('isServerValidationRunning', false);
|
||||||
|
|
||||||
mutState.update('data', stateData => stateData.withMutations(mutStateData => {
|
mutState.update('data', stateData => stateData.withMutations(mutStateData => {
|
||||||
for (const attr in payload) {
|
for (const attr in payload) {
|
||||||
mutStateData.setIn([attr, 'serverValue'], payload[attr]);
|
mutStateData.setIn([attr, 'serverValue'], payload[attr]);
|
||||||
|
|
||||||
if (payload[attr] === mutState.getIn(['data', attr, 'value'])) {
|
if (payload[attr] === mutState.getIn(['data', attr, 'value'])) {
|
||||||
mutStateData.setIn([attr, 'serverValidated'], true);
|
mutStateData.setIn([attr, 'serverValidated'], true);
|
||||||
mutStateData.setIn([attr, 'serverValidation'], response.data[attr] || true);
|
mutStateData.setIn([attr, 'serverValidation'], response.data[attr] || true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}));
|
||||||
}));
|
})
|
||||||
})
|
}));
|
||||||
}));
|
|
||||||
|
|
||||||
scheduleValidateForm(self);
|
scheduleValidateForm(self);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log('Error in "validateFormState": ' + error);
|
if (self.isComponentMounted()) {
|
||||||
|
console.log('Error in "validateFormState": ' + error);
|
||||||
|
|
||||||
self.setState(previousState => ({
|
self.setState(previousState => ({
|
||||||
formState: previousState.formState.set('isServerValidationRunning', false)
|
formState: previousState.formState.set('isServerValidationRunning', false)
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// TODO: It might be good not to give up immediatelly, but retry a couple of times
|
// TODO: It might be good not to give up immediatelly, but retry a couple of times
|
||||||
// scheduleValidateForm(self);
|
// scheduleValidateForm(self);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (formValidateResolve) {
|
if (formValidateResolve) {
|
||||||
|
@ -1097,6 +1101,26 @@ const withForm = createComponentMixin([], [], (TargetClass, InnerClass) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const previousComponentDidMount = proto.componentDidMount;
|
||||||
|
proto.componentDidMount = function() {
|
||||||
|
this._isComponentMounted = true;
|
||||||
|
if (previousComponentDidMount) {
|
||||||
|
previousComponentDidMount.apply(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const previousComponentWillUnmount = proto.componentWillUnmount;
|
||||||
|
proto.componentWillUnmount = function() {
|
||||||
|
this._isComponentMounted = false;
|
||||||
|
if (previousComponentWillUnmount) {
|
||||||
|
previousComponentDidMount.apply(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
proto.isComponentMounted = function() {
|
||||||
|
return !!this._isComponentMounted;
|
||||||
|
}
|
||||||
|
|
||||||
proto.initForm = function(settings) {
|
proto.initForm = function(settings) {
|
||||||
const state = this.state || {};
|
const state = this.state || {};
|
||||||
state.formState = cleanFormState;
|
state.formState = cleanFormState;
|
||||||
|
|
|
@ -108,7 +108,8 @@ const entityTypeLabels = {
|
||||||
'sendConfiguration': t => t('sendConfiguration'),
|
'sendConfiguration': t => t('sendConfiguration'),
|
||||||
'report': t => t('report'),
|
'report': t => t('report'),
|
||||||
'reportTemplate': t => t('reportTemplate'),
|
'reportTemplate': t => t('reportTemplate'),
|
||||||
'mosaicoTemplate': t => t('mosaicoTemplate')
|
'mosaicoTemplate': t => t('mosaicoTemplate'),
|
||||||
|
'user': t => t('User')
|
||||||
};
|
};
|
||||||
|
|
||||||
function _getDependencyErrorMessage(err, t, name) {
|
function _getDependencyErrorMessage(err, t, name) {
|
||||||
|
|
|
@ -37,6 +37,7 @@ const TableSelectMode = {
|
||||||
class Table extends Component {
|
class Table extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
this.mounted = false;
|
||||||
this.selectionMap = this.getSelectionMap(props);
|
this.selectionMap = this.getSelectionMap(props);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,6 +185,8 @@ class Table extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
this.mounted = true;
|
||||||
|
|
||||||
const columns = this.props.columns.slice();
|
const columns = this.props.columns.slice();
|
||||||
|
|
||||||
// XSS protection and actions rendering
|
// XSS protection and actions rendering
|
||||||
|
@ -364,12 +367,13 @@ class Table extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
|
this.mounted = false;
|
||||||
clearInterval(this.refreshIntervalId);
|
clearInterval(this.refreshIntervalId);
|
||||||
clearTimeout(this.refreshTimeoutId);
|
clearTimeout(this.refreshTimeoutId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async notifySelection(eventCallback, newSelectionMap) {
|
async notifySelection(eventCallback, newSelectionMap) {
|
||||||
if (eventCallback) {
|
if (this.mounted && eventCallback) {
|
||||||
const selPairs = Array.from(newSelectionMap).sort((l, r) => l[0] - r[0]);
|
const selPairs = Array.from(newSelectionMap).sort((l, r) => l[0] - r[0]);
|
||||||
|
|
||||||
let data = selPairs.map(entry => entry[1]);
|
let data = selPairs.map(entry => entry[1]);
|
||||||
|
|
|
@ -33,7 +33,7 @@ class TreeTable extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this.isComponentMounted = false;
|
this.mounted = false;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
treeData: []
|
treeData: []
|
||||||
|
@ -52,9 +52,9 @@ class TreeTable extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh() {
|
refresh() {
|
||||||
if (this.tree) {
|
if (this.tree && !this.props.data && this.props.dataUrl) {
|
||||||
this.tree.reload(this.sanitizeTreeData(this.state.treeData));
|
// noinspection JSIgnoredPromiseFromCall
|
||||||
this.updateSelection();
|
this.loadData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ class TreeTable extends Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isComponentMounted) {
|
if (this.mounted) {
|
||||||
this.setState({
|
this.setState({
|
||||||
treeData
|
treeData
|
||||||
});
|
});
|
||||||
|
@ -113,7 +113,7 @@ class TreeTable extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.isComponentMounted = true;
|
this.mounted = true;
|
||||||
|
|
||||||
if (!this.props.data && this.props.dataUrl) {
|
if (!this.props.data && this.props.dataUrl) {
|
||||||
// noinspection JSIgnoredPromiseFromCall
|
// noinspection JSIgnoredPromiseFromCall
|
||||||
|
@ -228,7 +228,7 @@ class TreeTable extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
this.isComponentMounted = false;
|
this.mounted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSelection() {
|
updateSelection() {
|
||||||
|
|
|
@ -71,7 +71,8 @@ export default class CUD extends Component {
|
||||||
email: '',
|
email: '',
|
||||||
password: '',
|
password: '',
|
||||||
password2: '',
|
password2: '',
|
||||||
namespace: mailtrainConfig.user.namespace
|
namespace: mailtrainConfig.user.namespace,
|
||||||
|
role: null
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,13 @@ async function ensureNoDependencies(tx, context, id, depSpecs) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (await shares.checkEntityPermissionTx(tx, context, depSpec.entityTypeId, row.id, 'view')) {
|
if (depSpec.viewPermission && await shares.checkEntityPermissionTx(tx, context, depSpec.viewPermission.entityTypeId, depSpec.viewPermission.entityId, depSpec.viewPermission.requiredOperations)) {
|
||||||
|
deps.push({
|
||||||
|
entityTypeId: depSpec.entityTypeId,
|
||||||
|
name: row.name,
|
||||||
|
link: entityType.clientLink(row.id)
|
||||||
|
});
|
||||||
|
} else if (await shares.checkEntityPermissionTx(tx, context, depSpec.entityTypeId, row.id, 'view')) {
|
||||||
deps.push({
|
deps.push({
|
||||||
entityTypeId: depSpec.entityTypeId,
|
entityTypeId: depSpec.entityTypeId,
|
||||||
name: row.name,
|
name: row.name,
|
||||||
|
|
|
@ -219,7 +219,7 @@ async function getDefaultCustomFormValues() {
|
||||||
|
|
||||||
// TODO - this could run in the browser too - move to shared
|
// TODO - this could run in the browser too - move to shared
|
||||||
function checkForMjmlErrors(form) {
|
function checkForMjmlErrors(form) {
|
||||||
let testLayout = '<mjml><mj-body><mj-container>{{{body}}}</mj-container></mj-body></mjml>';
|
let testLayout = '<mjml><mj-body>{{{body}}}</mj-body></mjml>';
|
||||||
|
|
||||||
let hasMjmlError = (template, layout = testLayout) => {
|
let hasMjmlError = (template, layout = testLayout) => {
|
||||||
let source = layout.replace(/\{\{\{body\}\}\}/g, template);
|
let source = layout.replace(/\{\{\{body\}\}\}/g, template);
|
||||||
|
|
|
@ -226,7 +226,16 @@ async function remove(context, id) {
|
||||||
await shares.enforceEntityPermissionTx(tx, context, 'namespace', id, 'delete');
|
await shares.enforceEntityPermissionTx(tx, context, 'namespace', id, 'delete');
|
||||||
|
|
||||||
const entityTypesWithNamespace = Object.keys(entitySettings.getEntityTypes());
|
const entityTypesWithNamespace = Object.keys(entitySettings.getEntityTypes());
|
||||||
await dependencyHelpers.ensureNoDependencies(tx, context, id, entityTypesWithNamespace.map(entityTypeId => ({ entityTypeId: entityTypeId, column: 'namespace' })));
|
|
||||||
|
const depSpecs = entityTypesWithNamespace.map(entityTypeId => {
|
||||||
|
if (entityTypeId === 'user') {
|
||||||
|
return { entityTypeId: entityTypeId, column: 'namespace', viewPermission: {entityTypeId: 'namespace', entityId: id, requiredOperations: 'manageUsers'} };
|
||||||
|
} else {
|
||||||
|
return { entityTypeId: entityTypeId, column: 'namespace' };
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await dependencyHelpers.ensureNoDependencies(tx, context, id, depSpecs);
|
||||||
|
|
||||||
await tx('namespaces').where('id', id).del();
|
await tx('namespaces').where('id', id).del();
|
||||||
});
|
});
|
||||||
|
|
2493
server/package-lock.json
generated
2493
server/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -26,13 +26,13 @@
|
||||||
"node": ">=10.0.0"
|
"node": ">=10.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^10.0.1",
|
"babel-eslint": "^10.0.2",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
"eslint-config-nodemailer": "^1.2.0",
|
"eslint-config-nodemailer": "^1.2.0",
|
||||||
"grunt": "^1.0.3",
|
"grunt": "^1.0.3",
|
||||||
"grunt-cli": "^1.3.2",
|
"grunt-cli": "^1.3.2",
|
||||||
"grunt-eslint": "^21.0.0",
|
"grunt-eslint": "^21.1.0",
|
||||||
"lodash": "^4.17.11",
|
"lodash": "^4.17.15",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
"phantomjs-prebuilt": "^2.1.16",
|
"phantomjs-prebuilt": "^2.1.16",
|
||||||
"selenium-webdriver": "^3.6.0",
|
"selenium-webdriver": "^3.6.0",
|
||||||
|
@ -42,31 +42,31 @@
|
||||||
"posix": "^4.1.2"
|
"posix": "^4.1.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"aws-sdk": "^2.440.0",
|
"aws-sdk": "^2.497.0",
|
||||||
"bcrypt-nodejs": "0.0.3",
|
"bcrypt-nodejs": "0.0.3",
|
||||||
"bluebird": "^3.5.3",
|
"bluebird": "^3.5.5",
|
||||||
"body-parser": "^1.18.3",
|
"body-parser": "^1.19.0",
|
||||||
"bounce-handler": "7.3.2-fork.3",
|
"bounce-handler": "7.3.2-fork.3",
|
||||||
"capitalize": "^2.0.0",
|
"capitalize": "^2.0.0",
|
||||||
"compression": "^1.7.3",
|
"compression": "^1.7.3",
|
||||||
"config": "^3.0.1",
|
"config": "^3.2.2",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
"connect-redis": "^3.4.0",
|
"connect-redis": "^3.4.2",
|
||||||
"cookie-parser": "^1.4.3",
|
"cookie-parser": "^1.4.3",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"crypto": "^1.0.1",
|
"crypto": "^1.0.1",
|
||||||
"csurf": "^1.9.0",
|
"csurf": "^1.10.0",
|
||||||
"csv-parse": "^4.4.1",
|
"csv-parse": "^4.4.3",
|
||||||
"csv-stringify": "^5.1.2",
|
"csv-stringify": "^5.1.2",
|
||||||
"device": "^0.3.9",
|
"device": "^0.3.9",
|
||||||
"dompurify": "^1.0.8",
|
"dompurify": "^1.0.11",
|
||||||
"escape-html": "^1.0.3",
|
"escape-html": "^1.0.3",
|
||||||
"escape-string-regexp": "^1.0.5",
|
"escape-string-regexp": "^1.0.5",
|
||||||
"express": "^4.16.4",
|
"express": "^4.17.1",
|
||||||
"express-locale": "^1.0.5",
|
"express-locale": "^1.0.5",
|
||||||
"express-session": "^1.15.6",
|
"express-session": "^1.16.2",
|
||||||
"faker": "^4.1.0",
|
"faker": "^4.1.0",
|
||||||
"feedparser-promised": "^2.0.0",
|
"feedparser-promised": "^2.0.1",
|
||||||
"fs-extra": "^7.0.1",
|
"fs-extra": "^7.0.1",
|
||||||
"fs-extra-promise": "^1.0.1",
|
"fs-extra-promise": "^1.0.1",
|
||||||
"geoip-ultralight": "^0.1.5",
|
"geoip-ultralight": "^0.1.5",
|
||||||
|
@ -82,23 +82,23 @@
|
||||||
"juice": "^5.2.0",
|
"juice": "^5.2.0",
|
||||||
"klaw-sync": "^6.0.0",
|
"klaw-sync": "^6.0.0",
|
||||||
"knex": "^0.16.5",
|
"knex": "^0.16.5",
|
||||||
"libmime": "^4.0.1",
|
"libmime": "^4.1.3",
|
||||||
"mailparser": "^2.4.3",
|
"mailparser": "^2.7.1",
|
||||||
"memory-cache": "^0.2.0",
|
"memory-cache": "^0.2.0",
|
||||||
"mjml": "^4.3.0",
|
"mjml": "^4.4.0",
|
||||||
"moment": "^2.23.0",
|
"moment": "^2.23.0",
|
||||||
"moment-timezone": "^0.5.25",
|
"moment-timezone": "^0.5.26",
|
||||||
"morgan": "^1.9.1",
|
"morgan": "^1.9.1",
|
||||||
"multer": "^1.4.1",
|
"multer": "^1.4.2",
|
||||||
"mysql": "^2.17.1",
|
"mysql": "^2.17.1",
|
||||||
"node-ipc": "^9.1.1",
|
"node-ipc": "^9.1.1",
|
||||||
"node-mocks-http": "^1.7.3",
|
"node-mocks-http": "^1.7.6",
|
||||||
"node-object-hash": "^1.4.1",
|
"node-object-hash": "^1.4.1",
|
||||||
"nodeify": "^1.0.1",
|
"nodeify": "^1.0.1",
|
||||||
"nodemailer": "^5.0.0",
|
"nodemailer": "^5.0.0",
|
||||||
"nodemailer-openpgp": "^1.2.0",
|
"nodemailer-openpgp": "^1.2.0",
|
||||||
"npmlog": "^4.1.2",
|
"npmlog": "^4.1.2",
|
||||||
"openpgp": "^4.4.3",
|
"openpgp": "^4.5.5",
|
||||||
"passport": "^0.4.0",
|
"passport": "^0.4.0",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
"premailer-api": "^1.0.4",
|
"premailer-api": "^1.0.4",
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
"shortid": "^2.2.14",
|
"shortid": "^2.2.14",
|
||||||
"slugify": "^1.3.4",
|
"slugify": "^1.3.4",
|
||||||
"smtp-server": "^3.4.7",
|
"smtp-server": "^3.4.7",
|
||||||
"tmp-promise": "^1.0.5",
|
"tmp-promise": "^1.1.0",
|
||||||
"toml": "^2.3.3",
|
"toml": "^2.3.3",
|
||||||
"try-require": "^1.2.1",
|
"try-require": "^1.2.1",
|
||||||
"xmldom": "^0.1.27"
|
"xmldom": "^0.1.27"
|
||||||
|
|
|
@ -78,7 +78,7 @@ async function migrateBase(knex) {
|
||||||
// The original Mailtrain migration is executed before this one. So here we check whether the original migration
|
// The original Mailtrain migration is executed before this one. So here we check whether the original migration
|
||||||
// ended where it should have and we take it from there.
|
// ended where it should have and we take it from there.
|
||||||
const row = await knex('settings').where({key: 'db_schema_version'}).first('value');
|
const row = await knex('settings').where({key: 'db_schema_version'}).first('value');
|
||||||
if (!row || Number(row.value) !== 33) {
|
if (!row || Number(row.value) !== 34) {
|
||||||
throw new Error('Unsupported DB schema version: ' + row.value);
|
throw new Error('Unsupported DB schema version: ' + row.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
exports.up = (knex, Promise) => (async() => {
|
exports.up = (knex, Promise) => (async() => {
|
||||||
// This is to provide upgrade path to stable to those that already have beta installed.
|
// This is to provide upgrade path to stable to those that already have beta installed.
|
||||||
await knex.schema.raw('ALTER TABLE `custom_fields` ADD COLUMN `help` text AFTER `name`');
|
try {
|
||||||
|
await knex.schema.raw('ALTER TABLE `custom_fields` ADD COLUMN `help` text AFTER `name`');
|
||||||
|
} catch (err) {
|
||||||
|
if (err.code === 'ER_DUP_FIELDNAME') {
|
||||||
|
// The field is already there, so we can ignore this error
|
||||||
|
} else {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
exports.down = (knex, Promise) => (async() => {
|
exports.down = (knex, Promise) => (async() => {
|
||||||
|
|
|
@ -13,50 +13,47 @@
|
||||||
<mj-class name="footer-text" font-size="12px" line-height="18px" color="#999999" />
|
<mj-class name="footer-text" font-size="12px" line-height="18px" color="#999999" />
|
||||||
</mj-attributes>
|
</mj-attributes>
|
||||||
</mj-head>
|
</mj-head>
|
||||||
<mj-body>
|
<mj-body width="560px" background-color="#ffffff">
|
||||||
<mj-container width="560" background-color="#ffffff">
|
<mj-raw>
|
||||||
|
{{#if isWeb}}
|
||||||
|
<style>
|
||||||
|
{{{formInputStyle}}}
|
||||||
|
.alert { max-width: 520px; font-family: Lato, Helvetica, Arial, sans-serif; }
|
||||||
|
</style>
|
||||||
|
{{/if}}
|
||||||
|
</mj-raw>
|
||||||
|
|
||||||
<mj-raw>
|
<mj-section padding-bottom="0">
|
||||||
{{#if isWeb}}
|
<mj-column>
|
||||||
<style>
|
<mj-text mj-class="h1">
|
||||||
{{{formInputStyle}}}
|
{{title}}
|
||||||
.alert { max-width: 520px; font-family: Lato, Helvetica, Arial, sans-serif; }
|
</mj-text>
|
||||||
</style>
|
<mj-divider mj-class="hr"/>
|
||||||
{{/if}}
|
</mj-column>
|
||||||
</mj-raw>
|
</mj-section>
|
||||||
|
|
||||||
<mj-section padding-bottom="0">
|
<mj-raw>
|
||||||
<mj-column>
|
{{#if isWeb}}
|
||||||
<mj-text mj-class="h1">
|
{{> subscription_flash_messages}}
|
||||||
{{title}}
|
{{/if}}
|
||||||
</mj-text>
|
</mj-raw>
|
||||||
<mj-divider mj-class="hr"/>
|
|
||||||
</mj-column>
|
|
||||||
</mj-section>
|
|
||||||
|
|
||||||
<mj-raw>
|
{{{body}}}
|
||||||
{{#if isWeb}}
|
|
||||||
{{> subscription_flash_messages}}
|
|
||||||
{{/if}}
|
|
||||||
</mj-raw>
|
|
||||||
|
|
||||||
{{{body}}}
|
<mj-section padding-top="0">
|
||||||
|
<mj-column>
|
||||||
|
<mj-text mj-class="small" font-style="italic">
|
||||||
|
<!-- POST ADDRESS -->
|
||||||
|
</mj-text>
|
||||||
|
</mj-column>
|
||||||
|
</mj-section>
|
||||||
|
|
||||||
<mj-section padding-top="0">
|
<mj-raw>
|
||||||
<mj-column>
|
{{#if isWeb}}
|
||||||
<mj-text mj-class="small" font-style="italic">
|
<!-- fixes https://github.com/mjmlio/mjml/issues/359 -->
|
||||||
<!-- POST ADDRESS -->
|
{{> subscription_footer_scripts btnBgColor='#2D3E4F' btnBgColorHover='#1A242F'}}
|
||||||
</mj-text>
|
{{/if}}
|
||||||
</mj-column>
|
</mj-raw>
|
||||||
</mj-section>
|
|
||||||
|
|
||||||
<mj-raw>
|
|
||||||
{{#if isWeb}}
|
|
||||||
<!-- fixes https://github.com/mjmlio/mjml/issues/359 -->
|
|
||||||
{{> subscription_footer_scripts btnBgColor='#2D3E4F' btnBgColorHover='#1A242F'}}
|
|
||||||
{{/if}}
|
|
||||||
</mj-raw>
|
|
||||||
|
|
||||||
</mj-container>
|
|
||||||
</mj-body>
|
</mj-body>
|
||||||
</mjml>
|
</mjml>
|
||||||
|
|
1493
shared/package-lock.json
generated
1493
shared/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -13,26 +13,26 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"moment": "^2.23.0",
|
"moment": "^2.23.0",
|
||||||
"moment-timezone": "^0.5.25",
|
"moment-timezone": "^0.5.26",
|
||||||
"owasp-password-strength-test": "github:bures/owasp-password-strength-test"
|
"owasp-password-strength-test": "github:bures/owasp-password-strength-test"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.2.3",
|
"@babel/cli": "^7.5.5",
|
||||||
"@babel/core": "^7.2.2",
|
"@babel/core": "^7.5.5",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.2.3",
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
||||||
"@babel/plugin-proposal-decorators": "^7.2.3",
|
"@babel/plugin-proposal-decorators": "^7.4.4",
|
||||||
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
||||||
"@babel/preset-env": "^7.2.3",
|
"@babel/preset-env": "^7.5.5",
|
||||||
"@babel/preset-react": "^7.0.0",
|
"@babel/preset-react": "^7.0.0",
|
||||||
"babel-loader": "^8.0.4",
|
"babel-loader": "^8.0.6",
|
||||||
"css-loader": "^2.1.0",
|
"css-loader": "^2.1.0",
|
||||||
"file-loader": "^3.0.1",
|
"file-loader": "^3.0.1",
|
||||||
"node-sass": "^4.11.0",
|
"node-sass": "^4.12.0",
|
||||||
"postcss-loader": "^3.0.0",
|
"postcss-loader": "^3.0.0",
|
||||||
"sass-loader": "^7.1.0",
|
"sass-loader": "^7.1.0",
|
||||||
"style-loader": "^0.23.1",
|
"style-loader": "^0.23.1",
|
||||||
"url-loader": "^1.1.2",
|
"url-loader": "^1.1.2",
|
||||||
"webpack": "^4.28.3",
|
"webpack": "^4.36.1",
|
||||||
"webpack-cli": "^3.2.0"
|
"webpack-cli": "^3.3.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
251
zone-mta/package-lock.json
generated
251
zone-mta/package-lock.json
generated
|
@ -5,9 +5,9 @@
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ajv": {
|
"ajv": {
|
||||||
"version": "6.10.0",
|
"version": "6.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||||
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
|
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-deep-equal": "^2.0.1",
|
"fast-deep-equal": "^2.0.1",
|
||||||
"fast-json-stable-stringify": "^2.0.0",
|
"fast-json-stable-stringify": "^2.0.0",
|
||||||
|
@ -61,11 +61,11 @@
|
||||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
||||||
},
|
},
|
||||||
"async": {
|
"async": {
|
||||||
"version": "2.6.2",
|
"version": "2.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
|
||||||
"integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
|
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"lodash": "^4.17.11"
|
"lodash": "^4.17.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"asynckit": {
|
"asynckit": {
|
||||||
|
@ -151,9 +151,9 @@
|
||||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
||||||
},
|
},
|
||||||
"cluster-key-slot": {
|
"cluster-key-slot": {
|
||||||
"version": "1.0.12",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz",
|
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
|
||||||
"integrity": "sha512-21O0kGmvED5OJ7ZTdqQ5lQQ+sjuez33R+d35jZKLwqUb5mqcPHUsxOSzj61+LHVtxGZd1kShbQM3MjB/gBJkVg=="
|
"integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw=="
|
||||||
},
|
},
|
||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
|
@ -161,9 +161,9 @@
|
||||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
||||||
},
|
},
|
||||||
"combined-stream": {
|
"combined-stream": {
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"delayed-stream": "~1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
|
@ -263,12 +263,12 @@
|
||||||
"integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw=="
|
"integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw=="
|
||||||
},
|
},
|
||||||
"dnscache": {
|
"dnscache": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/dnscache/-/dnscache-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dnscache/-/dnscache-1.0.2.tgz",
|
||||||
"integrity": "sha1-Qssrm/tej736OVqsdOEn/AUHTTE=",
|
"integrity": "sha512-2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asap": "~2.0.3",
|
"asap": "^2.0.6",
|
||||||
"lodash.clone": "~4.3.2"
|
"lodash.clone": "^4.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"double-ended-queue": {
|
"double-ended-queue": {
|
||||||
|
@ -360,11 +360,6 @@
|
||||||
"semver-store": "^0.3.0"
|
"semver-store": "^0.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flexbuffer": {
|
|
||||||
"version": "0.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/flexbuffer/-/flexbuffer-0.0.6.tgz",
|
|
||||||
"integrity": "sha1-A5/fI/iCPkQMOPMnfm/vEXQhWzA="
|
|
||||||
},
|
|
||||||
"forever-agent": {
|
"forever-agent": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||||
|
@ -507,25 +502,31 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
},
|
},
|
||||||
"ioredis": {
|
"ioredis": {
|
||||||
"version": "4.9.0",
|
"version": "4.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.10.0.tgz",
|
||||||
"integrity": "sha512-YzfCLsN++Ct43QqGK9CWxaEK6OUvJ7rnENieAPNw3DVp/oF2uBrP2NJChbhO74Ng3LWA+i5zdIEUsZYr6dKDIQ==",
|
"integrity": "sha512-bAdt/sKdOvUyKhjLJ8HKFmO6ZQ+OHHmfFgWn9X/ecsp1lJNnOtmh/Xl2+AdKwUdSkl/Rrw1CKOkR8+Kv8tRinQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"cluster-key-slot": "^1.0.6",
|
"cluster-key-slot": "^1.0.6",
|
||||||
"debug": "^3.1.0",
|
"debug": "^3.1.0",
|
||||||
"denque": "^1.1.0",
|
"denque": "^1.1.0",
|
||||||
"flexbuffer": "0.0.6",
|
|
||||||
"lodash.defaults": "^4.2.0",
|
"lodash.defaults": "^4.2.0",
|
||||||
"lodash.flatten": "^4.4.0",
|
"lodash.flatten": "^4.4.0",
|
||||||
"redis-commands": "1.4.0",
|
"redis-commands": "1.5.0",
|
||||||
"redis-errors": "^1.2.0",
|
"redis-errors": "^1.2.0",
|
||||||
"redis-parser": "^3.0.0",
|
"redis-parser": "^3.0.0",
|
||||||
"standard-as-callback": "^2.0.1"
|
"standard-as-callback": "^2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"redis-commands": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ipaddr.js": {
|
"ipaddr.js": {
|
||||||
|
@ -570,9 +571,9 @@
|
||||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
|
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
|
||||||
},
|
},
|
||||||
"js-yaml": {
|
"js-yaml": {
|
||||||
"version": "3.13.0",
|
"version": "3.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
|
||||||
"integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==",
|
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"argparse": "^1.0.7",
|
"argparse": "^1.0.7",
|
||||||
"esprima": "^4.0.0"
|
"esprima": "^4.0.0"
|
||||||
|
@ -615,23 +616,13 @@
|
||||||
"integrity": "sha512-ULQZAATVGTAgVNwP61R+MbbSGNBy1tVzWupB9kbE6p+VccWd+J+ICXgOwQic5Yqagzpu+oPZ8sI7yXdWJnPPkA=="
|
"integrity": "sha512-ULQZAATVGTAgVNwP61R+MbbSGNBy1tVzWupB9kbE6p+VccWd+J+ICXgOwQic5Yqagzpu+oPZ8sI7yXdWJnPPkA=="
|
||||||
},
|
},
|
||||||
"libmime": {
|
"libmime": {
|
||||||
"version": "4.0.1",
|
"version": "4.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/libmime/-/libmime-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/libmime/-/libmime-4.1.3.tgz",
|
||||||
"integrity": "sha512-mGgJLRkpkMxZZYE7ncVXokgKfi5ePrIB1H3W/Bv3GbkVnFydIHTsPrfAVW0edxalQHmFfqDMU9W45PidCLG6DA==",
|
"integrity": "sha512-vCEJD6jfrqf5yLhI9ZmB3NqrefZIr9e/uKQ2eL/U21wMqGDqOyka/NVpW5q93QFoD+gKgDrnoxLd8Ch1/9Mu2g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"iconv-lite": "0.4.23",
|
"iconv-lite": "0.4.24",
|
||||||
"libbase64": "1.0.3",
|
"libbase64": "1.0.3",
|
||||||
"libqp": "1.1.0"
|
"libqp": "1.1.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"iconv-lite": {
|
|
||||||
"version": "0.4.23",
|
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
|
||||||
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
|
|
||||||
"requires": {
|
|
||||||
"safer-buffer": ">= 2.1.2 < 3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"libqp": {
|
"libqp": {
|
||||||
|
@ -640,22 +631,14 @@
|
||||||
"integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g="
|
"integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g="
|
||||||
},
|
},
|
||||||
"lodash": {
|
"lodash": {
|
||||||
"version": "4.17.11",
|
"version": "4.17.15",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
|
||||||
},
|
|
||||||
"lodash._baseclone": {
|
|
||||||
"version": "4.5.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz",
|
|
||||||
"integrity": "sha1-zkKt4IOE711i+nfDD2GkbmhvhDQ="
|
|
||||||
},
|
},
|
||||||
"lodash.clone": {
|
"lodash.clone": {
|
||||||
"version": "4.3.2",
|
"version": "4.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
|
||||||
"integrity": "sha1-5WsXa2gjp93jj38r9Y3n1ZcSAOk=",
|
"integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y="
|
||||||
"requires": {
|
|
||||||
"lodash._baseclone": "~4.5.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"lodash.defaults": {
|
"lodash.defaults": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
|
@ -682,13 +665,25 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mailsplit": {
|
"mailsplit": {
|
||||||
"version": "4.3.1",
|
"version": "4.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-4.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-4.4.1.tgz",
|
||||||
"integrity": "sha512-+zzQekjkbUop6Yh/GrQCjWNNHuI4u2bBZ/Azbvm6NE407ZK9m99tDLP0o88T/HjngKKXFCvAcNXk+k73bc31OA==",
|
"integrity": "sha512-AmWLEHQAg/zbNb1MdrPQS9VOzysHaU9IuoQV9kGU5fgjM5RCbgqVkZzp0+DhPep8sj8iHfbWkl16Nb1PbNlTYg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"libbase64": "1.0.3",
|
"libbase64": "1.0.3",
|
||||||
"libmime": "4.0.1",
|
"libmime": "4.1.1",
|
||||||
"libqp": "1.1.0"
|
"libqp": "1.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"libmime": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/libmime/-/libmime-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-HkOfBSj+l7pBOOucEgiI6PdbgHa8ljv+1rARzW743HQ51UP8gabMlcA2wAF3Dg1aeuMjHZ+LzAPYxM52IZsyGA==",
|
||||||
|
"requires": {
|
||||||
|
"iconv-lite": "0.4.24",
|
||||||
|
"libbase64": "1.0.3",
|
||||||
|
"libqp": "1.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"memory-pager": {
|
"memory-pager": {
|
||||||
|
@ -703,16 +698,16 @@
|
||||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
|
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
|
||||||
},
|
},
|
||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.38.0",
|
"version": "1.40.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg=="
|
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
|
||||||
},
|
},
|
||||||
"mime-types": {
|
"mime-types": {
|
||||||
"version": "2.1.22",
|
"version": "2.1.24",
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
||||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "~1.38.0"
|
"mime-db": "1.40.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimalistic-assert": {
|
"minimalistic-assert": {
|
||||||
|
@ -757,18 +752,18 @@
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"mongodb": {
|
"mongodb": {
|
||||||
"version": "3.2.2",
|
"version": "3.2.7",
|
||||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz",
|
||||||
"integrity": "sha512-xQ6apOOV+w7VFApdaJpWhYhzartpjIDFQjG0AwgJkLh7dBs7PTsq4A3Bia2QWpDohmAzTBIdQVLMqqLy0mwt3Q==",
|
"integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mongodb-core": "3.2.2",
|
"mongodb-core": "3.2.7",
|
||||||
"safe-buffer": "^5.1.2"
|
"safe-buffer": "^5.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mongodb-core": {
|
"mongodb-core": {
|
||||||
"version": "3.2.2",
|
"version": "3.2.7",
|
||||||
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz",
|
||||||
"integrity": "sha512-YRgC39MuzKL0uoGoRdTmV1e9m47NbMnYmuEx4IOkgWAGXPSEzRY7cwb3N0XMmrDMnD9vp7MysNyAriIIeGgIQg==",
|
"integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bson": "^1.1.1",
|
"bson": "^1.1.1",
|
||||||
"require_optional": "^1.0.1",
|
"require_optional": "^1.0.1",
|
||||||
|
@ -777,9 +772,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
},
|
},
|
||||||
"msgpack-js": {
|
"msgpack-js": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
|
@ -809,9 +804,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nan": {
|
"nan": {
|
||||||
"version": "2.13.2",
|
"version": "2.14.0",
|
||||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
|
||||||
"integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
|
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"ncp": {
|
"ncp": {
|
||||||
|
@ -821,14 +816,14 @@
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"negotiator": {
|
"negotiator": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
||||||
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
||||||
},
|
},
|
||||||
"nodemailer": {
|
"nodemailer": {
|
||||||
"version": "6.0.0",
|
"version": "6.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.2.1.tgz",
|
||||||
"integrity": "sha512-PMQJyLhoNAMoBU1hEh5aaUkpa/tcDNwzS7s7zow/myKfoEoZewMxUuWZqQ5yjYsAnvE484KSkYH5s6iPvcjhCg=="
|
"integrity": "sha512-TagB7iuIi9uyNgHExo8lUDq3VK5/B0BpbkcjIgNvxbtVrjNqq0DwAOTuzALPVkK76kMhTSzIgHqg8X1uklVs6g=="
|
||||||
},
|
},
|
||||||
"npmlog": {
|
"npmlog": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
|
@ -890,14 +885,14 @@
|
||||||
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
|
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
|
||||||
},
|
},
|
||||||
"process-nextick-args": {
|
"process-nextick-args": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||||
},
|
},
|
||||||
"prom-client": {
|
"prom-client": {
|
||||||
"version": "11.3.0",
|
"version": "11.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.1.tgz",
|
||||||
"integrity": "sha512-OqSf5WOvpGZXkfqPXUHNHpjrbEE/q8jxjktO0i7zg1cnULAtf0ET67/J5R4e4iA4MZx2260tzTzSFSWgMdTZmQ==",
|
"integrity": "sha512-AcFuxVgzoA/4nlpeg9SkM2HkDjNU3V7g2LCLwpudXSbcSLiFpRMVfsCoCY5RYeR/d9jkQng1mCmVKj1mPHvP0Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"tdigest": "^0.1.1"
|
"tdigest": "^0.1.1"
|
||||||
}
|
}
|
||||||
|
@ -908,9 +903,9 @@
|
||||||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
|
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
|
||||||
},
|
},
|
||||||
"psl": {
|
"psl": {
|
||||||
"version": "1.1.31",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
|
||||||
"integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
|
"integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA=="
|
||||||
},
|
},
|
||||||
"punycode": {
|
"punycode": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
|
@ -934,6 +929,13 @@
|
||||||
"safe-buffer": "~5.1.1",
|
"safe-buffer": "~5.1.1",
|
||||||
"string_decoder": "~1.1.1",
|
"string_decoder": "~1.1.1",
|
||||||
"util-deprecate": "~1.0.1"
|
"util-deprecate": "~1.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"redis": {
|
"redis": {
|
||||||
|
@ -1067,9 +1069,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.2",
|
"version": "5.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
|
||||||
},
|
},
|
||||||
"safe-json-stringify": {
|
"safe-json-stringify": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
|
@ -1091,9 +1093,9 @@
|
||||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||||
},
|
},
|
||||||
"saslprep": {
|
"saslprep": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
|
||||||
"integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==",
|
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"sparse-bitfield": "^3.0.3"
|
"sparse-bitfield": "^3.0.3"
|
||||||
|
@ -1264,6 +1266,13 @@
|
||||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "~5.1.0"
|
"safe-buffer": "~5.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
|
@ -1401,9 +1410,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"glob": {
|
"glob": {
|
||||||
"version": "7.1.3",
|
"version": "7.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "^1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
|
@ -1426,26 +1435,26 @@
|
||||||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
|
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
|
||||||
},
|
},
|
||||||
"zone-mta": {
|
"zone-mta": {
|
||||||
"version": "1.16.0",
|
"version": "1.16.3",
|
||||||
"resolved": "https://registry.npmjs.org/zone-mta/-/zone-mta-1.16.0.tgz",
|
"resolved": "https://registry.npmjs.org/zone-mta/-/zone-mta-1.16.3.tgz",
|
||||||
"integrity": "sha512-0K6Z0ewUFn5/L3yvB9FyNyntT4j2iB0JCnKlQNQcR/PDuFq0LtbvwC4fKzRSII3qNG1LvH6DWNStT/azamexWg==",
|
"integrity": "sha512-AEEP9npTIafOGpGIxlB3Burhi0gqmg7wTTet6X4Uh2RtbpktCucVVmx21OX9ql7p0lEFvb2mZwDxHKXqsVn66w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"crc-32": "1.2.0",
|
"crc-32": "1.2.0",
|
||||||
"dnscache": "1.0.1",
|
"dnscache": "1.0.2",
|
||||||
"gelf": "2.0.1",
|
"gelf": "2.0.1",
|
||||||
"iconv-lite": "0.4.24",
|
"iconv-lite": "0.4.24",
|
||||||
"ioredis": "4.9.0",
|
"ioredis": "4.10.0",
|
||||||
"isemail": "3.2.0",
|
"isemail": "3.2.0",
|
||||||
"js-yaml": "3.13.0",
|
"js-yaml": "3.13.1",
|
||||||
"libmime": "4.0.1",
|
"libmime": "4.1.3",
|
||||||
"mailsplit": "4.3.1",
|
"mailsplit": "4.4.1",
|
||||||
"minimist": "1.2.0",
|
"minimist": "1.2.0",
|
||||||
"mongodb": "3.2.2",
|
"mongodb": "3.2.7",
|
||||||
"msgpack-js": "0.3.0",
|
"msgpack-js": "0.3.0",
|
||||||
"mx-connect": "1.1.1",
|
"mx-connect": "1.1.1",
|
||||||
"nodemailer": "6.0.0",
|
"nodemailer": "6.2.1",
|
||||||
"npmlog": "4.1.2",
|
"npmlog": "4.1.2",
|
||||||
"prom-client": "11.3.0",
|
"prom-client": "11.5.1",
|
||||||
"request": "2.88.0",
|
"request": "2.88.0",
|
||||||
"restify": "7.7.0",
|
"restify": "7.7.0",
|
||||||
"seq-index": "1.1.0",
|
"seq-index": "1.1.0",
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"node": ">=10.0.0"
|
"node": ">=10.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"zone-mta": "^1.16.0",
|
"zone-mta": "^1.16.3",
|
||||||
"zonemta-delivery-counters": "^1.0.1",
|
"zonemta-delivery-counters": "^1.0.1",
|
||||||
"zonemta-limiter": "^1.0.0",
|
"zonemta-limiter": "^1.0.0",
|
||||||
"zonemta-loop-breaker": "^1.0.2"
|
"zonemta-loop-breaker": "^1.0.2"
|
||||||
|
|
Loading…
Reference in a new issue