From 194b963959a526e8e0805043debf43bc7fb9fdb2 Mon Sep 17 00:00:00 2001 From: Philipp Fromme Date: Wed, 7 Aug 2019 15:17:28 +0200 Subject: [PATCH] chore(copy-paste): rework and base upon diagram-js@5 * use event to copy category value when copying group * add camunda-bpmn-moddle for integration tests BREAKING CHANGES * CopyPaste: remove , add , , * BpmnRules: removed rule in favor of rule * BpmnRules: removed rule * ElementFactory: use property instead of for fill and stroke when creating element through ElementFactory#createBpmnElement --- lib/features/copy-paste/BpmnCopyPaste.js | 204 +- lib/features/copy-paste/ModdleCopy.js | 271 ++ lib/features/copy-paste/index.js | 6 +- lib/features/modeling/ElementFactory.js | 6 +- .../modeling/behavior/CopyPasteBehavior.js | 71 - .../modeling/behavior/CreateBehavior.js | 27 + .../modeling/behavior/GroupBehavior.js | 55 +- .../modeling/behavior/LabelBehavior.js | 7 +- lib/features/modeling/behavior/index.js | 6 +- lib/features/replace/BpmnReplace.js | 73 +- lib/features/replace/index.js | 8 +- lib/features/rules/BpmnRules.js | 78 +- lib/util/model/ModelCloneHelper.js | 214 -- lib/util/model/ModelCloneUtils.js | 36 - package-lock.json | 3420 ++++++++--------- package.json | 1 + .../copy-paste/collaboration-multiple.bpmn | 102 - ...e-properties.bpmn => copy-properties.bpmn} | 0 .../features/copy-paste/BpmnCopyPasteSpec.js | 941 +++-- .../features/copy-paste/DescriptorTree.js | 56 - .../features/copy-paste/ModdleCopySpec.js | 738 ++++ .../features/copy-paste/basic.bpmn | 105 +- .../copy-paste/collaboration-multiple.bpmn | 104 + .../features/copy-paste/collaboration.bpmn | 80 +- .../features/copy-paste/copy-properties.bpmn | 141 + .../copy-paste/data-associations.bpmn | 42 +- .../features/copy-paste/properties.bpmn | 40 +- .../keyboard/BpmnKeyboardBindingsSpec.js | 23 +- .../modeling/behavior/CreateBehavior.bpmn | 25 + .../modeling/behavior/CreateBehaviorSpec.js | 42 + .../modeling/behavior/GroupBehaviorSpec.js | 81 +- .../modeling/behavior/LabelBehaviorSpec.js | 25 +- .../SubProcessStartEventBehaviorSpec.js | 37 - .../modeling/lanes/UpdateFlowNodeRefsSpec.js | 6 +- test/spec/features/replace/BpmnReplaceSpec.js | 158 +- test/spec/util/ModelCloneHelperSpec.js | 390 -- test/spec/util/camunda-moddle.js | 77 - 37 files changed, 4051 insertions(+), 3645 deletions(-) create mode 100644 lib/features/copy-paste/ModdleCopy.js delete mode 100644 lib/features/modeling/behavior/CopyPasteBehavior.js create mode 100644 lib/features/modeling/behavior/CreateBehavior.js delete mode 100644 lib/util/model/ModelCloneHelper.js delete mode 100644 lib/util/model/ModelCloneUtils.js delete mode 100644 test/fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn rename test/fixtures/bpmn/features/replace/{clone-properties.bpmn => copy-properties.bpmn} (100%) delete mode 100644 test/spec/features/copy-paste/DescriptorTree.js create mode 100644 test/spec/features/copy-paste/ModdleCopySpec.js rename test/{fixtures/bpmn => spec}/features/copy-paste/basic.bpmn (52%) create mode 100644 test/spec/features/copy-paste/collaboration-multiple.bpmn rename test/{fixtures/bpmn => spec}/features/copy-paste/collaboration.bpmn (50%) create mode 100644 test/spec/features/copy-paste/copy-properties.bpmn rename test/{fixtures/bpmn => spec}/features/copy-paste/data-associations.bpmn (70%) rename test/{fixtures/bpmn => spec}/features/copy-paste/properties.bpmn (55%) create mode 100644 test/spec/features/modeling/behavior/CreateBehavior.bpmn create mode 100644 test/spec/features/modeling/behavior/CreateBehaviorSpec.js delete mode 100644 test/spec/util/ModelCloneHelperSpec.js delete mode 100644 test/spec/util/camunda-moddle.js diff --git a/lib/features/copy-paste/BpmnCopyPaste.js b/lib/features/copy-paste/BpmnCopyPaste.js index 19418c7b..f66694f6 100644 --- a/lib/features/copy-paste/BpmnCopyPaste.js +++ b/lib/features/copy-paste/BpmnCopyPaste.js @@ -3,143 +3,140 @@ import { is } from '../../util/ModelUtil'; -import ModelCloneHelper from '../../util/model/ModelCloneHelper'; - import { - getProperties, - IGNORED_PROPERTIES -} from '../../util/model/ModelCloneUtils'; - -import { - filter, - forEach + forEach, + isArray, + isUndefined, + omit, + reduce } from 'min-dash'; -function setProperties(descriptor, data, properties) { +function copyProperties(source, target, properties) { + if (!isArray(properties)) { + properties = [ properties ]; + } + forEach(properties, function(property) { - if (data[property] !== undefined) { - descriptor[property] = data[property]; + if (!isUndefined(source[property])) { + target[property] = source[property]; } }); } function removeProperties(element, properties) { - forEach(properties, function(prop) { - if (element[prop]) { - delete element[prop]; + if (!isArray(properties)) { + properties = [ properties ]; + } + + forEach(properties, function(property) { + if (element[property]) { + delete element[property]; } }); } -export default function BpmnCopyPaste( - bpmnFactory, eventBus, copyPaste, - clipboard, canvas, bpmnRules) { +var LOW_PRIORITY = 750; - var helper = new ModelCloneHelper(eventBus, bpmnFactory); - copyPaste.registerDescriptor(function(element, descriptor) { +export default function BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) { + + eventBus.on('copyPaste.copyElement', LOW_PRIORITY, function(context) { + var descriptor = context.descriptor, + element = context.element; + var businessObject = descriptor.oldBusinessObject = getBusinessObject(element); - var colors = {}; - descriptor.type = element.type; - setProperties(descriptor, businessObject.di, [ 'isExpanded' ]); + descriptor.di = {}; - setProperties(colors, businessObject.di, [ 'fill', 'stroke' ]); + // fill and stroke will be set to DI + copyProperties(businessObject.di, descriptor.di, [ + 'fill', + 'stroke' + ]); - descriptor.colors = colors; + copyProperties(businessObject.di, descriptor, 'isExpanded'); - if (element.type === 'label') { + if (isLabel(descriptor)) { return descriptor; } - setProperties(descriptor, businessObject, [ - 'processRef', - 'triggeredByEvent' - ]); - + // default sequence flow if (businessObject.default) { descriptor.default = businessObject.default.id; } - - return descriptor; }); - eventBus.on('element.paste', function(context) { - var descriptor = context.descriptor, - createdElements = context.createdElements, - parent = descriptor.parent, - rootElement = canvas.getRootElement(), + eventBus.on('moddleCopy.canCopyProperty', function(context) { + var parent = context.parent, + property = context.property, + propertyName = context.propertyName; + + if (is(parent, 'bpmn:Participant') && + is(property, 'bpmn:Process') && + propertyName === 'processRef') { + return bpmnFactory.create('bpmn:Process'); + } + }); + + var references; + + function resolveReferences(descriptor) { + var businessObject = getBusinessObject(descriptor); + + // default sequence flows + if (descriptor.default) { + references[ descriptor.default ] = { + element: businessObject, + property: 'default' + }; + } + + references = omit(references, reduce(references, function(array, reference, key) { + var element = reference.element, + property = reference.property; + + if (key === descriptor.id) { + element[ property ] = businessObject; + + array.push(descriptor.id); + } + + return array; + }, [])); + } + + eventBus.on('copyPaste.pasteElements', function() { + references = {}; + }); + + eventBus.on('copyPaste.pasteElement', function(context) { + var cache = context.cache, + descriptor = context.descriptor, oldBusinessObject = descriptor.oldBusinessObject, - newBusinessObject, - source, - target, - canConnect; + newBusinessObject; - newBusinessObject = bpmnFactory.create(oldBusinessObject.$type); + // do NOT copy business object if external label + if (isLabel(descriptor)) { + descriptor.businessObject = getBusinessObject(cache[ descriptor.labelTarget ]); - var properties = getProperties(oldBusinessObject.$descriptor); - - properties = filter(properties, function(property) { - return IGNORED_PROPERTIES.indexOf(property.replace(/bpmn:/, '')) === -1; - }); - - descriptor.businessObject = helper.clone(oldBusinessObject, newBusinessObject, properties); - - if (descriptor.type === 'label') { return; } - if (is(parent, 'bpmn:Process')) { - descriptor.parent = is(rootElement, 'bpmn:Collaboration') ? rootElement : parent; - } + newBusinessObject = bpmnFactory.create(oldBusinessObject.$type); - if (descriptor.type === 'bpmn:DataOutputAssociation' || - descriptor.type === 'bpmn:DataInputAssociation' || - descriptor.type === 'bpmn:MessageFlow') { - descriptor.parent = rootElement; - } + descriptor.businessObject = moddleCopy.copyElement( + oldBusinessObject, + newBusinessObject + ); - if (is(parent, 'bpmn:Lane')) { - descriptor.parent = parent.parent; - } + // resolve references e.g. default sequence flow + resolveReferences(descriptor); - // make sure that the correct type of connection is created - if (descriptor.waypoints) { - source = createdElements[descriptor.source]; - target = createdElements[descriptor.target]; + copyProperties(descriptor, newBusinessObject, 'isExpanded'); - if (source && target) { - source = source.element; - target = target.element; - } - - canConnect = bpmnRules.canConnect(source, target); - - if (canConnect) { - descriptor.type = canConnect.type; - } - } - - // remove the id or else we cannot paste multiple times - delete newBusinessObject.id; - - // assign an ID - bpmnFactory._ensureId(newBusinessObject); - - if (descriptor.type === 'bpmn:Participant' && descriptor.processRef) { - descriptor.processRef = newBusinessObject.processRef = bpmnFactory.create('bpmn:Process'); - } - - setProperties(newBusinessObject, descriptor, [ - 'isExpanded', - 'triggeredByEvent' - ]); - - removeProperties(descriptor, [ - 'triggeredByEvent' - ]); + removeProperties(descriptor, 'oldBusinessObject'); }); } @@ -148,8 +145,11 @@ export default function BpmnCopyPaste( BpmnCopyPaste.$inject = [ 'bpmnFactory', 'eventBus', - 'copyPaste', - 'clipboard', - 'canvas', - 'bpmnRules' -]; \ No newline at end of file + 'moddleCopy' +]; + +// helpers ////////// + +function isLabel(element) { + return !!element.labelTarget; +} \ No newline at end of file diff --git a/lib/features/copy-paste/ModdleCopy.js b/lib/features/copy-paste/ModdleCopy.js new file mode 100644 index 00000000..35907c6a --- /dev/null +++ b/lib/features/copy-paste/ModdleCopy.js @@ -0,0 +1,271 @@ +import { + find, + forEach, + isArray, + isDefined, + isObject, + matchPattern, + reduce, + sortBy +} from 'min-dash'; + +var DISALLOWED_PROPERTIES = [ + 'artifacts', + 'dataInputAssociations', + 'dataOutputAssociations', + 'default', + 'flowElements', + 'lanes', + 'incoming', + 'outgoing' +]; + +/** + * @typedef {Function} listener + * + * @param {Object} context + * @param {Array} context.propertyNames + * @param {ModdleElement} context.sourceElement + * @param {ModdleElement} context.targetElement + * + * @returns {Array|boolean} - Return properties to be copied or false to disallow + * copying. + */ + +/** + * @typedef {Function} listener + * + * @param {Object} context + * @param {ModdleElement} context.parent + * @param {*} context.property + * @param {string} context.propertyName + * + * @returns {*|boolean} - Return copied property or false to disallow + * copying. + */ + +/** + * @typedef {Function} listener + * + * @param {Object} context + * @param {ModdleElement} context.parent + * @param {*} context.property + * @param {string} context.propertyName + * + * @returns {boolean} - Return false to disallow + * setting copied property. + */ + +/** + * Utility for copying model properties from source element to target element. + * + * @param {EventBus} eventBus + * @param {BpmnFactory} bpmnFactory + * @param {BpmnModdle} moddle + */ +export default function ModdleCopy(eventBus, bpmnFactory, moddle) { + this._bpmnFactory = bpmnFactory; + this._eventBus = eventBus; + this._moddle = moddle; + + // copy extension elements last + eventBus.on('moddleCopy.canCopyProperties', function(context) { + var propertyNames = context.propertyNames; + + if (!propertyNames || !propertyNames.length) { + return; + } + + return sortBy(propertyNames, function(propertyName) { + return propertyName === 'extensionElements'; + }); + }); + + // default check wether property can be copied + eventBus.on('moddleCopy.canCopyProperty', function(context) { + var parent = context.parent, + parentDescriptor = isObject(parent) && parent.$descriptor, + propertyName = context.propertyName; + + if (propertyName && DISALLOWED_PROPERTIES.indexOf(propertyName) !== -1) { + + // disallow copying property + return false; + } + + if (propertyName && + parentDescriptor && + !find(parentDescriptor.properties, matchPattern({ name: propertyName }))) { + + // disallow copying property + return false; + } + }); + + // do NOT allow to copy empty extension elements + eventBus.on('moddleCopy.canSetCopiedProperty', function(context) { + var property = context.property; + + if (is(property, 'bpmn:ExtensionElements') && (!property.values || !property.values.length)) { + + // disallow setting copied property + return false; + } + }); +} + +ModdleCopy.$inject = [ + 'eventBus', + 'bpmnFactory', + 'moddle' +]; + +/** + * Copy model properties of source element to target element. + * + * @param {ModdleElement} sourceElement + * @param {ModdleElement} targetElement + * @param {Array} [propertyNames] + * + * @param {ModdleElement} + */ +ModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames) { + var self = this; + + if (propertyNames && !isArray(propertyNames)) { + propertyNames = [ propertyNames ]; + } + + propertyNames = propertyNames || getPropertyNames(sourceElement.$descriptor); + + var canCopyProperties = this._eventBus.fire('moddleCopy.canCopyProperties', { + propertyNames: propertyNames, + sourceElement: sourceElement, + targetElement: targetElement + }); + + if (canCopyProperties === false) { + return targetElement; + } + + if (isArray(canCopyProperties)) { + propertyNames = canCopyProperties; + } + + // copy properties + forEach(propertyNames, function(propertyName) { + var sourceProperty; + + if (sourceElement.hasOwnProperty(propertyName)) { + sourceProperty = sourceElement.get(propertyName); + } + + var copiedProperty = self.copyProperty(sourceProperty, targetElement, propertyName); + + var canSetProperty = self._eventBus.fire('moddleCopy.canSetCopiedProperty', { + parent: parent, + property: copiedProperty, + propertyName: propertyName + }); + + if (canSetProperty === false) { + return; + } + + if (isDefined(copiedProperty)) { + targetElement.set(propertyName, copiedProperty); + } + }); + + return targetElement; +}; + +/** + * Copy model property. + * + * @param {*} property + * @param {ModdleElement} parent + * @param {string} propertyName + * + * @returns {*} + */ +ModdleCopy.prototype.copyProperty = function(property, parent, propertyName) { + var self = this; + + // allow others to copy property + var copiedProperty = this._eventBus.fire('moddleCopy.canCopyProperty', { + parent: parent, + property: property, + propertyName: propertyName + }); + + // return if copying is NOT allowed + if (copiedProperty === false) { + return; + } + + if (copiedProperty) { + if (isObject(copiedProperty) && copiedProperty.$type && !copiedProperty.$parent) { + copiedProperty.$parent = parent; + } + + return copiedProperty; + } + + var propertyDescriptor = this._moddle.getPropertyDescriptor(parent, propertyName); + + // do NOT copy Ids and references + if (propertyDescriptor.isId || propertyDescriptor.isReference) { + return; + } + + // copy arrays + if (isArray(property)) { + return reduce(property, function(childProperties, childProperty) { + + // recursion + copiedProperty = self.copyProperty(childProperty, parent, propertyName); + + // copying might NOT be allowed + if (copiedProperty) { + copiedProperty.$parent = parent; + + return childProperties.concat(copiedProperty); + } + + return childProperties; + }, []); + } + + // copy model elements + if (isObject(property) && property.$type) { + copiedProperty = self._bpmnFactory.create(property.$type); + + copiedProperty.$parent = parent; + + // recursion + copiedProperty = self.copyElement(property, copiedProperty); + + return copiedProperty; + } + + // copy primitive properties + return property; +}; + +// helpers ////////// + +export function getPropertyNames(descriptor, keepDefaultProperties) { + return reduce(descriptor.properties, function(properties, property) { + + if (keepDefaultProperties && property.default) { + return properties; + } + + return properties.concat(property.name); + }, []); +} + +function is(element, type) { + return element && (typeof element.$instanceOf === 'function') && element.$instanceOf(type); +} \ No newline at end of file diff --git a/lib/features/copy-paste/index.js b/lib/features/copy-paste/index.js index 5dbb7cbf..18eba491 100644 --- a/lib/features/copy-paste/index.js +++ b/lib/features/copy-paste/index.js @@ -1,11 +1,13 @@ import CopyPasteModule from 'diagram-js/lib/features/copy-paste'; import BpmnCopyPaste from './BpmnCopyPaste'; +import ModdleCopy from './ModdleCopy'; export default { __depends__: [ CopyPasteModule ], - __init__: [ 'bpmnCopyPaste' ], - bpmnCopyPaste: [ 'type', BpmnCopyPaste ] + __init__: [ 'bpmnCopyPaste', 'moddleCopy' ], + bpmnCopyPaste: [ 'type', BpmnCopyPaste ], + moddleCopy: [ 'type', ModdleCopy ] }; diff --git a/lib/features/modeling/ElementFactory.js b/lib/features/modeling/ElementFactory.js index 101f6a6d..81055783 100644 --- a/lib/features/modeling/ElementFactory.js +++ b/lib/features/modeling/ElementFactory.js @@ -90,10 +90,10 @@ ElementFactory.prototype.createBpmnElement = function(elementType, attrs) { }, attrs); } - if (attrs.colors) { - assign(businessObject.di, attrs.colors); + if (attrs.di) { + assign(businessObject.di, attrs.di); - delete attrs.colors; + delete attrs.di; } applyAttributes(businessObject, attrs, [ diff --git a/lib/features/modeling/behavior/CopyPasteBehavior.js b/lib/features/modeling/behavior/CopyPasteBehavior.js deleted file mode 100644 index 7e6f6c2f..00000000 --- a/lib/features/modeling/behavior/CopyPasteBehavior.js +++ /dev/null @@ -1,71 +0,0 @@ -import inherits from 'inherits'; - -import { - forEach -} from 'min-dash'; - -import { is } from '../../../util/ModelUtil'; - -import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; - - -export default function CopyPasteBehavior(eventBus, modeling, canvas) { - - CommandInterceptor.call(this, eventBus); - - this.preExecute('elements.paste', 1500, function(context) { - var topParent = context.topParent; - - // always grab the latest root - if (!topParent.parent) { - context.topParent = canvas.getRootElement(); - } - - if (is(topParent, 'bpmn:Lane')) { - do { - // unwrap Lane -> LaneSet -> (Lane | FlowElementsContainer) - topParent = context.topParent = topParent.parent; - - } while (is(topParent, 'bpmn:Lane') || !is(topParent, 'bpmn:Participant')); - } - }, true); - - this.postExecute('elements.paste', function(context) { - - var tree = context.tree, - createdElements = tree.createdElements; - - forEach(createdElements, function(data) { - var element = data.element, - businessObject = element.businessObject, - descriptor = data.descriptor, - defaultFlow; - - if ((is(businessObject, 'bpmn:ExclusiveGateway') || is(businessObject, 'bpmn:InclusiveGateway') || - is(businessObject, 'bpmn:Activity')) && descriptor.default) { - - defaultFlow = createdElements[descriptor.default]; - - // if the default flow wasn't created, means that it wasn't copied - if (defaultFlow) { - defaultFlow = defaultFlow.element; - } else { - defaultFlow = undefined; - } - - delete element.default; - - modeling.updateProperties(element, { default: defaultFlow }); - } - }); - }, true); -} - - -CopyPasteBehavior.$inject = [ - 'eventBus', - 'modeling', - 'canvas' -]; - -inherits(CopyPasteBehavior, CommandInterceptor); \ No newline at end of file diff --git a/lib/features/modeling/behavior/CreateBehavior.js b/lib/features/modeling/behavior/CreateBehavior.js new file mode 100644 index 00000000..c8a2d545 --- /dev/null +++ b/lib/features/modeling/behavior/CreateBehavior.js @@ -0,0 +1,27 @@ +import inherits from 'inherits'; + +import { is } from '../../../util/ModelUtil'; + +import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor'; + +import { getParent } from '../util/ModelingUtil'; + + +export default function CreateBehavior(injector) { + injector.invoke(CommandInterceptor, this); + + this.preExecute('shape.create', 1500, function(event) { + var context = event.context, + parent = context.parent; + + if (is(parent, 'bpmn:Lane')) { + context.parent = getParent(parent, 'bpmn:Participant'); + } + }); + +} + + +CreateBehavior.$inject = [ 'injector' ]; + +inherits(CreateBehavior, CommandInterceptor); \ No newline at end of file diff --git a/lib/features/modeling/behavior/GroupBehavior.js b/lib/features/modeling/behavior/GroupBehavior.js index 11e5114c..6a50c2f2 100644 --- a/lib/features/modeling/behavior/GroupBehavior.js +++ b/lib/features/modeling/behavior/GroupBehavior.js @@ -16,12 +16,21 @@ import { createCategoryValue } from './util/CategoryUtil'; +var HIGH_PRIORITY = 2000; + + /** * BPMN specific Group behavior */ -export default function GroupBehavior(eventBus, bpmnFactory, canvas, elementRegistry) { - - CommandInterceptor.call(this, eventBus); +export default function GroupBehavior( + bpmnFactory, + canvas, + elementRegistry, + eventBus, + injector, + moddleCopy +) { + injector.invoke(CommandInterceptor, this); /** * Gets process definitions @@ -43,8 +52,13 @@ export default function GroupBehavior(eventBus, bpmnFactory, canvas, elementRegi function removeReferencedCategoryValue(shape) { var businessObject = getBusinessObject(shape), - categoryValue = businessObject.categoryValueRef, - category = categoryValue.$parent; + categoryValue = businessObject.categoryValueRef; + + if (!categoryValue) { + return; + } + + var category = categoryValue.$parent; if (!categoryValue) { return; @@ -142,27 +156,18 @@ export default function GroupBehavior(eventBus, bpmnFactory, canvas, elementRegi * create new category + value when group was created */ this.execute('shape.create', function(event) { - var context = event.context, shape = context.shape, - businessObject = getBusinessObject(shape), - oldBusinessObject = shape.oldBusinessObject; + businessObject = getBusinessObject(shape); if (is(businessObject, 'bpmn:Group') && !businessObject.categoryValueRef) { var definitions = getDefinitions(), categoryValue = createCategoryValue(definitions, bpmnFactory); - // set name from copied group if existing - if (oldBusinessObject && oldBusinessObject.categoryValueRef) { - categoryValue.value = oldBusinessObject.categoryValueRef.value; - } - // link the reference to the Group businessObject.categoryValueRef = categoryValue; - } - }); @@ -172,7 +177,6 @@ export default function GroupBehavior(eventBus, bpmnFactory, canvas, elementRegi shape = context.shape; if (is(shape, 'bpmn:Group')) { - removeReferencedCategoryValue(shape); delete getBusinessObject(shape).categoryValueRef; @@ -180,13 +184,28 @@ export default function GroupBehavior(eventBus, bpmnFactory, canvas, elementRegi } }); + // copy bpmn:CategoryValue when copying element + eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { + var property = context.property, + categoryValue; + + if (is(property, 'bpmn:CategoryValue')) { + categoryValue = createCategoryValue(getDefinitions(), bpmnFactory); + + // return copy of category + return moddleCopy.copyElement(property, categoryValue); + } + }); + } GroupBehavior.$inject = [ - 'eventBus', 'bpmnFactory', 'canvas', - 'elementRegistry' + 'elementRegistry', + 'eventBus', + 'injector', + 'moddleCopy' ]; inherits(GroupBehavior, CommandInterceptor); \ No newline at end of file diff --git a/lib/features/modeling/behavior/LabelBehavior.js b/lib/features/modeling/behavior/LabelBehavior.js index bb29faaa..63dff55a 100644 --- a/lib/features/modeling/behavior/LabelBehavior.js +++ b/lib/features/modeling/behavior/LabelBehavior.js @@ -100,7 +100,12 @@ export default function LabelBehavior( // create label shape after shape/connection was created this.postExecute([ 'shape.create', 'connection.create' ], function(e) { - var context = e.context; + var context = e.context, + hints = context.hints || {}; + + if (hints.createElementsBehavior === false) { + return; + } var element = context.shape || context.connection, businessObject = element.businessObject; diff --git a/lib/features/modeling/behavior/index.js b/lib/features/modeling/behavior/index.js index c5ed686d..5f62e78e 100644 --- a/lib/features/modeling/behavior/index.js +++ b/lib/features/modeling/behavior/index.js @@ -2,7 +2,7 @@ import AdaptiveLabelPositioningBehavior from './AdaptiveLabelPositioningBehavior import AppendBehavior from './AppendBehavior'; import AttachEventBehavior from './AttachEventBehavior'; import BoundaryEventBehavior from './BoundaryEventBehavior'; -import CopyPasteBehavior from './CopyPasteBehavior'; +import CreateBehavior from './CreateBehavior'; import FixHoverBehavior from './FixHoverBehavior'; import CreateBoundaryEventBehavior from './CreateBoundaryEventBehavior'; import CreateDataObjectBehavior from './CreateDataObjectBehavior'; @@ -36,7 +36,7 @@ export default { 'appendBehavior', 'attachEventBehavior', 'boundaryEventBehavior', - 'copyPasteBehavior', + 'createBehavior', 'fixHoverBehavior', 'createBoundaryEventBehavior', 'createDataObjectBehavior', @@ -68,7 +68,7 @@ export default { appendBehavior: [ 'type', AppendBehavior ], attachEventBehavior: [ 'type', AttachEventBehavior ], boundaryEventBehavior: [ 'type', BoundaryEventBehavior ], - copyPasteBehavior: [ 'type', CopyPasteBehavior ], + createBehavior: [ 'type', CreateBehavior ], fixHoverBehavior: [ 'type', FixHoverBehavior ], createBoundaryEventBehavior: [ 'type', CreateBoundaryEventBehavior ], createDataObjectBehavior: [ 'type', CreateDataObjectBehavior ], diff --git a/lib/features/replace/BpmnReplace.js b/lib/features/replace/BpmnReplace.js index 464c68e8..6f0375be 100644 --- a/lib/features/replace/BpmnReplace.js +++ b/lib/features/replace/BpmnReplace.js @@ -2,6 +2,9 @@ import { pick, assign, filter, + forEach, + isArray, + isUndefined, has } from 'min-dash'; @@ -19,12 +22,19 @@ import { isEventSubProcess } from '../../util/DiUtil'; -import { - getProperties, - IGNORED_PROPERTIES -} from '../../util/model/ModelCloneUtils'; +import { getPropertyNames } from '../copy-paste/ModdleCopy'; -import ModelCloneHelper from '../../util/model/ModelCloneHelper'; +function copyProperties(source, target, properties) { + if (!isArray(properties)) { + properties = [ properties ]; + } + + forEach(properties, function(property) { + if (!isUndefined(source[property])) { + target[property] = source[property]; + } + }); +} var CUSTOM_PROPERTIES = [ 'cancelActivity', @@ -67,12 +77,14 @@ function toggeling(element, target) { * This module takes care of replacing BPMN elements */ export default function BpmnReplace( - bpmnFactory, elementFactory, replace, - selection, modeling, eventBus + bpmnFactory, + elementFactory, + moddleCopy, + modeling, + replace, + selection ) { - var helper = new ModelCloneHelper(eventBus, bpmnFactory); - /** * Prepares a new business object for the replacement element * and triggers the replace operation. @@ -108,51 +120,54 @@ export default function BpmnReplace( businessObject: newBusinessObject }; - var elementProps = getProperties(oldBusinessObject.$descriptor), - newElementProps = getProperties(newBusinessObject.$descriptor, true), + var elementProps = getPropertyNames(oldBusinessObject.$descriptor), + newElementProps = getPropertyNames(newBusinessObject.$descriptor, true), copyProps = intersection(elementProps, newElementProps); // initialize special properties defined in target definition assign(newBusinessObject, pick(target, CUSTOM_PROPERTIES)); - var properties = filter(copyProps, function(property) { - var propName = property.replace(/bpmn:/, ''); + var properties = filter(copyProps, function(propertyName) { // copying event definitions, unless we replace - if (propName === 'eventDefinitions') { + if (propertyName === 'eventDefinitions') { return hasEventDefinition(element, target.eventDefinitionType); } // retain loop characteristics if the target element // is not an event sub process - if (propName === 'loopCharacteristics') { + if (propertyName === 'loopCharacteristics') { return !isEventSubProcess(newBusinessObject); } // so the applied properties from 'target' don't get lost - if (property in newBusinessObject) { + if (newBusinessObject.hasOwnProperty(propertyName)) { return false; } - if (propName === 'processRef' && target.isExpanded === false) { + if (propertyName === 'processRef' && target.isExpanded === false) { return false; } - if (propName === 'triggeredByEvent') { + if (propertyName === 'triggeredByEvent') { return false; } - return IGNORED_PROPERTIES.indexOf(propName) === -1; + return true; }); - newBusinessObject = helper.clone(oldBusinessObject, newBusinessObject, properties); + newBusinessObject = moddleCopy.copyElement( + oldBusinessObject, + newBusinessObject, + properties + ); // initialize custom BPMN extensions if (target.eventDefinitionType) { // only initialize with new eventDefinition // if we did not set an event definition yet, - // i.e. because we cloned it + // i.e. because we copied it if (!hasEventDefinition(newBusinessObject, target.eventDefinitionType)) { newElement.eventDefinitionType = target.eventDefinitionType; } @@ -225,9 +240,13 @@ export default function BpmnReplace( newElement.host = target.host; } - if ('fill' in oldBusinessObject.di || 'stroke' in oldBusinessObject.di) { - assign(newElement, { colors: pick(oldBusinessObject.di, [ 'fill', 'stroke' ]) }); - } + newElement.di = {}; + + // fill and stroke will be set to DI + copyProperties(oldBusinessObject.di, newElement.di, [ + 'fill', + 'stroke' + ]); newElement = replace.replaceElement(element, newElement, hints); @@ -244,10 +263,10 @@ export default function BpmnReplace( BpmnReplace.$inject = [ 'bpmnFactory', 'elementFactory', - 'replace', - 'selection', + 'moddleCopy', 'modeling', - 'eventBus' + 'replace', + 'selection' ]; diff --git a/lib/features/replace/index.js b/lib/features/replace/index.js index b8cb5509..dec40913 100644 --- a/lib/features/replace/index.js +++ b/lib/features/replace/index.js @@ -1,12 +1,14 @@ -import SelectionModule from 'diagram-js/lib/features/selection'; +import CopyPasteModule from '../copy-paste'; import ReplaceModule from 'diagram-js/lib/features/replace'; +import SelectionModule from 'diagram-js/lib/features/selection'; import BpmnReplace from './BpmnReplace'; export default { __depends__: [ - SelectionModule, - ReplaceModule + CopyPasteModule, + ReplaceModule, + SelectionModule ], bpmnReplace: [ 'type', BpmnReplace ] }; diff --git a/lib/features/rules/BpmnRules.js b/lib/features/rules/BpmnRules.js index e43bf1e5..ec9da597 100644 --- a/lib/features/rules/BpmnRules.js +++ b/lib/features/rules/BpmnRules.js @@ -1,8 +1,8 @@ import { - find, - some, every, - forEach + find, + forEach, + some } from 'min-dash'; import inherits from 'inherits'; @@ -164,31 +164,10 @@ BpmnRules.prototype.init = function() { }); this.addRule('element.copy', function(context) { - var collection = context.collection, - element = context.element; + var element = context.element, + elements = context.elements; - return canCopy(collection, element); - }); - - this.addRule('element.paste', function(context) { - var parent = context.parent, - element = context.element, - position = context.position, - source = context.source, - target = context.target; - - if (source || target) { - return canConnect(source, target); - } - - return canAttach([ element ], parent, null, position) || canCreate(element, parent, null, position); - }); - - this.addRule('elements.paste', function(context) { - var tree = context.tree, - target = context.target; - - return canPaste(tree, target); + return canCopy(elements, element); }); }; @@ -537,41 +516,6 @@ function isDroppableBoundaryEvent(event) { ); } -function canPaste(tree, target) { - var topLevel = tree[0], - participants; - - if (is(target, 'bpmn:Collaboration')) { - return every(topLevel, function(e) { - return e.type === 'bpmn:Participant'; - }); - } - - if (is(target, 'bpmn:Process')) { - participants = some(topLevel, function(e) { - return e.type === 'bpmn:Participant'; - }); - - return !(participants && target.children.length > 0); - } - - // disallow to create elements on collapsed pools - if (is(target, 'bpmn:Participant') && !isExpanded(target)) { - return false; - } - - if (is(target, 'bpmn:FlowElementsContainer')) { - return isExpanded(target); - } - - return isAny(target, [ - 'bpmn:Collaboration', - 'bpmn:Lane', - 'bpmn:Participant', - 'bpmn:Process', - 'bpmn:SubProcess' ]); -} - function isBoundaryEvent(element) { return !isLabel(element) && is(element, 'bpmn:BoundaryEvent'); } @@ -946,16 +890,16 @@ function canInsert(shape, flow, position) { canDrop(shape, flow.parent, position)); } -function contains(collection, element) { - return (collection && element) && collection.indexOf(element) !== -1; +function includes(elements, element) { + return (elements && element) && elements.indexOf(element) !== -1; } -function canCopy(collection, element) { - if (is(element, 'bpmn:Lane') && !contains(collection, element.parent)) { +function canCopy(elements, element) { + if (is(element, 'bpmn:Lane') && !includes(elements, element.parent)) { return false; } - if (is(element, 'bpmn:BoundaryEvent') && !contains(collection, element.host)) { + if (is(element, 'bpmn:BoundaryEvent') && !includes(elements, element.host)) { return false; } diff --git a/lib/util/model/ModelCloneHelper.js b/lib/util/model/ModelCloneHelper.js deleted file mode 100644 index 6fd48fde..00000000 --- a/lib/util/model/ModelCloneHelper.js +++ /dev/null @@ -1,214 +0,0 @@ -import { - forEach, - filter, - some, - sortBy, - isArray -} from 'min-dash'; - -import { - IGNORED_PROPERTIES -} from './ModelCloneUtils'; - - -function isAllowedIn(extProp, type) { - var allowedIn = extProp.meta.allowedIn; - - // '*' is a wildcard, which means any element is allowed to use this property - if (allowedIn.length === 1 && allowedIn[0] === '*') { - return true; - } - - return allowedIn.indexOf(type) !== -1; -} - -function isType(element, types) { - return some(types, function(type) { - return typeof element === type; - }); -} - -/** - * A bpmn properties cloning interface - * - */ -export default function ModelCloneHelper(eventBus, bpmnFactory) { - this._eventBus = eventBus; - this._bpmnFactory = bpmnFactory; -} - - -ModelCloneHelper.prototype.clone = function(refElement, newElement, properties) { - - var self = this; - - // hasNestedProperty: property allows us to avoid ending up with empty (xml) tags - // f.ex: if extensionElements.values is empty, don't set it - var context = { - newElement: newElement, - hasNestedProperty: false - }; - - // we want the extensionElements to be cloned last - // so that they can check certain properties - properties = sortBy(properties, function(prop) { - return prop === 'bpmn:extensionElements'; - }); - - forEach(properties, function(propName) { - var refElementProp = refElement.get(propName), - newElementProp = newElement.get(propName), - propDescriptor = newElement.$model.getPropertyDescriptor(newElement, propName), - newProperty, name; - - // we're not interested in cloning: - // - same values from simple types - // - cloning id's - // - cloning reference elements - if (newElementProp === refElementProp) { - return; - } - - if (propDescriptor && (propDescriptor.isId || propDescriptor.isReference)) { - return; - } - - // if the property is of type 'boolean', 'string', 'number' or 'null', just set it - if (isType(refElementProp, [ 'boolean', 'string', 'number' ]) || refElementProp === null) { - newElement.set(propName, refElementProp); - - return; - } - - if (isArray(refElementProp)) { - - forEach(refElementProp, function(extElement) { - var newProp; - - context.refTopLevelProperty = extElement; - - newProp = self._deepClone(extElement, context); - - if (context.hasNestedProperty) { - newProp.$parent = newElement; - - newElementProp.push(newProp); - } - - context.hasNestedProperty = false; - }); - - } else { - name = propName.replace(/bpmn:/, ''); - - context.refTopLevelProperty = refElementProp; - - newProperty = self._deepClone(refElementProp, context); - - if (context.hasNestedProperty) { - newProperty.$parent = newElement; - - newElement.set(name, newProperty); - } - - context.hasNestedProperty = false; - } - }); - - return newElement; -}; - -ModelCloneHelper.prototype._deepClone = function _deepClone(propertyElement, context) { - var self = this; - - var eventBus = this._eventBus; - var bpmnFactory = this._bpmnFactory; - - var newProp = bpmnFactory.create(propertyElement.$type); - - var properties = filter(Object.keys(propertyElement), function(prop) { - var descriptor = newProp.$model.getPropertyDescriptor(newProp, prop); - - if (descriptor && (descriptor.isId || descriptor.isReference)) { - return false; - } - - // we need to make sure we don't clone certain properties - // which we cannot easily know if they hold references or not - if (IGNORED_PROPERTIES.indexOf(prop) !== -1) { - return false; - } - - // make sure we don't copy the type - return prop !== '$type'; - }); - - if (!properties.length) { - context.hasNestedProperty = true; - } - - forEach(properties, function(propName) { - // check if the propertyElement has this property defined - if (propertyElement[propName] !== undefined && - (propertyElement[propName].$type || isArray(propertyElement[propName]))) { - - if (isArray(propertyElement[propName])) { - newProp[propName] = []; - - forEach(propertyElement[propName], function(property) { - var extProp = propertyElement.$model.getTypeDescriptor(property.$type), - newDeepProp; - - // we're not going to copy undefined types - if (!extProp) { - return; - } - - var canClone = eventBus.fire('property.clone', { - newElement: context.newElement, - refTopLevelProperty: context.refTopLevelProperty, - propertyDescriptor: extProp - }); - - if (!canClone) { - // if can clone is 'undefined' or 'false' - // check for the meta information if it is allowed - if (propertyElement.$type === 'bpmn:ExtensionElements' && - extProp.meta && extProp.meta.allowedIn && - !isAllowedIn(extProp, context.newElement.$type)) { - return false; - } - } - - newDeepProp = self._deepClone(property, context); - - newDeepProp.$parent = newProp; - - if (!newProp[propName]) { - newProp[propName] = []; - } - - context.hasNestedProperty = true; - - newProp[propName].push(newDeepProp); - }); - - } else if (propertyElement[propName].$type) { - newProp[propName] = self._deepClone(propertyElement[propName], context); - - if (newProp[propName]) { - context.hasNestedProperty = true; - - newProp[propName].$parent = newProp; - } - } - } else { - context.hasNestedProperty = true; - - // just assign directly if it's a value - newProp[propName] = propertyElement[propName]; - } - }); - - return newProp; -}; diff --git a/lib/util/model/ModelCloneUtils.js b/lib/util/model/ModelCloneUtils.js deleted file mode 100644 index f897fc36..00000000 --- a/lib/util/model/ModelCloneUtils.js +++ /dev/null @@ -1,36 +0,0 @@ -import { - forEach -} from 'min-dash'; - - -/** - * These are the properties that should be ignored when cloning elements. - * - * @type {Array} - */ -export var IGNORED_PROPERTIES = [ - 'lanes', - 'incoming', - 'outgoing', - 'artifacts', - 'default', - 'flowElements', - 'dataInputAssociations', - 'dataOutputAssociations' -]; - - -export function getProperties(descriptor, keepDefault) { - var properties = []; - - forEach(descriptor.properties, function(property) { - - if (keepDefault && property.default) { - return; - } - - properties.push(property.ns.name); - }); - - return properties; -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6a8c36d4..216b7bbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "7.0.0" } }, "@babel/generator": { @@ -20,10 +20,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.44", - "jsesc": "^2.5.1", - "lodash": "^4.2.0", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "jsesc": "2.5.2", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "@babel/helper-function-name": { @@ -61,9 +61,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "4.0.0" } }, "@babel/template": { @@ -75,7 +75,7 @@ "@babel/code-frame": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", - "lodash": "^4.2.0" + "lodash": "4.17.11" }, "dependencies": { "@babel/code-frame": { @@ -93,9 +93,9 @@ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "js-tokens": { @@ -118,10 +118,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" + "debug": "3.2.6", + "globals": "11.12.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "@babel/code-frame": { @@ -139,9 +139,9 @@ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "debug": { @@ -150,7 +150,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "js-tokens": { @@ -173,9 +173,9 @@ "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "2.0.0" } }, "@sinonjs/commons": { @@ -193,8 +193,8 @@ "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", "dev": true, "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/commons": "1.4.0", + "@sinonjs/samsam": "3.3.2" } }, "@sinonjs/samsam": { @@ -203,9 +203,9 @@ "integrity": "sha512-ILO/rR8LfAb60Y1Yfp9vxfYAASK43NFC2mLzpvLUbCQY/Qu8YwReboseu8aheCEkyElZF2L2T9mHcR2bgdvZyA==", "dev": true, "requires": { - "@sinonjs/commons": "^1.0.2", - "array-from": "^2.1.1", - "lodash": "^4.17.11" + "@sinonjs/commons": "1.4.0", + "array-from": "2.1.1", + "lodash": "4.17.11" } }, "@sinonjs/text-encoding": { @@ -232,7 +232,7 @@ "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "12.0.10" } }, "@webassemblyjs/ast": { @@ -286,7 +286,7 @@ "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "mamacro": "0.0.3" } }, "@webassemblyjs/helper-wasm-bytecode": { @@ -313,7 +313,7 @@ "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "@xtuc/ieee754": "1.2.0" } }, "@webassemblyjs/leb128": { @@ -435,7 +435,7 @@ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "mime-types": "~2.1.24", + "mime-types": "2.1.24", "negotiator": "0.6.2" }, "dependencies": { @@ -480,7 +480,7 @@ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "ajv": { @@ -489,10 +489,10 @@ "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ajv-errors": { @@ -538,7 +538,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "anymatch": { @@ -547,8 +547,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "aproba": { @@ -563,7 +563,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -572,7 +572,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -611,8 +611,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "array-map": { @@ -633,7 +633,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -660,7 +660,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "asn1.js": { @@ -669,9 +669,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "assert": { @@ -680,7 +680,7 @@ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, "requires": { - "object-assign": "^4.1.1", + "object-assign": "4.1.1", "util": "0.10.3" }, "dependencies": { @@ -773,9 +773,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-regex": { @@ -796,11 +796,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "js-tokens": { @@ -815,7 +815,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -837,7 +837,7 @@ "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", "eslint-scope": "3.7.1", - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "1.0.0" }, "dependencies": { "@babel/code-frame": { @@ -855,9 +855,9 @@ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "eslint-scope": { @@ -866,8 +866,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "js-tokens": { @@ -884,14 +884,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.11", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -908,7 +908,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -917,8 +917,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -927,11 +927,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.11" }, "dependencies": { "babylon": { @@ -948,15 +948,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.11" }, "dependencies": { "babylon": { @@ -979,10 +979,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.11", + "to-fast-properties": "1.0.3" }, "dependencies": { "to-fast-properties": { @@ -1017,13 +1017,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.2", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -1032,7 +1032,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -1041,7 +1041,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1050,7 +1050,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1059,9 +1059,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -1102,7 +1102,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "better-assert": { @@ -1151,15 +1151,15 @@ "dev": true, "requires": { "bytes": "3.1.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", - "type-is": "~1.6.17" + "type-is": "1.6.18" }, "dependencies": { "qs": { @@ -1180,9 +1180,9 @@ "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-6.0.0.tgz", "integrity": "sha512-/yi7LBT4MFWsv5fmQD7/aeCZC94Ot8onADiJMQkosY2XGN85cVmOpPdmo8FfBu+6gjI9EWUnnUWjjY1SDVLeXw==", "requires": { - "min-dash": "^3.0.0", - "moddle": "^5.0.1", - "moddle-xml": "^8.0.1" + "min-dash": "3.5.0", + "moddle": "5.0.1", + "moddle-xml": "8.0.1" } }, "brace-expansion": { @@ -1191,7 +1191,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -1201,9 +1201,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" } }, "brorand": { @@ -1224,12 +1224,12 @@ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "browserify-cipher": { @@ -1238,9 +1238,9 @@ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "browserify-aes": "1.2.0", + "browserify-des": "1.0.2", + "evp_bytestokey": "1.0.3" } }, "browserify-des": { @@ -1249,10 +1249,10 @@ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "browserify-rsa": { @@ -1261,8 +1261,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "bn.js": "4.11.8", + "randombytes": "2.1.0" } }, "browserify-sign": { @@ -1271,13 +1271,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "elliptic": "6.5.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.4" } }, "browserify-zlib": { @@ -1286,7 +1286,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "~1.0.5" + "pako": "1.0.10" } }, "buffer": { @@ -1295,9 +1295,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "base64-js": "1.3.0", + "ieee754": "1.1.13", + "isarray": "1.0.0" } }, "buffer-alloc": { @@ -1306,8 +1306,8 @@ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" + "buffer-alloc-unsafe": "1.1.0", + "buffer-fill": "1.0.0" } }, "buffer-alloc-unsafe": { @@ -1358,20 +1358,20 @@ "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "bluebird": "3.5.5", + "chownr": "1.1.2", + "figgy-pudding": "3.5.1", + "glob": "7.1.4", + "graceful-fs": "4.1.15", + "lru-cache": "5.1.1", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.3", + "ssri": "6.0.1", + "unique-filename": "1.1.1", + "y18n": "4.0.0" }, "dependencies": { "glob": { @@ -1380,12 +1380,12 @@ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "lru-cache": { @@ -1394,7 +1394,7 @@ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^3.0.2" + "yallist": "3.0.3" } }, "rimraf": { @@ -1403,7 +1403,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.4" } }, "yallist": { @@ -1420,15 +1420,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.1", + "to-object-path": "0.3.0", + "union-value": "1.0.1", + "unset-value": "1.0.0" }, "dependencies": { "isobject": { @@ -1463,8 +1463,17 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "camunda-bpmn-moddle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/camunda-bpmn-moddle/-/camunda-bpmn-moddle-4.0.1.tgz", + "integrity": "sha512-TwhLGGrn8uNUHGaajdDXPDZY1bYXlkhzcqkr1GLmEv12IYonw2eC2mHGQMPqiynZevGEYbzo9Yk0z6yt9rXQcw==", + "dev": true, + "requires": { + "min-dash": "3.5.0" } }, "caseless": { @@ -1479,12 +1488,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chai-match": { @@ -1499,9 +1508,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "chardet": { @@ -1522,15 +1531,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.7", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1" } }, "chownr": { @@ -1545,7 +1554,7 @@ "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.10.0" } }, "cipher-base": { @@ -1554,8 +1563,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "class-utils": { @@ -1564,10 +1573,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -1576,7 +1585,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -1593,7 +1602,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -1608,9 +1617,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "clone-deep": { @@ -1619,9 +1628,9 @@ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "is-plain-object": "2.0.4", + "kind-of": "6.0.2", + "shallow-clone": "3.0.1" }, "dependencies": { "kind-of": { @@ -1665,8 +1674,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -1696,7 +1705,7 @@ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -1753,10 +1762,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "connect": { @@ -1767,7 +1776,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.1.2", - "parseurl": "~1.3.3", + "parseurl": "1.3.3", "utils-merge": "1.0.1" } }, @@ -1777,7 +1786,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "^0.1.4" + "date-now": "0.1.4" } }, "constants-browserify": { @@ -1804,7 +1813,7 @@ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.1.2" } }, "cookie": { @@ -1819,12 +1828,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" } }, "copy-descriptor": { @@ -1851,17 +1860,17 @@ "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=", "dev": true, "requires": { - "babel-runtime": "^6.9.2", - "chokidar": "^1.6.0", - "duplexer": "^0.1.1", - "glob": "^7.0.5", - "glob2base": "^0.0.12", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "resolve": "^1.1.7", - "safe-buffer": "^5.0.1", - "shell-quote": "^1.6.1", - "subarg": "^1.0.0" + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "duplexer": "0.1.1", + "glob": "7.1.3", + "glob2base": "0.0.12", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "resolve": "1.8.1", + "safe-buffer": "5.1.2", + "shell-quote": "1.6.1", + "subarg": "1.0.0" } }, "create-ecdh": { @@ -1870,8 +1879,8 @@ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "bn.js": "4.11.8", + "elliptic": "6.5.0" } }, "create-hash": { @@ -1880,11 +1889,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { @@ -1893,12 +1902,12 @@ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.3", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-spawn": { @@ -1907,11 +1916,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.6.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "crypto-browserify": { @@ -1920,17 +1929,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "browserify-cipher": "1.0.1", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.3", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "diffie-hellman": "5.0.3", + "inherits": "2.0.3", + "pbkdf2": "3.0.17", + "public-encrypt": "4.0.3", + "randombytes": "2.1.0", + "randomfill": "1.0.4" } }, "css.escape": { @@ -1944,7 +1953,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "custom-event": { @@ -1965,7 +1974,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "date-format": { @@ -1986,8 +1995,8 @@ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true, "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" + "get-stdin": "4.0.1", + "meow": "3.7.0" } }, "debug": { @@ -2017,7 +2026,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-is": { @@ -2032,7 +2041,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.0.12" } }, "define-property": { @@ -2041,8 +2050,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2051,7 +2060,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -2060,7 +2069,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -2069,9 +2078,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -2094,12 +2103,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" } }, "delayed-stream": { @@ -2113,8 +2122,8 @@ "resolved": "https://registry.npmjs.org/delegate-events/-/delegate-events-1.1.1.tgz", "integrity": "sha1-2rSQqcHx1AykDrzSHtr3F7Zx1NQ=", "requires": { - "closest": "*", - "component-event": "*" + "closest": "0.0.1", + "component-event": "0.1.4" } }, "depd": { @@ -2129,8 +2138,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "detect-indent": { @@ -2139,7 +2148,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "di": { @@ -2153,15 +2162,15 @@ "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-4.1.0-beta.0.tgz", "integrity": "sha512-YTZ7y2a00ybwSlbUIYYPsy6MXbvNTEFVhnsgUYq7jGdiG26/cfaUKe4Rod4o6oXjQFnwXfFIfVvR2lAnPvpJ0w==", "requires": { - "css.escape": "^1.5.1", - "didi": "^4.0.0", - "hammerjs": "^2.0.1", - "inherits": "^2.0.1", - "min-dash": "^3.5.0", - "min-dom": "^3.0.0", - "object-refs": "^0.3.0", - "path-intersection": "^1.0.2", - "tiny-svg": "^2.2.1" + "css.escape": "1.5.1", + "didi": "4.0.0", + "hammerjs": "2.0.8", + "inherits": "2.0.3", + "min-dash": "3.5.0", + "min-dom": "3.1.1", + "object-refs": "0.3.0", + "path-intersection": "1.1.1", + "tiny-svg": "2.2.1" } }, "diagram-js-direct-editing": { @@ -2169,8 +2178,8 @@ "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-1.5.0.tgz", "integrity": "sha512-yi7D/9oxIJJdcqwRwx16+F29MP3NNgrSI3/tC76z1dsAD+31E6XrfK9sdZ/n85i+TfaUNQcRKoPnpAwjnv1Jdg==", "requires": { - "min-dash": "^3.0.0", - "min-dom": "^3.0.0" + "min-dash": "3.5.0", + "min-dom": "3.1.1" } }, "didi": { @@ -2190,9 +2199,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.1.0" } }, "doctrine": { @@ -2201,7 +2210,7 @@ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dom-serialize": { @@ -2210,10 +2219,10 @@ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.2", + "void-elements": "2.0.1" } }, "domain-browser": { @@ -2239,10 +2248,10 @@ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "ecc-jsbn": { @@ -2251,8 +2260,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ee-first": { @@ -2267,13 +2276,13 @@ "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.7", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "emoji-regex": { @@ -2300,7 +2309,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "engine.io": { @@ -2309,12 +2318,12 @@ "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "dev": true, "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.7", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.3", + "ws": "3.3.3" }, "dependencies": { "debug": { @@ -2336,14 +2345,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.3", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" }, "dependencies": { @@ -2365,10 +2374,10 @@ "dev": true, "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "enhanced-resolve": { @@ -2377,9 +2386,9 @@ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" + "graceful-fs": "4.1.15", + "memory-fs": "0.4.1", + "tapable": "1.1.3" } }, "ent": { @@ -2394,7 +2403,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "~1.0.1" + "prr": "1.0.1" } }, "error-ex": { @@ -2403,7 +2412,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -2412,11 +2421,11 @@ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -2425,9 +2434,9 @@ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "es6-promise": { @@ -2442,7 +2451,7 @@ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.5" } }, "escape-html": { @@ -2463,11 +2472,11 @@ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" }, "dependencies": { "esprima": { @@ -2489,7 +2498,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -2500,42 +2509,42 @@ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" + "@babel/code-frame": "7.0.0", + "ajv": "6.10.2", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "4.1.1", + "doctrine": "3.0.0", + "eslint-scope": "4.0.3", + "eslint-utils": "1.4.0", + "eslint-visitor-keys": "1.0.0", + "espree": "5.0.1", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "5.0.1", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.3", + "globals": "11.12.0", + "ignore": "4.0.6", + "import-fresh": "3.1.0", + "imurmurhash": "0.1.4", + "inquirer": "6.5.0", + "js-yaml": "3.13.1", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "progress": "2.0.3", + "regexpp": "2.0.1", + "semver": "5.6.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "5.4.1", + "text-table": "0.2.0" }, "dependencies": { "ajv": { @@ -2544,10 +2553,10 @@ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "debug": { @@ -2556,7 +2565,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -2573,8 +2582,8 @@ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "2.6.9", + "resolve": "1.8.1" } }, "eslint-module-utils": { @@ -2583,8 +2592,8 @@ "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", "dev": true, "requires": { - "debug": "^2.6.8", - "pkg-dir": "^2.0.0" + "debug": "2.6.9", + "pkg-dir": "2.0.0" } }, "eslint-plugin-bpmn-io": { @@ -2593,9 +2602,9 @@ "integrity": "sha512-7G0vWqfGpQcCUWArctr74Y+HGoARgDjgUE4u1vBC4ocQdqEOu79yPzXj78wdOcVJIOzN/gg5RMkz6uJlt02XhQ==", "dev": true, "requires": { - "babel-eslint": "^8.2.6", - "eslint-plugin-mocha": "^5.1.0", - "eslint-plugin-react": "^7.10.0" + "babel-eslint": "8.2.6", + "eslint-plugin-mocha": "5.3.0", + "eslint-plugin-react": "7.14.2" } }, "eslint-plugin-import": { @@ -2604,17 +2613,17 @@ "integrity": "sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", + "array-includes": "3.0.3", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", - "has": "^1.0.3", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "read-pkg-up": "^2.0.0", - "resolve": "^1.11.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.4.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0", + "resolve": "1.11.1" }, "dependencies": { "doctrine": { @@ -2623,8 +2632,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "2.0.2", + "isarray": "1.0.0" } }, "resolve": { @@ -2633,7 +2642,7 @@ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } } } @@ -2644,7 +2653,7 @@ "integrity": "sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==", "dev": true, "requires": { - "ramda": "^0.26.1" + "ramda": "0.26.1" } }, "eslint-plugin-react": { @@ -2653,15 +2662,15 @@ "integrity": "sha512-jZdnKe3ip7FQOdjxks9XPN0pjUKZYq48OggNMd16Sk+8VXx6JOvXmlElxROCgp7tiUsTsze3jd78s/9AFJP2mA==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.1.0", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0", - "object.values": "^1.1.0", - "prop-types": "^15.7.2", - "resolve": "^1.10.1" + "array-includes": "3.0.3", + "doctrine": "2.1.0", + "has": "1.0.3", + "jsx-ast-utils": "2.2.1", + "object.entries": "1.1.0", + "object.fromentries": "2.0.0", + "object.values": "1.1.0", + "prop-types": "15.7.2", + "resolve": "1.11.1" }, "dependencies": { "doctrine": { @@ -2670,7 +2679,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "resolve": { @@ -2679,7 +2688,7 @@ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } } } @@ -2690,8 +2699,8 @@ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -2700,7 +2709,7 @@ "integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "1.0.0" } }, "eslint-visitor-keys": { @@ -2715,9 +2724,9 @@ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "6.1.1", + "acorn-jsx": "5.0.1", + "eslint-visitor-keys": "1.0.0" } }, "esprima": { @@ -2732,7 +2741,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -2741,7 +2750,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -2780,8 +2789,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" } }, "execa": { @@ -2790,13 +2799,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "6.0.5", + "get-stream": "4.1.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "expand-brackets": { @@ -2805,7 +2814,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -2814,7 +2823,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "extend": { @@ -2829,8 +2838,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -2839,7 +2848,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -2850,9 +2859,9 @@ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -2861,7 +2870,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extract-zip": { @@ -2906,7 +2915,7 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "~1.2.0" + "pend": "1.2.0" } }, "figgy-pudding": { @@ -2921,7 +2930,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -2930,7 +2939,7 @@ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "2.0.1" } }, "filename-regex": { @@ -2945,11 +2954,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.1.1", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -2959,12 +2968,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.3", + "statuses": "1.5.0", + "unpipe": "1.0.0" } }, "find-cache-dir": { @@ -2973,9 +2982,9 @@ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "commondir": "1.0.1", + "make-dir": "2.1.0", + "pkg-dir": "3.0.0" }, "dependencies": { "find-up": { @@ -2984,7 +2993,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "locate-path": { @@ -2993,8 +3002,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "p-limit": { @@ -3003,7 +3012,7 @@ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -3012,7 +3021,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.0" } }, "p-try": { @@ -3033,7 +3042,7 @@ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "3.0.0" } } } @@ -3050,8 +3059,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "flat": { @@ -3060,7 +3069,7 @@ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "is-buffer": "~2.0.3" + "is-buffer": "2.0.3" }, "dependencies": { "is-buffer": { @@ -3077,7 +3086,7 @@ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "flatted": "^2.0.0", + "flatted": "2.0.1", "rimraf": "2.6.3", "write": "1.0.3" }, @@ -3088,7 +3097,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.3" } } } @@ -3105,8 +3114,8 @@ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "follow-redirects": { @@ -3115,7 +3124,7 @@ "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "dev": true, "requires": { - "debug": "^3.2.6" + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -3124,7 +3133,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -3147,7 +3156,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "forever-agent": { @@ -3162,9 +3171,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.7", + "mime-types": "2.1.21" } }, "fragment-cache": { @@ -3173,7 +3182,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "from2": { @@ -3182,8 +3191,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -3192,9 +3201,9 @@ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" + "graceful-fs": "4.1.15", + "jsonfile": "2.4.0", + "klaw": "1.3.1" } }, "fs-write-stream-atomic": { @@ -3203,10 +3212,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "graceful-fs": "4.1.15", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" } }, "fs.realpath": { @@ -3222,8 +3231,8 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.13.2", + "node-pre-gyp": "0.10.3" }, "dependencies": { "abbrev": { @@ -3235,8 +3244,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -3250,23 +3258,21 @@ "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3279,20 +3285,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -3333,7 +3336,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.5" } }, "fs.realpath": { @@ -3348,14 +3351,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.3" } }, "glob": { @@ -3364,12 +3367,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-unicode": { @@ -3384,7 +3387,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -3393,7 +3396,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -3402,15 +3405,14 @@ "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -3422,9 +3424,8 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -3437,25 +3438,22 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "safe-buffer": "5.1.2", + "yallist": "3.0.3" } }, "minizlib": { @@ -3464,14 +3462,13 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.5" } }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -3488,9 +3485,9 @@ "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.24", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -3499,16 +3496,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.4", + "nopt": "4.0.1", + "npm-packlist": "1.2.0", + "npmlog": "4.1.2", + "rc": "1.2.8", + "rimraf": "2.6.3", + "semver": "5.6.0", + "tar": "4.4.8" } }, "nopt": { @@ -3517,8 +3514,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -3533,8 +3530,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.5" } }, "npmlog": { @@ -3543,17 +3540,16 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.5", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -3565,9 +3561,8 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -3588,8 +3583,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -3610,10 +3605,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -3630,13 +3625,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rimraf": { @@ -3645,14 +3640,13 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.3" } }, "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -3688,11 +3682,10 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -3701,16 +3694,15 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -3725,13 +3717,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "chownr": "1.1.1", + "fs-minipass": "1.2.5", + "minipass": "2.3.5", + "minizlib": "1.2.1", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.2", + "yallist": "3.0.3" } }, "util-deprecate": { @@ -3746,20 +3738,18 @@ "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "1.0.2" } }, "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -3799,7 +3789,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } }, "get-value": { @@ -3814,7 +3804,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -3823,12 +3813,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -3837,8 +3827,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -3847,7 +3837,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "glob2base": { @@ -3856,7 +3846,7 @@ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { - "find-index": "^0.1.1" + "find-index": "0.1.1" } }, "globals": { @@ -3871,11 +3861,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -3909,10 +3899,10 @@ "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "dev": true, "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "neo-async": "2.6.0", + "optimist": "0.6.1", + "source-map": "0.6.1", + "uglify-js": "3.4.9" }, "dependencies": { "source-map": { @@ -3935,8 +3925,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.5.5", + "har-schema": "2.0.0" } }, "has": { @@ -3945,7 +3935,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -3954,7 +3944,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { @@ -4006,9 +3996,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4025,8 +4015,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -4035,7 +4025,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4044,7 +4034,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4055,7 +4045,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4066,8 +4056,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "hash.js": { @@ -4076,8 +4066,8 @@ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "hasha": { @@ -4086,8 +4076,8 @@ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" } }, "he": { @@ -4102,9 +4092,9 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.7", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, "hosted-git-info": { @@ -4119,10 +4109,10 @@ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", + "statuses": "1.5.0", "toidentifier": "1.0.0" } }, @@ -4132,9 +4122,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "eventemitter3": "3.1.2", + "follow-redirects": "1.7.0", + "requires-port": "1.0.0" } }, "http-signature": { @@ -4143,9 +4133,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.15.2" } }, "https-browserify": { @@ -4160,8 +4150,8 @@ "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "4.3.0", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -4170,7 +4160,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -4187,7 +4177,7 @@ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ids": { @@ -4219,8 +4209,8 @@ "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "parent-module": "1.0.1", + "resolve-from": "4.0.0" } }, "imurmurhash": { @@ -4235,7 +4225,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "indexof": { @@ -4249,8 +4239,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -4264,19 +4254,19 @@ "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.1.0", + "figures": "2.0.0", + "lodash": "4.17.14", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.5.2", + "string-width": "2.1.1", + "strip-ansi": "5.2.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -4291,9 +4281,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "lodash": { @@ -4308,7 +4298,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -4319,7 +4309,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -4334,7 +4324,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -4349,7 +4339,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.12.0" } }, "is-buffer": { @@ -4364,7 +4354,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -4379,7 +4369,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -4394,9 +4384,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -4419,7 +4409,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -4440,7 +4430,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -4455,7 +4445,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-module": { @@ -4470,7 +4460,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-path-cwd": { @@ -4485,7 +4475,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -4494,7 +4484,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-object": { @@ -4503,7 +4493,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -4547,7 +4537,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-stream": { @@ -4562,7 +4552,7 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -4601,7 +4591,7 @@ "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "buffer-alloc": "1.2.0" } }, "isexe": { @@ -4631,20 +4621,20 @@ "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" + "abbrev": "1.0.9", + "async": "1.5.2", + "escodegen": "1.8.1", + "esprima": "2.7.3", + "glob": "5.0.15", + "handlebars": "4.1.2", + "js-yaml": "3.13.1", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "once": "1.4.0", + "resolve": "1.1.7", + "supports-color": "3.2.3", + "which": "1.3.1", + "wordwrap": "1.0.0" }, "dependencies": { "esprima": { @@ -4659,11 +4649,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-flag": { @@ -4684,7 +4674,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -4695,10 +4685,10 @@ "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", "dev": true, "requires": { - "convert-source-map": "^1.5.0", - "istanbul-lib-instrument": "^1.7.3", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0" + "convert-source-map": "1.6.0", + "istanbul-lib-instrument": "1.10.2", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" } }, "istanbul-lib-coverage": { @@ -4713,13 +4703,13 @@ "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.1", + "semver": "5.6.0" }, "dependencies": { "babylon": { @@ -4736,8 +4726,8 @@ "integrity": "sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ==", "dev": true, "requires": { - "merge-stream": "^1.0.1", - "supports-color": "^6.1.0" + "merge-stream": "1.0.1", + "supports-color": "6.1.0" }, "dependencies": { "supports-color": { @@ -4746,7 +4736,7 @@ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -4763,8 +4753,8 @@ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -4821,7 +4811,7 @@ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.15" } }, "jsonify": { @@ -4848,8 +4838,8 @@ "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" + "array-includes": "3.0.3", + "object.assign": "4.1.0" } }, "just-extend": { @@ -4864,31 +4854,31 @@ "integrity": "sha512-fmCuxN1rwJxTdZfOXK5LjlmS4Ana/OvzNMpkyLL/TLE8hmgSkpVpMYQ7RTVa8TNKRVQDZNl5W1oF5cfKfgIMlA==", "dev": true, "requires": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", - "core-js": "^3.1.3", - "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^4.17.11", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", + "bluebird": "3.5.5", + "body-parser": "1.19.0", + "braces": "3.0.2", + "chokidar": "3.0.2", + "colors": "1.3.3", + "connect": "3.7.0", + "core-js": "3.1.4", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "flatted": "2.0.1", + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "http-proxy": "1.17.0", + "isbinaryfile": "3.0.3", + "lodash": "4.17.11", + "log4js": "4.5.1", + "mime": "2.4.4", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.2.0", + "range-parser": "1.2.1", + "rimraf": "2.6.2", + "safe-buffer": "5.1.2", "socket.io": "2.1.1", - "source-map": "^0.6.1", + "source-map": "0.6.1", "tmp": "0.0.33", "useragent": "2.3.0" }, @@ -4899,8 +4889,8 @@ "integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "normalize-path": "3.0.0", + "picomatch": "2.0.7" } }, "binary-extensions": { @@ -4915,7 +4905,7 @@ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "7.0.1" } }, "chokidar": { @@ -4924,14 +4914,14 @@ "integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==", "dev": true, "requires": { - "anymatch": "^3.0.1", - "braces": "^3.0.2", - "fsevents": "^2.0.6", - "glob-parent": "^5.0.0", - "is-binary-path": "^2.1.0", - "is-glob": "^4.0.1", - "normalize-path": "^3.0.0", - "readdirp": "^3.1.1" + "anymatch": "3.0.3", + "braces": "3.0.2", + "fsevents": "2.0.7", + "glob-parent": "5.0.0", + "is-binary-path": "2.1.0", + "is-glob": "4.0.1", + "normalize-path": "3.0.0", + "readdirp": "3.1.1" } }, "core-js": { @@ -4946,7 +4936,7 @@ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "to-regex-range": "5.0.1" } }, "fsevents": { @@ -4962,7 +4952,7 @@ "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "4.0.1" } }, "is-binary-path": { @@ -4971,7 +4961,7 @@ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "binary-extensions": "2.0.0" } }, "is-extglob": { @@ -4986,7 +4976,7 @@ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -5007,7 +4997,7 @@ "integrity": "sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "picomatch": "2.0.7" } }, "source-map": { @@ -5022,7 +5012,7 @@ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^7.0.0" + "is-number": "7.0.0" } } } @@ -5033,7 +5023,7 @@ "integrity": "sha512-u/PnVgDOP97AUe/gJeABlC6Wa6aQ83MZsm0JgsJQ5bGQ9XcXON/7b2aRhl59A62Zom+q3PFveBkczc7E1RT7TA==", "dev": true, "requires": { - "which": "^1.2.1" + "which": "1.3.1" } }, "karma-coverage": { @@ -5042,11 +5032,11 @@ "integrity": "sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw==", "dev": true, "requires": { - "dateformat": "^1.0.6", - "istanbul": "^0.4.0", - "lodash": "^4.17.0", - "minimatch": "^3.0.0", - "source-map": "^0.5.1" + "dateformat": "1.0.12", + "istanbul": "0.4.5", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "source-map": "0.5.7" } }, "karma-env-preprocessor": { @@ -5067,7 +5057,7 @@ "integrity": "sha1-SXmGhCxJAZA0bNifVJTKmDDG1Zw=", "dev": true, "requires": { - "lodash": "^4.6.1" + "lodash": "4.17.11" } }, "karma-mocha": { @@ -5093,8 +5083,8 @@ "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", "dev": true, "requires": { - "lodash": "^4.0.1", - "phantomjs-prebuilt": "^2.1.7" + "lodash": "4.17.11", + "phantomjs-prebuilt": "2.1.16" } }, "karma-safari-launcher": { @@ -5115,12 +5105,12 @@ "integrity": "sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A==", "dev": true, "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.1.0", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0", - "source-map": "^0.7.3", - "webpack-dev-middleware": "^3.7.0" + "clone-deep": "4.0.1", + "loader-utils": "1.1.0", + "neo-async": "2.6.1", + "schema-utils": "1.0.0", + "source-map": "0.7.3", + "webpack-dev-middleware": "3.7.0" }, "dependencies": { "neo-async": { @@ -5135,9 +5125,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.5.5", + "ajv-errors": "1.0.1", + "ajv-keywords": "3.4.1" } }, "source-map": { @@ -5160,7 +5150,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "klaw": { @@ -5169,7 +5159,7 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "^4.1.9" + "graceful-fs": "4.1.15" } }, "lcid": { @@ -5178,7 +5168,7 @@ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "invert-kv": "2.0.0" } }, "levn": { @@ -5187,8 +5177,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -5197,10 +5187,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -5223,9 +5213,9 @@ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" } }, "locate-path": { @@ -5234,8 +5224,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -5258,7 +5248,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "^2.0.1" + "chalk": "2.4.1" } }, "log4js": { @@ -5267,11 +5257,11 @@ "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", "dev": true, "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" + "date-format": "2.0.0", + "debug": "4.1.1", + "flatted": "2.0.1", + "rfdc": "1.1.4", + "streamroller": "1.0.6" }, "dependencies": { "debug": { @@ -5280,7 +5270,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -5303,7 +5293,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "4.0.0" } }, "loud-rejection": { @@ -5312,8 +5302,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lru-cache": { @@ -5322,8 +5312,8 @@ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "magic-string": { @@ -5332,7 +5322,7 @@ "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "1.4.4" } }, "make-dir": { @@ -5341,8 +5331,8 @@ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "pify": "4.0.1", + "semver": "5.6.0" }, "dependencies": { "pify": { @@ -5365,7 +5355,7 @@ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "p-defer": "1.0.0" } }, "map-cache": { @@ -5386,7 +5376,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "matches-selector": { @@ -5406,9 +5396,9 @@ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "hash-base": "3.0.4", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "media-typer": { @@ -5423,9 +5413,9 @@ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "map-age-cleaner": "0.1.3", + "mimic-fn": "2.1.0", + "p-is-promise": "2.1.0" }, "dependencies": { "mimic-fn": { @@ -5442,8 +5432,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "errno": "0.1.7", + "readable-stream": "2.3.6" } }, "memorystream": { @@ -5458,16 +5448,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "load-json-file": { @@ -5476,11 +5466,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.15", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "minimist": { @@ -5495,9 +5485,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.15", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -5512,9 +5502,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -5523,8 +5513,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "strip-bom": { @@ -5533,7 +5523,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } } } @@ -5544,7 +5534,7 @@ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "dev": true, "requires": { - "readable-stream": "^2.0.1" + "readable-stream": "2.3.6" } }, "micromatch": { @@ -5553,19 +5543,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "miller-rabin": { @@ -5574,8 +5564,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "bn.js": "4.11.8", + "brorand": "1.1.0" } }, "mime": { @@ -5596,7 +5586,7 @@ "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "dev": true, "requires": { - "mime-db": "~1.37.0" + "mime-db": "1.37.0" } }, "mimic-fn": { @@ -5616,11 +5606,11 @@ "integrity": "sha512-qvURYMN2jHw9kPg1oFKdOd/VNJOsUNGV5H5j+zpJLkFVyP49tqmTQN8xWMYCDpIKetyQAC6jV5JjskNZr+JHpg==", "requires": { "closest": "0.0.1", - "component-event": "^0.1.4", - "delegate-events": "^1.1.1", - "domify": "^1.3.1", + "component-event": "0.1.4", + "delegate-events": "1.1.1", + "domify": "1.4.0", "indexof": "0.0.1", - "matches-selector": "^1.2.0" + "matches-selector": "1.2.0" } }, "minimalistic-assert": { @@ -5641,7 +5631,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -5656,16 +5646,16 @@ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "concat-stream": "1.6.2", + "duplexify": "3.7.1", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.1.1", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "3.0.0", + "pumpify": "1.5.1", + "stream-each": "1.2.3", + "through2": "2.0.5" } }, "mixin-deep": { @@ -5674,8 +5664,8 @@ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -5684,7 +5674,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -5741,7 +5731,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "find-up": { @@ -5750,7 +5740,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "locate-path": { @@ -5759,8 +5749,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "ms": { @@ -5775,7 +5765,7 @@ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -5784,7 +5774,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.0" } }, "p-try": { @@ -5805,7 +5795,7 @@ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -5821,7 +5811,7 @@ "resolved": "https://registry.npmjs.org/moddle/-/moddle-5.0.1.tgz", "integrity": "sha512-RB9NCYxbnQLiY1ZJ8Y61+I8TBEmmyaMr8Tj0+fJHN8Fm6l5NqojDy1s4LNDxq+omvug4gnzERMgT8uwNsADDvw==", "requires": { - "min-dash": "^3.0.0" + "min-dash": "3.5.0" } }, "moddle-xml": { @@ -5829,9 +5819,9 @@ "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-8.0.1.tgz", "integrity": "sha512-aeMpZTFv5Vm5sKXtRRIoXb/4eMssNWjsvb0MNPe7g8x3F2cRmQa2AwT8gnjtlefHwmCxQRbIoP2kutmqfgoKzg==", "requires": { - "min-dash": "^3.0.0", - "moddle": "^5.0.1", - "saxen": "^8.1.0" + "min-dash": "3.5.0", + "moddle": "5.0.1", + "saxen": "8.1.0" } }, "moment": { @@ -5846,12 +5836,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" } }, "ms": { @@ -5879,17 +5869,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -5942,11 +5932,11 @@ "integrity": "sha512-Z3sfYEkLFzFmL8KY6xnSJLRxwQwYBjOXi/24lb62ZnZiGA0JUzGGTI6TBIgfCSMIDl9Jlu8SRmHNACLTemDHww==", "dev": true, "requires": { - "@sinonjs/formatio": "^3.1.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "lolex": "^4.1.0", - "path-to-regexp": "^1.7.0" + "@sinonjs/formatio": "3.2.1", + "@sinonjs/text-encoding": "0.7.1", + "just-extend": "4.0.2", + "lolex": "4.1.0", + "path-to-regexp": "1.7.0" } }, "node-environment-flags": { @@ -5955,8 +5945,8 @@ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "dev": true, "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" + "object.getownpropertydescriptors": "2.0.3", + "semver": "5.7.0" }, "dependencies": { "semver": { @@ -5973,29 +5963,29 @@ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", + "assert": "1.5.0", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.2.0", + "events": "3.0.0", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.6", + "stream-browserify": "2.0.2", + "stream-http": "2.8.3", + "string_decoder": "1.1.1", + "timers-browserify": "2.0.10", "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" + "url": "0.11.0", + "util": "0.11.1", + "vm-browserify": "1.1.0" }, "dependencies": { "punycode": { @@ -6012,7 +6002,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "1.0.9" } }, "normalize-package-data": { @@ -6021,10 +6011,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.6.0", + "validate-npm-package-license": "3.0.4" } }, "normalize-path": { @@ -6033,7 +6023,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-all": { @@ -6042,15 +6032,15 @@ "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" + "ansi-styles": "3.2.1", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "memorystream": "0.3.1", + "minimatch": "3.0.4", + "pidtree": "0.3.0", + "read-pkg": "3.0.0", + "shell-quote": "1.6.1", + "string.prototype.padend": "3.0.0" }, "dependencies": { "load-json-file": { @@ -6059,10 +6049,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -6071,8 +6061,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -6081,7 +6071,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -6090,9 +6080,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } } } @@ -6103,7 +6093,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -6136,9 +6126,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -6147,7 +6137,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -6169,7 +6159,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6186,10 +6176,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "1.1.3", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "object-keys": "1.0.12" } }, "object.entries": { @@ -6198,10 +6188,10 @@ "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1", + "has": "1.0.3" } }, "object.fromentries": { @@ -6210,10 +6200,10 @@ "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.11.0", - "function-bind": "^1.1.1", - "has": "^1.0.1" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1", + "has": "1.0.3" } }, "object.getownpropertydescriptors": { @@ -6222,8 +6212,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "object.omit": { @@ -6232,8 +6222,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -6242,7 +6232,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -6259,10 +6249,10 @@ "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1", + "has": "1.0.3" } }, "on-finished": { @@ -6280,7 +6270,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -6289,7 +6279,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optimist": { @@ -6298,8 +6288,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" }, "dependencies": { "wordwrap": { @@ -6316,12 +6306,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-browserify": { @@ -6336,9 +6326,9 @@ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "execa": "1.0.0", + "lcid": "2.0.0", + "mem": "4.3.0" } }, "os-tmpdir": { @@ -6371,7 +6361,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -6380,7 +6370,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-map": { @@ -6407,9 +6397,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "parent-module": { @@ -6418,7 +6408,7 @@ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "callsites": "^3.0.0" + "callsites": "3.1.0" } }, "parse-asn1": { @@ -6427,12 +6417,12 @@ "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "dev": true, "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "asn1.js": "4.10.1", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.17", + "safe-buffer": "5.1.2" } }, "parse-glob": { @@ -6441,10 +6431,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -6453,7 +6443,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -6462,7 +6452,7 @@ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -6471,7 +6461,7 @@ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseurl": { @@ -6504,7 +6494,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-intersection": { @@ -6559,7 +6549,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -6582,11 +6572,11 @@ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "pend": { @@ -6607,15 +6597,15 @@ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", "dev": true, "requires": { - "es6-promise": "^4.0.3", - "extract-zip": "^1.6.5", - "fs-extra": "^1.0.0", - "hasha": "^2.2.0", - "kew": "^0.7.0", - "progress": "^1.1.8", - "request": "^2.81.0", - "request-progress": "^2.0.1", - "which": "^1.2.10" + "es6-promise": "4.2.5", + "extract-zip": "1.6.7", + "fs-extra": "1.0.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.88.0", + "request-progress": "2.0.1", + "which": "1.3.1" }, "dependencies": { "progress": { @@ -6656,7 +6646,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -6665,7 +6655,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" }, "dependencies": { "find-up": { @@ -6674,7 +6664,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } } } @@ -6727,9 +6717,9 @@ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "loose-envify": "1.4.0", + "object-assign": "4.1.1", + "react-is": "16.8.6" } }, "proxy-from-env": { @@ -6762,12 +6752,12 @@ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "parse-asn1": "5.1.4", + "randombytes": "2.1.0", + "safe-buffer": "5.1.2" } }, "pump": { @@ -6776,8 +6766,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "pumpify": { @@ -6786,9 +6776,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "duplexify": "3.7.1", + "inherits": "2.0.3", + "pump": "2.0.1" }, "dependencies": { "pump": { @@ -6797,8 +6787,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } } } @@ -6815,14 +6805,14 @@ "integrity": "sha512-luUy0HPSuWPsPZ1wAp6NinE0zgetWtudf5zwZ6dHjMWfYpTQcmKveFRox7VBNhQ98OjNA9PQ9PzQyX8k/KrxTg==", "dev": true, "requires": { - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^2.2.1", - "mime": "^2.0.3", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" + "debug": "4.1.1", + "extract-zip": "1.6.7", + "https-proxy-agent": "2.2.2", + "mime": "2.4.4", + "progress": "2.0.3", + "proxy-from-env": "1.0.0", + "rimraf": "2.6.2", + "ws": "6.2.1" }, "dependencies": { "debug": { @@ -6831,7 +6821,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -6846,7 +6836,7 @@ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "async-limiter": "1.0.0" } } } @@ -6887,9 +6877,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -6912,7 +6902,7 @@ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.2" } }, "randomfill": { @@ -6921,8 +6911,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "randombytes": "2.1.0", + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -6949,8 +6939,8 @@ "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "loader-utils": "1.1.0", + "schema-utils": "1.0.0" }, "dependencies": { "schema-utils": { @@ -6959,9 +6949,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.5.5", + "ajv-errors": "1.0.1", + "ajv-keywords": "3.4.1" } } } @@ -6978,9 +6968,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -6989,8 +6979,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" }, "dependencies": { "find-up": { @@ -6999,7 +6989,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } } } @@ -7010,13 +7000,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -7025,9 +7015,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "graceful-fs": "4.1.15", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" }, "dependencies": { "arr-diff": { @@ -7048,16 +7038,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -7066,7 +7056,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7077,13 +7067,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7092,7 +7082,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -7101,7 +7091,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -7110,7 +7100,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7119,7 +7109,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7130,7 +7120,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7139,7 +7129,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7150,9 +7140,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -7169,14 +7159,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7185,7 +7175,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -7194,7 +7184,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7205,10 +7195,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -7217,7 +7207,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7228,7 +7218,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7237,7 +7227,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7246,9 +7236,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -7257,7 +7247,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7266,7 +7256,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7289,19 +7279,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -7312,8 +7302,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "regenerator-runtime": { @@ -7328,7 +7318,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -7337,8 +7327,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -7371,7 +7361,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -7380,26 +7370,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "har-validator": "5.1.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.21", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "request-progress": { @@ -7408,7 +7398,7 @@ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "^1.0.0" + "throttleit": "1.0.0" } }, "require-directory": { @@ -7435,7 +7425,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -7456,8 +7446,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -7478,7 +7468,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "ripemd160": { @@ -7487,8 +7477,8 @@ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.3" } }, "rollup": { @@ -7498,8 +7488,8 @@ "dev": true, "requires": { "@types/estree": "0.0.39", - "@types/node": "^12.0.8", - "acorn": "^6.1.1" + "@types/node": "12.0.10", + "acorn": "6.1.1" } }, "rollup-plugin-commonjs": { @@ -7508,11 +7498,11 @@ "integrity": "sha512-B8MoX5GRpj3kW4+YaFO/di2JsZkBxNjVmZ9LWjUoTAjq8N9wc7HObMXPsrvolVV9JXVtYSscflXM14A19dXPNQ==", "dev": true, "requires": { - "estree-walker": "^0.6.0", - "is-reference": "^1.1.2", - "magic-string": "^0.25.2", - "resolve": "^1.10.1", - "rollup-pluginutils": "^2.7.0" + "estree-walker": "0.6.1", + "is-reference": "1.1.2", + "magic-string": "0.25.2", + "resolve": "1.11.1", + "rollup-pluginutils": "2.8.1" }, "dependencies": { "resolve": { @@ -7521,7 +7511,7 @@ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "rollup-pluginutils": { @@ -7530,7 +7520,7 @@ "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", "dev": true, "requires": { - "estree-walker": "^0.6.1" + "estree-walker": "0.6.1" } } } @@ -7541,7 +7531,7 @@ "integrity": "sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==", "dev": true, "requires": { - "rollup-pluginutils": "^2.5.0" + "rollup-pluginutils": "2.6.0" } }, "rollup-plugin-license": { @@ -7564,10 +7554,10 @@ "dev": true, "requires": { "@types/resolve": "0.0.8", - "builtin-modules": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.11.1", - "rollup-pluginutils": "^2.8.1" + "builtin-modules": "3.1.0", + "is-module": "1.0.0", + "resolve": "1.11.1", + "rollup-pluginutils": "2.8.1" }, "dependencies": { "builtin-modules": { @@ -7582,7 +7572,7 @@ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "rollup-pluginutils": { @@ -7591,7 +7581,7 @@ "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", "dev": true, "requires": { - "estree-walker": "^0.6.1" + "estree-walker": "0.6.1" } } } @@ -7602,8 +7592,8 @@ "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==", "dev": true, "requires": { - "magic-string": "^0.25.2", - "rollup-pluginutils": "^2.6.0" + "magic-string": "0.25.2", + "rollup-pluginutils": "2.6.0" }, "dependencies": { "magic-string": { @@ -7612,7 +7602,7 @@ "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "1.4.4" } } } @@ -7623,11 +7613,11 @@ "integrity": "sha512-McIMCDEY8EU6Y839C09UopeRR56wXHGdvKKjlfiZG/GrP6wvZQ62u2ko/Xh1MNH2M9WDL+obAAHySljIZYCuPQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "jest-worker": "^24.6.0", - "rollup-pluginutils": "^2.8.1", - "serialize-javascript": "^1.7.0", - "terser": "^4.1.0" + "@babel/code-frame": "7.0.0", + "jest-worker": "24.6.0", + "rollup-pluginutils": "2.8.1", + "serialize-javascript": "1.7.0", + "terser": "4.1.2" }, "dependencies": { "rollup-pluginutils": { @@ -7636,7 +7626,7 @@ "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", "dev": true, "requires": { - "estree-walker": "^0.6.1" + "estree-walker": "0.6.1" } } } @@ -7647,8 +7637,8 @@ "integrity": "sha512-aGQwspEF8oPKvg37u3p7h0cYNwmJR1sCBMZGZ5b9qy8HGtETknqjzcxrDRrcAnJNXN18lBH4Q9vZYth/p4n8jQ==", "dev": true, "requires": { - "estree-walker": "^0.6.0", - "micromatch": "^3.1.10" + "estree-walker": "0.6.0", + "micromatch": "3.1.10" }, "dependencies": { "arr-diff": { @@ -7669,16 +7659,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -7687,7 +7677,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7704,13 +7694,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7719,7 +7709,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -7728,7 +7718,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -7737,7 +7727,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7746,7 +7736,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7757,7 +7747,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7766,7 +7756,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7777,9 +7767,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -7796,14 +7786,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -7812,7 +7802,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -7821,7 +7811,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7832,10 +7822,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -7844,7 +7834,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -7855,7 +7845,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -7864,7 +7854,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -7873,9 +7863,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -7884,7 +7874,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7893,7 +7883,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7916,19 +7906,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -7939,7 +7929,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-queue": { @@ -7948,7 +7938,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "^1.1.1" + "aproba": "1.2.0" } }, "rxjs": { @@ -7957,7 +7947,7 @@ "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.10.0" } }, "safe-buffer": { @@ -7972,7 +7962,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -7992,7 +7982,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "^5.0.0" + "ajv": "5.5.2" }, "dependencies": { "ajv": { @@ -8001,10 +7991,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "fast-deep-equal": { @@ -8045,10 +8035,10 @@ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -8057,7 +8047,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8080,8 +8070,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "shallow-clone": { @@ -8090,7 +8080,7 @@ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -8107,7 +8097,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -8122,10 +8112,10 @@ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true, "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" } }, "signal-exit": { @@ -8140,13 +8130,13 @@ "integrity": "sha512-thErC1z64BeyGiPvF8aoSg0LEnptSaWE7YhdWWbWXgelOyThent7uKOnnEh9zBxDbKixtr5dEko+ws1sZMuFMA==", "dev": true, "requires": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.1", - "diff": "^3.5.0", - "lolex": "^4.0.1", - "nise": "^1.4.10", - "supports-color": "^5.5.0" + "@sinonjs/commons": "1.4.0", + "@sinonjs/formatio": "3.2.1", + "@sinonjs/samsam": "3.3.2", + "diff": "3.5.0", + "lolex": "4.1.0", + "nise": "1.5.0", + "supports-color": "5.5.0" } }, "sinon-chai": { @@ -8161,9 +8151,9 @@ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "3.2.1", + "astral-regex": "1.0.0", + "is-fullwidth-code-point": "2.0.0" } }, "snapdragon": { @@ -8172,14 +8162,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.2", + "use": "3.1.1" }, "dependencies": { "define-property": { @@ -8188,7 +8178,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -8197,7 +8187,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -8208,9 +8198,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -8219,7 +8209,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -8228,7 +8218,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -8237,7 +8227,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -8246,9 +8236,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -8271,7 +8261,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "socket.io": { @@ -8280,12 +8270,12 @@ "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "dev": true, "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.1", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" }, "dependencies": { "debug": { @@ -8315,15 +8305,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" }, "dependencies": { @@ -8345,7 +8335,7 @@ "dev": true, "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -8384,11 +8374,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -8397,8 +8387,8 @@ "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.1.1", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -8427,8 +8417,8 @@ "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.2" } }, "spdx-exceptions": { @@ -8443,8 +8433,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.2" } }, "spdx-license-ids": { @@ -8459,7 +8449,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -8474,15 +8464,15 @@ "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "ssri": { @@ -8491,7 +8481,7 @@ "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "figgy-pudding": "3.5.1" } }, "static-extend": { @@ -8500,8 +8490,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -8510,7 +8500,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -8527,8 +8517,8 @@ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "stream-each": { @@ -8537,8 +8527,8 @@ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" } }, "stream-http": { @@ -8547,11 +8537,11 @@ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.2" } }, "stream-shift": { @@ -8566,11 +8556,11 @@ "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", "dev": true, "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" + "async": "2.6.3", + "date-format": "2.0.0", + "debug": "3.2.6", + "fs-extra": "7.0.1", + "lodash": "4.17.14" }, "dependencies": { "async": { @@ -8579,7 +8569,7 @@ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, "requires": { - "lodash": "^4.17.14" + "lodash": "4.17.14" } }, "debug": { @@ -8588,7 +8578,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "fs-extra": { @@ -8597,9 +8587,9 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.15", + "jsonfile": "4.0.0", + "universalify": "0.1.2" } }, "jsonfile": { @@ -8608,7 +8598,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.15" } }, "lodash": { @@ -8631,8 +8621,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string.prototype.padend": { @@ -8641,9 +8631,9 @@ "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "define-properties": "1.1.3", + "es-abstract": "1.12.0", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -8652,7 +8642,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -8661,7 +8651,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -8682,7 +8672,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "strip-json-comments": { @@ -8697,7 +8687,7 @@ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, "requires": { - "minimist": "^1.1.0" + "minimist": "1.2.0" }, "dependencies": { "minimist": { @@ -8714,7 +8704,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "table": { @@ -8723,10 +8713,10 @@ "integrity": "sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w==", "dev": true, "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "6.10.2", + "lodash": "4.17.11", + "slice-ansi": "2.1.0", + "string-width": "3.1.0" }, "dependencies": { "ajv": { @@ -8735,10 +8725,10 @@ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ansi-regex": { @@ -8753,9 +8743,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { @@ -8764,7 +8754,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -8781,9 +8771,9 @@ "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", "dev": true, "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "commander": "2.20.0", + "source-map": "0.6.1", + "source-map-support": "0.5.12" }, "dependencies": { "commander": { @@ -8806,16 +8796,16 @@ "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.0.0", - "is-wsl": "^1.1.0", - "loader-utils": "^1.2.3", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "source-map": "^0.6.1", - "terser": "^4.0.0", - "webpack-sources": "^1.3.0", - "worker-farm": "^1.7.0" + "cacache": "11.3.3", + "find-cache-dir": "2.1.0", + "is-wsl": "1.1.0", + "loader-utils": "1.2.3", + "schema-utils": "1.0.0", + "serialize-javascript": "1.7.0", + "source-map": "0.6.1", + "terser": "4.1.2", + "webpack-sources": "1.3.0", + "worker-farm": "1.7.0" }, "dependencies": { "big.js": { @@ -8830,7 +8820,7 @@ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "1.2.0" } }, "loader-utils": { @@ -8839,9 +8829,9 @@ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "big.js": "5.2.2", + "emojis-list": "2.1.0", + "json5": "1.0.1" } }, "minimist": { @@ -8856,9 +8846,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.5.5", + "ajv-errors": "1.0.1", + "ajv-keywords": "3.4.1" } }, "source-map": { @@ -8893,8 +8883,8 @@ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.2" } }, "timers-browserify": { @@ -8903,7 +8893,7 @@ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "setimmediate": "1.0.5" } }, "tiny-svg": { @@ -8917,7 +8907,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -8944,7 +8934,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -8953,10 +8943,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -8965,8 +8955,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -8975,7 +8965,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -8992,8 +8982,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -9034,7 +9024,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -9049,7 +9039,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -9065,7 +9055,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "mime-types": "2.1.24" }, "dependencies": { "mime-db": { @@ -9098,8 +9088,8 @@ "dev": true, "optional": true, "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" + "commander": "2.17.1", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -9123,10 +9113,10 @@ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "2.0.1" } }, "unique-filename": { @@ -9135,7 +9125,7 @@ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "2.0.2" } }, "unique-slug": { @@ -9144,7 +9134,7 @@ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { - "imurmurhash": "^0.1.4" + "imurmurhash": "0.1.4" } }, "universalify": { @@ -9165,8 +9155,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -9175,9 +9165,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -9217,7 +9207,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -9256,8 +9246,8 @@ "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" + "lru-cache": "4.1.5", + "tmp": "0.0.33" } }, "util": { @@ -9293,8 +9283,8 @@ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.2", + "spdx-expression-parse": "3.0.0" } }, "verror": { @@ -9303,9 +9293,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vm-browserify": { @@ -9326,9 +9316,9 @@ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "chokidar": "2.1.6", + "graceful-fs": "4.1.15", + "neo-async": "2.6.0" }, "dependencies": { "anymatch": { @@ -9337,8 +9327,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" }, "dependencies": { "normalize-path": { @@ -9347,7 +9337,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } } } @@ -9370,16 +9360,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -9388,7 +9378,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9399,18 +9389,18 @@ "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.7", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.1", + "normalize-path": "3.0.0", + "path-is-absolute": "1.0.1", + "readdirp": "2.2.1", + "upath": "1.1.2" } }, "expand-brackets": { @@ -9419,13 +9409,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9434,7 +9424,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9443,7 +9433,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -9452,7 +9442,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9461,7 +9451,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9472,7 +9462,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9481,7 +9471,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9492,9 +9482,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -9511,14 +9501,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9527,7 +9517,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -9536,7 +9526,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9547,10 +9537,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -9559,7 +9549,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9570,8 +9560,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -9580,7 +9570,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -9591,7 +9581,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9600,7 +9590,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9609,9 +9599,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -9626,7 +9616,7 @@ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -9635,7 +9625,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9644,7 +9634,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9667,19 +9657,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "normalize-path": { @@ -9700,25 +9690,25 @@ "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "acorn": "6.2.0", + "ajv": "6.5.5", + "ajv-keywords": "3.4.1", + "chrome-trace-event": "1.0.2", + "enhanced-resolve": "4.1.0", + "eslint-scope": "4.0.3", + "json-parse-better-errors": "1.0.2", + "loader-runner": "2.4.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "neo-async": "2.6.0", + "node-libs-browser": "2.2.1", + "schema-utils": "1.0.0", + "tapable": "1.1.3", + "terser-webpack-plugin": "1.3.0", + "watchpack": "1.6.0", + "webpack-sources": "1.3.0" }, "dependencies": { "acorn": { @@ -9745,16 +9735,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -9763,7 +9753,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9774,13 +9764,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9789,7 +9779,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9798,7 +9788,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -9807,7 +9797,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9816,7 +9806,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9827,7 +9817,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9836,7 +9826,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9847,9 +9837,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -9866,14 +9856,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -9882,7 +9872,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -9891,7 +9881,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9902,10 +9892,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -9914,7 +9904,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9925,7 +9915,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9934,7 +9924,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9943,9 +9933,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -9954,7 +9944,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -9963,7 +9953,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9986,19 +9976,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "schema-utils": { @@ -10007,9 +9997,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "ajv": "6.5.5", + "ajv-errors": "1.0.1", + "ajv-keywords": "3.4.1" } } } @@ -10020,10 +10010,10 @@ "integrity": "sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA==", "dev": true, "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.2", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" + "memory-fs": "0.4.1", + "mime": "2.4.4", + "range-parser": "1.2.1", + "webpack-log": "2.0.0" } }, "webpack-log": { @@ -10032,8 +10022,8 @@ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "ansi-colors": "3.2.4", + "uuid": "3.3.2" } }, "webpack-sources": { @@ -10042,8 +10032,8 @@ "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "source-list-map": "2.0.1", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -10060,7 +10050,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -10075,7 +10065,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "2.1.1" } }, "wordwrap": { @@ -10090,7 +10080,7 @@ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "requires": { - "errno": "~0.1.7" + "errno": "0.1.7" } }, "wrap-ansi": { @@ -10099,8 +10089,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -10115,7 +10105,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -10124,9 +10114,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -10135,7 +10125,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -10152,7 +10142,7 @@ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "ws": { @@ -10161,9 +10151,9 @@ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "xmlhttprequest-ssl": { @@ -10196,17 +10186,17 @@ "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", "dev": true, "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" + "cliui": "4.1.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "os-locale": "3.1.0", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "13.0.0" }, "dependencies": { "ansi-regex": { @@ -10221,7 +10211,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "locate-path": { @@ -10230,8 +10220,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "p-limit": { @@ -10240,7 +10230,7 @@ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -10249,7 +10239,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.0" } }, "p-try": { @@ -10270,9 +10260,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { @@ -10281,7 +10271,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -10292,8 +10282,8 @@ "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" }, "dependencies": { "camelcase": { @@ -10310,9 +10300,9 @@ "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" + "flat": "4.1.0", + "lodash": "4.17.11", + "yargs": "12.0.5" }, "dependencies": { "camelcase": { @@ -10327,7 +10317,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "get-caller-file": { @@ -10342,8 +10332,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "p-limit": { @@ -10352,7 +10342,7 @@ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -10361,7 +10351,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.0" } }, "p-try": { @@ -10388,18 +10378,18 @@ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "os-locale": "3.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "11.1.1" } }, "yargs-parser": { @@ -10408,8 +10398,8 @@ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } } } @@ -10420,7 +10410,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "~1.0.1" + "fd-slicer": "1.0.1" } }, "yeast": { diff --git a/package.json b/package.json index 0fc6ae01..5b65ce9f 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "*.css" ], "devDependencies": { + "camunda-bpmn-moddle": "^4.0.1", "chai": "^4.1.2", "chai-match": "^1.1.1", "cpx": "^1.5.0", diff --git a/test/fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn b/test/fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn deleted file mode 100644 index 2aa1c357..00000000 --- a/test/fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - Task_1pamrp2 - - - Task_1pamrp2 - - - - - - Task_0n0k2nj - - - - - - - - - StartEvent_07r1iyh - - - IntermediateThrowEvent_0audt6r - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/fixtures/bpmn/features/replace/clone-properties.bpmn b/test/fixtures/bpmn/features/replace/copy-properties.bpmn similarity index 100% rename from test/fixtures/bpmn/features/replace/clone-properties.bpmn rename to test/fixtures/bpmn/features/replace/copy-properties.bpmn diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js index 75c484fe..4ce32057 100644 --- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js @@ -1,5 +1,3 @@ -/* global sinon */ - import { bootstrapModeler, getBpmnJS, @@ -8,19 +6,20 @@ import { import bpmnCopyPasteModule from 'lib/features/copy-paste'; import copyPasteModule from 'diagram-js/lib/features/copy-paste'; -import tooltipsModule from 'diagram-js/lib/features/tooltips'; -import modelingModule from 'lib/features/modeling'; import coreModule from 'lib/core'; +import modelingModule from 'lib/features/modeling'; import { - map, - filter, + find, forEach, - uniqueBy + isArray, + isNumber, + keys, + map, + pick, + reduce } from 'min-dash'; -import DescriptorTree from './DescriptorTree'; - import { getBusinessObject, is @@ -32,17 +31,16 @@ describe('features/copy-paste', function() { var testModules = [ bpmnCopyPasteModule, copyPasteModule, - tooltipsModule, - modelingModule, - coreModule + coreModule, + modelingModule ]; - var basicXML = require('../../../fixtures/bpmn/features/copy-paste/basic.bpmn'), - clonePropertiesXML = require('../../../fixtures/bpmn/features/replace/clone-properties.bpmn'), - propertiesXML = require('../../../fixtures/bpmn/features/copy-paste/properties.bpmn'), - collaborationXML = require('../../../fixtures/bpmn/features/copy-paste/collaboration.bpmn'), - collaborationMultipleXML = require('../../../fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn'), - collaborationAssociations = require('../../../fixtures/bpmn/features/copy-paste/data-associations.bpmn'); + var basicXML = require('./basic.bpmn'), + copyPropertiesXML = require('./copy-properties.bpmn'), + propertiesXML = require('./properties.bpmn'), + collaborationXML = require('./collaboration.bpmn'), + collaborationMultipleXML = require('./collaboration-multiple.bpmn'), + collaborationAssociationsXML = require('./data-associations.bpmn'); describe('basic diagram', function() { @@ -54,195 +52,147 @@ describe('features/copy-paste', function() { describe('copy', function() { - it('selected elements', inject(function(elementRegistry, copyPaste) { + it('should copy sub process', inject(function() { // when - var tree = copy([ 'SubProcess_1kd6ist' ]); - - var subProcess = tree.getElement('SubProcess_1kd6ist'); + var tree = copy('SubProcess_1'); // then - expect(tree.getLength()).to.equal(3); + expect(keys(tree)).to.have.length(3); - expect(tree.getDepthLength(0)).to.equal(1); - expect(tree.getDepthLength(1)).to.equal(3); - expect(tree.getDepthLength(2)).to.equal(12); + expect(getAllElementsInTree(tree, 0)).to.have.length(1); + expect(getAllElementsInTree(tree, 1)).to.have.length(3); + expect(getAllElementsInTree(tree, 2)).to.have.length(12); - expect(subProcess.isExpanded).to.be.true; + expect(findDescriptorInTree('SubProcess_1', tree).isExpanded).to.be.true; })); - it('selected elements 2', inject(function(elementRegistry, copyPaste) { + it('should NOT override type property of descriptor', inject(function(elementRegistry) { // given - var event = elementRegistry.get('StartEvent_1'); + var startEvent = elementRegistry.get('StartEvent_1'), + startEventBo = getBusinessObject(startEvent); - // add business object type property - event.businessObject.type = 'Foo'; + // add type property to business object + startEventBo.type = 'external'; // when - var tree = copy([ event ]); - - var eventDescriptor = tree.getElement('StartEvent_1'); + var tree = copy(startEvent); // then - expect(tree.getLength()).to.equal(1); - - expect(eventDescriptor.type).to.eql('bpmn:StartEvent'); + expect(findDescriptorInTree('StartEvent_1', tree).type).to.eql('bpmn:StartEvent'); })); }); - it('should paste twice', inject( - function(elementRegistry, canvas, copyPaste) { - // given - var element = elementRegistry.get('SubProcess_1kd6ist'), - rootElement = canvas.getRootElement(); + it('should paste twice', inject(function(elementRegistry, canvas, copyPaste) { - // when - copyPaste.copy(element); + // given + var subProcess = elementRegistry.get('SubProcess_1'), + rootElement = canvas.getRootElement(); - copyPaste.paste({ - element: rootElement, - point: { - x: 1000, - y: 100 - } - }); + // when + copyPaste.copy(subProcess); - copyPaste.paste({ - element: rootElement, - point: { - x: 1500, - y: 275 - } - }); + copyPaste.paste({ + element: rootElement, + point: { + x: 1000, + y: 1000 + } + }); - // then - // 3 sub-processes - // 6 pasted labels - expect(rootElement.children).to.have.length(9); + var elements = copyPaste.paste({ + element: rootElement, + point: { + x: 2000, + y: 1000 + } + }); - var pastedElements = elementRegistry.filter(function(e) { - return e !== element && is(e, 'bpmn:SubProcess'); - }); + // then + expect(rootElement.children).to.have.length(9); - expect(pastedElements[0].id).not.to.equal(pastedElements[1].id); - } - )); + var subProcesses = elements.filter(function(element) { + return is(element, 'bpmn:SubProcess'); + }); + + expect(subProcesses[0].id).not.to.equal(subProcesses[1].id); + })); describe('integration', function() { - it('should retain label\'s relative position', - inject(function(modeling, copyPaste, canvas, elementRegistry) { + it('should copy conditional and default flow properties', + inject(function(canvas, copyPaste, elementRegistry, modeling) { // given - var startEvent = elementRegistry.get('StartEvent_1'), - startEventLabel = startEvent.label, - seqFlow = elementRegistry.get('SequenceFlow_1rtr33r'), - seqFlowLabel = seqFlow.label, - task = elementRegistry.get('Task_1fo63a7'), - rootElement = canvas.getRootElement(), - newEvent, newFlow; + var subProcess = elementRegistry.get('SubProcess_1'), + rootElement = canvas.getRootElement(); // when - copyPaste.copy([ startEvent, task ]); + copyPaste.copy(subProcess); - copyPaste.paste({ + modeling.removeShape(subProcess); + + var elements = copyPaste.paste({ element: rootElement, point: { - x: 1100, - y: 250 + x: 300, + y: 300 } }); - newEvent = elementRegistry.filter(function(element) { - return element.parent === rootElement && element.type === 'bpmn:StartEvent'; - })[0]; - - newFlow = elementRegistry.filter(function(element) { - return element.parent === rootElement && element.type === 'bpmn:SequenceFlow'; - })[0]; - // then - expect(newEvent.label.x - newEvent.x).to.equal(startEventLabel.x - startEvent.x); - expect(newEvent.label.y - newEvent.y).to.equal(startEventLabel.y - startEvent.y); - - var seqFlowDeltaX = seqFlow.label.x - seqFlow.waypoints[0].x; - - expect(newFlow.label.x - newFlow.waypoints[0].x).to.be.within(seqFlowDeltaX, seqFlowDeltaX + 1); - expect(newFlow.label.y - newFlow.waypoints[0].y).to.equal(seqFlowLabel.y - seqFlow.waypoints[0].y); - }) - ); - - - it('should retain default & conditional flow property', - inject(function(elementRegistry, copyPaste, canvas, modeling) { - - // given - var subProcess = elementRegistry.get('SubProcess_1kd6ist'), - rootElement = canvas.getRootElement(), - task, defaultFlow, conditionalFlow; - - // when - copyPaste.copy(subProcess); - - modeling.removeElements([ subProcess ]); - - copyPaste.paste({ - element: rootElement, - point: { - x: 1100, - y: 250 - } + var task = find(elements, function(element) { + return is(element, 'bpmn:Task'); }); - task = elementRegistry.filter(function(element) { - return element.type === 'bpmn:Task'; - })[0]; + var taskBo = getBusinessObject(task); - defaultFlow = elementRegistry.filter(function(element) { - return !!(element.type === 'bpmn:SequenceFlow' && task.businessObject.default.id === element.id); - })[0]; + var conditionalFlow = find(elementRegistry.getAll(), function(element) { + return is(element, 'bpmn:SequenceFlow') && element.businessObject.conditionExpression; + }); - conditionalFlow = elementRegistry.filter(function(element) { - return !!(element.type === 'bpmn:SequenceFlow' && element.businessObject.conditionExpression); - })[0]; + var defaultFlow = find(elementRegistry.getAll(), function(element) { + return is(element, 'bpmn:SequenceFlow') && taskBo.default.id === element.id; + }); - expect(defaultFlow).to.exist; expect(conditionalFlow).to.exist; + expect(defaultFlow).to.exist; }) ); - it('should retain loop characteristics', - inject(function(elementRegistry, copyPaste, canvas, modeling) { + it('should copy loop characteristics porperties', + inject(function(canvas, copyPaste, elementRegistry, modeling) { // given - var subProcess = elementRegistry.get('SubProcess_0gev7mx'), - rootElement = canvas.getRootElement(), - loopCharacteristics; + var subProcess = elementRegistry.get('SubProcess_2'), + rootElement = canvas.getRootElement(); // when copyPaste.copy(subProcess); - modeling.removeElements([ subProcess ]); + modeling.removeShape(subProcess); - copyPaste.paste({ + var elements = copyPaste.paste({ element: rootElement, point: { - x: 1100, - y: 250 + x: 300, + y: 300 } }); - subProcess = elementRegistry.filter(function(element) { - return !!(element.id !== 'SubProcess_1kd6ist' && element.type === 'bpmn:SubProcess'); - })[0]; + subProcess = find(elements, function(element) { + return is(element, 'bpmn:SubProcess'); + }); - loopCharacteristics = subProcess.businessObject.loopCharacteristics; + var subProcessesBo = getBusinessObject(subProcess); + + var loopCharacteristics = subProcessesBo.loopCharacteristics; expect(loopCharacteristics.$type).to.equal('bpmn:MultiInstanceLoopCharacteristics'); expect(loopCharacteristics.isSequential).to.be.true; @@ -250,41 +200,38 @@ describe('features/copy-paste', function() { ); - it.skip('selected elements', inject(integrationTest([ 'SubProcess_1kd6ist' ]))); - - - it('should retain color properties', - inject(function(modeling, copyPaste, canvas, elementRegistry) { + it('should copy color properties', + inject(function(canvas, copyPaste, elementRegistry, modeling) { // given - var task = elementRegistry.get('Task_1fo63a7'), + var task = elementRegistry.get('Task_1'), rootElement = canvas.getRootElement(), - newTask, - fill = '#BBDEFB', - stroke = '#1E88E5'; + fill = 'red', + stroke = 'green'; // when modeling.setColor(task, { fill: fill, stroke: stroke }); - copyPaste.copy([ task ]); + copyPaste.copy(task); - copyPaste.paste({ + var elements = copyPaste.paste({ element: rootElement, point: { - x: 1100, - y: 250 + x: 1000, + y: 1000 } }); - newTask = elementRegistry.filter(function(element) { - return element.parent === rootElement && element.type === 'bpmn:Task' && element.id !== 'Task_1fo63a7'; - })[0]; - // then - expect(newTask.type).to.equal('bpmn:Task'); - expect(newTask.businessObject.di.fill).to.equal(fill); - expect(newTask.businessObject.di.stroke).to.equal(stroke); + task = find(elements, function(element) { + return is(element, 'bpmn:Task'); + }); + + var taskBo = getBusinessObject(task); + + expect(taskBo.di.fill).to.equal(fill); + expect(taskBo.di.stroke).to.equal(stroke); }) ); @@ -293,18 +240,17 @@ describe('features/copy-paste', function() { describe('rules', function() { - it('disallow individual boundary events copying', inject( - function(copyPaste, elementRegistry, canvas) { + it('should NOT allow copying boundary event without host', inject(function(elementRegistry) { - var boundaryEventA = elementRegistry.get('BoundaryEvent_1404oxd'), - boundaryEventB = elementRegistry.get('BoundaryEvent_1c94bi9'); + var boundaryEvent1 = elementRegistry.get('BoundaryEvent_1'), + boundaryEvent2 = elementRegistry.get('BoundaryEvent_2'); - // when - var tree = copy([ boundaryEventA, boundaryEventB ]); + // when + var tree = copy([ boundaryEvent1, boundaryEvent2 ]); + + expect(keys(tree)).to.have.length(0); + })); - expect(tree.getLength()).to.equal(0); - } - )); }); }); @@ -314,228 +260,160 @@ describe('features/copy-paste', function() { beforeEach(bootstrapModeler(propertiesXML, { modules: testModules })); - var subProcesses = [ - 'Sub_non_interrupt', - 'Sub_event_subprocess', - 'Sub_interrupt', - 'Sub_transaction' - ]; - function copyPasteElement(elementRegistry, canvas, copyPaste, modeling, element) { - // given - var elem = elementRegistry.get(element), - rootElement = canvas.getRootElement(); + function copyPasteElement(element) { - // when - copyPaste.copy(elem); + return getBpmnJS().invoke(function(canvas, copyPaste, elementRegistry, modeling) { - modeling.removeElements([ elem ]); + // given + element = elementRegistry.get(element); - copyPaste.paste({ - element: rootElement, - point: { - x: 175, - y: 450 - } + var rootElement = canvas.getRootElement(); + + // when + copyPaste.copy(element); + + modeling.removeShape(element); + + return copyPaste.paste({ + element: rootElement, + point: { + x: 1000, + y: 1000 + } + }); }); + } - it('should copy & paste non interrupting (boundary) events', - inject(function(elementRegistry, canvas, copyPaste, modeling) { + it('should copy and paste non-interrupting boundary event', function() { - // when - copyPasteElement(elementRegistry, canvas, copyPaste, modeling, 'Sub_non_interrupt'); + // when + var elements = copyPasteElement('SubProcess_NonInterrupting'); - var subProcess = elementRegistry.filter(function(element) { - return element.type === 'bpmn:SubProcess' && (subProcesses.indexOf(element.id) === -1); - })[0]; + var subProcess = find(elements, function(element) { + return is(element, 'bpmn:SubProcess'); + }); - var nonInterruptEvt = subProcess.attachers[0].businessObject; + var boundaryEvent = subProcess.attachers[0], + boundaryEventBo = getBusinessObject(boundaryEvent); - // then - expect(nonInterruptEvt.cancelActivity).to.be.false; - }) - ); + // then + expect(boundaryEventBo.cancelActivity).to.be.false; + }); - it('should copy & paste event sub processes', - inject(function(elementRegistry, canvas, copyPaste, modeling) { + it('should copy and paste interrupting boundary event', function() { - // when - copyPasteElement(elementRegistry, canvas, copyPaste, modeling, 'Sub_event_subprocess'); + // when + var elements = copyPasteElement('SubProcess_Interrupting'); - var subProcess = elementRegistry.filter(function(element) { - return element.type === 'bpmn:SubProcess' && (subProcesses.indexOf(element.id) === -1); - })[0]; + var subProcess = find(elements, function(element) { + return is(element, 'bpmn:SubProcess'); + }); - expect(subProcess.businessObject.triggeredByEvent).to.be.true; - expect(subProcess.businessObject.isExpanded).to.be.true; - }) - ); + var boundaryEvent = subProcess.attachers[0], + boundaryEventBo = getBusinessObject(boundaryEvent); + + // then + expect(boundaryEventBo.cancelActivity).to.be.true; + }); - it('should copy & paste interrupting (boundary) events', - inject(function(elementRegistry, canvas, copyPaste, modeling) { + it('should copy and paste event sub process', function() { - // when - copyPasteElement(elementRegistry, canvas, copyPaste, modeling, 'Sub_interrupt'); + // when + var elements = copyPasteElement('SubProcess_Event'); - var subProcess = elementRegistry.filter(function(element) { - return element.type === 'bpmn:SubProcess' && (subProcesses.indexOf(element.id) === -1); - })[0]; + var subProcess = find(elements, function(element) { + return is(element, 'bpmn:SubProcess'); + }); - var interruptEvt = subProcess.attachers[0].businessObject; + var subProcessesBo = getBusinessObject(subProcess); - // then - expect(interruptEvt.cancelActivity).to.be.true; - }) - ); + expect(subProcessesBo.triggeredByEvent).to.be.true; + expect(subProcessesBo.isExpanded).to.be.true; + }); - it('should copy & paste transactions', - inject(function(elementRegistry, canvas, copyPaste, modeling) { + it('should copy and paste transaction', function() { - // when - copyPasteElement(elementRegistry, canvas, copyPaste, modeling, 'Sub_transaction'); + // when + var elements = copyPasteElement('SubProcess_Transaction'); - var transaction = elementRegistry.filter(function(element) { - return element.type === 'bpmn:Transaction'; - })[0]; + var transaction = find(elements, function(element) { + return is(element, 'bpmn:Transaction'); + }); - expect(transaction).to.exist; - }) - ); + expect(transaction).to.exist; + }); - it('should copy & paste groups', - inject(function(elementRegistry, canvas, copyPaste, modeling) { + it('should copy and paste group', function() { - // when - copyPasteElement(elementRegistry, canvas, copyPaste, modeling, 'Group'); + // when + var elements = copyPasteElement('Group'); - var group = elementRegistry.filter(function(element) { - return element.type === 'bpmn:Group'; - })[0]; + var group = find(elements, function(element) { + return is(element, 'bpmn:Group'); + }); - var categoryValue = getBusinessObject(group).categoryValueRef; + var groupBo = getBusinessObject(group); - expect(group).to.exist; - expect(categoryValue).to.exist; - }) - ); + expect(groupBo.categoryValueRef).to.exist; + }); }); - describe('basic collaboration', function() { + describe('collaboration', function() { beforeEach(bootstrapModeler(collaborationXML, { modules: testModules })); describe('integration', function() { - it('participant with including lanes + elements', inject(integrationTest([ 'Participant_0uu1rvj' ]))); + it('expanded participant', integrationTest('Participant_1')); - it('collapsed pool', inject(integrationTest([ 'Participant_145muai' ]))); + it('collapsed participant', integrationTest('Participant_2')); }); describe('rules', function() { - it('disallow individual lanes copying', inject(function(copyPaste, elementRegistry, canvas) { + it('should NOT allow copying lanes without their parent participant', function() { // when - var tree = copy([ 'Lane_13h648l', 'Lane_1gl63sa' ]); + var tree = copy([ 'Lane_1', 'Lane_2' ]); // then - expect(tree.getLength()).to.equal(0); - })); - - - it('pasting on a collaboration is disallowed when NOT every element is a Participant', - inject(function(copyPaste, elementRegistry, canvas, tooltips, eventBus) { - - var collaboration = canvas.getRootElement(); - - var pasteRejected = sinon.spy(function() {}); - - // when - var tree = copy([ 'Task_13xbgyg', 'Participant_145muai' ]); - - // then - expect(tree.getDepthLength(0)).to.equal(2); - - // when - eventBus.on('elements.paste.rejected', pasteRejected); - - copyPaste.paste({ - element: collaboration, - point: { - x: 1000, - y: 1000 - } - }); - - expect(pasteRejected).to.have.been.called; - }) - ); - - - it('pasting participants on a process is disallowed when it\'s not a collaboration', - inject(function(copyPaste, elementRegistry, canvas, tooltips, eventBus, modeling, elementFactory) { - - var participant = elementRegistry.get('Participant_145muai'), - otherParticipant = elementRegistry.get('Participant_0uu1rvj'), - startEvent = elementFactory.create('shape', { type: 'bpmn:StartEvent' }), - rootElement; - - var pasteRejected = sinon.spy(function() {}); - - // when - copyPaste.copy([ participant ]); - - modeling.removeElements([ participant, otherParticipant ]); - - rootElement = canvas.getRootElement(); - - modeling.createShape(startEvent, { x: 50, y: 50 }, rootElement); - - eventBus.on('elements.paste.rejected', pasteRejected); - - copyPaste.paste({ - element: rootElement, - point: { - x: 500, - y: 200 - } - }); - - expect(pasteRejected).to.have.been.called; - }) - ); + expect(keys(tree)).to.have.length(0); + }); }); }); - describe('complex collaboration', function() { + describe('collaboration (multiple)', function() { beforeEach(bootstrapModeler(collaborationMultipleXML, { modules: testModules })); + describe('basics', function() { - it('pasting on a lane', inject(function(elementRegistry, copyPaste) { + it('should paste onto lane', inject(function(copyPaste, elementRegistry) { // given - var lane = elementRegistry.get('Lane_0aws6ii'), - task = elementRegistry.get('Task_1pamrp2'), - participant = elementRegistry.get('Participant_1id96b4'); + var participant = elementRegistry.get('Participant_2'), + lane = elementRegistry.get('Lane_5'), + laneBo = getBusinessObject(lane), + task = elementRegistry.get('Task_1'); + + copyPaste.copy(task); // when - copyPaste.copy([ task ]); - copyPaste.paste({ element: lane, point: { @@ -545,36 +423,38 @@ describe('features/copy-paste', function() { }); // then - expect(lane.children).to.be.empty; - expect(lane.businessObject.flowNodeRef).to.have.length(2); - expect(participant.children).to.have.length(7); + + expect(lane.children).to.be.empty; + expect(laneBo.flowNodeRef).to.have.length(2); })); - it('pasting on a nested lane', inject(function(elementRegistry, copyPaste) { + it('should paste onto nested lane', inject(function(copyPaste, elementRegistry) { + // given - var lane = elementRegistry.get('Lane_1yo0kyz'), - task = elementRegistry.get('Task_0n0k2nj'), - participant = elementRegistry.get('Participant_0pgdgt4'); + var participant = elementRegistry.get('Participant_1'), + lane = elementRegistry.get('Lane_3'), + laneBo = getBusinessObject(lane), + task = elementRegistry.get('Task_2'); // when - copyPaste.copy([ task ]); + copyPaste.copy(task); copyPaste.paste({ element: lane, point: { - x: 200, - y: 75 + x: 450, + y: 150 } }); // then - expect(lane.children).to.be.empty; - expect(lane.businessObject.flowNodeRef).to.have.length(2); - - expect(lane.parent.children).to.have.length(2); expect(participant.children).to.have.length(5); + + expect(lane.children).to.be.empty; + expect(lane.parent.children).to.have.length(2); + expect(laneBo.flowNodeRef).to.have.length(2); })); }); @@ -582,15 +462,10 @@ describe('features/copy-paste', function() { describe('integration', function() { - it('multiple participants', inject(integrationTest([ - 'Participant_0pgdgt4', - 'Participant_1id96b4' - ]))); - - it('multiple participants', inject(integrationTest([ - 'Participant_0pgdgt4', - 'Participant_1id96b4' - ]))); + it('should copy and paste multiple participants', integrationTest([ + 'Participant_1', + 'Participant_2' + ])); }); @@ -599,56 +474,63 @@ describe('features/copy-paste', function() { describe('participants', function() { - beforeEach(bootstrapModeler(collaborationAssociations, { modules: testModules })); + beforeEach(bootstrapModeler(collaborationAssociationsXML, { modules: testModules })); - it('copying participant should copy process as well', inject( - function(elementRegistry, copyPaste, canvas) { + it('should copy process when copying participant', inject( + function(canvas, copyPaste, elementRegistry) { // given - var participants = map([ 'Participant_Input', 'Participant_Output' ], function(e) { - return elementRegistry.get(e); - }); - var rootElement = canvas.getRootElement(); + var participantInput = elementRegistry.get('Participant_Input'), + participantInputBo = getBusinessObject(participantInput), + participantOutput = elementRegistry.get('Participant_Output'), + participantOutputBo = getBusinessObject(participantOutput), + rootElement = canvas.getRootElement(); // when - copyPaste.copy(participants); + copyPaste.copy([ participantInput, participantOutput ]); - copyPaste.paste({ + var elements = copyPaste.paste({ element: rootElement, point: { - x: 4000, - y: 4500 + x: 5000, + y: 5000 } }); // then - var elements = elementRegistry.filter(function(element) { - return element.type === 'bpmn:Participant'; + var participants = elements.filter(function(element) { + return is(element, 'bpmn:Participant'); }); - var processIds = map(elements, function(e) { - return e.businessObject.processRef.id; + forEach(participants, function(participant) { + var participantBo = getBusinessObject(participant); + + expect(participantBo.processRef).not.to.equal(participantInputBo.processRef); + expect(participantBo.processRef).not.to.equal(participantOutputBo.processRef); }); - expect(uniqueBy(function(e) {return e;}, processIds)).to.have.length(4); + expect(getBusinessObject(participants[0]).processRef) + .not.to.equal(getBusinessObject(participants[1]).processRef); } )); - it('participant with DataOutputAssociation', inject(integrationTest([ 'Participant_Output' ]))); + it('should copy and paste participant with DataInputAssociation', + integrationTest('Participant_Input')); - it('participant with DataInputAssociation', inject(integrationTest([ 'Participant_Input' ]))); + it('should copy and paste participant with DataOutputAssociation', + integrationTest('Participant_Output')); }); - describe('deep properties', function() { + describe('nested properties', function() { - var camundaPackage = require('../../../fixtures/json/model/camunda'); + var camundaPackage = require('camunda-bpmn-moddle/resources/camunda.json'); - beforeEach(bootstrapModeler(clonePropertiesXML, { + beforeEach(bootstrapModeler(copyPropertiesXML, { modules: testModules, moddleExtensions: { camunda: camundaPackage @@ -656,179 +538,232 @@ describe('features/copy-paste', function() { })); - it('integration', inject(integrationTest([ 'Participant_0x9lnke' ]))); + it('integration', integrationTest('Participant_1')); - it('should copy UserTask properties', - inject(function(elementRegistry, copyPaste, canvas) { + it('should copy user task properties', inject(function(copyPaste, elementRegistry) { - var participant = elementRegistry.get('Participant_0x9lnke'), - task = elementRegistry.get('Task_1'), - newTask; + var participant = elementRegistry.get('Participant_1'), + task = elementRegistry.get('Task_1'), + taskBo = getBusinessObject(task); - // when - copyPaste.copy([ task ]); + // when + copyPaste.copy(task); - copyPaste.paste({ - element: participant, - point: { - x: 500, - y: 50 - } - }); + var elements = copyPaste.paste({ + element: participant, + point: { + x: 500, + y: 50 + } + }); - newTask = filter(participant.children, function(element) { - return is(element, 'bpmn:Task'); - })[0]; + // then + var newTask = find(elements, function(element) { + return is(element, 'bpmn:Task'); + }); - // then - var bo = task.businessObject; - var copiedBo = newTask.businessObject; + var newTaskBo = getBusinessObject(newTask); - - expect(copiedBo.asyncBefore).to.eql(bo.asyncBefore); - expect(copiedBo.documentation).to.jsonEqual(bo.documentation); - - var copiedExtensions = copiedBo.extensionElements; - - expect(copiedExtensions).to.jsonEqual(bo.extensionElements); - expect(copiedExtensions.$parent).to.equal(copiedBo); - }) - ); + expect(newTaskBo.asyncBefore).to.equal(taskBo.asyncBefore); + expect(newTaskBo.documentation).to.jsonEqual(taskBo.documentation); + expect(newTaskBo.extensionElements).to.jsonEqual(taskBo.extensionElements); + })); }); }); +// helpers ////////// +/** + * Integration test involving copying, pasting, moving, undoing and redoing. + * + * @param {String|Array} elementIds + */ +function integrationTest(elementIds) { + if (!isArray(elementIds)) { + elementIds = [ elementIds ]; + } -// test helpers ////////////////////// + return function() { + getBpmnJS().invoke(function(canvas, commandStack, copyPaste, elementRegistry, modeling) { -function integrationTest(ids) { + // given + var allElements = elementRegistry.getAll(); - return function(canvas, elementRegistry, modeling, copyPaste, commandStack) { - // given - var shapes = elementRegistry.getAll(), - rootElement; + var initialContext = { + length: allElements.length, + ids: getPropertyForElements(allElements, 'id'), + types: getPropertyForElements(allElements, 'type') + }, + currentContext; - var initialContext = { - type: mapProperty(shapes, 'type'), - ids: mapProperty(shapes, 'id'), - length: shapes.length - }, - currentContext; + var elements = map(elementIds, function(elementId) { + return elementRegistry.get(elementId); + }); - var elements = map(ids, function(id) { - return elementRegistry.get(id); + // (1) copy elements + copyPaste.copy(elements); + + // (2) remove elements + modeling.removeElements(elements); + + var rootElement = canvas.getRootElement(); + + // (3) paste elements + copyPaste.paste({ + element: rootElement, + point: { + x: 500, + y: 500 + } + }); + + // (4) move all elements except root + modeling.moveElements(elementRegistry.filter(isRoot), { x: 50, y: -50 }); + + // when + // (5) undo moving, pasting and removing + commandStack.undo(); + commandStack.undo(); + commandStack.undo(); + + elements = elementRegistry.getAll(); + + currentContext = { + length: elements.length, + ids: getPropertyForElements(elements, 'id') + }; + + // then + expect(initialContext.length).to.equal(currentContext.length); + expectCollection(initialContext.ids, currentContext.ids, true); + + // when + // (6) redo removing, pasting and moving + commandStack.redo(); + commandStack.redo(); + commandStack.redo(); + + elements = elementRegistry.getAll(); + + currentContext = { + length: elements.length, + ids: getPropertyForElements(elements, 'id'), + types: getPropertyForElements(elements, 'type') + }; + + // then + expect(initialContext.length).to.equal(currentContext.length); + expectCollection(initialContext.ids, currentContext.ids, false); + expectCollection(initialContext.types, currentContext.types, true); }); - copyPaste.copy(elements); - - modeling.removeElements(elements); - - rootElement = canvas.getRootElement(); - - copyPaste.paste({ - element: rootElement, - point: { - x: 1100, - y: 250 - } - }); - - elements = elementRegistry.getAll(); - - // remove root - elements = elementRegistry.filter(function(element) { - return !!element.parent; - }); - - modeling.moveElements(elements, { x: 50, y: -50 }); - - // when - commandStack.undo(); - commandStack.undo(); - commandStack.undo(); - - elements = elementRegistry.getAll(); - - currentContext = { - type: mapProperty(elements, 'type'), - ids: mapProperty(elements, 'id'), - length: elements.length - }; - - // then - expect(initialContext).to.have.length(currentContext.length); - - expectCollection(initialContext.ids, currentContext.ids, true); - - // when - commandStack.redo(); - commandStack.redo(); - commandStack.redo(); - - elements = elementRegistry.getAll(); - - currentContext = { - type: mapProperty(elements, 'type'), - ids: mapProperty(elements, 'id'), - length: elements.length - }; - - // then - expect(initialContext).to.have.length(currentContext.length); - - expectCollection(initialContext.type, currentContext.type, true); - expectCollection(initialContext.ids, currentContext.ids, false); }; } +function isRoot(element) { + return !!element.parent; +} + +function getPropertyForElements(elements, property) { + return map(elements, function(element) { + return element[ property ]; + }); +} + +function expectCollection(collection1, collection2, contains) { + expect(collection1).to.have.length(collection2.length); + + forEach(collection2, function(element) { + if (!element.parent) { + return; + } + + if (contains) { + expect(collection1).to.contain(element); + } else { + expect(collection1).not.to.contain(element); + } + }); +} + +function getAllElementsInTree(tree, depth) { + var depths; + + if (isNumber(depth)) { + depths = pick(tree, [ depth ]); + } else { + depths = tree; + } + + return reduce(depths, function(allElements, depth) { + return allElements.concat(depth); + }, []); +} + +function findDescriptorInTree(elements, tree, depth) { + var foundDescriptors = _findDescriptorsInTree(elements, tree, depth); + + if (foundDescriptors.length !== 1) { + return false; + } + + return foundDescriptors[0]; +} + +function _findDescriptorsInTree(elements, tree, depth) { + if (!isArray(elements)) { + elements = [ elements ]; + } + + var depths; + + if (isNumber(depth)) { + depths = pick(tree, [ depth ]); + } else { + depths = tree; + } + + return reduce(elements, function(foundDescriptors, element) { + var foundDescriptor = reduce(depths, function(foundDescriptor, depth) { + return foundDescriptor || find(depth, function(descriptor) { + return element === descriptor.id || element.id === descriptor.id; + }); + }); + + if (foundDescriptor) { + return foundDescriptors.concat(foundDescriptor); + } + + return foundDescriptors; + }, []); +} /** - * Copy elements (or elements with given ids). + * Copy elements. * - * @param {Array' }) + ]; + + var userTask = moddle.create('bpmn:UserTask'); + + userTask.documentation = documentation; + + // when + var serviceTask = moddleCopy.copyElement(userTask, moddle.create('bpmn:ServiceTask')); + + expect(serviceTask.documentation[0].$parent).to.equal(serviceTask); + expect(serviceTask.documentation[0].text).to.equal('FOO\nBAR'); + expect(serviceTask.documentation[0].textFormat).to.equal('xyz'); + + expect(serviceTask.documentation[1].$parent).to.equal(serviceTask); + expect(serviceTask.documentation[1].text).to.equal(''); + })); + + + it('should copy execution listener', inject(function(moddleCopy, moddle) { + + // given + var script = moddle.create('camunda:Script', { + scriptFormat: 'groovy', + value: 'foo = bar;' + }); + + var executionListener = moddle.create('camunda:ExecutionListener', { + event: 'start', + script: script + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + userTask = moddle.create('bpmn:UserTask'); + + executionListener.$parent = extensionElements; + + extensionElements.$parent = userTask; + extensionElements.values = [ executionListener ]; + + userTask.extensionElements = extensionElements; + + // when + var serviceTask = moddleCopy.copyElement(userTask, moddle.create('bpmn:ServiceTask')); + + // then + executionListener = serviceTask.extensionElements.values[0]; + + expect(executionListener).to.exist; + expect(executionListener.$type).to.equal('camunda:ExecutionListener'); + expect(executionListener.$parent).to.equal(serviceTask.extensionElements); + expect(executionListener.event).to.equal('start'); + + script = executionListener.script; + + expect(script).to.exist; + expect(script.$type).to.equal('camunda:Script'); + expect(script.$parent).to.equal(executionListener); + expect(script.scriptFormat).to.equal('groovy'); + expect(script.value).to.equal('foo = bar;'); + })); + + + it('should copy output parameter', inject(function(moddleCopy, moddle) { + + // given + var outputParameter = moddle.create('camunda:OutputParameter', { + name: 'foo', + definition: moddle.create('camunda:List', { + items: [ + moddle.create('camunda:Value', { value: '${1+1}' }), + moddle.create('camunda:Value', { value: '${1+2}' }), + moddle.create('camunda:Value', { value: '${1+3}' }) + ] + }) + }); + + var inputOutput = moddle.create('camunda:InputOutput', { + outputParameters: [ outputParameter ] + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + userTask = moddle.create('bpmn:UserTask'); + + extensionElements.$parent = userTask; + extensionElements.values = [ inputOutput ]; + + userTask.extensionElements = extensionElements; + + // when + var subProcess = moddleCopy.copyElement(userTask, moddle.create('bpmn:SubProcess')); + + // then + extensionElements = subProcess.extensionElements; + + inputOutput = extensionElements.values[0]; + + expect(inputOutput.$type).to.equal('camunda:InputOutput'); + expect(inputOutput.$parent).to.equal(extensionElements); + + outputParameter = inputOutput.outputParameters[0]; + + expect(outputParameter.$type).to.equal('camunda:OutputParameter'); + expect(outputParameter.$parent).to.equal(inputOutput); + expect(outputParameter.name).to.equal('foo'); + + var definition = outputParameter.definition; + + expect(definition.$type).to.equal('camunda:List'); + expect(definition.$parent).to.equal(outputParameter); + + var items = definition.items; + + expect(items[0].$type).to.equal('camunda:Value'); + expect(items[0].$parent).to.equal(definition); + expect(items[0].value).to.equal('${1+1}'); + + expect(items[1].$type).to.equal('camunda:Value'); + expect(items[1].$parent).to.equal(definition); + expect(items[1].value).to.equal('${1+2}'); + + expect(items[2].$type).to.equal('camunda:Value'); + expect(items[2].$parent).to.equal(definition); + expect(items[2].value).to.equal('${1+3}'); + })); + + }); + + + describe('integration', function() { + + describe('camunda:Connector', function() { + + it('should copy if parent is message event definition and is child of end event', inject( + function(moddleCopy, moddle) { + + // given + var connector = moddle.create('camunda:Connector', { + connectorId: 'foo' + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + messageEventDefinition = moddle.create('bpmn:MessageEventDefinition'), + messageIntermediateThrowEvent = moddle.create('bpmn:IntermediateThrowEvent'); + + connector.$parent = extensionElements; + + extensionElements.$parent = messageEventDefinition; + extensionElements.values = [ connector ]; + + messageEventDefinition.$parent = messageIntermediateThrowEvent; + messageEventDefinition.extensionElements = extensionElements; + + messageIntermediateThrowEvent.eventDefinitions = [ messageEventDefinition ]; + + // when + var endEvent = + moddleCopy.copyElement(messageIntermediateThrowEvent, moddle.create('bpmn:EndEvent')); + + // then + extensionElements = endEvent.eventDefinitions[0].extensionElements; + + expect(extensionElements.values[0].$type).to.equal('camunda:Connector'); + expect(extensionElements.values[0].connectorId).to.equal('foo'); + } + )); + + }); + + + describe('camunda:Field', function() { + + it('should copy if parent is message event definition and is child of end event', inject( + function(moddleCopy, moddle) { + + // given + var field = moddle.create('camunda:Field', { + name: 'foo' + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + messageEventDefinition = moddle.create('bpmn:MessageEventDefinition'), + messageIntermediateThrowEvent = moddle.create('bpmn:IntermediateThrowEvent'); + + field.$parent = extensionElements; + + extensionElements.$parent = messageEventDefinition; + extensionElements.values = [ field ]; + + messageEventDefinition.$parent = messageIntermediateThrowEvent; + messageEventDefinition.extensionElements = extensionElements; + + messageIntermediateThrowEvent.eventDefinitions = [ messageEventDefinition ]; + + // when + var endEvent = + moddleCopy.copyElement(messageIntermediateThrowEvent, moddle.create('bpmn:EndEvent')); + + // then + extensionElements = endEvent.eventDefinitions[0].extensionElements; + + expect(extensionElements.values[0].$type).to.equal('camunda:Field'); + expect(extensionElements.values[0].name).to.equal('foo'); + } + )); + + }); + + + describe('camunda:FailedJobRetryTimeCycle', function() { + + it('should copy if parent is SignalEventDefinition and is intermediate throwing', inject( + function(moddleCopy, moddle) { + + // given + var retryCycle = moddle.create('camunda:FailedJobRetryTimeCycle', { + body: 'foo' + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + signalEventDefinition = moddle.create('bpmn:SignalEventDefinition'), + signalIntermediateThrowEvent = moddle.create('bpmn:IntermediateThrowEvent'); + + retryCycle.$parent = extensionElements; + + extensionElements.$parent = signalEventDefinition; + extensionElements.values = [ retryCycle ]; + + signalEventDefinition.$parent = signalIntermediateThrowEvent; + signalEventDefinition.extensionElements = extensionElements; + + signalIntermediateThrowEvent.eventDefinitions = [ signalEventDefinition ]; + + // when + var intermediateThrowEvent = moddleCopy.copyElement( + signalIntermediateThrowEvent, + moddle.create('bpmn:IntermediateThrowEvent') + ); + + // then + extensionElements = intermediateThrowEvent.eventDefinitions[0].extensionElements; + + expect(extensionElements.values[0].$type).to.equal('camunda:FailedJobRetryTimeCycle'); + expect(extensionElements.values[0].body).to.equal('foo'); + } + )); + + + it('should copy if parent is TimerEventDefinition and is catching', inject( + function(moddleCopy, moddle) { + + // given + var retryCycle = moddle.create('camunda:FailedJobRetryTimeCycle', { + body: 'foo' + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + timerEventDefinition = moddle.create('bpmn:TimerEventDefinition'), + timerStartEvent = moddle.create('bpmn:StartEvent'); + + retryCycle.$parent = extensionElements; + + extensionElements.$parent = timerEventDefinition; + extensionElements.values = [ retryCycle ]; + + timerEventDefinition.$parent = timerStartEvent; + timerEventDefinition.extensionElements = extensionElements; + + timerStartEvent.eventDefinitions = [ timerEventDefinition ]; + + // when + var intermediateCatchEvent = + moddleCopy.copyElement(timerStartEvent, moddle.create('bpmn:IntermediateCatchEvent')); + + // then + extensionElements = intermediateCatchEvent.eventDefinitions[0].extensionElements; + + expect(extensionElements.values[0].$type).to.equal('camunda:FailedJobRetryTimeCycle'); + expect(extensionElements.values[0].body).to.equal('foo'); + } + )); + + + it('should copy if parent is call activity', inject(function(moddleCopy, moddle) { + + // given + var retryCycle = moddle.create('camunda:FailedJobRetryTimeCycle', { + body: 'foo' + }); + + var extensionElements = moddle.create('bpmn:ExtensionElements'), + loopCharacteristics = moddle.create('bpmn:MultiInstanceLoopCharacteristics'), + subProcess = moddle.create('bpmn:SubProcess'); + + retryCycle.$parent = extensionElements; + + extensionElements.$parent = loopCharacteristics; + extensionElements.values = [ retryCycle ]; + + loopCharacteristics.$parent = subProcess; + loopCharacteristics.extensionElements = extensionElements; + + subProcess.loopCharacteristics = loopCharacteristics; + + // when + var callActivity = moddleCopy.copyElement(subProcess, moddle.create('bpmn:CallActivity')); + + // then + extensionElements = callActivity.loopCharacteristics.extensionElements; + + expect(extensionElements.values[0].$type).to.equal('camunda:FailedJobRetryTimeCycle'); + expect(extensionElements.values[0].body).to.equal('foo'); + })); + + }); + + }); + + + describe('events', function() { + + it('should disallow copying properties', inject(function(moddleCopy, eventBus, moddle) { + + // given + var task = moddle.create('bpmn:Task', { + name: 'foo' + }); + + eventBus.on('moddleCopy.canCopyProperties', HIGH_PRIORITY, function(context) { + var sourceElement = context.sourceElement; + + if (is(sourceElement, 'bpmn:Task')) { + return false; + } + }); + + // when + var userTask = moddleCopy.copyElement(task, moddle.create('bpmn:UserTask')); + + // then + expect(userTask.name).not.to.exist; + })); + + + it('should disallow copying property', inject(function(moddleCopy, eventBus, moddle) { + + // given + var task = moddle.create('bpmn:Task', { + name: 'foo' + }); + + eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { + var propertyName = context.propertyName; + + if (propertyName === 'name') { + return false; + } + }); + + // when + var userTask = moddleCopy.copyElement(task, moddle.create('bpmn:UserTask')); + + // then + expect(userTask.name).not.to.exist; + })); + + + it('should disallow setting copied property', inject(function(moddleCopy, eventBus, moddle) { + + // given + var task = moddle.create('bpmn:Task', { + name: 'foo' + }); + + eventBus.on('moddleCopy.canSetCopiedProperty', HIGH_PRIORITY, function(context) { + var property = context.property; + + if (property === 'foo') { + return false; + } + }); + + // when + var userTask = moddleCopy.copyElement(task, moddle.create('bpmn:UserTask')); + + // then + expect(userTask.name).not.to.exist; + })); + + + it('should copy primitive property', inject(function(moddleCopy, eventBus, moddle) { + + // given + var task = moddle.create('bpmn:Task', { + name: 'foo' + }); + + eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { + var propertyName = context.propertyName; + + if (propertyName === 'name') { + return 'bar'; + } + }); + + // when + var userTask = moddleCopy.copyElement(task, moddle.create('bpmn:UserTask')); + + // then + expect(userTask.name).to.equal('bar'); + })); + + + describe('copy model element property', function() { + + it('should copy and set parent', inject(function(moddleCopy, eventBus, moddle) { + + // given + var startEvent = moddle.create('bpmn:StartEvent'), + messageEventDefinition = moddle.create('bpmn:MessageEventDefinition'); + + messageEventDefinition.$parent = startEvent; + + startEvent.eventDefinitions = [ messageEventDefinition ]; + + eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { + var property = context.property; + + if (is(property, 'bpmn:MessageEventDefinition')) { + return moddle.create('bpmn:MessageEventDefinition'); + } + }); + + // when + var endEvent = moddleCopy.copyElement(startEvent, moddle.create('bpmn:EndEvent')); + + // then + expect(endEvent.eventDefinitions).to.have.length(1); + expect(endEvent.eventDefinitions[0]).not.to.equal(messageEventDefinition); + expect(endEvent.eventDefinitions[0].$type).to.equal('bpmn:MessageEventDefinition'); + })); + + }); + + + it('should copy and NOT set parent', inject(function(canvas, moddleCopy, eventBus, moddle) { + + // given + var definitions = getDefinitions(canvas.getRootElement()), + categoryValue = moddle.create('bpmn:CategoryValue'), + category = moddle.create('bpmn:Category'), + group = moddle.create('bpmn:Group'), + newCategoryValue, + newCategory, + newGroup; + + categoryValue.$parent = category; + + category.$parent = definitions; + category.categoryValue = [ categoryValue ]; + + definitions.rootElements.push(category); + + group.categoryValueRef = categoryValue; + + eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) { + var propertyName = context.propertyName; + + if (propertyName !== 'categoryValueRef') { + return; + } + + newCategoryValue = moddle.create('bpmn:CategoryValue'); + newCategory = moddle.create('bpmn:Category'); + + newCategoryValue.$parent = newCategory; + + newCategory.$parent = definitions; + newCategory.categoryValue = [ newCategoryValue ]; + + definitions.rootElements.push(newCategory); + + return newCategoryValue; + }); + + // when + newGroup = moddleCopy.copyElement(group, moddle.create('bpmn:Group')); + + // then + expect(newGroup.categoryValueRef).to.exist; + expect(newGroup.categoryValueRef).not.to.equal(categoryValue); + expect(newGroup.categoryValueRef.$parent).to.equal(newCategory); + })); + + }); + +}); + + +// helpers ////////// + +function expectNoAttrs(element) { + expect(element.$attrs).to.be.empty; +} + +function getDefinitions(rootElement) { + var businessObject = getBusinessObject(rootElement); + + return businessObject.$parent; +} \ No newline at end of file diff --git a/test/fixtures/bpmn/features/copy-paste/basic.bpmn b/test/spec/features/copy-paste/basic.bpmn similarity index 52% rename from test/fixtures/bpmn/features/copy-paste/basic.bpmn rename to test/spec/features/copy-paste/basic.bpmn index f50f1971..8564e286 100644 --- a/test/fixtures/bpmn/features/copy-paste/basic.bpmn +++ b/test/spec/features/copy-paste/basic.bpmn @@ -1,107 +1,108 @@ - + - - + + - SequenceFlow_1rtr33r + SequenceFlow_1 - - SequenceFlow_0y69l8f + + SequenceFlow_2 - - SequenceFlow_1rtr33r - SequenceFlow_0y69l8f - SequenceFlow_07vo2r8 + + SequenceFlow_1 + SequenceFlow_2 + SequenceFlow_3 - - - + + + - + - - SequenceFlow_07vo2r8 + + SequenceFlow_3 - + foo - foo - - + + foo + + - - + + - - + + - + - + - - + + - + - - + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - + + - - - - + + + + diff --git a/test/spec/features/copy-paste/collaboration-multiple.bpmn b/test/spec/features/copy-paste/collaboration-multiple.bpmn new file mode 100644 index 00000000..5d02f221 --- /dev/null +++ b/test/spec/features/copy-paste/collaboration-multiple.bpmn @@ -0,0 +1,104 @@ + + + + + + + + + + + Task_2 + + + Task_1 + + + + Task_1 + + + + + + + + + + + EndEvent_1 + + + IntermediateThrowEvent_1 + + + StartEvent_1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/fixtures/bpmn/features/copy-paste/collaboration.bpmn b/test/spec/features/copy-paste/collaboration.bpmn similarity index 50% rename from test/fixtures/bpmn/features/copy-paste/collaboration.bpmn rename to test/spec/features/copy-paste/collaboration.bpmn index 9d9299c9..9cd9d6a8 100644 --- a/test/fixtures/bpmn/features/copy-paste/collaboration.bpmn +++ b/test/spec/features/copy-paste/collaboration.bpmn @@ -1,73 +1,73 @@ - - - - + + + + - - StartEvent_0o6vk5g - Task_13xbgyg - EndEvent_1nef447 + + + StartEvent_1 + EndEvent_1 + Task_1 - - - SequenceFlow_0v3q8mo + + SequenceFlow_1 - - SequenceFlow_0v3q8mo - SequenceFlow_1yvonen - - - - SequenceFlow_1yvonen + + SequenceFlow_2 - + + SequenceFlow_1 + SequenceFlow_2 + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + diff --git a/test/spec/features/copy-paste/copy-properties.bpmn b/test/spec/features/copy-paste/copy-properties.bpmn new file mode 100644 index 00000000..868b6b89 --- /dev/null +++ b/test/spec/features/copy-paste/copy-properties.bpmn @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + hello world + + + foo + bar + + + + + + 10 + + + SequenceFlow_1 + SequenceFlow_2 + + + DataStoreReference_1 + Property_0j0o7pl + + + DataObjectReference_1 + Property_0j0o7pl + + + DataStoreReference_2 + + + DataObjectReference_2 + + + + SequenceFlow_1 + + + + SequenceFlow_2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/fixtures/bpmn/features/copy-paste/data-associations.bpmn b/test/spec/features/copy-paste/data-associations.bpmn similarity index 70% rename from test/fixtures/bpmn/features/copy-paste/data-associations.bpmn rename to test/spec/features/copy-paste/data-associations.bpmn index c5a7a7fc..862bac06 100644 --- a/test/fixtures/bpmn/features/copy-paste/data-associations.bpmn +++ b/test/spec/features/copy-paste/data-associations.bpmn @@ -1,60 +1,60 @@ - - + + - - - DataStoreReference_1muhdww + + + DataStoreReference_1 - + - - + + - - DataStoreReference_0q26vzn + + DataStoreReference_2 Property_0l7g57i - + - + - + - - - + + + - + - + - - - + + + diff --git a/test/fixtures/bpmn/features/copy-paste/properties.bpmn b/test/spec/features/copy-paste/properties.bpmn similarity index 55% rename from test/fixtures/bpmn/features/copy-paste/properties.bpmn rename to test/spec/features/copy-paste/properties.bpmn index 84ee3f95..a20a20ff 100644 --- a/test/fixtures/bpmn/features/copy-paste/properties.bpmn +++ b/test/spec/features/copy-paste/properties.bpmn @@ -1,49 +1,49 @@ - + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + diff --git a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js index bf5a4fd0..5daea629 100644 --- a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js +++ b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js @@ -7,16 +7,17 @@ import { import { forEach } from 'min-dash'; +import copyPasteModule from 'lib/features/copy-paste'; import coreModule from 'lib/core'; import editorActionsModule from 'lib/features/editor-actions'; -import searchModule from 'lib/features/search'; import globalConnectModule from 'diagram-js/lib/features/global-connect'; -import spaceToolModule from 'diagram-js/lib/features/space-tool'; -import lassoToolModule from 'diagram-js/lib/features/lasso-tool'; import handToolModule from 'diagram-js/lib/features/hand-tool'; import keyboardModule from 'lib/features/keyboard'; -import modelingModule from 'lib/features/modeling'; import labelEditingModule from 'lib/features/label-editing'; +import lassoToolModule from 'diagram-js/lib/features/lasso-tool'; +import modelingModule from 'lib/features/modeling'; +import searchModule from 'lib/features/search'; +import spaceToolModule from 'diagram-js/lib/features/space-tool'; import { createKeyEvent @@ -28,16 +29,17 @@ describe('features/keyboard', function() { var diagramXML = require('../../../fixtures/bpmn/simple.bpmn'); var testModules = [ + copyPasteModule, coreModule, editorActionsModule, - keyboardModule, - modelingModule, globalConnectModule, - spaceToolModule, - lassoToolModule, handToolModule, + keyboardModule, + labelEditingModule, + lassoToolModule, + modelingModule, searchModule, - labelEditingModule + spaceToolModule ]; beforeEach(bootstrapViewer(diagramXML, { modules: testModules })); @@ -46,10 +48,13 @@ describe('features/keyboard', function() { describe('bpmn keyboard bindings', function() { it('should include triggers inside editorActions', inject(function(editorActions) { + // given var expectedActions = [ 'undo', 'redo', + 'copy', + 'paste', 'zoom', 'removeSelection', 'selectElements', diff --git a/test/spec/features/modeling/behavior/CreateBehavior.bpmn b/test/spec/features/modeling/behavior/CreateBehavior.bpmn new file mode 100644 index 00000000..c77f0a61 --- /dev/null +++ b/test/spec/features/modeling/behavior/CreateBehavior.bpmn @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/spec/features/modeling/behavior/CreateBehaviorSpec.js b/test/spec/features/modeling/behavior/CreateBehaviorSpec.js new file mode 100644 index 00000000..e416e6f7 --- /dev/null +++ b/test/spec/features/modeling/behavior/CreateBehaviorSpec.js @@ -0,0 +1,42 @@ +import { + bootstrapModeler, + inject +} from 'test/TestHelper'; + +import coreModule from 'lib/core'; +import modelingModule from 'lib/features/modeling'; +import { getMid } from 'diagram-js/lib/layout/LayoutUtil'; + + +describe('features/modeling - CreateBehavior', function() { + + var processDiagramXML = require('./CreateBehavior.bpmn'); + + beforeEach(bootstrapModeler(processDiagramXML, { + modules: [ + coreModule, + modelingModule + ] + })); + + + it('should ensure parent is participant', inject( + function(elementFactory, elementRegistry, modeling) { + + // given + var lane = elementRegistry.get('Lane_1'), + participant = elementRegistry.get('Participant_1'); + + var task = elementFactory.createShape({ + type: 'bpmn:Task' + }); + + // when + modeling.createShape(task, getMid(lane), lane); + + // then + expect(task.parent).to.equal(participant); + } + )); + +}); \ No newline at end of file diff --git a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js index 8ae9c30e..d21d5f5a 100644 --- a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js @@ -1,11 +1,11 @@ -/* global sinon */ import { bootstrapModeler, inject } from 'test/TestHelper'; import { - getBusinessObject + getBusinessObject, + is } from 'lib/util/ModelUtil'; import { @@ -17,6 +17,8 @@ import copyPasteModule from 'diagram-js/lib/features/copy-paste'; import modelingModule from 'lib/features/modeling'; import coreModule from 'lib/core'; +import { find } from 'min-dash'; + describe('features/modeling/behavior - groups', function() { @@ -154,43 +156,68 @@ describe('features/modeling/behavior - groups', function() { }); - describe('should set copied name for pasted group', function() { + describe('integration', function() { - it('execute', inject(function(canvas, elementRegistry, copyPaste, eventBus) { + var groupBo, rootElements; + + beforeEach(inject(function(canvas, copyPaste, elementRegistry) { // given - var groupShape = elementRegistry.get('Group_1'), - categoryValue = getBusinessObject(groupShape).categoryValueRef, - root = canvas.getRootElement(), - listener = sinon.spy(function(event) { + var group = elementRegistry.get('Group_1'), + rootElement = canvas.getRootElement(); - var context = event.context, - createdElement = context.shape, - businessObject = createdElement.businessObject, - categoryValueRef = businessObject.categoryValueRef; - - expect(categoryValueRef).to.exist; - expect(categoryValueRef).to.not.eql(categoryValue); - expect(categoryValueRef.value).to.equal(categoryValue.value); - - }); - - eventBus.on('commandStack.shape.create.postExecute', listener); + copyPaste.copy(group); // when - copyPaste.copy(groupShape); - copyPaste.paste({ - element: root, + var elements = copyPaste.paste({ + element: rootElement, point: { - x: 50, - y: 50 + x: 500, + y: 500 } }); - // then - expect(listener).to.have.been.called; + group = find(elements, function(element) { + return is(element, 'bpmn:Group'); + }); + groupBo = getBusinessObject(group); + + rootElements = getBusinessObject(canvas.getRootElement()).$parent.rootElements; })); + + + it('', function() { + + // then + expect(groupBo.categoryValueRef).to.exist; + expect(groupBo.categoryValueRef.$parent).to.exist; + expect(groupBo.categoryValueRef.value).to.equal('Value 1'); + + expect(rootElements).to.have.length(4); + }); + + + it('', inject(function(commandStack) { + + // when + commandStack.undo(); + + // then + expect(rootElements).to.have.length(3); + })); + + + it('', function() { + + // then + expect(groupBo.categoryValueRef).to.exist; + expect(groupBo.categoryValueRef.$parent).to.exist; + expect(groupBo.categoryValueRef.value).to.equal('Value 1'); + + expect(rootElements).to.have.length(4); + }); + }); }); diff --git a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js index 06d95ac4..21a5f767 100644 --- a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js @@ -272,6 +272,29 @@ describe('behavior - LabelBehavior', function() { } )); + + it('should NOT add label if hint createElementsBehavior=false', inject( + function(bpmnFactory, elementFactory, elementRegistry, modeling) { + + // given + var parentShape = elementRegistry.get('Process_1'), + newShape = elementFactory.createShape({ + type: 'bpmn:ExclusiveGateway', + businessObject: bpmnFactory.create('bpmn:ExclusiveGateway', { + name: 'foo' + }) + }); + + // when + newShape = modeling.createShape(newShape, { x: 50, y: 50 }, parentShape, { + createElementsBehavior: false + }); + + // then + expect(newShape.label).not.to.exist; + } + )); + }); @@ -646,7 +669,7 @@ describe('behavior - LabelBehavior', function() { }); -// helper ////////// +// helpers ////////// function getBounds(element) { return pick(element, [ 'x', 'y', 'width', 'height' ]); diff --git a/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js b/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js index debd8b18..b6ce1e10 100644 --- a/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js +++ b/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js @@ -4,13 +4,10 @@ import { } from 'test/TestHelper'; import coreModule from 'lib/core'; -import createModule from 'diagram-js/lib/features/create'; -import draggingModule from 'diagram-js/lib/features/create'; import modelingModule from 'lib/features/modeling'; import replaceModule from 'lib/features/replace'; import { is } from 'lib/util/ModelUtil'; -import { createCanvasEvent as canvasEvent } from 'test/util/MockEvents'; describe('features/modeling/behavior - subprocess start event', function() { @@ -19,46 +16,12 @@ describe('features/modeling/behavior - subprocess start event', function() { beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule, - createModule, - draggingModule, modelingModule, replaceModule ] })); - describe('create', function() { - - it('should contain start event child', inject( - function(canvas, elementFactory, create, dragging) { - - // given - var rootElement = canvas.getRootElement(), - subProcess = elementFactory.createShape({ - type: 'bpmn:SubProcess', - isExpanded: true - }), - startEvents; - - // when - create.start(canvasEvent({ x: 0, y: 0 }), subProcess); - - dragging.hover({ element: rootElement }); - - dragging.move(canvasEvent({ x: 600, y: 150 })); - - dragging.end(); - - // then - startEvents = getChildStartEvents(subProcess); - - expect(startEvents).to.have.length(1); - } - )); - - }); - - describe('replace', function() { describe('task -> expanded subprocess', function() { diff --git a/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js b/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js index 5869d59d..d969e4cf 100644 --- a/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js +++ b/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js @@ -200,7 +200,7 @@ describe('features/modeling - lanes - flowNodeRefs', function() { parentLane = parentLaneShape.businessObject; // when - taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 200, y: 300 }, parentLaneShape); + taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 500, y: 150 }, parentLaneShape); task = taskShape.businessObject; // then @@ -215,7 +215,7 @@ describe('features/modeling - lanes - flowNodeRefs', function() { parentLaneShape = elementRegistry.get('Lane'), parentLane = parentLaneShape.businessObject; - taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 200, y: 300 }, parentLaneShape); + taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 500, y: 150 }, parentLaneShape); task = taskShape.businessObject; // when @@ -233,7 +233,7 @@ describe('features/modeling - lanes - flowNodeRefs', function() { parentLaneShape = elementRegistry.get('Lane'), parentLane = parentLaneShape.businessObject; - taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 200, y: 300 }, parentLaneShape); + taskShape = modeling.createShape({ type: 'bpmn:Task' }, { x: 500, y: 150 }, parentLaneShape); task = taskShape.businessObject; // when diff --git a/test/spec/features/replace/BpmnReplaceSpec.js b/test/spec/features/replace/BpmnReplaceSpec.js index 072c2229..9c78c070 100644 --- a/test/spec/features/replace/BpmnReplaceSpec.js +++ b/test/spec/features/replace/BpmnReplaceSpec.js @@ -13,6 +13,9 @@ import replaceModule from 'lib/features/replace'; import moveModule from 'diagram-js/lib/features/move'; import coreModule from 'lib/core'; +import camundaModdleModule from 'camunda-bpmn-moddle/lib'; +import camundaPackage from 'camunda-bpmn-moddle/resources/camunda.json'; + import { is } from 'lib/util/ModelUtil'; @@ -28,10 +31,11 @@ import { describe('features/replace - bpmn replace', function() { var testModules = [ + camundaModdleModule, coreModule, modelingModule, - replaceModule, - moveModule + moveModule, + replaceModule ]; @@ -39,7 +43,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('task', inject(function(elementRegistry, bpmnReplace) { @@ -288,7 +297,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('./BpmnReplace.collaboration.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -341,7 +353,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('./BpmnReplace.poolMessageFlows.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -372,7 +387,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('./BpmnReplace.dataObjects.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -413,7 +431,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('should keep position', inject(function(elementRegistry, bpmnReplace) { @@ -458,7 +481,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('should select after replace', @@ -485,7 +513,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('should keep internal labels', inject(function(elementRegistry, bpmnReplace) { @@ -533,7 +566,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -595,7 +631,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -830,7 +869,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('should update bpmn containment properly', inject(function(elementRegistry, modeling, bpmnReplace) { @@ -871,7 +915,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('should allow morphing expanded into expanded ad hoc', @@ -1010,7 +1059,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/features/replace/01_replace.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -1063,7 +1115,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('./BpmnReplace.compensation.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -1089,7 +1144,12 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('./BpmnReplace.eventSubProcesses.bpmn'); - beforeEach(bootstrapModeler(diagramXML, { modules: testModules })); + beforeEach(bootstrapModeler(diagramXML, { + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } + })); it('should remove connections', @@ -1371,7 +1431,10 @@ describe('features/replace - bpmn replace', function() { var diagramXML = require('../../../fixtures/bpmn/basic.bpmn'); beforeEach(bootstrapModeler(diagramXML, { - modules: testModules + modules: testModules, + moddleExtensions: { + camunda: camundaPackage + } })); @@ -1439,20 +1502,20 @@ describe('features/replace - bpmn replace', function() { describe('properties', function() { - var clonePropertiesXML = require('../../../fixtures/bpmn/features/replace/clone-properties.bpmn'); + var copyPropertiesXML = require('../../../fixtures/bpmn/features/replace/copy-properties.bpmn'); - var camundaPackage = require('../../../fixtures/json/model/camunda'); - - beforeEach(bootstrapModeler(clonePropertiesXML, { + beforeEach(bootstrapModeler(copyPropertiesXML, { modules: testModules, moddleExtensions: { camunda: camundaPackage } })); - it('should copy properties', inject(function(elementRegistry, bpmnReplace) { + it('should copy properties', inject(function(bpmnReplace, elementRegistry) { + // given var task = elementRegistry.get('Task_1'); + var newElementData = { type: 'bpmn:ServiceTask' }; @@ -1465,39 +1528,46 @@ describe('features/replace - bpmn replace', function() { expect(businessObject.asyncBefore).to.be.true; expect(businessObject.jobPriority).to.equal('100'); - expect(businessObject.documentation[0].text).to.equal('hello world'); - var extensionElements = businessObject.extensionElements.values; + var documentation = businessObject.documentation; - expect(extensionElements).to.have.length(4); + expect(documentation).to.have.length(1); + expect(documentation[0]).to.exist; + expect(documentation[0].text).to.equal('hello world'); - expect(is(extensionElements[0], 'camunda:InputOutput')).to.be.true; + var extensionElements = businessObject.extensionElements; - expect(is(extensionElements[0].inputParameters[0], 'camunda:InputParameter')).to.be.true; + expect(extensionElements.values).to.have.length(4); - expect(extensionElements[0].inputParameters[0].name).to.equal('Input_1'); - expect(extensionElements[0].inputParameters[0].value).to.equal('foo'); + var inputOutput = extensionElements.values[0], + properties = extensionElements.values[1], + executionListener = extensionElements.values[2], + retryCycle = extensionElements.values[3]; - expect(is(extensionElements[0].outputParameters[0], 'camunda:OutputParameter')).to.be.true; + expect(is(inputOutput, 'camunda:InputOutput')).to.be.true; - expect(extensionElements[0].outputParameters[0].name).to.equal('Output_1'); - expect(extensionElements[0].outputParameters[0].value).to.equal('bar'); + expect(is(inputOutput.inputParameters[0], 'camunda:InputParameter')).to.be.true; + expect(inputOutput.inputParameters[0].name).to.equal('Input_1'); + expect(inputOutput.inputParameters[0].value).to.equal('foo'); - expect(is(extensionElements[1], 'camunda:Properties')).to.be.true; + expect(is(inputOutput.outputParameters[0], 'camunda:OutputParameter')).to.be.true; + expect(inputOutput.outputParameters[0].name).to.equal('Output_1'); + expect(inputOutput.outputParameters[0].value).to.equal('bar'); - expect(is(extensionElements[1].values[0], 'camunda:Property')).to.be.true; + expect(is(properties, 'camunda:Properties')).to.be.true; - expect(extensionElements[1].values[0].name).to.equal('bar'); - expect(extensionElements[1].values[0].value).to.equal('foo'); + expect(is(properties.values[0], 'camunda:Property')).to.be.true; + expect(properties.values[0].name).to.equal('bar'); + expect(properties.values[0].value).to.equal('foo'); - expect(is(extensionElements[2], 'camunda:ExecutionListener')).to.be.true; + expect(is(executionListener, 'camunda:ExecutionListener')).to.be.true; - expect(extensionElements[2].class).to.equal('reallyClassy'); - expect(extensionElements[2].event).to.equal('start'); + expect(executionListener.class).to.equal('reallyClassy'); + expect(executionListener.event).to.equal('start'); - expect(is(extensionElements[3], 'camunda:FailedJobRetryTimeCycle')).to.be.true; + expect(is(retryCycle, 'camunda:FailedJobRetryTimeCycle')).to.be.true; - expect(extensionElements[3].body).to.equal('10'); + expect(retryCycle.body).to.equal('10'); })); }); @@ -1516,8 +1586,8 @@ describe('features/replace - bpmn replace', function() { var newElementData = { type: 'bpmn:UserTask' }, - fill = '#BBDEFB', - stroke = '#1E88E5'; + fill = 'red', + stroke = 'green'; modeling.setColor(task, { fill: fill, stroke: stroke }); @@ -1529,8 +1599,6 @@ describe('features/replace - bpmn replace', function() { expect(businessObject.di.fill).to.equal(fill); expect(businessObject.di.stroke).to.equal(stroke); - - expect(newElement.colors).not.to.exist; })); }); diff --git a/test/spec/util/ModelCloneHelperSpec.js b/test/spec/util/ModelCloneHelperSpec.js deleted file mode 100644 index cf3961f0..00000000 --- a/test/spec/util/ModelCloneHelperSpec.js +++ /dev/null @@ -1,390 +0,0 @@ -import { - bootstrapModeler, - inject -} from 'test/TestHelper'; - -import coreModule from 'lib/core'; -import modelingModule from 'lib/features/modeling'; - -import ModelCloneHelper from 'lib/util/model/ModelCloneHelper'; - -import camundaPackage from '../../fixtures/json/model/camunda'; - -import camundaModdleModule from './camunda-moddle'; - - -describe('util/clone/ModelCloneHelper', function() { - - var testModules = [ - camundaModdleModule, - coreModule, - modelingModule - ]; - - var basicXML = require('../../fixtures/bpmn/basic.bpmn'); - - beforeEach(bootstrapModeler(basicXML, { - modules: testModules, - moddleExtensions: { - camunda: camundaPackage - } - })); - - var helper; - - beforeEach(inject(function(eventBus, bpmnFactory) { - helper = new ModelCloneHelper(eventBus, bpmnFactory); - })); - - describe('simple', function() { - - it('should pass property', inject(function(moddle) { - - // given - var userTask = moddle.create('bpmn:UserTask', { - asyncBefore: true - }); - - var serviceTask = helper.clone(userTask, moddle.create('bpmn:ServiceTask'), [ 'camunda:asyncBefore' ]); - - expect(getProp(serviceTask, 'camunda:asyncBefore')).to.be.true; - })); - - - it('should not pass property', inject(function(moddle) { - - // given - var userTask = moddle.create('bpmn:UserTask', { - assignee: 'foobar' - }); - - var serviceTask = helper.clone(userTask, moddle.create('bpmn:ServiceTask'), []); - - expect(getProp(serviceTask, 'camunda:assignee')).not.to.exist; - })); - - }); - - - describe('nested', function() { - - it('should pass nested property - documentation', inject(function(moddle) { - - // given - var userTask = moddle.create('bpmn:UserTask'); - - var docs = userTask.get('documentation'); - - docs.push(moddle.create('bpmn:Documentation', { textFormat: 'xyz', text: 'FOO\nBAR' })); - docs.push(moddle.create('bpmn:Documentation', { text: '' })); - - var serviceTask = helper.clone(userTask, moddle.create('bpmn:ServiceTask'), [ 'bpmn:documentation' ]); - - var serviceTaskDocs = getProp(serviceTask, 'bpmn:documentation'), - userTaskDocs = getProp(userTask, 'bpmn:documentation'); - - expect(userTaskDocs[0]).not.to.equal(serviceTaskDocs[0]); - - expect(serviceTaskDocs[0].$parent).to.equal(serviceTask); - - expect(serviceTaskDocs[0].text).to.equal('FOO\nBAR'); - expect(serviceTaskDocs[0].textFormat).to.equal('xyz'); - - expect(serviceTaskDocs[1].text).to.equal(''); - })); - - - it('should pass deeply nested property - executionListener', inject(function(moddle) { - - // given - var script = moddle.create('camunda:Script', { - scriptFormat: 'groovy', - value: 'foo = bar;' - }); - - var execListener = moddle.create('camunda:ExecutionListener', { - event: 'start', - script: script - }); - - var extensionElements = moddle.create('bpmn:ExtensionElements', { values: [ execListener ] }); - - var userTask = moddle.create('bpmn:UserTask', { - extensionElements: extensionElements - }); - - var serviceTask = helper.clone(userTask, moddle.create('bpmn:ServiceTask'), [ - 'bpmn:extensionElements', - 'camunda:executionListener' - ]); - - var executionListener = serviceTask.extensionElements.values[0]; - - // then - expect(executionListener).not.to.equal(userTask.extensionElements.values[0]); - expect(executionListener.$type).to.equal('camunda:ExecutionListener'); - - expect(executionListener.$type).to.equal('camunda:ExecutionListener'); - expect(executionListener.$parent).to.equal(serviceTask.extensionElements); - - expect(executionListener.event).to.equal('start'); - - expect(executionListener.script.$type).to.equal('camunda:Script'); - expect(executionListener.script.$parent).to.equal(executionListener); - - expect(executionListener.script.scriptFormat).to.equal('groovy'); - expect(executionListener.script.value).to.equal('foo = bar;'); - })); - - - it('should pass deeply nested property - inputOutput', inject(function(moddle) { - - // given - var outputParameter = moddle.create('camunda:OutputParameter', { - name: 'var1', - definition: moddle.create('camunda:List', { - items: [ - moddle.create('camunda:Value', { value: '${1+1}' }), - moddle.create('camunda:Value', { value: '${1+2}' }), - moddle.create('camunda:Value', { value: '${1+3}' }) - ] - }) - }); - - var inputOutput = moddle.create('camunda:InputOutput', { - outputParameters: [ outputParameter ] - }); - - var extensionElements = moddle.create('bpmn:ExtensionElements', { values: [ inputOutput ] }); - - var userTask = moddle.create('bpmn:UserTask', { - extensionElements: extensionElements - }); - - var subProcess = helper.clone(userTask, moddle.create('bpmn:SubProcess'), [ - 'bpmn:extensionElements' - ]); - - expect(subProcess.extensionElements.values[0].$type).to.equal('camunda:InputOutput'); - - var serviceTask = helper.clone(userTask, moddle.create('bpmn:ServiceTask'), [ - 'bpmn:extensionElements', - 'camunda:inputOutput' - ]); - - var executionListener = serviceTask.extensionElements.values[0]; - - // then - expect(executionListener.$type).to.equal('camunda:InputOutput'); - - var newOutParam = executionListener.outputParameters[0]; - var oldOutParam = userTask.extensionElements.values[0].outputParameters[0]; - - expect(newOutParam).not.to.equal(oldOutParam); - - expect(newOutParam.$parent).to.equal(executionListener); - expect(newOutParam.definition).not.to.equal(oldOutParam.definition); - expect(newOutParam.definition.$parent).to.equal(newOutParam); - - expect(newOutParam.definition.items[0]).not.to.equal(oldOutParam.definition.items[0]); - - expect(newOutParam.definition.items[0].$parent).not.to.equal(newOutParam.definition.$parent); - - expect(newOutParam.$type).to.equal('camunda:OutputParameter'); - expect(newOutParam.definition.$type).to.equal('camunda:List'); - expect(newOutParam.definition.items[0].value).to.equal('${1+1}'); - })); - - - it('should not pass disallowed deeply nested property - connector', inject(function(moddle) { - - // given - var connector = moddle.create('camunda:Connector', { - connectorId: 'hello_connector' - }); - - var extensionElements = moddle.create('bpmn:ExtensionElements', { values: [ connector ] }); - - var serviceTask = moddle.create('bpmn:UserTask', { - extensionElements: extensionElements - }); - - var userTask = helper.clone(serviceTask, moddle.create('bpmn:UserTask'), [ - 'bpmn:extensionElements' - ]); - - var extElem = userTask.extensionElements; - - // then - expect(extElem).not.to.exist; - })); - - }); - - - describe('special cases', function() { - - it('failed job retry time cycle', inject(function(moddle) { - - function createExtElems() { - var retryTimeCycle = moddle.create('camunda:FailedJobRetryTimeCycle', { body: 'foobar' }); - - return moddle.create('bpmn:ExtensionElements', { values: [ retryTimeCycle ] }); - } - - // given - var timerEvtDef = moddle.create('bpmn:TimerEventDefinition', { - timeDuration: 'foobar' - }); - - var signalEvtDef = moddle.create('bpmn:SignalEventDefinition', { - async: true - }); - - var multiInst = moddle.create('bpmn:MultiInstanceLoopCharacteristics', { - elementVariable: 'foobar' - }); - - var timerStartEvent = moddle.create('bpmn:StartEvent', { - extensionElements: createExtElems(), - eventDefinitions: [ timerEvtDef ] - }); - - var signalStartEvt = moddle.create('bpmn:StartEvent', { - extensionElements: createExtElems(), - eventDefinitions: [ signalEvtDef ] - }); - - var subProcess = moddle.create('bpmn:SubProcess', { - extensionElements: createExtElems(), - loopCharacteristics: multiInst - }); - - var intCatchEvt = helper.clone(timerStartEvent, moddle.create('bpmn:IntermediateCatchEvent'), [ - 'bpmn:extensionElements', - 'bpmn:eventDefinitions' - ]); - - var startEvt = helper.clone(signalStartEvt, moddle.create('bpmn:StartEvent'), [ - 'bpmn:extensionElements', - 'bpmn:eventDefinitions' - ]); - - var newSubProcess = helper.clone(subProcess, moddle.create('bpmn:SubProcess'), [ - 'bpmn:extensionElements', - 'bpmn:loopCharacteristics' - ]); - - var intCatchEvtExtElems = intCatchEvt.extensionElements.values, - startEvtExtElems = startEvt.extensionElements.values, - newSubProcessExtElems = newSubProcess.extensionElements.values; - - // then - expect(intCatchEvtExtElems[0].$type).to.equal('camunda:FailedJobRetryTimeCycle'); - expect(intCatchEvtExtElems[0].body).to.equal('foobar'); - - expect(startEvtExtElems[0].$type).to.equal('camunda:FailedJobRetryTimeCycle'); - expect(startEvtExtElems[0].body).to.equal('foobar'); - - expect(newSubProcessExtElems[0].$type).to.equal('camunda:FailedJobRetryTimeCycle'); - expect(newSubProcessExtElems[0].body).to.equal('foobar'); - })); - - - it('connector', inject(function(moddle) { - - // given - var connector = moddle.create('camunda:Connector', { - connectorId: 'hello_connector' - }); - - var extensionElements = moddle.create('bpmn:ExtensionElements', { values: [ connector ] }); - - var msgEvtDef = moddle.create('bpmn:MessageEventDefinition', { - extensionElements: extensionElements - }); - - var msgIntermThrowEvt = moddle.create('bpmn:IntermediateThrowEvent', { - eventDefinitions: [ msgEvtDef ] - }); - - var clonedElement = helper.clone(msgIntermThrowEvt, moddle.create('bpmn:EndEvent'), [ - 'bpmn:extensionElements', - 'bpmn:eventDefinitions' - ]); - - var extElems = clonedElement.eventDefinitions[0].extensionElements.values; - - // then - expect(extElems[0].$type).to.equal('camunda:Connector'); - expect(extElems[0].connectorId).to.equal('hello_connector'); - })); - - - it('field', inject(function(moddle) { - - // given - var field = moddle.create('camunda:Field', { - name: 'hello_field' - }); - - var extensionElements = moddle.create('bpmn:ExtensionElements', { values: [ field ] }); - - var msgEvtDef = moddle.create('bpmn:MessageEventDefinition', { - extensionElements: extensionElements - }); - - var msgIntermThrowEvt = moddle.create('bpmn:IntermediateThrowEvent', { - eventDefinitions: [ msgEvtDef ] - }); - - var clonedElement = helper.clone(msgIntermThrowEvt, moddle.create('bpmn:EndEvent'), [ - 'bpmn:extensionElements', - 'bpmn:eventDefinitions' - ]); - - var extElems = clonedElement.eventDefinitions[0].extensionElements.values; - - // then - expect(extElems[0].$type).to.equal('camunda:Field'); - expect(extElems[0].name).to.equal('hello_field'); - })); - - - it('not clone field', inject(function(moddle) { - - // given - var field = moddle.create('camunda:Field', { - name: 'hello_field' - }); - - var extensionElements = moddle.create('bpmn:ExtensionElements', { values: [ field ] }); - - var msgEvtDef = moddle.create('bpmn:MessageEventDefinition', { - extensionElements: extensionElements - }); - - var msgIntermThrowEvt = moddle.create('bpmn:IntermediateThrowEvent', { - eventDefinitions: [ msgEvtDef ] - }); - - var clonedElement = helper.clone(msgIntermThrowEvt, moddle.create('bpmn:IntermediateThrowEvent'), [ - 'bpmn:extensionElements' - ]); - - var extElems = clonedElement.extensionElements; - - // then - expect(extElems).not.to.exist; - })); - - }); - -}); - - -// helpers //////////// - -function getProp(element, property) { - return element && element.$model.properties.get(element, property); -} \ No newline at end of file diff --git a/test/spec/util/camunda-moddle.js b/test/spec/util/camunda-moddle.js deleted file mode 100644 index e2e425c0..00000000 --- a/test/spec/util/camunda-moddle.js +++ /dev/null @@ -1,77 +0,0 @@ -import { - some -} from 'min-dash'; - -var ALLOWED_TYPES = { - FailedJobRetryTimeCycle: [ - 'bpmn:StartEvent', - 'bpmn:BoundaryEvent', - 'bpmn:IntermediateCatchEvent', - 'bpmn:Activity' - ], - Connector: [ 'bpmn:EndEvent', 'bpmn:IntermediateThrowEvent' ], - Field: [ 'bpmn:EndEvent', 'bpmn:IntermediateThrowEvent' ] -}; - - -function is(element, type) { - return element && (typeof element.$instanceOf === 'function') && element.$instanceOf(type); -} - -function exists(element) { - return element && element.length; -} - -function includesType(collection, type) { - return exists(collection) && some(collection, function(element) { - return is(element, type); - }); -} - -function anyType(element, types) { - return some(types, function(type) { - return is(element, type); - }); -} - -function isAllowed(propName, propDescriptor, newElement) { - var name = propDescriptor.name, - types = ALLOWED_TYPES[ name.replace(/camunda:/, '') ]; - - return name === propName && anyType(newElement, types); -} - - -function CamundaModdleExtension(eventBus) { - - eventBus.on('property.clone', function(context) { - var newElement = context.newElement, - refTopLevelProperty = context.refTopLevelProperty, - propDescriptor = context.propertyDescriptor; - - return this.canCloneProperty(newElement, refTopLevelProperty, propDescriptor); - }, this); -} - -CamundaModdleExtension.$inject = [ 'eventBus' ]; - -CamundaModdleExtension.prototype.canCloneProperty = function( - newElement, refTopLevelProperty, propDescriptor) { - - if (isAllowed('camunda:FailedJobRetryTimeCycle', propDescriptor, newElement)) { - return includesType(newElement.eventDefinitions, 'bpmn:TimerEventDefinition') || - includesType(newElement.eventDefinitions, 'bpmn:SignalEventDefinition') || - is(newElement.loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics'); - } - - if (isAllowed('camunda:Connector', propDescriptor, newElement) || - isAllowed('camunda:Field', propDescriptor, newElement)) { - return is(refTopLevelProperty, 'bpmn:MessageEventDefinition'); - } -}; - - -export default { - __init__: [ 'camundaModdleExtension' ], - camundaModdleExtension: [ 'type', CamundaModdleExtension ] -};